Skip to content

Commit eb073cd

Browse files
committed
style(web): update global CSS for reveal animation, hero callout, and footer redesign
1 parent 999e462 commit eb073cd

1 file changed

Lines changed: 161 additions & 24 deletions

File tree

apps/web/src/styles/global.css

Lines changed: 161 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,10 @@ a:hover {
115115
/* ── Entrance animations ── */
116116
.reveal {
117117
opacity: 0;
118-
transform: translateY(24px);
119-
transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
120-
transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
118+
transform: translateY(12px);
119+
transition: opacity 1.1s cubic-bezier(0.33, 1, 0.68, 1),
120+
transform 1.1s cubic-bezier(0.33, 1, 0.68, 1);
121+
transition-delay: var(--reveal-delay, 0s);
121122
}
122123

123124
.reveal.revealed {
@@ -143,6 +144,18 @@ a:hover {
143144
}
144145
}
145146

147+
.hero-callout {
148+
padding: 16px 20px;
149+
border-radius: 6px;
150+
border: 1px solid var(--color-border-weak);
151+
background: var(--color-surface);
152+
}
153+
154+
.hero-callout code {
155+
font-family: inherit;
156+
display: block;
157+
}
158+
146159
/* ── Auth layout ── */
147160
.auth-container {
148161
min-height: 100vh;
@@ -2139,35 +2152,109 @@ a:hover {
21392152

21402153
/* ── Footer ── */
21412154
.footer {
2142-
border-top: 1px solid var(--color-border-weak);
2143-
padding: 0 var(--padding);
21442155
margin-top: var(--vertical-padding);
21452156
}
21462157

21472158
.footer-inner {
21482159
max-width: 80rem;
21492160
margin: 0 auto;
2161+
padding: 0 var(--padding);
21502162
}
21512163

2152-
.footer-top {
2153-
padding: 64px 0 56px;
2164+
/* ── CTA banner ── */
2165+
.footer-cta {
2166+
position: relative;
2167+
overflow: hidden;
2168+
border-top: 1px solid var(--color-border-weak);
2169+
}
2170+
2171+
.footer-cta-inner {
2172+
position: relative;
2173+
z-index: 2;
2174+
max-width: 80rem;
2175+
margin: 0 auto;
2176+
padding: 80px var(--padding) 48px;
2177+
display: flex;
2178+
align-items: flex-start;
2179+
justify-content: space-between;
2180+
gap: 48px;
2181+
}
2182+
2183+
.footer-cta-headline {
2184+
font-size: clamp(1.75rem, 4vw, 2.75rem);
2185+
font-weight: 500;
2186+
line-height: 1.2;
2187+
letter-spacing: -0.02em;
2188+
color: var(--color-text-strong);
2189+
}
2190+
2191+
.footer-cta-right {
21542192
display: flex;
21552193
flex-direction: column;
2156-
gap: 20px;
2194+
gap: 24px;
2195+
max-width: 360px;
2196+
flex-shrink: 0;
2197+
padding-top: 4px;
21572198
}
21582199

2159-
.footer-tagline {
2160-
font-size: 14px;
2200+
.footer-cta-desc {
2201+
font-size: 15px;
2202+
line-height: 1.6;
21612203
color: var(--color-text-weak);
2162-
line-height: 170%;
21632204
}
21642205

2206+
2207+
/* ── Brand watermark with skyline ── */
2208+
.footer-brand-watermark {
2209+
position: relative;
2210+
width: 100%;
2211+
height: clamp(180px, 28vw, 340px);
2212+
overflow: hidden;
2213+
}
2214+
2215+
.footer-brand-fade {
2216+
position: absolute;
2217+
inset: 0;
2218+
z-index: 1;
2219+
background: linear-gradient(
2220+
to bottom,
2221+
var(--color-bg) 0%,
2222+
rgba(0, 0, 0, 0.7) 40%,
2223+
transparent 100%
2224+
);
2225+
pointer-events: none;
2226+
}
2227+
2228+
.footer-brand-image {
2229+
position: absolute;
2230+
inset: 0;
2231+
width: 100%;
2232+
height: 100%;
2233+
object-fit: cover;
2234+
object-position: center 40%;
2235+
opacity: 0.18;
2236+
}
2237+
2238+
.footer-brand-text {
2239+
position: absolute;
2240+
z-index: 2;
2241+
left: 50%;
2242+
bottom: -16%;
2243+
transform: translateX(-50%);
2244+
width: clamp(300px, 70vw, 900px);
2245+
height: auto;
2246+
opacity: 0.6;
2247+
user-select: none;
2248+
pointer-events: none;
2249+
}
2250+
2251+
/* ── Footer links section ── */
21652252
.footer-columns {
21662253
display: grid;
21672254
grid-template-columns: repeat(4, 1fr);
2168-
gap: 24px;
2169-
padding-bottom: 56px;
2170-
border-bottom: 1px solid var(--color-border-weak);
2255+
gap: 48px;
2256+
padding: 64px 0 56px;
2257+
border-top: 1px solid var(--color-border-weak);
21712258
}
21722259

21732260
.footer-column-title {
@@ -2193,6 +2280,7 @@ a:hover {
21932280
color: var(--color-text-weak);
21942281
transition: color 0.15s;
21952282
line-height: 1;
2283+
white-space: nowrap;
21962284
}
21972285

21982286
.footer-link:hover {
@@ -2202,50 +2290,99 @@ a:hover {
22022290
color: var(--color-text-strong);
22032291
}
22042292

2293+
/* ── Footer bottom bar ── */
22052294
.footer-bottom {
22062295
display: flex;
22072296
align-items: center;
22082297
justify-content: space-between;
22092298
padding: 24px 0;
2299+
border-top: 1px solid var(--color-border-weak);
22102300
font-size: 12px;
22112301
}
22122302

2213-
.footer-github {
2214-
display: inline-flex;
2215-
align-items: center;
2216-
gap: 8px;
2303+
.footer-copyright {
22172304
color: var(--color-text-weak);
2305+
}
2306+
2307+
.footer-bottom-right {
2308+
display: flex;
2309+
align-items: center;
2310+
gap: 24px;
2311+
}
2312+
2313+
.footer-bottom-link {
22182314
font-size: 12px;
2315+
color: var(--color-text-weak);
22192316
transition: color 0.15s;
22202317
}
22212318

2222-
.footer-github:hover {
2319+
.footer-bottom-link:hover {
22232320
color: var(--color-text-strong);
22242321
}
22252322

2226-
@media (max-width: 50rem) {
2323+
.footer-bottom-socials {
2324+
display: flex;
2325+
align-items: center;
2326+
gap: 16px;
2327+
margin-left: 8px;
2328+
}
2329+
2330+
.footer-social-icon {
2331+
color: var(--color-text-weak);
2332+
transition: color 0.15s;
2333+
display: flex;
2334+
align-items: center;
2335+
}
2336+
2337+
.footer-social-icon:hover {
2338+
color: var(--color-text-strong);
2339+
}
2340+
2341+
/* ── Footer responsive ── */
2342+
@media (max-width: 60rem) {
2343+
.footer-cta-inner {
2344+
flex-direction: column;
2345+
gap: 32px;
2346+
padding: 64px var(--padding) 40px;
2347+
}
2348+
2349+
.footer-cta-right {
2350+
max-width: 100%;
2351+
}
2352+
}
2353+
2354+
@media (max-width: 40rem) {
22272355
.footer-columns {
22282356
grid-template-columns: repeat(2, 1fr);
22292357
gap: 40px 24px;
2358+
padding: 48px 0 40px;
22302359
}
22312360

2232-
.footer-top {
2233-
padding: 48px 0 40px;
2361+
.footer-brand-watermark {
2362+
height: 140px;
22342363
}
22352364
}
22362365

22372366
@media (max-width: 30rem) {
22382367
.footer-columns {
22392368
grid-template-columns: 1fr;
22402369
gap: 36px;
2241-
padding-bottom: 40px;
22422370
}
22432371

22442372
.footer-bottom {
22452373
flex-direction: column;
2246-
gap: 16px;
2374+
gap: 20px;
22472375
align-items: flex-start;
22482376
}
2377+
2378+
.footer-bottom-right {
2379+
flex-wrap: wrap;
2380+
gap: 16px;
2381+
}
2382+
2383+
.footer-brand-watermark {
2384+
height: 100px;
2385+
}
22492386
}
22502387

22512388
/* ── Navigation ── */

0 commit comments

Comments
 (0)