Skip to content

Commit 58b5186

Browse files
Redesign web UI with editorial benchmark theme
1 parent 67788a2 commit 58b5186

16 files changed

Lines changed: 709 additions & 641 deletions

File tree

web/app/globals.css

Lines changed: 112 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,23 @@
33
@tailwind utilities;
44

55
:root {
6-
--page: #f3ede5;
7-
--paper: #fcf8f2;
8-
--paper-strong: #fffdfa;
9-
--sand: #efe7dc;
10-
--line: #dfd3c7;
11-
--line-strong: #cab8a3;
12-
--ink: #161412;
13-
--muted: #6d655d;
14-
--dark: #181715;
15-
--dark-soft: #242220;
16-
--accent: #b89972;
17-
--accent-soft: #d6c3aa;
18-
--shadow: 0 24px 60px rgba(36, 28, 18, 0.08);
6+
--page: #faf7fc;
7+
--page-soft: #f4eef4;
8+
--paper: #fffdfc;
9+
--paper-strong: #ffffff;
10+
--paper-muted: #f7f1eb;
11+
--sand: #f1e7de;
12+
--line: #ddd4de;
13+
--line-strong: #b9aec3;
14+
--ink: #1d1a24;
15+
--muted: #6a6472;
16+
--dark: #17151d;
17+
--dark-soft: #25232d;
18+
--accent: #3d68dc;
19+
--accent-soft: #dce5ff;
20+
--peach: #f4d8ca;
21+
--sage: #dfe8d5;
22+
--shadow: 0 24px 70px rgba(33, 24, 43, 0.08);
1923
}
2024

2125
* {
@@ -30,8 +34,8 @@ body {
3034
margin: 0;
3135
color: var(--ink);
3236
background:
33-
linear-gradient(to right, transparent 88px, rgba(202, 184, 163, 0.58) 88px, rgba(202, 184, 163, 0.58) 89px, transparent 89px, transparent calc(100% - 89px), rgba(202, 184, 163, 0.58) calc(100% - 89px), rgba(202, 184, 163, 0.58) calc(100% - 88px), transparent calc(100% - 88px)),
34-
linear-gradient(180deg, var(--paper) 0%, var(--page) 100%);
37+
linear-gradient(to right, transparent 80px, rgba(185, 174, 195, 0.45) 80px, rgba(185, 174, 195, 0.45) 81px, transparent 81px, transparent calc(100% - 81px), rgba(185, 174, 195, 0.45) calc(100% - 81px), rgba(185, 174, 195, 0.45) calc(100% - 80px), transparent calc(100% - 80px)),
38+
linear-gradient(180deg, var(--page) 0%, var(--page-soft) 48%, #f8f2ea 100%);
3539
min-height: 100vh;
3640
position: relative;
3741
}
@@ -41,10 +45,13 @@ body::before {
4145
position: fixed;
4246
inset: 0;
4347
pointer-events: none;
44-
background-image: radial-gradient(rgba(110, 98, 86, 0.16) 1px, transparent 1px);
45-
background-size: 14px 14px;
46-
opacity: 0.42;
47-
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.3), transparent 76%);
48+
background:
49+
radial-gradient(circle at top left, rgba(61, 104, 220, 0.08), transparent 24%),
50+
radial-gradient(circle at top right, rgba(244, 216, 202, 0.3), transparent 28%),
51+
radial-gradient(rgba(110, 98, 114, 0.14) 0.8px, transparent 0.8px);
52+
background-size: auto, auto, 16px 16px;
53+
opacity: 0.38;
54+
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.34), transparent 78%);
4855
}
4956

