| Column |
|---|
| | Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 30 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<div style="margin: 40px auto; text-align: center; max-width: 1200px;"><!-- Local Poppins font -->
<style>
@font-face {
<p style="font-size: 18px; color: #7F8C8D; margin-bottom: 40px;">family: 'LocalPoppins';
src: url('fonts/Poppins-Regular.woff2') format('woff2'),
WP9 Task 2 provides software review services designed to help GÉANT development teams enhance the security, quality, and compliance of their code. Our mission is to make software more robust against threats, improve code maintainability, and ensure adherence to the GÉANT software IPR policy.
</p>
<div style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
<!-- SonarQube Setup Assistance -->
<div class="review-card" style="background-color: #f4f4f4; border: 3px solid rgba(41, 128, 185, 0.7); box-shadow: 0 4px 12px rgba(41, 128, 185, 0.4);">
<a href url('fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'LocalPoppins';
src: url('fonts/Poppins-SemiBold.woff2') format('woff2'),
url('fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
</style>
<!-- Section -->
<div class="modern-panel">
<p>
WP9 Task 2 provides software review services designed to help GÉANT development teams enhance the security, quality, and compliance of their code. Our mission is to make software more robust against threats, improve code maintainability, and ensure adherence to the GÉANT software IPR policy.
</p>
<div class="review-container">
<!-- Card 1 -->
<div class="review-card review-blue">
<a href="https://wiki.geant.org/displayspaces/GSD/pages/1038811294/SonarQube+Setup+Assistance">
<div class="emoji">🧑💻</div>
<div class="emojispacer">🧑💻<></div>
<div class="spacer"></div>
<h4>SonarQube Setup Assistance<Setup<br>Assistance</h4>
<div class="text-container">spacer"></div>
<div class="spacer"></div>
<p>How to configure SonarQubeSonarQube<br>for for automated code analysis</p>
<<div class="spacer"></div>
</a>
</div>
<!-- SourceCard Code2 Review -->
<div class="review-card" style="background-color: #f4f4f4; border: 3px solid rgba(39, 174, 96, 0.7); box-shadow: 0 4px 12px rgba(39, 174, 96, 0.4);">
<a href=review-green">
<a href="https://wiki.geant.org/displayspaces/GSD/pages/1038811297/Source+Code+Review">
<div class="emoji">🔍</div>
<div class="emojispacer">🔍<></div>
<div class="spacer"></div>
<h4>Source Code Review<Code<br>Review</h4>
<div class="spacer"></div>
<div class="text-container">
spacer"></div>
<p>In-depth manual code review byreview<br>by experts</p>
<<div class="spacer"></div>
</a>
</div>
<!-- SoftwareCard Composition3 Analysis -->
<div class="review-card" style="background-color: #f4f4f4; border: 3px solid rgba(243, 156, 18, 0.7); box-shadow: 0 4px 12px rgba(243, 156, 18, 0.4);">
<a href="https://wiki.geant.org/display/GSDreview-orange">
<a href="https://wiki.geant.org/spaces/GSD/pages/1038811290/Software+Composition+Analysis">
<div class="emoji">🧩</div>
<div class="spacer"></div>
<h4>Software Composition Analysis</h4><div class="spacer"></div>
<h4>Software Composition<br>Analysis</h4>
<div class="text-container">spacer"></div>
<div class="spacer"></div>
<p>Reviewing external software componentssoftware<br>components and their licenses</p>
<<div class="spacer"></div>
</a>
</div>
<!-- SoftwareCard Licence4 Analysis -->
<div class="review-card" style="background-color: #f4f4f4; border: 3px solid rgba(142, 68, 173, 0.7); box-shadow: 0 4px 12px rgba(142, 68, 173, 0.4);">
<a href="https://wiki.geant.org/display/GSDreview-purple">
<a href="https://wiki.geant.org/spaces/GSD/pages/1038811292/Software+Licence+Analysis">
<div class="emoji">🏅</div>
<div class="spacer"></div>
<h4>Software Licence Analysis</h4><div class="spacer"></div>
<h4>Software Licence<br>Analysis</h4>
<div class="text-container">spacer"></div>
<div class="spacer"></div>
<p>Ensuring compliance with softwarewith<br>software licensing requirements</p>
<<div class="spacer"></div>
</a>
</div>
</div>
</div>
<!-- Styles -->
<style>
html, body .review-card {
flexmargin: 1 1 220px0;
max-widthpadding: 250px0;
}
.modern-panel {
borderfont-radiusfamily: 12px'LocalPoppins', sans-serif;
background: #ffffff;
padding border-radius: 20px16px;
padding: 40px 3%;
text-align width: center100%;
margin: 0;
box-shadow: 0px0 10px8px 25px20px rgba(0, 0, 0, 0.105);
transition: transform 0.3s ease, box-shadow 0.3s ease-in-outsizing: border-box;
displaytext-align: flexcenter;
}
.modern-panel h2 {
flex font-direction: columnsize: clamp(24px, 5vw, 32px);
font-weight: 600;
justify-contentcolor: flex-start#2C3E50;
margin: 0 0 background-color: #f4f4f420px 0;
}
.review-card:hovermodern-panel p {
font-size: clamp(16px, transform: translateY(-8px2.5vw, 18px);
color: #7F8C8D;
box-shadow margin: 0px0 15px0 35px30px rgba(0,;
0, 0, 0.15);
line-height: 1.6;
}
.review-cardcontainer a {
display: flex;
textflex-decorationwrap: nonewrap;
justify-content: center;
color gap: #2C3E5020px;
}
.review-card {
display: flex;
: 1 1 220px;
flexmax-directionwidth: column260px;
padding: 20px;
heightbackground: 100%#f9f9f9;
}
border-radius: 12px;
.emoji {text-align: center;
transition: transform 0.3s ease, font-size: 44pxbox-shadow 0.3s ease;
border: 3px margin-bottom: 12pxsolid transparent;
display: }flex;
.reviewflex-card h4 {direction: column;
font-sizejustify-content: 20pxflex-start;
font-weightheight: boldauto;
}
text-align: center;.review-card:hover {
min-height: 48pxtransform: translateY(-6px);
box-shadow: 0 12px margin-bottom: 18px;
24px rgba(0, 0, 0, 0.12);
}
.review-card a {
displaytext-decoration: flexnone;
color: #2C3E50;
align-itemsdisplay: centerflex;
flex-direction: column;
justify-contentheight: center100%;
}
.review-card .text-containeremoji {
font-size: 48px;
margin-topbottom: auto0;
}
.review-card p.spacer {
height: 20px;
}
.review-card h4 {
font-size: 16px20px;
font-weight: 600;
color margin: #2C3E500;
min-height: 48px;
marginline-height: 01.3;
display: }
flex;
/* Responsive fallback */align-items: center;
@media (max-width: 300px) {justify-content: center;
text-align: center;
}
.review-card h4p {
font-size: 17px;
margin: font-size: 18px0;
line-height: 1.5;
color: #34495e;
}
display: flex;
.review-card p {align-items: center;
justify-content: center;
font-sizetext-align: 14pxcenter;
}
.review-blue { border-color: rgba(41, 128, }
}
</style>
<div style="height: 20px;"></div>
185, 0.7); background-color: #eaf3fa; }
.review-green { border-color: rgba(39, 174, 96, 0.7); background-color: #e8f6ef; }
.review-orange { border-color: rgba(243, 156, 18, 0.7); background-color: #fef5e6; }
.review-purple { border-color: rgba(142, 68, 173, 0.7); background-color: #f5ebfa; }
@media (max-width: 480px) {
.review-card {
flex: 1 1 100%;
max-width: 100%;
}
.modern-panel {
padding: 30px 16px;
}
.review-card h4 {
font-size: 18px;
}
.review-card p {
font-size: 16px;
}
.review-card .emoji {
font-size: 40px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 0 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<!-- Local Poppins font -->
<style>
@font-face {
font-family: 'LocalPoppins';
src: url('fonts/Poppins-Regular.woff2') format('woff2'),
url('fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'LocalPoppins';
src: url('fonts/Poppins-SemiBold.woff2') format('woff2'),
url('fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
</style>
<!-- Section -->
<div class="modern-language-panel">
<h2>Our team of experts has extensive experience in the following programming languages:</h2>
<div class="language-grid">
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/java/java-original.svg" alt="Java">
<span>Java</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/csharp/csharp-original.svg" alt="C#">
<span>C#</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/mysql/mysql-original.svg" alt="SQL">
<span>SQL</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/php/php-original.svg" alt="PHP">
<span>PHP</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg" alt="JavaScript">
<span>JavaScript</span>
</div>
<div class="language-card |
| | Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 3 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<div style="text-align: center; font-size: 22px; margin-bottom: 15px; font-weight: bold;">
Our team of experts has extensive experience in the following programming languages:
</div>
<div style="display: flex; justify-content: center; flex-wrap: wrap; gap: 20px;">
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/java/java-original.svg" alt="Java">
<span>Java</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/csharp/csharp-original.svg" alt="C#">
<span>C#</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/mysql/mysql-original.svg" alt="SQL">
<span>SQL</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/php/php-original.svg" alt="PHP">
<span>PHP</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg" alt="JavaScript">
<span>JavaScript</span>
</div>
<div class="language-card">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-original.svg" alt="Python">
<span>Python</span>
</div>
</div>
<style>
.language-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 130px;
height: 130px;
background: white;
border-radius: 15px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.language-card:hover {
transform: scale(1.1);
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.3);
}
.language-card img {
width: 60px;
height: 60px;
margin-bottom: 10px;
object-fit: contain; /* Images proportion */
}
.language-card span {
font-size: 18px;
font-weight: bold;
text-align: center;
}
</style>
<div style="text-align: center; font-size: 16px; margin-top: 30px;">
📌 If your project uses a different technology, feel free to reach out. We will assist in finding the best solution for your needs.
</div>
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 3 |
|---|
| titleBGColor | #a3c1ad |
|---|
| 🌟 What Are the Benefits?| HTML |
|---|
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; max-width: 900px; margin: 20px auto;">
<!-- Card1 1 -->
<div style="background: white; border-radius: 15px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); padding: 15px; text-align: center;">
<img <div style="font-size: 32px; margin-bottom: 10px;">🎯</div>src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-original.svg" alt="Python">
<span>Python</span>
</div>
</div>
<h3<div styleclass="font-size: 18px; margin: 0; color: #333;">Fit for purpose</h3>
<p style="font-size: 16px; color: #555;">🔥 Optimallanguage-footer">
📌 If your project uses a different technology, feel free to reach out. We will assist in finding the best solution for your needs is guaranteed</p>
.
</div>
</div>
<!-- Style -->
<style>
<!.modern-language-panel Card{
2 font-->family: 'LocalPoppins', sans-serif;
<div style="background-color: white#ffffff;
border-radius: 15px16px;
box-shadow: 0px 4px 8px padding: 40px 3%;
width: 100%;
margin: 0;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.205); padding
box-sizing: 15pxborder-box;
text-align: center;">
}
.modern-language-panel h2 {
<div style="font-size: 32px; margin-bottom: 10px;">🔍</div>clamp(22px, 4vw, 30px);
font-weight: 600;
<h3 style="font-size color: 18px#2C3E50;
margin: 0 0; color:30px #333;">Detailed Inspections</h3>0;
}
.language-grid {
<p style="font-size display: 16pxflex; color
justify-content: #555center;">🔥
Dynamic + Static Analysis + Penetration Testing</p>
</div>flex-wrap: wrap;
gap: 20px;
}
.language-card {
<!-- Card 3 --> display: flex;
<div style="backgroundflex-direction: whitecolumn;
border-radius: 15px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); padding: 15px; text-align: center;"> align-items: center;
justify-content: center;
width: 130px;
height: 130px;
<div style="font-size background: 32px#f9f9f9;
margin-bottom border-radius: 10px15px;">👨💻</div>
box-shadow: 0 4px 10px <h3 style="font-size: 18px; margin: 0; color: #333;">Expert Support</h3>
<p style="font-size: 16px; color: #555;">🔥🔥 Direct collaboration with security experts</p>
</div>
<!-- Card 4 -->
<div style="background: white; border-radius: 15px; box-shadow: 0px 4px 8pxrgba(0, 0, 0, 0.06);
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.language-card:hover {
transform: scale(1.07);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.215); padding: 15px; text-align: center;">
}
.language-card img {
width: 60px;
<div style="font-size height: 32px60px;
margin-bottom: 10px;">📄</div>
<h3 style="font-sizeobject-fit: 18pxcontain; margin: 0; color: #333;">Detailed Reports</h3>
}
.language-card span {
font-size: 17px;
<p style="font-sizeweight: 16px600;
color: #555#2C3E50;">🔥
Comprehensive results with concrete recommendations</p> }
</div>
.language-footer {
<!font-- Card 5 -->family: 'LocalPoppins', sans-serif;
<div style="background: white; border-radius: 15px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); padding: 15px; text-align: center;">font-size: clamp(16px, 2.5vw, 18px);
color: #555;
margin-top: 30px;
<div style="font-sizeline-height: 32px1.6;
margin-bottom: 10px;">🛠️</div> }
.language-footer a {
<h3 style="font-size: 18px; margin: 0; color: #333;">Advanced Tools</h3>
<p style="font-size: 16px; color: #555;">🔥 We use SQ, Mend, and other tools for issue detection</p>
</div>color: #007bff;
text-decoration: underline;
}
@media (max-width: 480px) {
.modern-language-panel {
padding: 30px 16px;
}
<!.language--card Card{
6 -->
<div style="backgroundwidth: white; border-radius: 15px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); padding: 15px; text-align: center;">
<div style="font-size: 32px; margin-bottom: 10px;">🔐</div>
<h3 style="font-size: 18px; margin: 0; color: #333;">Enhanced Security</h3>
<p style="font-size: 16px; color: #555;">🔥 Risk reduction and increased software stability</p>
</div>
</div>100px;
height: 100px;
}
.language-card img {
width: 45px;
height: 45px;
}
.language-card span {
font-size: 14px;
}
.language-footer {
font-size: 15px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 30 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<div class="resourcemodern-benefits-containerpanel">
<h2>🌟 What Are the Benefits?</h2>
<div class="resourcecards-itemwrapper">
<div class="cards-grid">
<div class="textcard">
<div class="emoji">🎯</div>
<h4>GÉANT eAcademy, Course: Security Testing and<h3>Fit Quality Assurance (2024)</h4>for purpose</h3>
</div>
<p>🔥 Optimal solution for your needs <a href="https://e-academy.geant.org/moodle/course/view.php?id=628" target="_blank">is guaranteed</p>
</div>
<button<div class="btn">Open Course</button>
card">
<div class="emoji">🔍</div>
<h3>Detailed <Inspections</a>h3>
</div>
<p>🔥 Dynamic + Static Analysis + Penetration Testing</p>
</div>
<div class="resource-itemcard">
<div class="textemoji">>👨💻</div>
<h3>Expert Support</h3>
<h4>SonarQube Infoshare, recording and slides (2024)</h4>
<p>🔥 Direct collaboration with security experts</p>
</div>
<a href="https://geant.app.box.com/s/uwhgmltuse4ogp4ii79wgxhkyuagrvi8" target="_blank"><div class="card">
<div class="emoji">📄</div>
<h3>Detailed Reports</h3>
<button class="btn">View InfoShare</button>
<p>🔥 Comprehensive results with concrete <recommendations</a>p>
</div>
<div class="resource-itemcard">
<div class="textemoji">>🛠️</div>
<h3>Advanced Tools</h3>
<h4>Webinar: License Analysis with WhiteSource (2022)</h4>
</div> <p>🔥 We use SQ, Mend, and other tools for issue detection</p>
</div>
<a href="https://geant.app.box.com/s/a5103pww8hpby60y5vmsk2rwn0qjq347" target="_blank <div class="card">
<button<div class="btnemoji">Watch Webinar<>🔐</button>div>
<h3>Enhanced <Security</a>h3>
</div>
</div>
<style>
.resource-container {
<p>🔥 Risk reduction and increased software stability</p>
display: flex;
</div>
flex-direction: column;</div>
</div>
</div>
<style>
@font-face {
gapfont-family: 15px'Poppins';
max-width: 800px;src: url('https://yourdomain.com/fonts/Poppins-Regular.woff2') format('woff2'),
margin: 40px auto url('https://yourdomain.com/fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-familystyle: 'Arial', sans-serifnormal;
}
.resource-item@font-face {
font-family: 'Poppins';
display: flex;src: url('https://yourdomain.com/fonts/Poppins-SemiBold.woff2') format('woff2'),
justify-content: space-between url('https://yourdomain.com/fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
align font-itemsstyle: centernormal;
}
.modern-benefits-panel {
paddingfont-family: 15px'Poppins', sans-serif;
width: 100%;
background-colormargin: #f9f9f90;
padding: 40px 3%;
border-radius background: 10px#ffffff;
border-radius: 16px;
box-shadow: 0px0 2px8px 6px20px rgba(0, 0, 0, 0.105);
}
box-sizing: border-box;
.resourcetext-item .text {align: center;
}
.modern-benefits-panel h2 {
flex-growmargin: 10 0 30px 0;
font-size: clamp(24px, 4vw, text-align30px);
font-weight: left600;
color: #2C3E50;
}
.resourcecards-item h4wrapper {
font-sizemax-width: 16px900px;
margin: 0 auto;
font-weight: 600;}
.cards-grid {
colordisplay: #444grid;
grid-template-columns: repeat(3, 1fr);
margingap: 015px;
}
.btncard {
paddingbackground: 10px 20px#f9f9f9;
background-colorborder-radius: #2e8b5715px;
box-shadow: 0 4px 10px rgba(0, 0, color: white0, 0.06);
borderpadding: none15px;
border-radiustext-align: 6pxcenter;
cursorbox-sizing: pointerborder-box;
}
.card .emoji {
font-size: 14px32px;
margin-bottom: 10px;
}
width: 180px; /* Ensures buttons are same size */.card h3 {
font-size: 18px;
margin: 0;
text-aligncolor: center#2C3E50;
}
min-height: 48px;
.btndisplay:hover {flex;
justify-content: center;
backgroundalign-coloritems: #1e6b41center;
font-weight: 600;
}
</style>
<div style="height: 20px;"></div>
|
| | Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 3 |
|---|
| titleBGColor | #a3c1ad |
|---|
| 🌟 Statistics| HTML |
|---|
<div class="statistics-container"> .card p {
<!font-- Card 1 - Years of Experience -->size: 16px;
color: #555;
<div class="stat-card">margin-top: 6px;
line-height: 1.4;
}
<div class="stat-icon">📊</div> @media (max-width: 900px) {
.cards-grid {
<div class="stat-info">
grid-template-columns: repeat(2, 1fr);
}
}
@media <h4>Years of Experience</h4>(max-width: 600px) {
.cards-grid {
<p class="stat-number">+14 years</p>grid-template-columns: 1fr;
}
</div>.modern-benefits-panel {
</div>
padding: 30px 16px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 0 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<div class="modern-related-panel" <!-- Card 2 - Detected Bugs (Manual) -->
<h2>🔗 Related Materials</h2>
<div class="statresource-cardcontainer">
<div class="statresource-iconitem">🐞</div>>
<div class="stat-infotext">
<h4>GÉANT CONNECT Online <h4>Detected Bugs (Manual– Article: Smarter reviews, stronger software (2025)</h4>
</div>
<p<a classhref="stat-number">+700</p>
https://connect.geant.org/2025/10/13/smarter-reviews-stronger-software" target="_blank">
<button class="btn">Read Article</button>
</div>a>
</div>
<!-- Card 3 - Detected Bugs (Automatic via SonarQube) --<div class="resource-item">
<div class="text">
<div class="stat-card">
<h4>GÉANT eAcademy, Course: Security Testing <div class="stat-icon">and Quality Assurance (2024)</h4>
</div>
<img<a srchref="https://wikie-academy.geant.org/downloadmoodle/attachmentscourse/1045004320/sonarqubeview.svgphp?apiid=v2628" alttarget="SonarQube Logo" class="sonarqube-logo"_blank">
</div>
<button class="btn">Open Course</button>
</a>
</div>
<div class="statresource-infoitem">
<div class="text">
<h4>Detected Bugs <h4>SonarQube Infoshare, recording and slides (Automatic2024)</h4>
</div>
<p class="stat-number">+10,000</p>
<a href="https://geant.app.box.com/s/cvm25uhztfmvpc2wnn3kpqqnrw51nz24" target="_blank">
</div><button class="btn">View InfoShare</button>
</div>a>
</div>
<style>
.statistics-container {<div class="resource-item">
display: flex;<div class="text">
gap<h4>Webinar: 20px;
License Analysis with WhiteSource (2022)</h4>
justify-content: space-around; </div>
flex-wrap: wrap;<a href="https://geant.app.box.com/s/a5103pww8hpby60y5vmsk2rwn0qjq347" target="_blank">
margin: 40px auto;
<button class="btn">Watch Webinar</button>
</a>
max-width: 1200px; </div>
}
</div>
</div>
<style>
.stat-card@font-face {
background-colorfont-family: #f9f9f9'Poppins';
border-radius: 12px;src: url('https://yourdomain.com/fonts/Poppins-Regular.woff2') format('woff2'),
padding: 20px;
url('https://yourdomain.com/fonts/Poppins-Regular.woff') format('woff');
widthfont-weight: 280px400;
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1)font-style: normal;
}
transition: transform 0.3s, box-shadow 0.3s;@font-face {
text-alignfont-family: center'Poppins';
display: flex;src: url('https://yourdomain.com/fonts/Poppins-SemiBold.woff2') format('woff2'),
flex-direction: column url('https://yourdomain.com/fonts/Poppins-SemiBold.woff') format('woff');
align-itemsfont-weight: center600;
font-style: normal;
}
/* Klikabilnost uklonjena */ .modern-related-panel {
cursor: default;
font-family: 'Poppins', sans-serif;
width: }100%;
.stat-cardmargin:hover {0;
padding: 40px 3%;
transform background: translateY(-5px)#ffffff;
border-radius: 16px;
box-shadow: 0px0 6px8px 20px rgba(0, 0, 0, 0.1505);
}
box-sizing: border-box;
.stat-icon {text-align: center;
}
.modern-related-panel h2 {
font-size: 40pxclamp(24px, 4vw, 30px);
font-weight: 600;
color: #2ecc71#2C3E50;
margin: 0 0 margin-bottom: 15px30px 0;
}
.statresource-icon img.sonarqube-logo container {
max-width: 950px; /* ✅ prošireno width: 120px;
da button stane u red */
heightmargin: 0 auto;
display: flex;
marginflex-bottomdirection: 15pxcolumn;
gap: 15px;
}
.statresource-infoitem h4 {
font-sizedisplay: 18pxflex;
justify-content: space-between;
font align-weightitems: 600center;
padding: 15px 25px;
background-color: #34495e#f9f9f9;
margin-bottomborder-radius: 10px12px;
}
.stat-number {
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
fonttext-sizealign: 28pxleft;
font-weightflex-wrap: 700nowrap;
/* ✅ sprečava prelamanje */
color: #2ecc71;}
.resource-item .text {
marginflex-bottomgrow: 10px1;
margin-right: 20px;
}
</style>
|
| | Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 3 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
body {
font-family: 'Arial', sans-serif
.resource-item h4 {
font-size: 16px;
font-weight: 600;
color: #2C3E50;
margin: 0;
line-height: 1.4;
}
.btn {
padding: 10px 20px;
background-color: #f5f6f8#2e8b57;
color: marginwhite;
border: 0none;
paddingborder-radius: 20px8px;
colorcursor: #333pointer;
font-size: 14px;
}width: 180px;
.contact-wrapper-v2 {text-align: center;
transition: display: flexbackground-color 0.3s ease;
justifyflex-contentshrink: center0;
}
.btn:hover {
paddingbackground-color: 30px#1e6b41;
}
@media (max-width: 600px) }{
.contactresource-item-v2 {
backgroundflex-colordirection: #ffffffcolumn;
paddingalign-items: 30pxflex-start;
widthgap: 100%10px;
}
max-width: .btn {
width: 100%;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 0 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<!-- Local font Poppins -->
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.woff2') format('woff2'),
url('fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-SemiBold.woff2') format('woff2'),
url('fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
</style>
<!-- Section -->
<div class="stats-panel">
<div class="stats-inner">
<h2>🌟 Statistics</h2>
<div class="stats-container">
<div class="stats-card">
<div class="stats-icon">📊</div>
<div class="stats-info">
<h4>Years of Experience</h4>
<p class="stats-number">+14 years</p>
</div>
</div>
<div class="stats-card">
<div class="stats-icon">🐞</div>
<div class="stats-info">
<h4>Detected Bugs (Manual)</h4>
<p class="stats-number">+700</p>
</div>
</div>
<div class="stats-card">
<div class="stats-icon">
<img src="https://wiki.geant.org/download/attachments/1045004320/sonarqube.svg?api=v2" alt="SonarQube Logo" class="stats-logo">
</div>
<div class="stats-info">
<h4>Detected Bugs (Automatic)</h4>
<p class="stats-number">+10,000</p>
</div>
</div>
</div>
</div>
</div>
<!-- Style -->
<style>
.stats-panel {
font-family: 'Poppins', sans-serif;
width: 100%;
background: #ffffff;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
border-radius: 0;
padding: 40px 0;
box-sizing: border-box;
}
.stats-inner {
max-width: 1400px;
margin: 0 auto;
padding: 0 5%;
box-sizing: border-box;
text-align: center;
}
.stats-inner h2 {
font-size: clamp(24px, 4vw, 32px);
font-weight: 600;
color: #2C3E50;
margin-bottom: 40px;
}
.stats-container {
display: flex;
gap: 30px;
justify-content: center;
flex-wrap: wrap; /* omogucava wrap na manjim ekranima */
}
.stats-card {
background-color: #f9f9f9;
border-radius: 12px;
padding: 25px 20px;
flex: 1 1 250px; /* fleksibilna širina */
max-width: 400px;
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.08);
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
transition: transform 0.3s ease;
}
.stats-card:hover {
transform: translateY(-5px);
}
.stats-icon {
font-size: 48px;
color: #27ae60;
margin-bottom: 15px;
}
.stats-icon img.stats-logo {
width: 140px;
max-width: 100%;
height: auto;
margin-bottom: 10px;
}
.stats-info h4 {
font-size: 18px;
font-weight: 600;
color: #34495e;
margin-bottom: 8px;
}
.stats-number {
font-size: 28px;
font-weight: 700;
color: #27ae60;
margin: 0;
}
/* Responsive adjustments */
@media (max-width: 1024px) {
.stats-container {
gap: 20px;
}
}
@media (max-width: 768px) {
.stats-container {
flex-direction: column;
gap: 20px;
}
.stats-card {
max-width: 100%;
width: 100%;
}
}
@media (max-width: 480px) {
.stats-inner h2 {
font-size: clamp(20px, 5vw, 28px);
margin-bottom: 30px;
}
.stats-number {
font-size: 24px;
}
.stats-info h4 {
font-size: 16px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 0 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Section Safe</title>
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" crossorigin="anonymous">
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.woff2') format('woff2'),
url('fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-SemiBold.woff2') format('woff2'),
url('fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
/* === Kontakt sekcija === */
.contact-full-panel {
font-family: 'Poppins', sans-serif;
width: 100%;
background: #fff;
900px;
border-radius: 16px;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
border: 2px solid #3498db;
display: flex;
align-items: flex-start;
gap: 30px;
transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.contact-item-v2:hover {
box-shadow: 0 8px 36px20px rgba(0, 0, 0, 0.1205);
padding: 40px 0;
borderbox-colorsizing: #2980b9border-box;
color: #2c3e50;
}
.contact-icon-v2inner {
font-sizemax-width: 50px1400px;
margin: 0 auto;
colorpadding: #3498db0 5%;
margin-topbox-sizing: 4px;
}
.contact-content-v2 {border-box;
display: flex;
flex-direction: 1column;
align-items: center;
}
.contact-content-v2 h3heading {
colortext-align: #2980b9center;
font-size: 1.4em clamp(24px, 4vw, 32px);
font-weight: bold600;
margin-bottom: 12px40px;
text-transform: uppercase;
}
.contact-content-v2heading pspan {
font-size: 0.95em;inherit;
}
.contact-grid {
display: flex;
colorjustify-content: #7f8c8dcenter;
flex-wrap: wrap;
margin-bottomgap: 20px24px;
width: 100%;
}
.contact-links-v2card {
displaybackground-color: flex#fff;
justify-contentborder-radius: space-between16px;
padding: gap: 12px40px 30px;
box-shadow: 0 4px flex-wrap: wrap;
}
.contact-links-v2 a {
display: inline-14px rgba(0,0,0,0.05);
border: 1px solid #d9dce6;
flex: 1 1 300px;
max-width: 500px;
display: flex;
justify-contentflex-direction: centercolumn;
align-items: center;
text-align: center;
colorbox-sizing: #2980b9;
background-color: transparentborder-box;
}
.contact-icon {
font-size: 48px;
color: #277a3c;
paddingmargin: 10px16px 16px0;
}
.contact-card h3 {
font-size: 0.95em20px;
font-weight: bold600;
color: #277a3c;
bordermargin-radiusbottom: 8px12px;
text-decorationtransform: noneuppercase;
}
.spacer {
borderheight: 2px solid #3498db;
width: 100%12px;
}
.contact-description {
font-size: 16px;
color: #2c3e50;
margin-bottom: 24px;
maxline-widthheight: 320px1.5;
}
.contact-links {
display: flex;
textflex-aligndirection: centercolumn;
/* uvek jedan ispod drugog transition: background-color 0.3s ease, transform 0.3s ease*/
gap: 12px;
width: 100%;
}
align-items: center;
}
.contact-links-v2 a:hover { {
text-decoration: none;
font-weight: 600;
color: #277a3c;
background-color: #3498dbtransparent;
border: 2px solid #277a3c;
colorpadding: white10px 16px;
border-radius: 16px;
transformtext-align: translateY(-4px)center;
transition: }
.contact-links-v2 a.helpdesk-link-v2 {
background-color: #3498db;
color: white;
background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
font-size: 1em;
white-space: nowrap;
width: 90%; /* border: none;
padding: 10px 16px;
}
.contact-links-v2 a.helpdesk-link-v2manja dužina da ne prelaye */
max-width: 320px; /* kontrola maksimalne širine */
box-sizing: border-box;
}
.contact-links a:hover {
background-color: #217dbb#388e3c;
color: }white;
box-shadow: .footer-text-v2 {
text-align: center0 8px 28px rgba(56, 142, 60, 0.6);
cursor: pointer;
transform: scale(1.02);
}
.contact-footer {
fonttext-sizealign: 16px;
center;
margin-top: 30px40px;
font-size: 16px;
color: #555#2c3e50;
}
.footer-text-v2 spanmax-width: 600px;
}
/* Responsive */
@media (max-width: 768px) {
.contact-card { fontmax-weightwidth: bold100%; }
.contact-links a { colorwidth: #3498db95%;
}
</style>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet" />max-width: 280px; font-size: 0.95em; }
}
</style>
</head>
<body>
<div class="contact-wrapperfull-v2panel">
<div class="contact-item-v2inner">
<div class="contact-icon-v2"><iheading"> 📩 LET'S CONNECT! <span> CONTACT US</span> </div>
<div class="fas fa-envelope"></i></div>contact-grid">
<div class="contact-content-v2card">
<h3>REQUEST <h3>RequestA CodeCODE Review<REVIEW</h3>
<p>If you need a code review, reach out to us via email or through the Help Desk for assistance.<<div class="contact-icon"><i class="fas fa-envelope"></i></div>
<p class="contact-description">All inquiries related to code review requests</p>
<div class="contact-links-v2">
<a href="mailto:codereviews@software.geant.org" class="email-link-v2">
codereviews@software.geant.org
<>codereviews@software.geant.org</a>
<a href="https://jira.software.geant.org/servicedesk/customer/portal/2/group/20" class="helpdesk-link-v2">
Help Desk
<>Help Desk</a>
</div>
</div>
</div>
</div>
<div<p class="contact-footer-text-v2">
For further inquiriesinformation or more informationinquiries, feel free to reachcontact outus via emailthe orprovided Help Deskemails.
</div>p>
<br><br></div>
</div>
</body>
</html>
|
|
|
|