| 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.simpleicons.org/cplusplus/00599C" 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 |
| | 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/javascript/javascript-original.svg" alt="JavaScript">
<span>JavaScript</span>
</div>
<h3<div styleclass="font-size: 18px; margin: 0; color: #333;">Fit for purpose</h3>language-card">
<img <p stylesrc="font-size: 16px; color: #555;">🔥 Optimal solution for your needs is guaranteed</p>https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-original.svg" alt="Python">
<span>Python</span>
</div>
<!-- Card 2 --</div>
<div class="language-footer">
<div style="background: 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;">Detailed Inspections</h3>
<p style="font-size: 16px; color: #555;">🔥 Dynamic + Static Analysis + Penetration Testing</p>
</div>
<!-- Card 3 -->
<div style="background: white; border-radius: 15px; box-shadow: 0px 4px 8px📌 If your project uses a different technology, feel free to reach out. We will assist in finding the best solution for your needs.
</div>
</div>
<!-- Style -->
<style>
.modern-language-panel {
font-family: 'LocalPoppins', sans-serif;
background-color: #ffffff;
border-radius: 16px;
padding: 40px 3%;
width: 100%;
margin: 0;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.205);
padding: 15px; box-sizing: border-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 #3330;">Expert Support</h3>
}
.language-grid {
display: <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 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;">Detailed Reports</h3>
<p style="font-size: 16px; color: #555;">🔥 Comprehensive results with concrete recommendations</p>
</div>
<!-- Card 5 -->
<div style="background: white; border-radius: 15px; box-shadow: 0px 4px 8pxflex;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
}
.language-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 130px;
height: 130px;
background: #f9f9f9;
border-radius: 15px;
box-shadow: 0 4px 10px rgba(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;
height: 60px;
<div style="font-sizemargin-bottom: 32px10px;
margin-bottom object-fit: 10pxcontain;">🛠️</div>
}
.language-card span {
<h3 style="font-size: 18px17px; margin
font-weight: 0600;
color: #333;">Advanced Tools</h3>#2C3E50;
}
.language-footer {
<p style=" font-family: 'LocalPoppins', sans-serif;
font-size: clamp(16px, 2.5vw, 18px);
color: #555;">🔥
We use SQ, Mend, and other tools for issue detection</p>
</div>
<!-- Card 6 --> margin-top: 30px;
line-height: 1.6;
}
.language-footer a {
<div style="backgroundcolor: white#007bff; border-radius
text-decoration: 15px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); padding: 15px; text-align: center;">underline;
}
@media (max-width: 480px) {
.modern-language-panel {
padding: 30px 16px;
}
.language-card {
<div style="font-size: 32px; margin-bottomwidth: 10px100px;">🔐</div>
height: <h3 style="font-size: 18px; margin: 0; color: #333;">Enhanced Security</h3>
100px;
}
.language-card img {
width: 45px;
height: 45px;
}
.language-card span {
<p style="font-size: 16px14px;
color: #555;">🔥 Risk reduction and increased software stability</p>
</div>
</div> }
.language-footer {
font-size: 15px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 30 |
|---|
| titleBGColor | #a3c1ad |
|---|
| 🔗 Related Materials | | 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">
<button class="btn">Open Course</button>is guaranteed</p>
</a>
</div>
<div class="resource-itemcard">
<div class="textemoji">>🔍</div>
<h3>Detailed Inspections</h3>
<h4>SonarQube Infoshare, recording and slides (2024)</h4> <p>🔥 Dynamic + Static Analysis + Penetration Testing</p>
</div>
<div <a href="https://geant.app.box.com/s/uwhgmltuse4ogp4ii79wgxhkyuagrvi8" target="_blank">class="card">
<div class="emoji">👨💻</div>
<h3>Expert Support</h3>
<button class="btn">View InfoShare</button>
<p>🔥 Direct collaboration with security <experts</a>p>
</div>
<div class="resource-itemcard">
<div class="textemoji">>📄</div>
<h3>Detailed Reports</h3>
<h4>Webinar: License Analysis <p>🔥 Comprehensive results with WhiteSource (2022)</h4>
concrete recommendations</p>
</div>
<div <a href="https://geant.app.box.com/s/a5103pww8hpby60y5vmsk2rwn0qjq347" target="_blank"class="card">
<button<div class="btnemoji">Watch Webinar<>🛠️</button>div>
<h3>Advanced <Tools</a>h3>
</div>
</div>
<style>
.resource-container {
display: flex;<p>🔥 We use SQ, Mend, and other tools for issue detection</p>
flex-direction: column;</div>
gap: 15px;<div class="card">
max-width: 800px;<div class="emoji">🔐</div>
margin: 40px auto;<h3>Enhanced Security</h3>
font-family: 'Arial', sans-serif;
}
<p>🔥 Risk reduction and increased software stability</p>
.resource-item { </div>
</div>
</div>
</div>
<style>
display: flex;@font-face {
justify-content: space-betweenfont-family: 'Poppins';
align-items: center;src: url('https://yourdomain.com/fonts/Poppins-Regular.woff2') format('woff2'),
padding: 15px url('https://yourdomain.com/fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
backgroundfont-colorstyle: #f9f9f9normal;
}
@font-face {
borderfont-radiusfamily: 10px'Poppins';
src: url('https://yourdomain.com/fonts/Poppins-SemiBold.woff2') format('woff2'),
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1 url('https://yourdomain.com/fonts/Poppins-SemiBold.woff') format('woff');
}
.resource-item .text {
flex-grow: 1font-weight: 600;
text-alignfont-style: leftnormal;
}
.resource-item h4modern-benefits-panel {
font-sizefamily: 16px'Poppins', sans-serif;
width: 100%;
font-weight margin: 6000;
padding: 40px 3%;
color background: #444#ffffff;
marginborder-radius: 016px;
}
.btn {
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
paddingbox-sizing: 10px 20pxborder-box;
text-align: center;
}
background-color: #2e8b57;.modern-benefits-panel h2 {
margin: 0 0 30px color: white0;
font-size: clamp(24px, border: none4vw, 30px);
border-radiusfont-weight: 6px600;
color: #2C3E50;
cursor: pointer;}
.cards-wrapper {
fontmax-sizewidth: 14px900px;
margin: 0 auto;
width: 180px; /* Ensures buttons are same size */
text-align: center;
}
.btn:hover}
.cards-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
}
.card {
background: #f9f9f9;
background border-colorradius: #1e6b4115px;
}
</style>
<div style="height: 20px;"></div>
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
padding: 15px;
text-align: center;
box-sizing: border-box;
}
.card .emoji {
font-size: 32px;
margin-bottom: 10px;
}
.card h3 {
font-size: 18px;
margin: 0;
color: #2C3E50;
min-height: 48px;
display: flex;
justify-content: center;
align-items: center;
font-weight: 600;
}
.card p {
font-size: 16px;
color: #555;
margin-top: 6px;
line-height: 1.4;
}
@media (max-width: 900px) {
.cards-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 600px) {
.cards-grid {
grid-template-columns: 1fr;
}
.modern-benefits-panel {
padding: 30px 16px;
}
}
</style>
|
|
| Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 0 |
|---|
| titleBGColor | #a3c1ad |
|---|
| | HTML |
|---|
<div class="modern-related-panel">
<h2>🔗 Related Materials</h2>
<div class="resource-container">
<div class="resource-item">
<div class="text">
<h4>GÉANT CONNECT Online – Article: Smarter reviews, stronger software (2025)</h4>
</div>
<a href="https://connect.geant.org/2025/10/13/smarter-reviews-stronger-software" target="_blank">
<button class="btn">Read Article</button>
</a>
</div>
<div class="resource-item">
<div class="text">
<h4>GÉANT eAcademy, Course: Security Testing and Quality Assurance (2024)</h4>
</div>
<a href="https://e-academy.geant.org/moodle/course/view.php?id=628" target="_blank">
<button class="btn">Open Course</button>
</a>
</div>
<div class="resource-item">
<div class="text">
<h4>SonarQube Infoshare, recording and slides (2024)</h4>
</div>
<a href="https://geant.app.box.com/s/cvm25uhztfmvpc2wnn3kpqqnrw51nz24" target="_blank">
<button class="btn">View InfoShare</button>
</a>
</div>
<div class="resource-item">
<div class="text">
<h4>Webinar: License Analysis with WhiteSource (2022)</h4>
</div>
<a href="https://geant.app.box.com/s/a5103pww8hpby60y5vmsk2rwn0qjq347" target="_blank">
<button class="btn">Watch Webinar</button>
</a>
</div>
</div>
</div>
<style>
@font-face {
font-family: 'Poppins';
src: url('https://yourdomain.com/fonts/Poppins-Regular.woff2') format('woff2'),
url('https://yourdomain.com/fonts/Poppins-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Poppins';
src: url('https://yourdomain.com/fonts/Poppins-SemiBold.woff2') format('woff2'),
url('https://yourdomain.com/fonts/Poppins-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
.modern-related-panel {
font-family: 'Poppins', sans-serif;
width: 100%;
margin: 0;
padding: 40px 3%;
background: #ffffff;
border-radius: 16px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
box-sizing: border-box;
text-align: center;
}
.modern-related-panel h2 {
font-size: clamp(24px, 4vw, 30px);
font-weight: 600;
color: #2C3E50;
margin: 0 0 30px 0;
}
.resource-container {
max-width: 950px; /* ✅ prošireno da button stane u red */
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 15px;
}
.resource-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 25px;
background-color: #f9f9f9;
border-radius: 12px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
text-align: left;
flex-wrap: nowrap; /* ✅ sprečava prelamanje */
}
.resource-item .text {
flex-grow: 1;
margin-right: 20px;
}
.resource-item h4 {
font-size: 16px;
font-weight: 600;
color: #2C3E50;
margin: 0;
line-height: 1.4;
}
.btn {
padding: 10px 20px;
background-color: #2e8b57;
color: white;
border: none;
border-radius: 8px;
cursor: pointer;
font-size: 14px;
width: 180px;
text-align: center;
transition: background-color 0.3s ease;
flex-shrink: 0;
}
.btn:hover {
background-color: #1e6b41;
}
@media (max-width: 600px) {
.resource-item {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.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">
|
| | Panel |
|---|
| borderColor | #3A5673 |
|---|
| titleColor | white |
|---|
| borderWidth | 3 |
|---|
| titleBGColor | #a3c1ad |
|---|
| 🌟 Statistics| HTML |
|---|
<div class="statistics-container">
<!-- Card 1 - Years of Experience -->
<div class="statstats-card">
<div class="statstats-icon">📊</div>
<div class="statstats-info">
<h4>Years of Experience</h4>
<p class="statstats-number">+14 years</p>
</div>
</div>
<!-- Card 2 - Detected Bugs (Manual) -->
<div class="statstats-card">
<div class="statstats-icon">🐞</div>
<div class="statstats-info">
<h4>Detected Bugs (Manual)</h4>
<p class="statstats-number">+700</p>
</div>
</div>
<!-- Card 3 - Detected Bugs (Automatic via SonarQube) -->
<div class="statstats-card">
<div class="statstats-icon">
<img src="https://wiki.geant.org/download/attachments/1045004320/sonarqube.svg?api=v2" alt="SonarQube Logo" class="sonarqubestats-logo">
</div>
<div class="statstats-info">
<h4>Detected Bugs (Automatic)</h4>
<p class="statstats-number">+10,000</p>/p>
</div>
</div>
</div>
</div>
</div>
<style>
<!-- Style -->
<style>
.statisticsstats-containerpanel {
font-family: 'Poppins', sans-serif;
displaywidth: flex100%;
background: #ffffff;
gapbox-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
border-radius: 0;
justify-content: space-around padding: 40px 0;
box-sizing: border-box;
}
.stats-inner {
flexmax-wrapwidth: wrap1400px;
margin: 0 auto;
margin padding: 40px0 auto5%;
box-sizing: border-box;
maxtext-widthalign: 1200pxcenter;
}
.statstats-cardinner h2 {
font-size: clamp(24px, 4vw, 32px);
backgroundfont-colorweight: #f9f9f9600;
color: #2C3E50;
bordermargin-radiusbottom: 12px40px;
}
.stats-container {
paddingdisplay: 20pxflex;
gap: 30px;
widthjustify-content: 280pxcenter;
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
transition: transform 0.3s, box-shadow 0.3sflex-wrap: wrap; /* omogucava wrap na manjim ekranima */
}
.stats-card {
background-color: #f9f9f9;
text-alignborder-radius: center12px;
padding: display: flex25px 20px;
flex: 1 flex-direction: column;
1 250px; /* fleksibilna širina */
alignmax-itemswidth: center400px;
box-shadow: 0px 4px /* Klikabilnost uklonjena */12px rgba(0, 0, 0, 0.08);
text-align: center;
cursor display: defaultflex;
}
flex-direction: column;
.statalign-carditems:hover {center;
transition: transform transform: translateY(-5px);
box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.15);
0.3s ease;
}
.stats-card:hover {
transform: translateY(-5px);
}
.statstats-icon {
font-size: 40px48px;
color: #2ecc71#27ae60;
margin-bottom: 15px;
}
.statstats-icon img.sonarqubestats-logo {
width: 140px;
max-width: 120px100%;
height: auto;
margin-bottom: 15px10px;
}
.statstats-info h4 {
font-size: 18px;
font-weight: 600;
color: #34495e;
margin-bottom: 10px8px;
}
.statstats-number {
font-size: 28px;
font-weight: 700;
color: #27ae60;
colormargin: #2ecc710;
}
/* Responsive adjustments margin-bottom: 10px;*/
@media (max-width: 1024px) {
}
</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;.stats-container {
gap: 20px;
}
}
@media (max-width: 768px) {
.stats-container {
flex-direction: column;
gap: 20px;
}
.stats-card {
backgroundmax-colorwidth: #f5f6f8100%;
marginwidth: 0100%;
}
}
padding@media (max-width: 20px;480px) {
.stats-inner h2 color: #333;{
font-size: 14px clamp(20px, 5vw, 28px);
}
.contact-wrapper-v2 {margin-bottom: 30px;
display: flex;}
justify-content: center;.stats-number {
paddingfont-size: 30px24px;
}
.contact-item-v2stats-info h4 {
backgroundfont-colorsize: 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;
#ffffff;
padding: 30px;
width: 100%;
max-width: 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>
|
|
|
|