Skip to content

Commit 24783f9

Browse files
authored
Merge pull request #56 from 0xarchit/web/upgrade
IImmersive Scroll-Driven SaaS Landing Page Implementation
2 parents 8c89100 + 374ccd7 commit 24783f9

20 files changed

Lines changed: 2465 additions & 2113 deletions

website/assets/default.webm

1.34 MB
Binary file not shown.

website/css/animations.css

Lines changed: 0 additions & 46 deletions
This file was deleted.

website/css/components.css

Lines changed: 101 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -1,222 +1,150 @@
1-
/* Navigation */
2-
nav {
3-
position: fixed;
4-
top: 0;
5-
width: 100%;
6-
height: 64px;
7-
background: rgba(13, 11, 14, 0.82);
8-
backdrop-filter: blur(20px) saturate(160%);
9-
border-bottom: 1px solid var(--border);
10-
z-index: 100;
11-
transition: border-color 0.3s;
12-
}
13-
14-
nav.scrolled {
15-
border-bottom-color: var(--border-hover);
16-
}
17-
18-
.nav-content {
19-
display: flex;
20-
align-items: center;
21-
justify-content: space-between;
22-
height: 100%;
23-
}
24-
25-
.nav-logo {
26-
display: flex;
27-
align-items: center;
28-
gap: 12px;
29-
text-decoration: none;
30-
color: var(--text-primary);
31-
font-size: 1.25rem;
32-
font-weight: 600;
33-
}
34-
35-
.nav-logo img {
36-
height: 34px;
37-
}
38-
39-
.nav-links {
40-
display: none;
41-
gap: 24px;
42-
}
43-
44-
.nav-links a {
45-
text-decoration: none;
46-
color: var(--text-muted);
47-
font-size: 0.8rem;
48-
transition: color 0.2s;
49-
}
50-
51-
.nav-links a:hover {
52-
color: var(--text-primary);
53-
}
54-
55-
.nav-actions {
56-
display: none;
57-
align-items: center;
58-
gap: 16px;
59-
}
60-
61-
@media (min-width: 768px) {
62-
.nav-links { display: flex; }
63-
.nav-actions { display: flex; }
64-
}
65-
66-
/* Buttons */
671
.btn-primary {
2+
background: var(--sky);
3+
color: white;
4+
border-radius: var(--radius-pill);
5+
font-family: 'Plus Jakarta Sans', sans-serif;
6+
font-weight: 700;
7+
font-size: 0.85rem;
8+
padding: 10px 24px;
689
display: inline-flex;
6910
align-items: center;
7011
justify-content: center;
71-
background: var(--pink);
72-
color: #0D0B0E;
73-
border-radius: var(--radius-pill);
74-
font-family: 'Syne', sans-serif;
75-
font-weight: 700;
76-
font-size: clamp(0.85rem, 2.5vw, 1rem);
77-
padding: clamp(12px, 3vw, 15px) clamp(24px, 5vw, 40px);
78-
text-decoration: none;
79-
transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
12+
transition: background 0.2s ease, transform 0.2s ease;
8013
}
8114

8215
.btn-primary:hover {
83-
background: #f9a8d4;
16+
background: var(--sky-deep);
8417
transform: translateY(-1px);
85-
box-shadow: var(--glow-sm);
8618
}
8719

