feat(ui): add metrics section with lighthouse scores and circular gauges
This commit is contained in:
32
index.html
32
index.html
@@ -534,6 +534,38 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Metrics Section -->
|
||||
<section id="metrics" class="metrics-banner" aria-label="Performance Metrics">
|
||||
<div class="container">
|
||||
<div class="row g-4 row-cols-2 row-cols-md-4 justify-content-center">
|
||||
<div class="col">
|
||||
<div class="metric-item">
|
||||
<div class="gauge" style="--percent: 98%;" data-score="98"></div>
|
||||
<span class="metric-label">Performance</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="metric-item">
|
||||
<div class="gauge" style="--percent: 100%;" data-score="100"></div>
|
||||
<span class="metric-label">Accessibility</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="metric-item">
|
||||
<div class="gauge" style="--percent: 100%;" data-score="100"></div>
|
||||
<span class="metric-label">Best Practices</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="metric-item">
|
||||
<div class="gauge" style="--percent: 100%;" data-score="100"></div>
|
||||
<span class="metric-label">SEO Score</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Contact Section -->
|
||||
<section id="contact" class="section-padding">
|
||||
<div class="container">
|
||||
|
||||
59
styles.css
59
styles.css
@@ -798,3 +798,62 @@ footer {
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Metrics Banner */
|
||||
.metrics-banner {
|
||||
background-color: var(--color-coffee-dark);
|
||||
color: var(--color-cream);
|
||||
padding-block: 4rem;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.metric-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.metric-item:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.gauge {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 50%;
|
||||
background: conic-gradient(var(--color-secondary) var(--percent), rgba(255,255,255,0.1) 0);
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 0 20px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.gauge::before {
|
||||
content: attr(data-score);
|
||||
position: absolute;
|
||||
width: 84%;
|
||||
height: 84%;
|
||||
background-color: var(--color-coffee-dark);
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 800;
|
||||
font-size: 1.75rem;
|
||||
color: var(--color-cream);
|
||||
font-family: var(--font-sans);
|
||||
}
|
||||
|
||||
.metric-label {
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
font-size: 0.9rem;
|
||||
opacity: 0.9;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user