Skip to content

Commit bb73f45

Browse files
authored
Add scroll progress bar and interactive button styles
Added styles for a scroll progress bar and an interactive button component.
1 parent 470cc01 commit bb73f45

1 file changed

Lines changed: 82 additions & 31 deletions

File tree

homepage/src/styles/global.css

Lines changed: 82 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,90 @@
1-
/* Font declarations — self-hosted, no external CDN dependency */
2-
@font-face {
3-
font-family: 'DM Serif Display';
4-
src: url('/fonts/DMSerifDisplay-Regular.woff2') format('woff2');
5-
font-weight: 400;
6-
font-style: normal;
7-
font-display: swap;
8-
}
9-
10-
@font-face {
11-
font-family: 'Inter';
12-
src: url('/fonts/Inter-Regular.woff2') format('woff2');
13-
font-weight: 400;
14-
font-style: normal;
15-
font-display: swap;
16-
}
17-
18-
@font-face {
19-
font-family: 'Inter';
20-
src: url('/fonts/Inter-SemiBold.woff2') format('woff2');
1+
/* ==========================================================================
2+
New Additions: Scroll Progress Bar & Interactive Button
3+
========================================================================== */
4+
5+
/* Top Scroll Progress Indicator */
6+
.scroll-progress {
7+
position: fixed;
8+
top: 0;
9+
left: 0;
10+
width: 100%;
11+
height: 3px;
12+
background: var(--surface);
13+
z-index: 10000;
14+
transform-origin: 0 50%;
15+
animation: scrollProgress linear;
16+
animation-timeline: scroll();
17+
}
18+
19+
.scroll-progress::after {
20+
content: '';
21+
position: absolute;
22+
top: 0;
23+
left: 0;
24+
width: 100%;
25+
height: 100%;
26+
background: var(--gradient);
27+
}
28+
29+
@keyframes scrollProgress {
30+
from { transform: scaleX(0); }
31+
to { transform: scaleX(1); }
32+
}
33+
34+
/* Luxury Interactive Button Component */
35+
.btn-premium {
36+
display: inline-flex;
37+
align-items: center;
38+
justify-content: center;
39+
padding: 0.85rem 2rem;
40+
font-family: var(--font-body);
2141
font-weight: 600;
22-
font-style: normal;
23-
font-display: swap;
42+
font-size: 0.95rem;
43+
letter-spacing: 0.03em;
44+
color: var(--bg);
45+
background: var(--gradient);
46+
border: 1px solid transparent;
47+
border-radius: 4px;
48+
cursor: pointer;
49+
position: relative;
50+
overflow: hidden;
51+
transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.3s ease;
52+
box-shadow: 0 4px 20px -5px rgba(201, 134, 122, 0.3);
2453
}
2554

26-
@font-face {
27-
font-family: 'JetBrains Mono';
28-
src: url('/fonts/JetBrainsMono-Regular.woff2') format('woff2');
29-
font-weight: 400;
30-
font-style: normal;
31-
font-display: swap;
55+
.btn-premium::before {
56+
content: '';
57+
position: absolute;
58+
inset: 0;
59+
background: var(--bg);
60+
opacity: 0;
61+
transition: opacity 0.25s ease;
62+
z-index: 1;
63+
}
64+
65+
.btn-premium > * {
66+
position: relative;
67+
z-index: 2;
68+
}
69+
70+
/* Hover States matching editorial style */
71+
.btn-premium:hover {
72+
transform: translateY(-2px);
73+
box-shadow: 0 8px 25px var(--accent-glow), 0 0 0 1px var(--accent);
74+
}
75+
76+
.btn-premium:hover::before {
77+
opacity: 0.08;
3278
}
3379

34-
/* Design tokens */
35-
:root {
36-
--bg: #0a0a0a;
80+
.btn-premium:active {
81+
transform: translateY(0);
82+
}
83+
84+
/* Optional styling fallback for code snippet tags inside feature sections */
85+
code, pre {
86+
font-family: var(--font-code);
87+
}
3788
--surface: #141414;
3889
--border: #1a1a1a;
3990
--accent: #d4a574;

0 commit comments

Comments
 (0)