88-
.btn-primary.small {
89-
font-size: 0.85rem;
90-
padding: 10px 24px;
91-
}
92-
93-
.btn-ghost {
94-
display: inline-flex;
95-
align-items: center;
96-
gap: 8px;
97-
font-family: 'Syne', sans-serif;
98-
font-weight: 600;
99-
font-size: 0.9rem;
100-
color: var(--text-secondary);
101-
text-decoration: none;
102-
transition: color 0.2s;
20+
.btn-large {
21+
padding: 14px 32px;
22+
font-size: 1rem;
10323
}
10424

105-
.btn-ghost:hover {
106-
color: var(--text-primary);
107-
}
108-
109-
.btn-ghost .arrow {
110-
transition: transform 0.2s;
25+
.card {
26+
background: var(--bg-surface);
27+
border: 1px solid var(--border);
28+
border-radius: var(--radius-lg);
29+
box-shadow: var(--shadow-sm);
30+
padding: 32px;
31+
transition: box-shadow 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
11132
}
11233

113-
.btn-ghost:hover .arrow {
114-
transform: translateX(3px);
34+
.card:hover {
35+
box-shadow: var(--shadow-md), var(--shadow-sky);
36+
border-color: var(--sky-border-md);
37+
transform: translateY(-4px);
11538
}
11639

117-
.btn-outline {
40+
.chip {
41+
background: var(--sky-faint);
42+
border: 1px solid var(--sky-border);
43+
color: var(--sky-deep);
44+
border-radius: var(--radius-sm);
45+
padding: 4px 10px;
46+
font-size: var(--text-xs);
47+
font-weight: 600;
11848
display: inline-flex;
11949
align-items: center;
120-
border: 1px solid var(--border);
121-
color: var(--text-secondary);
122-
padding: 8px 16px;
123-
border-radius: var(--radius-sm);
124-
text-decoration: none;
125-
font-size: 0.8rem;
126-
transition: border-color 0.2s, color 0.2s;
12750
}
12851

129-
.btn-outline:hover {
130-
border-color: var(--border-hover);
131-
color: var(--pink);
52+
.container {
53+
max-width: var(--max-w);
54+
margin: 0 auto;
55+
padding: 0 24px;
13256
}
13357

134-
/* Badges & Chips */
135-
.badge-os {
58+
.section-label {
59+
color: var(--sky);
60+
font-weight: 700;
13661
font-size: 0.72rem;
137-
color: var(--text-muted);
138-
border: 1px solid var(--border);
139-
border-radius: var(--radius-sm);
140-
padding: 6px 14px;
141-
display: inline-block;
62+
text-transform: uppercase;
63+
letter-spacing: 0.12em;
64+
margin-bottom: 12px;
65+
display: block;
14266
}
14367

144-
.chip {
145-
background: var(--bg-surface);
146-
border: 1px solid var(--border);
147-
border-radius: var(--radius-sm);
148-
padding: 6px 12px;
149-
font-family: 'Syne', sans-serif;
150-
font-weight: 500;
151-
font-size: 0.8rem;
152-
color: var(--text-secondary);
68+
/* Navbar */
69+
.nav {
70+
position: fixed;
71+
top: 0;
72+
left: 0;
73+
right: 0;
74+
height: 70px;
75+
background: rgba(243, 250, 255, 0.88);
76+
backdrop-filter: blur(16px) saturate(140%);
77+
border-bottom: 1px solid var(--border);
78+
z-index: 1000;
79+
transition: box-shadow 0.3s ease;
15380
}
15481

155-
.badge-mode-soft {
156-
background: rgba(244,114,182,0.12);
157-
border: 1px solid var(--border-pink);
158-
color: var(--pink);
159-
padding: 4px 10px;
160-
border-radius: var(--radius-pill);
82+
.nav--scrolled {
83+
box-shadow: var(--shadow-sm);
16184
}
16285

163-
.badge-license {
164-
color: #FCD34D;
165-
border: 1px solid rgba(252,211,77,0.3);
166-
padding: 4px 10px;
167-
border-radius: var(--radius-sm);
86+
.nav-container {
87+
display: flex;
88+
align-items: center;
89+
justify-content: space-between;
90+
height: 100%;
16891
}
16992

170-
code {
171-
background: var(--bg-surface);
172-
color: var(--pink);
173-
padding: 2px 8px;
174-
border-radius: var(--radius-sm);
175-
font-size: 0.85em;
93+
.nav-logo {
94+
display: flex;
95+
align-items: center;
96+
gap: 12px;
17697
}
17798

178-
/* Cards */
179-
.card {
180-
background: var(--bg-surface);
181-
border: 1px solid var(--border);
182-
border-radius: var(--radius-md);
183-
padding: 24px;
184-
transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
99+
.nav-logo span {
100+
font-family: 'Fraunces', serif;
101+
font-weight: 300;
102+
font-size: 1.25rem;
103+
color: var(--text-primary);
185104
}
186105

187-
.card:hover {
188-
border-color: var(--border-hover);
189-
box-shadow: var(--glow-xs);
190-
transform: translateY(-3px);
106+
.nav-links {
107+
display: flex;
108+
gap: 32px;
109+
}
110+
111+
.nav-link {
112+
color: var(--text-muted);
113+
transition: color 0.2s ease;
191114
}
192115

193-
.card-raised {
194-
background: var(--bg-raised);
116+
.nav-link:hover {
117+
color: var(--text-primary);
195118
}
196119

197-
/* Stats */
198-
.stats-strip {
199-
display: inline-flex;
120+
.nav-actions {
121+
display: flex;
200122
align-items: center;
201-
gap: 16px;
202-
opacity: 0;
203-
animation: fadeInUp 0.6s ease forwards 0.6s;
123+
gap: 24px;
204124
}
205125

206-
.stat {
126+
.nav-stat {
127+
font-size: 0.8rem;
128+
font-weight: 500;
129+
color: var(--text-secondary);
207130
display: flex;
208131
align-items: center;
209-
gap: 6px;
132+
gap: 4px;
210133
}
211134

212-
.stat-icon {
213-
font-size: 0.9em;
135+
.icon {
136+
width: 1em;
137+
height: 1em;
138+
display: inline-block;
139+
vertical-align: middle;
140+
position: relative;
141+
top: -1px;
142+
fill: currentColor;
214143
}
215144

216-
.stat-value {
217-
color: var(--text-secondary);
218-
}
145+
.icon--lg { font-size: 1.2em; }
146+
.icon--sm { font-size: 0.9em; }
219147

220-
.stat-divider {
221-
color: var(--text-muted);
222-
}
148+
@media (max-width: 768px) {
149+
.nav-links { display: none; }
150+
}

0 commit comments

Comments
 (0)