Skip to content

Commit e7bf52a

Browse files
CopilotBoshen
andcommitted
Redesign header banners for consistency - unified typography, color scheme, and spacing
Co-authored-by: Boshen <[email protected]>
1 parent 4ea6902 commit e7bf52a

File tree

1 file changed

+55
-119
lines changed

1 file changed

+55
-119
lines changed

apps/dashboard/src/App.css

Lines changed: 55 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
color: #000000;
66
}
77

8-
/* Dashboard Banner - Small and Clean */
8+
/* Header Banner System - Consistent Design Language */
9+
10+
/* Level 1: Dashboard Banner - Top-level app identifier */
911
.dashboard-banner {
10-
background: #f8fafc;
11-
border-bottom: 1px solid #e2e8f0;
12-
padding: 0.5rem 2rem;
12+
background: #f1f5f9;
13+
border-bottom: 1px solid #cbd5e1;
14+
padding: 0.75rem 2rem;
1315
position: sticky;
1416
top: 0;
1517
z-index: 50;
@@ -20,28 +22,29 @@
2022
margin: 0 auto;
2123
display: flex;
2224
align-items: center;
23-
gap: 0.5rem;
25+
gap: 0.625rem;
2426
font-size: 0.875rem;
2527
font-weight: 600;
26-
color: #64748b;
28+
color: #475569;
29+
letter-spacing: -0.025em;
2730
}
2831

32+
/* Level 2: Page Header - Main page identification */
2933
.dashboard-header {
30-
background: #1e293b;
31-
border-bottom: 1px solid #e2e8f0;
34+
background: #334155;
35+
border-bottom: 1px solid #475569;
3236
color: white;
33-
padding: 1.5rem 2rem;
37+
padding: 1.25rem 2rem;
3438
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
3539
}
3640

37-
38-
3941
.header-content {
4042
max-width: 1200px;
4143
margin: 0 auto;
4244
display: flex;
4345
align-items: center;
44-
justify-content: space-between;
46+
justify-content: flex-start;
47+
gap: 1.5rem;
4548
}
4649

4750
.logo {
@@ -52,188 +55,121 @@
5255

5356
.logo h1 {
5457
margin: 0;
55-
font-size: 1.75rem;
56-
font-weight: 700;
58+
font-size: 1.5rem;
59+
font-weight: 600;
5760
color: white;
5861
letter-spacing: -0.025em;
5962
}
6063

6164
.header-subtitle {
6265
margin: 0;
63-
opacity: 0.9;
64-
font-size: 1rem;
66+
font-size: 0.875rem;
6567
font-weight: 400;
6668
color: #cbd5e1;
67-
display: block;
6869
letter-spacing: 0.025em;
6970
}
7071

7172
@media (min-width: 768px) {
72-
.header-subtitle {
73-
display: block;
74-
}
75-
7673
.header-content {
77-
justify-content: flex-start;
7874
gap: 2rem;
7975
}
8076

8177
.logo h1 {
82-
font-size: 1.75rem;
78+
font-size: 1.5rem;
8379
}
8480
}
8581

86-
/* Page Navigation */
82+
/* Level 3: Page Navigation - Inter-page navigation */
8783
.page-nav {
88-
background: transparent;
84+
background: #f8fafc;
85+
border-bottom: 1px solid #e2e8f0;
8986
padding: 1rem 2rem;
9087
display: flex;
9188
gap: 0.5rem;
9289
max-width: 1200px;
9390
margin: 0 auto;
94-
border-radius: 0.75rem;
95-
margin-top: -0.5rem;
96-
position: relative;
97-
z-index: 10;
9891
}
9992

10093
.page-button {
10194
display: flex;
10295
align-items: center;
103-
gap: 0.625rem;
104-
padding: 0.875rem 1.5rem;
105-
border: 2px solid #e2e8f0;
96+
gap: 0.5rem;
97+
padding: 0.75rem 1.25rem;
98+
border: 1px solid #cbd5e1;
10699
background: #ffffff;
107-
border-radius: 0.75rem;
100+
border-radius: 0.5rem;
108101
cursor: pointer;
109-
font-weight: 600;
110-
font-size: 1rem;
102+
font-weight: 500;
103+
font-size: 0.875rem;
111104
transition: all 0.2s ease;
112105
color: #475569;
113-
text-transform: capitalize;
114106
letter-spacing: -0.025em;
115-
position: relative;
116-
overflow: hidden;
117-
min-width: 160px;
118-
justify-content: center;
119107
text-decoration: none;
120-
}
121-
122-
.page-button::before {
123-
content: '';
124-
position: absolute;
125-
top: 0;
126-
left: -100%;
127-
width: 100%;
128-
height: 100%;
129-
background: rgba(59, 130, 246, 0.1);
130-
transition: left 0.3s ease;
108+
min-width: 140px;
109+
justify-content: center;
131110
}
132111

133112
.page-button:hover {
134-
background: rgba(59, 130, 246, 0.05);
135-
border-color: #3b82f6;
136-
color: #1d4ed8;
137-
transform: translateY(-1px);
138-
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
139-
}
140-
141-
.page-button:hover::before {
142-
left: 100%;
113+
background: #f1f5f9;
114+
border-color: #94a3b8;
115+
color: #334155;
143116
}
144117

145118
.page-button.active {
146-
background: #3b82f6;
147-
border-color: #3b82f6;
119+
background: #475569;
120+
border-color: #475569;
148121
color: #ffffff;
149-
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
150-
transform: translateY(-1px);
151-
}
152-
153-
.page-button.active::before {
154-
background: rgba(255, 255, 255, 0.1);
155122
}
156123

157124
.page-button.active:hover {
158-
background: #2563eb;
159-
transform: translateY(-2px);
160-
box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4);
125+
background: #334155;
126+
border-color: #334155;
161127
}
162128