5057
::selection {
@@ -59,19 +66,19 @@ a {
5966
.site-shell {
6067
margin: 0 auto;
6168
width: 100%;
62-
max-width: 1360px;
63-
padding: 0 24px 88px;
69+
max-width: 1260px;
70+
padding: 0 28px 88px;
6471
}
6572

6673
.site-panel {
67-
border: 1px solid var(--line);
68-
background: rgba(255, 253, 250, 0.92);
74+
border: 1px solid rgba(185, 174, 195, 0.46);
75+
background: rgba(255, 253, 252, 0.78);
6976
box-shadow: var(--shadow);
7077
}
7178

7279
.site-soft-panel {
73-
border: 1px solid var(--line);
74-
background: rgba(239, 231, 220, 0.86);
80+
border: 1px solid rgba(185, 174, 195, 0.42);
81+
background: rgba(247, 241, 235, 0.86);
7582
}
7683

7784
.site-dark-panel {
@@ -94,73 +101,131 @@ a {
94101
.section-kicker {
95102
display: inline-flex;
96103
align-items: center;
97-
gap: 8px;
98-
font-size: 11px;
99-
font-weight: 700;
100-
letter-spacing: 0.2em;
101-
text-transform: uppercase;
104+
gap: 10px;
105+
font-family: var(--font-serif);
106+
font-size: 18px;
107+
font-style: italic;
108+
font-weight: 500;
109+
letter-spacing: 0.01em;
102110
color: var(--muted);
103111
}
104112

105113
.section-kicker::before {
106114
content: "";
107115
display: inline-block;
108-
height: 14px;
109-
width: 3px;
116+
height: 1px;
117+
width: 30px;
110118
border-radius: 999px;
111-
background: var(--line-strong);
119+
background: rgba(106, 100, 114, 0.5);
112120
}
113121

114122
.brand-accent {
115123
font-family: var(--font-serif);
116124
font-style: italic;
117-
font-weight: 700;
125+
font-weight: 600;
118126
}
119127

120128
.button-primary {
121-
border-radius: 14px;
122-
background: var(--ink);
129+
border-radius: 999px;
130+
background: var(--accent);
123131
color: #fffdfa;
124-
transition: transform 160ms ease, opacity 160ms ease;
132+
box-shadow: 0 12px 24px rgba(61, 104, 220, 0.18);
133+
transition: transform 160ms ease, opacity 160ms ease, box-shadow 160ms ease;
125134
}
126135

127136
.button-primary:hover,
128137
.button-secondary:hover {
129138
transform: translateY(-1px);
130139
}
131140

141+
.button-primary:hover {
142+
box-shadow: 0 16px 28px rgba(61, 104, 220, 0.24);
143+
}
144+
132145
.button-secondary {
133-
border-radius: 14px;
146+
border-radius: 999px;
134147
border: 1px solid var(--line-strong);
135-
background: rgba(255, 253, 250, 0.88);
148+
background: rgba(255, 255, 255, 0.74);
136149
color: var(--ink);
137150
transition: transform 160ms ease, border-color 160ms ease;
138151
}
139152

140153
.eyebrow-tab {
141-
border-right: 1px solid var(--line);
142-
border-top: 1px solid var(--line);
143-
padding: 18px 20px;
154+
border-bottom: 1px solid rgba(185, 174, 195, 0.5);
155+
padding: 16px 12px;
144156
text-align: center;
145157
font-size: 14px;
146158
font-weight: 600;
147159
color: var(--muted);
160+
transition: color 160ms ease, border-color 160ms ease;
148161
}
149162

150-
.eyebrow-tab:first-child {
151-
border-left: 1px solid var(--line);
163+
.eyebrow-tab.is-active {
164+
border-bottom-color: var(--accent);
165+
color: var(--ink);
152166
}
153167

154-
.eyebrow-tab.is-active {
155-
background: rgba(255, 255, 255, 0.74);
168+
.eyebrow-tab:hover {
169+
color: var(--ink);
170+
}
171+
172+
.editorial-link {
173+
color: var(--muted);
174+
text-decoration: underline;
175+
text-decoration-color: rgba(106, 100, 114, 0.45);
176+
text-underline-offset: 5px;
177+
transition: color 160ms ease, text-decoration-color 160ms ease;
178+
}
179+
180+
.editorial-link:hover {
156181
color: var(--ink);
182+
text-decoration-color: rgba(29, 26, 36, 0.65);
183+
}
184+
185+
.image-frame {
186+
overflow: hidden;
187+
border: 1px solid rgba(185, 174, 195, 0.46);
188+
border-radius: 28px;
189+
background: rgba(255, 255, 255, 0.72);
190+
box-shadow: var(--shadow);
191+
}
192+
193+
.image-frame img {
194+
display: block;
195+
}
196+
197+
.stat-chip {
198+
display: inline-flex;
199+
align-items: center;
200+
gap: 10px;
201+
border-radius: 999px;
202+
border: 1px solid rgba(185, 174, 195, 0.5);
203+
background: rgba(255, 255, 255, 0.74);
204+
padding: 10px 16px;
205+
font-size: 13px;
206+
color: var(--muted);
157207
}
158208

159209
.footer-link {
160210
color: var(--muted);
161-
transition: color 160ms ease;
211+
text-decoration: underline;
212+
text-decoration-color: rgba(106, 100, 114, 0.34);
213+
text-underline-offset: 4px;
214+
transition: color 160ms ease, text-decoration-color 160ms ease;
162215
}
163216

164217
.footer-link:hover {
165218
color: var(--ink);
219+
text-decoration-color: rgba(29, 26, 36, 0.55);
220+
}
221+
222+
@media (max-width: 768px) {
223+
body {
224+
background:
225+
linear-gradient(180deg, var(--page) 0%, var(--page-soft) 52%, #f8f2ea 100%);
226+
}
227+
228+
.site-shell {
229+
padding: 0 18px 72px;
230+
}
166231
}

web/app/layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const manrope = Manrope({ subsets: ["latin"], variable: "--font-sans" });
1010
const cormorant = Cormorant_Garamond({
1111
subsets: ["latin"],
1212
variable: "--font-serif",
13-
weight: ["600", "700"]
13+
weight: ["400", "500", "600", "700"]
1414
});
1515
const plexMono = IBM_Plex_Mono({ subsets: ["latin"], variable: "--font-mono", weight: ["400", "500"] });
1616

@@ -52,7 +52,7 @@ export const metadata: Metadata = {
5252
export default function RootLayout({ children }: { children: React.ReactNode }) {
5353
return (
5454
<html lang="en" className={`${manrope.variable} ${cormorant.variable} ${plexMono.variable}`}>
55-
<body className="font-[var(--font-sans)]">
55+
<body className="font-[var(--font-sans)] text-[var(--ink)]">
5656
<Providers>
5757
<Nav />
5858
<main className="site-shell pt-8">{children}</main>

0 commit comments

Comments
 (0)