Skip to content

Commit 7742c1a

Browse files
authored
Improve mobile UI/UX responsiveness and layout consistency (#129)
* Improve mobile UI/UX responsiveness and layout consistency * Remove unnecessary package-lock.json
1 parent 8cea9f5 commit 7742c1a

4 files changed

Lines changed: 386 additions & 234 deletions

File tree

apps/web/src/app.css

Lines changed: 74 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,49 @@
33
:root {
44
/* Primary Palette */
55
--primary: #6366f1;
6-
--primary-glow: rgba(99, 102, 241, 0.5);
6+
--primary-glow: rgba(99, 102, 241, 0.4);
77
--accent: #a855f7;
8-
--accent-glow: rgba(168, 85, 247, 0.4);
9-
8+
--accent-glow: rgba(168, 85, 247, 0.35);
9+
1010
/* Backgrounds */
1111
--bg-primary: #ffffff;
1212
--bg-secondary: #f8fafc;
13-
--bg-glass: rgba(255, 255, 255, 0.7);
13+
--bg-page: #f5f8ff;
14+
--bg-glass: rgba(255, 255, 255, 0.75);
1415
--bg-card: #ffffff;
15-
16+
1617
/* Text */
1718
--text-primary: #0f172a;
1819
--text-secondary: #475569;
19-
--text-muted: #94a3b8;
20-
20+
--text-muted: #64748b;
21+
2122
/* Effects */
22-
--border: rgba(226, 232, 240, 0.8);
23-
--border-glass: rgba(255, 255, 255, 0.3);
23+
--border: rgba(226, 232, 240, 0.9);
24+
--border-glass: rgba(255, 255, 255, 0.35);
2425
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
25-
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
26-
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
27-
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
28-
29-
--radius: 12px;
30-
--radius-lg: 20px;
31-
--radius-xl: 32px;
32-
33-
--theme-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
26+
--shadow-md: 0 6px 18px -8px rgb(0 0 0 / 0.12), 0 4px 14px -12px rgb(0 0 0 / 0.08);
27+
--shadow-lg: 0 12px 24px -10px rgb(0 0 0 / 0.15), 0 6px 12px -14px rgb(0 0 0 / 0.08);
28+
29+
--radius: 14px;
30+
--radius-lg: 26px;
31+
--radius-xl: 34px;
32+
33+
--theme-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
3434
}
3535

3636
html.dark {
3737
--bg-primary: #020617;
3838
--bg-secondary: #0f172a;
39-
--bg-glass: rgba(15, 23, 42, 0.6);
39+
--bg-page: #050b18;
40+
--bg-glass: rgba(15, 23, 42, 0.72);
4041
--bg-card: #0f172a;
41-
42+
4243
--text-primary: #f8fafc;
4344
--text-secondary: #cbd5e1;
4445
--text-muted: #64748b;
45-
46-
--border: rgba(30, 41, 59, 0.8);
47-
--border-glass: rgba(255, 255, 255, 0.1);
46+
47+
--border: rgba(30, 41, 59, 0.85);
48+
--border-glass: rgba(255, 255, 255, 0.12);
4849
}
4950

5051
* {
@@ -55,7 +56,7 @@ html.dark {
5556

5657
body {
5758
font-family: 'Inter', sans-serif;
58-
background-color: var(--bg-primary);
59+
background: radial-gradient(circle at top, rgba(99, 102, 241, 0.08), transparent 22%), var(--bg-page);
5960
color: var(--text-primary);
6061
transition: var(--theme-transition);
6162
-webkit-font-smoothing: antialiased;
@@ -66,7 +67,7 @@ body {
6667
h1, h2, h3, h4, h5, h6 {
6768
font-family: 'Outfit', sans-serif;
6869
font-weight: 700;
69-
line-height: 1.1;
70+
line-height: 1.15;
7071
}
7172

7273
a {
@@ -75,10 +76,20 @@ a {
7576
transition: var(--theme-transition);
7677
}
7778

79+
button,
80+
.btn-primary,
81+
.btn-secondary {
82+
transition: transform 0.24s ease, box-shadow 0.24s ease, background-color 0.24s ease, border-color 0.24s ease, color 0.24s ease;
83+
}
84+
85+
button {
86+
font: inherit;
87+
}
88+
7889
.glass {
7990
background: var(--bg-glass);
80-
backdrop-filter: blur(12px);
81-
-webkit-backdrop-filter: blur(12px);
91+
backdrop-filter: blur(18px);
92+
-webkit-backdrop-filter: blur(18px);
8293
border: 1px solid var(--border-glass);
8394
}
8495

@@ -90,19 +101,50 @@ a {
90101
}
91102

92103
.btn-primary {
104+
display: inline-flex;
105+
align-items: center;
106+
justify-content: center;
93107
background: linear-gradient(135deg, var(--primary), var(--accent));
94108
color: white;
95-
padding: 0.8rem 1.6rem;
96-
border-radius: var(--radius);
97-
font-weight: 600;
98-
box-shadow: 0 4px 15px var(--primary-glow);
109+
padding: 0.95rem 1.85rem;
110+
border-radius: calc(var(--radius) * 1.2);
111+
font-weight: 700;
112+
box-shadow: 0 18px 35px -18px rgba(99, 102, 241, 0.9);
99113
border: none;
100114
cursor: pointer;
101115
}
102116

103117
.btn-primary:hover {
104118
transform: translateY(-2px);
105-
box-shadow: 0 6px 20px var(--primary-glow);
119+
box-shadow: 0 22px 40px -16px rgba(99, 102, 241, 0.9);
120+
}
121+
122+
.btn-primary:focus-visible {
123+
outline: 3px solid rgba(99, 102, 241, 0.35);
124+
outline-offset: 3px;
125+
}
126+
127+
.btn-secondary {
128+
display: inline-flex;
129+
align-items: center;
130+
justify-content: center;
131+
padding: 0.85rem 1.75rem;
132+
border-radius: calc(var(--radius) * 1.2);
133+
font-weight: 700;
134+
border: 1px solid rgba(255, 255, 255, 0.14);
135+
background: rgba(255, 255, 255, 0.08);
136+
color: var(--text-primary);
137+
cursor: pointer;
138+
}
139+
140+
.btn-secondary:hover {
141+
background: rgba(255, 255, 255, 0.14);
142+
border-color: rgba(99, 102, 241, 0.45);
143+
}
144+
145+
.btn-secondary:focus-visible {
146+
outline: 3px solid rgba(99, 102, 241, 0.18);
147+
outline-offset: 3px;
106148
}
107149

108150
/* ---------- Custom themed scrollbar (issue #151) ---------- */

0 commit comments

Comments
 (0)