163-
/* Metric Navigation */
129+
/* Level 4: Metric Navigation - Metric selection within pages */
164130
.dashboard-nav {
165-
background: transparent;
166-
padding: 1.25rem 2rem;
131+
background: #f8fafc;
132+
border-bottom: 1px solid #e2e8f0;
133+
padding: 1rem 2rem;
167134
display: flex;
168135
gap: 0.5rem;
169136
max-width: 1200px;
170137
margin: 0 auto;
171-
border-radius: 0.75rem;
172-
margin-top: -0.5rem;
173-
position: relative;
174-
z-index: 10;
175138
}
176139

177140
.nav-button {
178141
display: flex;
179142
align-items: center;
180-
gap: 0.625rem;
181-
padding: 0.875rem 1.5rem;
182-
border: 2px solid #e2e8f0;
143+
gap: 0.5rem;
144+
padding: 0.75rem 1.25rem;
145+
border: 1px solid #cbd5e1;
183146
background: #ffffff;
184-
border-radius: 0.75rem;
147+
border-radius: 0.5rem;
185148
cursor: pointer;
186-
font-weight: 600;
187-
font-size: 1rem;
149+
font-weight: 500;
150+
font-size: 0.875rem;
188151
transition: all 0.2s ease;
189152
color: #475569;
190-
text-transform: capitalize;
191153
letter-spacing: -0.025em;
192-
position: relative;
193-
overflow: hidden;
194-
min-width: 140px;
154+
min-width: 120px;
195155
justify-content: center;
196156
}
197157

198-
.nav-button::before {
199-
content: '';
200-
position: absolute;
201-
top: 0;
202-
left: -100%;
203-
width: 100%;
204-
height: 100%;
205-
background: rgba(59, 130, 246, 0.1);
206-
transition: left 0.3s ease;
207-
}
208-
209158
.nav-button:hover {
210-
background: rgba(59, 130, 246, 0.05);
211-
border-color: #3b82f6;
212-
color: #1d4ed8;
213-
transform: translateY(-1px);
214-
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
215-
}
216-
217-
.nav-button:hover::before {
218-
left: 100%;
159+
background: #f1f5f9;
160+
border-color: #94a3b8;
161+
color: #334155;
219162
}
220163

221164
.nav-button.active {
222-
background: #3b82f6;
223-
border-color: #3b82f6;
165+
background: #475569;
166+
border-color: #475569;
224167
color: #ffffff;
225-
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
226-
transform: translateY(-1px);
227-
}
228-
229-
.nav-button.active::before {
230-
background: rgba(255, 255, 255, 0.1);
231168
}
232169

233170
.nav-button.active:hover {
234-
background: #2563eb;
235-
transform: translateY(-2px);
236-
box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4);
171+
background: #334155;
172+
border-color: #334155;
237173
}
238174

239175
/* Main Content */

0 commit comments

Comments
 (0)