petter2025 commited on
Commit
bb3ba38
·
verified ·
1 Parent(s): b6e0497

Create styles/modern.css

Browse files
Files changed (1) hide show
  1. ui/styles/modern.css +342 -0
ui/styles/modern.css ADDED
@@ -0,0 +1,342 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ui/styles/modern.css - Design System Foundation */
2
+ :root {
3
+ /* Primary Colors (matching your current scheme) */
4
+ --color-primary-50: #eff6ff;
5
+ --color-primary-100: #dbeafe;
6
+ --color-primary-200: #bfdbfe;
7
+ --color-primary-300: #93c5fd;
8
+ --color-primary-400: #60a5fa;
9
+ --color-primary-500: #3b82f6;
10
+ --color-primary-600: #2563eb;
11
+ --color-primary-700: #1d4ed8;
12
+ --color-primary-800: #1e40af;
13
+ --color-primary-900: #1e3a8a;
14
+
15
+ /* Success Colors */
16
+ --color-success-50: #f0fdf4;
17
+ --color-success-100: #dcfce7;
18
+ --color-success-200: #bbf7d0;
19
+ --color-success-300: #86efac;
20
+ --color-success-400: #4ade80;
21
+ --color-success-500: #22c55e;
22
+ --color-success-600: #16a34a;
23
+ --color-success-700: #15803d;
24
+ --color-success-800: #166534;
25
+ --color-success-900: #14532d;
26
+
27
+ /* Warning Colors */
28
+ --color-warning-50: #fffbeb;
29
+ --color-warning-100: #fef3c7;
30
+ --color-warning-200: #fde68a;
31
+ --color-warning-300: #fcd34d;
32
+ --color-warning-400: #fbbf24;
33
+ --color-warning-500: #f59e0b;
34
+ --color-warning-600: #d97706;
35
+ --color-warning-700: #b45309;
36
+ --color-warning-800: #92400e;
37
+ --color-warning-900: #78350f;
38
+
39
+ /* Danger Colors */
40
+ --color-danger-50: #fef2f2;
41
+ --color-danger-100: #fee2e2;
42
+ --color-danger-200: #fecaca;
43
+ --color-danger-300: #fca5a5;
44
+ --color-danger-400: #f87171;
45
+ --color-danger-500: #ef4444;
46
+ --color-danger-600: #dc2626;
47
+ --color-danger-700: #b91c1c;
48
+ --color-danger-800: #991b1b;
49
+ --color-danger-900: #7f1d1d;
50
+
51
+ /* Neutral Colors */
52
+ --color-neutral-50: #f8fafc;
53
+ --color-neutral-100: #f1f5f9;
54
+ --color-neutral-200: #e2e8f0;
55
+ --color-neutral-300: #cbd5e1;
56
+ --color-neutral-400: #94a3b8;
57
+ --color-neutral-500: #64748b;
58
+ --color-neutral-600: #475569;
59
+ --color-neutral-700: #334155;
60
+ --color-neutral-800: #1e293b;
61
+ --color-neutral-900: #0f172a;
62
+
63
+ /* Spacing */
64
+ --spacing-1: 0.25rem;
65
+ --spacing-2: 0.5rem;
66
+ --spacing-3: 0.75rem;
67
+ --spacing-4: 1rem;
68
+ --spacing-5: 1.25rem;
69
+ --spacing-6: 1.5rem;
70
+ --spacing-8: 2rem;
71
+ --spacing-10: 2.5rem;
72
+ --spacing-12: 3rem;
73
+ --spacing-16: 4rem;
74
+ --spacing-20: 5rem;
75
+
76
+ /* Typography */
77
+ --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
78
+ --font-mono: 'JetBrains Mono', 'SF Mono', Monaco, monospace;
79
+
80
+ /* Border Radius */
81
+ --radius-sm: 0.25rem;
82
+ --radius-md: 0.5rem;
83
+ --radius-lg: 0.75rem;
84
+ --radius-xl: 1rem;
85
+ --radius-2xl: 1.5rem;
86
+ --radius-full: 9999px;
87
+
88
+ /* Shadows */
89
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
90
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
91
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
92
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
93
+
94
+ /* Transitions */
95
+ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
96
+ --transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);
97
+ --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
98
+ }
99
+
100
+ /* Semantic aliases for easier use */
101
+ :root {
102
+ --color-primary: var(--color-primary-500);
103
+ --color-success: var(--color-success-500);
104
+ --color-warning: var(--color-warning-500);
105
+ --color-danger: var(--color-danger-500);
106
+ --color-border: var(--color-neutral-200);
107
+ --color-bg: var(--color-neutral-50);
108
+ --color-text: var(--color-neutral-900);
109
+ --color-text-secondary: var(--color-neutral-600);
110
+ }
111
+
112
+ /* Dark mode overrides */
113
+ [data-theme="dark"] {
114
+ --color-primary: var(--color-primary-400);
115
+ --color-success: var(--color-success-400);
116
+ --color-warning: var(--color-warning-400);
117
+ --color-danger: var(--color-danger-400);
118
+ --color-border: var(--color-neutral-700);
119
+ --color-bg: var(--color-neutral-900);
120
+ --color-text: var(--color-neutral-100);
121
+ --color-text-secondary: var(--color-neutral-400);
122
+ }
123
+
124
+ /* Base styles */
125
+ * {
126
+ box-sizing: border-box;
127
+ }
128
+
129
+ body {
130
+ font-family: var(--font-sans);
131
+ color: var(--color-text);
132
+ background: var(--color-bg);
133
+ margin: 0;
134
+ padding: 0;
135
+ line-height: 1.5;
136
+ }
137
+
138
+ /* Container utilities */
139
+ .container {
140
+ width: 100%;
141
+ max-width: 1200px;
142
+ margin: 0 auto;
143
+ padding: 0 var(--spacing-4);
144
+ }
145
+
146
+ .container-sm {
147
+ max-width: 800px;
148
+ }
149
+
150
+ .container-lg {
151
+ max-width: 1400px;
152
+ }
153
+
154
+ /* Grid system */
155
+ .grid {
156
+ display: grid;
157
+ gap: var(--spacing-4);
158
+ }
159
+
160
+ .grid-2 {
161
+ grid-template-columns: repeat(2, 1fr);
162
+ }
163
+
164
+ .grid-3 {
165
+ grid-template-columns: repeat(3, 1fr);
166
+ }
167
+
168
+ .grid-4 {
169
+ grid-template-columns: repeat(4, 1fr);
170
+ }
171
+
172
+ /* Flex utilities */
173
+ .flex {
174
+ display: flex;
175
+ }
176
+
177
+ .flex-col {
178
+ flex-direction: column;
179
+ }
180
+
181
+ .items-center {
182
+ align-items: center;
183
+ }
184
+
185
+ .justify-between {
186
+ justify-content: space-between;
187
+ }
188
+
189
+ .justify-center {
190
+ justify-content: center;
191
+ }
192
+
193
+ .gap-2 {
194
+ gap: var(--spacing-2);
195
+ }
196
+
197
+ .gap-4 {
198
+ gap: var(--spacing-4);
199
+ }
200
+
201
+ .gap-6 {
202
+ gap: var(--spacing-6);
203
+ }
204
+
205
+ /* Card base styles */
206
+ .card {
207
+ background: white;
208
+ border-radius: var(--radius-lg);
209
+ border: 1px solid var(--color-border);
210
+ padding: var(--spacing-6);
211
+ transition: box-shadow var(--transition-normal);
212
+ }
213
+
214
+ .card:hover {
215
+ box-shadow: var(--shadow-md);
216
+ }
217
+
218
+ .card-elevated {
219
+ box-shadow: var(--shadow-lg);
220
+ border: none;
221
+ }
222
+
223
+ .card-outlined {
224
+ border: 2px solid var(--color-primary);
225
+ background: transparent;
226
+ }
227
+
228
+ /* Button base styles */
229
+ .btn {
230
+ display: inline-flex;
231
+ align-items: center;
232
+ justify-content: center;
233
+ padding: var(--spacing-2) var(--spacing-4);
234
+ border-radius: var(--radius-md);
235
+ font-weight: 500;
236
+ font-size: 0.875rem;
237
+ border: none;
238
+ cursor: pointer;
239
+ transition: all var(--transition-fast);
240
+ text-decoration: none;
241
+ gap: var(--spacing-2);
242
+ }
243
+
244
+ .btn:disabled {
245
+ opacity: 0.5;
246
+ cursor: not-allowed;
247
+ }
248
+
249
+ .btn-primary {
250
+ background: var(--color-primary);
251
+ color: white;
252
+ }
253
+
254
+ .btn-primary:hover:not(:disabled) {
255
+ background: var(--color-primary-600);
256
+ }
257
+
258
+ .btn-secondary {
259
+ background: var(--color-neutral-100);
260
+ color: var(--color-text);
261
+ border: 1px solid var(--color-border);
262
+ }
263
+
264
+ .btn-secondary:hover:not(:disabled) {
265
+ background: var(--color-neutral-200);
266
+ }
267
+
268
+ /* Typography utilities */
269
+ .text-sm {
270
+ font-size: 0.875rem;
271
+ }
272
+
273
+ .text-base {
274
+ font-size: 1rem;
275
+ }
276
+
277
+ .text-lg {
278
+ font-size: 1.125rem;
279
+ }
280
+
281
+ .text-xl {
282
+ font-size: 1.25rem;
283
+ }
284
+
285
+ .text-2xl {
286
+ font-size: 1.5rem;
287
+ }
288
+
289
+ .font-medium {
290
+ font-weight: 500;
291
+ }
292
+
293
+ .font-semibold {
294
+ font-weight: 600;
295
+ }
296
+
297
+ .font-bold {
298
+ font-weight: 700;
299
+ }
300
+
301
+ .text-primary {
302
+ color: var(--color-primary);
303
+ }
304
+
305
+ .text-success {
306
+ color: var(--color-success);
307
+ }
308
+
309
+ .text-warning {
310
+ color: var(--color-warning);
311
+ }
312
+
313
+ .text-danger {
314
+ color: var(--color-danger);
315
+ }
316
+
317
+ .text-muted {
318
+ color: var(--color-text-secondary);
319
+ }
320
+
321
+ /* Utility classes for gradients */
322
+ .gradient-primary {
323
+ background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-700) 100%);
324
+ }
325
+
326
+ .gradient-success {
327
+ background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-700) 100%);
328
+ }
329
+
330
+ .gradient-warning {
331
+ background: linear-gradient(135deg, var(--color-warning) 0%, var(--color-warning-700) 100%);
332
+ }
333
+
334
+ /* Focus styles for accessibility */
335
+ :focus {
336
+ outline: 2px solid var(--color-primary);
337
+ outline-offset: 2px;
338
+ }
339
+
340
+ :focus:not(:focus-visible) {
341
+ outline: none;
342
+ }