@kksdev/ds-angular 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,405 @@
1
+ :root.theme-light {
2
+ /* ==========================================================================
3
+ * BACKGROUNDS
4
+ * ======================================================================== */
5
+ --background-main: var(--gray-50);
6
+ --background-secondary: var(--gray-100);
7
+ --background-header: var(--gray-200);
8
+ --background-panel: var(--surface-default, var(--gray-50));
9
+ --background-panel-hover: var(--surface-hover);
10
+
11
+ /* ==========================================================================
12
+ * TEXT
13
+ * ======================================================================== */
14
+ --text-default: var(--gray-900);
15
+ --text-muted: var(--gray-700);
16
+ --text-disabled: var(--gray-500);
17
+ --text-disabled-alt: var(--gray-400);
18
+ --text-subtle: var(--gray-600);
19
+
20
+ /* ==========================================================================
21
+ * LINKS & SELECTIONS
22
+ * ======================================================================== */
23
+ --link: var(--role-primary);
24
+ --link-hover: color-mix(in oklab, var(--role-primary) 85%, var(--background-main));
25
+ --selection-bg: color-mix(in oklab, var(--role-primary) 25%, transparent);
26
+ --selection-text: var(--text-default);
27
+
28
+ /* ==========================================================================
29
+ * BORDERS
30
+ * ======================================================================== */
31
+ --border-color: var(--gray-300);
32
+ --border-subtle: var(--gray-200);
33
+ --border-strong: var(--gray-400);
34
+ --border-default: var(--border-color);
35
+ /* Feedback border variants */
36
+ --border-success: var(--success);
37
+ --border-warning: var(--warning);
38
+ --border-error: var(--error);
39
+ --border-info: var(--info);
40
+
41
+ /* ==========================================================================
42
+ * ROLES (override light)
43
+ * ======================================================================== */
44
+ --role-primary: var(--brand-primary); /* violet */
45
+ --role-secondary: var(--brand-secondary); /* jaune */
46
+
47
+ /* ==========================================================================
48
+ * ACCENT & STATE
49
+ * ======================================================================== */
50
+ --accent: var(--role-primary);
51
+ --accent-alt: var(--role-secondary);
52
+ --accent-warn: var(--role-secondary);
53
+
54
+ /* ==========================================================================
55
+ * SURFACES
56
+ * ======================================================================== */
57
+ --surface-default: var(--gray-50);
58
+ --surface-raised: var(--gray-100);
59
+ --surface-hover: color-mix(in oklab, var(--gray-200) 60%, var(--gray-100));
60
+ --surface-overlay: color-mix(in oklab, var(--gray-900) 15%, transparent);
61
+
62
+ /* ==========================================================================
63
+ * FEEDBACK (bg + text)
64
+ * ======================================================================== */
65
+ /* Feedback backgrounds */
66
+ --bg-success: color-mix(in oklab, var(--success) 12%, var(--background-main));
67
+ --bg-warning: color-mix(in oklab, var(--warning) 16%, var(--background-main));
68
+ --bg-error: color-mix(in oklab, var(--error) 16%, var(--background-main));
69
+ --bg-info: color-mix(in oklab, var(--info) 16%, var(--background-main));
70
+ /* Feedback text */
71
+ --text-success: var(--success);
72
+ --text-warning: var(--warning);
73
+ --text-error: var(--error);
74
+ --text-info: var(--info);
75
+
76
+ /* ==========================================================================
77
+ * DISABLED
78
+ * ======================================================================== */
79
+ --bg-disabled: var(--gray-100);
80
+ --border-disabled: var(--gray-200);
81
+
82
+ /* ==========================================================================
83
+ * EFFECTS (scrollbar, hover, focus)
84
+ * ======================================================================== */
85
+ --scrollbar-thumb: var(--border-color);
86
+ --scrollbar-thumb-hover: var(--accent);
87
+ --hover-bg: color-mix(in oklab, var(--accent) 12%, transparent);
88
+ --focus-ring: 0 0 0 2px var(--focus-color);
89
+
90
+ /* ==========================================================================
91
+ * SÉMANTIQUES DS BUTTON
92
+ * ======================================================================== */
93
+ --btn-radius-sm: var(--radius-1);
94
+ --btn-radius: var(--radius-2);
95
+ --btn-radius-lg: var(--radius-3);
96
+
97
+ /* Primary */
98
+ --btn-primary-bg: var(--color-primary);
99
+ --btn-primary-text: var(--text-default);
100
+ --btn-primary-border: transparent;
101
+ --btn-primary-hover-bg: color-mix(in oklab, var(--color-primary) 90%, var(--background-main));
102
+ --btn-primary-hover-text: var(--text-default);
103
+ --btn-primary-hover-border: transparent;
104
+ --btn-primary-disabled-bg: var(--bg-disabled);
105
+ --btn-primary-disabled-text: var(--text-disabled);
106
+ --btn-primary-disabled-border: var(--border-disabled);
107
+
108
+ /* Secondary */
109
+ --btn-secondary-bg: var(--color-secondary);
110
+ --btn-secondary-text: var(--gray-900);
111
+ --btn-secondary-border: var(--border-color);
112
+ --btn-secondary-hover-bg: color-mix(in oklab, var(--color-secondary) 85%, var(--background-main));
113
+ --btn-secondary-hover-text: var(--gray-900);
114
+ --btn-secondary-hover-border: var(--border-color);
115
+ --btn-secondary-disabled-bg: var(--bg-disabled);
116
+ --btn-secondary-disabled-text: var(--text-disabled);
117
+ --btn-secondary-disabled-border: var(--border-disabled);
118
+
119
+ /* Ghost */
120
+ --btn-ghost-bg: transparent;
121
+ --btn-ghost-text: var(--text-default);
122
+ --btn-ghost-border: transparent;
123
+ --btn-ghost-hover-bg: var(--hover-bg);
124
+ --btn-ghost-hover-text: var(--text-default);
125
+ --btn-ghost-disabled-bg: transparent;
126
+ --btn-ghost-disabled-text: var(--text-disabled);
127
+
128
+ /* Success */
129
+ --btn-success-bg: var(--success);
130
+ --btn-success-text: var(--gray-50);
131
+ --btn-success-border: transparent;
132
+ --btn-success-hover-bg: color-mix(in oklab, var(--success) 85%, var(--background-main));
133
+ --btn-success-hover-text: var(--gray-50);
134
+ --btn-success-hover-border: transparent;
135
+ --btn-success-disabled-bg: var(--bg-disabled);
136
+ --btn-success-disabled-text: var(--text-disabled);
137
+ --btn-success-disabled-border: var(--border-disabled);
138
+
139
+ /* Warning */
140
+ --btn-warning-bg: var(--warning);
141
+ --btn-warning-text: var(--gray-900);
142
+ --btn-warning-border: transparent;
143
+ --btn-warning-hover-bg: color-mix(in oklab, var(--warning) 85%, var(--background-main));
144
+ --btn-warning-hover-text: var(--gray-900);
145
+ --btn-warning-hover-border: transparent;
146
+ --btn-warning-disabled-bg: var(--bg-disabled);
147
+ --btn-warning-disabled-text: var(--text-disabled);
148
+ --btn-warning-disabled-border: var(--border-disabled);
149
+
150
+ /* Error */
151
+ --btn-error-bg: var(--error);
152
+ --btn-error-text: var(--gray-50);
153
+ --btn-error-border: transparent;
154
+ --btn-error-hover-bg: color-mix(in oklab, var(--error) 85%, var(--background-main));
155
+ --btn-error-hover-text: var(--gray-50);
156
+ --btn-error-hover-border: transparent;
157
+ --btn-error-disabled-bg: var(--bg-disabled);
158
+ --btn-error-disabled-text: var(--text-disabled);
159
+ --btn-error-disabled-border: var(--border-disabled);
160
+
161
+ /* Info */
162
+ --btn-info-bg: var(--info);
163
+ --btn-info-text: var(--gray-50);
164
+ --btn-info-border: transparent;
165
+ --btn-info-hover-bg: color-mix(in oklab, var(--info) 85%, var(--background-main));
166
+ --btn-info-hover-text: var(--gray-50);
167
+ --btn-info-hover-border: transparent;
168
+ --btn-info-disabled-bg: var(--bg-disabled);
169
+ --btn-info-disabled-text: var(--text-disabled);
170
+ --btn-info-disabled-border: var(--border-disabled);
171
+
172
+ /* Focus */
173
+ --btn-focus-outline: var(--accent);
174
+
175
+ /* Spinner */
176
+ --spinner-size: 1em;
177
+ --spinner-border: rgba(0, 0, 0, 0.2);
178
+ --spinner-border-active: currentColor;
179
+
180
+
181
+ /* ==========================================================================
182
+ * SÉMANTIQUES DS INPUT FIELDS
183
+ * ======================================================================== */
184
+ --input-bg: var(--surface-default);
185
+ --input-text: var(--text-default);
186
+ --input-placeholder: var(--text-subtle);
187
+ --input-border: var(--border-color);
188
+ --input-hover-border: color-mix(in oklab, var(--border-color) 85%, var(--background-main));
189
+ --input-focus-border: var(--accent);
190
+ --input-focus-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 25%, transparent);
191
+ --input-icon: var(--text-muted);
192
+ --input-disabled-bg: var(--bg-disabled);
193
+ --input-disabled-text: var(--text-disabled);
194
+ --input-success-border: var(--success);
195
+ --input-warning-border: var(--warning);
196
+ --input-error-border: var(--error);
197
+ --input-label-color: var(--text-default);
198
+ --input-label-font-size: var(--font-size-2);
199
+ --input-label-margin-bottom: var(--space-1);
200
+ --input-padding-default: var(--space-2);
201
+
202
+ /* ==========================================================================
203
+ * SÉMANTIQUES DS MODALS
204
+ * ======================================================================== */
205
+ --modal-bg: var(--surface-overlay);
206
+ --modal-text: var(--text-default);
207
+ --modal-border-color: var(--border-strong);
208
+ --modal-box-shadow: var(--shadow-3);
209
+ --modal-divider: var(--border-subtle);
210
+ --modal-footer-shadow: inset 0 1px 0 var(--modal-divider);
211
+ --modal-backdrop: color-mix(in oklab, var(--gray-900) 30%, transparent);
212
+ --modal-type-success-color: var(--success);
213
+ --modal-type-success-contrast: var(--gray-50);
214
+ --modal-type-warning-color: var(--warning);
215
+ --modal-type-warning-contrast: var(--gray-900);
216
+ --modal-type-error-color: var(--error);
217
+ --modal-type-error-contrast: var(--gray-50);
218
+ --modal-type-info-color: var(--info);
219
+ --modal-type-info-contrast: var(--gray-50);
220
+
221
+ /* ==========================================================================
222
+ * SÉMANTIQUES DS DROPDOWN
223
+ * ======================================================================== */
224
+ --dropdown-bg: var(--surface-default);
225
+ --dropdown-border-color: var(--border-color);
226
+ --dropdown-backdrop: color-mix(in oklab, var(--gray-900) 20%, transparent);
227
+ --dropdown-item-color: var(--text-muted);
228
+ --dropdown-item-hover-bg: var(--surface-hover);
229
+ --dropdown-item-hover-color: var(--text-default);
230
+ --dropdown-item-active-bg: var(--color-primary);
231
+ --dropdown-item-active-color: var(--gray-50);
232
+ --dropdown-separator: var(--border-subtle);
233
+
234
+ /* ==========================================================================
235
+ * SÉMANTIQUES DS BADGES
236
+ * ======================================================================== */
237
+ --badge-bg: var(--accent);
238
+ --badge-text: var(--text-default);
239
+ --badge-bg-secondary: var(--accent-alt);
240
+ --badge-text-secondary: var(--text-default);
241
+ --badge-bg-muted: var(--surface-raised);
242
+ --badge-text-muted: var(--text-muted);
243
+ --badge-default-bg: var(--gray-200);
244
+ --badge-default-text: var(--gray-900);
245
+ --badge-primary-bg: var(--color-primary);
246
+ --badge-primary-text: var(--text-default);
247
+ --badge-secondary-bg: var(--color-secondary);
248
+ --badge-secondary-text: var(--gray-900);
249
+ --badge-success-bg: var(--success);
250
+ --badge-success-text: var(--gray-50);
251
+ --badge-warning-bg: var(--warning);
252
+ --badge-warning-text: var(--gray-900);
253
+ --badge-error-bg: var(--error);
254
+ --badge-error-text: var(--gray-50);
255
+ --badge-info-bg: var(--info);
256
+ --badge-info-text: var(--gray-50);
257
+ --badge-neutral-bg: var(--gray-300);
258
+ --badge-neutral-text: var(--gray-900);
259
+ --badge-accent-bg: var(--color-alt);
260
+ --badge-accent-text: var(--gray-900);
261
+ --badge-radius-default: var(--badge-radius);
262
+ --badge-radius-pill: var(--badge-pill-radius);
263
+ --badge-radius-square: 0;
264
+
265
+ /* ==========================================================================
266
+ * SÉMANTIQUES DS TOASTS
267
+ * ======================================================================== */
268
+ --toast-bg: var(--surface-default);
269
+ --toast-text: var(--text-default);
270
+ --toast-border: var(--border-color);
271
+
272
+ --toast-success-bg: var(--bg-success);
273
+ --toast-success-text: var(--text-success);
274
+ --toast-success-border: var(--success);
275
+ --toast-warning-bg: var(--bg-warning);
276
+ --toast-warning-text: var(--text-warning);
277
+ --toast-warning-border: var(--warning);
278
+ --toast-error-bg: var(--bg-error);
279
+ --toast-error-text: var(--text-error);
280
+ --toast-error-border: var(--error);
281
+ --toast-info-bg: var(--bg-info);
282
+ --toast-info-text: var(--text-info);
283
+ --toast-info-border: var(--info);
284
+
285
+ /* ==========================================================================
286
+ * SÉMANTIQUES DS CHECKBOX
287
+ * ======================================================================== */
288
+ --checkbox-bg: var(--surface-default);
289
+ --checkbox-border: var(--border-color);
290
+ --checkbox-checked-bg: var(--color-primary);
291
+ --checkbox-checked-border: var(--color-primary);
292
+ --checkbox-check-color: var(--gray-50);
293
+ --checkbox-hover-border: color-mix(in oklab, var(--border-color) 85%, var(--background-main));
294
+ --checkbox-focus-ring: 0 0 0 3px color-mix(in oklab, var(--color-primary) 25%, transparent);
295
+ --checkbox-disabled-bg: var(--bg-disabled);
296
+ --checkbox-disabled-border: var(--border-disabled);
297
+ --checkbox-disabled-check: var(--text-disabled);
298
+ --checkbox-indeterminate-bg: var(--color-primary);
299
+ --checkbox-indeterminate-border: var(--color-primary);
300
+
301
+ /* ==========================================================================
302
+ * SÉMANTIQUES DS RADIO
303
+ * ======================================================================== */
304
+ --radio-bg: var(--surface-default);
305
+ --radio-border: var(--border-color);
306
+ --radio-checked-bg: var(--surface-default);
307
+ --radio-checked-border: var(--color-primary);
308
+ --radio-dot-color: var(--color-primary);
309
+ --radio-hover-border: color-mix(in oklab, var(--border-color) 85%, var(--background-main));
310
+ --radio-focus-ring: 0 0 0 3px color-mix(in oklab, var(--color-primary) 25%, transparent);
311
+ --radio-disabled-bg: var(--bg-disabled);
312
+ --radio-disabled-border: var(--border-disabled);
313
+ --radio-disabled-dot: var(--text-disabled);
314
+
315
+ /* ==========================================================================
316
+ * SÉMANTIQUES DS TOGGLE
317
+ * ======================================================================== */
318
+ --toggle-track-bg: var(--gray-300);
319
+ --toggle-track-checked-bg: var(--color-primary);
320
+ --toggle-thumb-bg: var(--gray-50);
321
+ --toggle-thumb-shadow: var(--shadow-1);
322
+ --toggle-hover-track-bg: color-mix(in oklab, var(--gray-300) 85%, var(--background-main));
323
+ --toggle-hover-track-checked-bg: color-mix(in oklab, var(--color-primary) 90%, var(--background-main));
324
+ --toggle-focus-ring: 0 0 0 3px color-mix(in oklab, var(--color-primary) 25%, transparent);
325
+ --toggle-disabled-track-bg: var(--bg-disabled);
326
+ --toggle-disabled-thumb-bg: var(--gray-200);
327
+
328
+ /* ==========================================================================
329
+ * SÉMANTIQUES DS BREADCRUMB
330
+ * ======================================================================== */
331
+ --breadcrumb-link: var(--text-muted);
332
+ --breadcrumb-link-hover: var(--text-default);
333
+ --breadcrumb-active: var(--text-default);
334
+ --breadcrumb-separator-color: var(--text-subtle);
335
+
336
+ /* ==========================================================================
337
+ * SÉMANTIQUES DS TABS
338
+ * ======================================================================== */
339
+ --tab-bg: transparent;
340
+ --tab-text: var(--text-muted);
341
+ --tab-hover-bg: var(--surface-hover);
342
+ --tab-hover-text: var(--text-default);
343
+ --tab-active-bg: transparent;
344
+ --tab-active-text: var(--text-default);
345
+ --tab-active-border: var(--color-primary);
346
+ --tab-border: var(--border-subtle);
347
+ --tab-disabled-text: var(--text-disabled);
348
+
349
+ /* ==========================================================================
350
+ * SÉMANTIQUES DS TOOLTIP
351
+ * ======================================================================== */
352
+ --tooltip-bg: var(--gray-800);
353
+ --tooltip-text: var(--gray-50);
354
+ --tooltip-shadow: var(--shadow-2);
355
+
356
+ /* ==========================================================================
357
+ * SÉMANTIQUES DS POPOVER
358
+ * ======================================================================== */
359
+ --popover-bg: var(--surface-default);
360
+ --popover-text: var(--text-default);
361
+ --popover-border: var(--border-color);
362
+ --popover-header-bg: var(--surface-raised);
363
+ --popover-header-border: var(--border-subtle);
364
+ --popover-backdrop: color-mix(in oklab, var(--gray-900) 20%, transparent);
365
+
366
+ /* ==========================================================================
367
+ * SÉMANTIQUES DS PAGINATION
368
+ * ======================================================================== */
369
+ --pagination-btn-bg: var(--surface-default);
370
+ --pagination-btn-text: var(--text-default);
371
+ --pagination-btn-border: var(--border-color);
372
+ --pagination-btn-hover-bg: var(--surface-hover);
373
+ --pagination-btn-hover-border: var(--color-primary);
374
+ --pagination-btn-focus-border: var(--color-primary);
375
+ --pagination-active-bg: var(--color-primary);
376
+ --pagination-active-text: var(--gray-50);
377
+ --pagination-active-hover-bg: color-mix(in oklab, var(--color-primary) 85%, var(--background-main));
378
+ --pagination-info-color: var(--text-muted);
379
+
380
+ /* ==========================================================================
381
+ * SÉMANTIQUES DS STEPPER
382
+ * ======================================================================== */
383
+ --stepper-pending-bg: var(--background-secondary);
384
+ --stepper-pending-text: var(--text-muted);
385
+ --stepper-pending-border: var(--border-color);
386
+ --stepper-active-bg: var(--color-primary);
387
+ --stepper-active-text: var(--gray-50);
388
+ --stepper-completed-bg: var(--success);
389
+ --stepper-completed-text: var(--gray-50);
390
+ --stepper-error-bg: var(--error);
391
+ --stepper-error-text: var(--gray-50);
392
+ --stepper-connector-color: var(--border-color);
393
+
394
+ /* ==========================================================================
395
+ * SÉMANTIQUES DS ACCORDION
396
+ * ======================================================================== */
397
+ --accordion-header-bg: var(--surface-default);
398
+ --accordion-header-hover-bg: var(--surface-hover);
399
+ --accordion-header-text: var(--text-default);
400
+ --accordion-body-text: var(--text-muted);
401
+ --accordion-border-color: var(--border-color);
402
+ --accordion-icon-color: var(--text-muted);
403
+ --accordion-focus-color: var(--color-primary);
404
+ --accordion-expanded-border-color: var(--color-primary);
405
+ }
@@ -0,0 +1,140 @@
1
+ // ============================================================================
2
+ // TOKENS PRIMITIFS — Design System Assist-AI
3
+ // ============================================================================
4
+ //
5
+ // Ce fichier contient les tokens primitifs globaux du design system.
6
+ // Ces tokens représentent la couche la plus basse de l'architecture de design,
7
+ // et doivent être utilisés pour construire les tokens sémantiques (_semantic.scss).
8
+ //
9
+ // CONTENU :
10
+ // - Palette de couleurs (grays, feedback colors, brand colors)
11
+ // - Échelle de spacing (espacement et marges)
12
+ // - Border radius (arrondis)
13
+ // - Shadows (ombres)
14
+ // - Z-index (superposition)
15
+ // - Animations (durées et easing)
16
+ // - Typographie de base (font-family, font-sizes)
17
+ //
18
+ // RÈGLES D'USAGE :
19
+ // - Ne PAS modifier ces valeurs sans validation design
20
+ // - Ne PAS utiliser directement dans les composants (passer par _semantic.scss)
21
+ // - Maintenir la cohérence avec le système de thème (light/dark)
22
+ //
23
+ // ============================================================================
24
+
25
+ // === COLORS ===
26
+
27
+ // Palette de gris
28
+ $gray-50: #fafafa;
29
+ $gray-100: #f5f5f5;
30
+ $gray-200: #e5e5e5;
31
+ $gray-300: #d4d4d4;
32
+ $gray-400: #a3a3a3;
33
+ $gray-500: #737373;
34
+ $gray-600: #525252;
35
+ $gray-700: #404040;
36
+ $gray-800: #262626;
37
+ $gray-900: #171717;
38
+
39
+ // Couleurs de feedback
40
+ $success: #4caf50;
41
+ $warning: #ff9800;
42
+ $error: #f44336;
43
+ $info: #2196f3;
44
+
45
+ // Couleurs de marque
46
+ $primary: #7d4bc0;
47
+ $secondary: #fbc224;
48
+ $alt: #2dd4bf;
49
+
50
+ // === SPACING ===
51
+
52
+ $space-1: 0.25rem;
53
+ $space-2: 0.5rem;
54
+ $space-3: 0.75rem;
55
+ $space-4: 1rem;
56
+ $space-5: 1.25rem;
57
+ $space-6: 1.5rem;
58
+ $space-8: 2rem;
59
+
60
+ // === RADIUS ===
61
+
62
+ $radius-1: 4px;
63
+ $radius-1-5: 6px;
64
+ $radius-2: 8px;
65
+ $radius-3: 12px;
66
+ $radius-4: 20px;
67
+ $radius-round: 999px;
68
+
69
+ // === SHADOWS ===
70
+
71
+ $shadow-1: 0 1px 2px rgba(0,0,0,.14);
72
+ $shadow-2: 0 6px 16px rgba(0,0,0,.18);
73
+ $shadow-3: 0 15px 40px rgba(0,0,0,.24);
74
+
75
+ // === Z-INDEX ===
76
+
77
+ $z-index-1: 100;
78
+ $z-index-2: 200;
79
+ $z-index-3: 300;
80
+ $z-index-4: 400;
81
+ $z-index-full: 999;
82
+
83
+ // === ANIMATIONS ===
84
+
85
+ $duration-fast: 150ms;
86
+ $duration-normal: 300ms;
87
+ $duration-slow: 500ms;
88
+
89
+ $easing-default: ease-in-out;
90
+ $easing-in: ease-in;
91
+ $easing-out: ease-out;
92
+
93
+ // === TYPOGRAPHY ===
94
+
95
+ $font-family-base: "Poppins, sans-serif";
96
+
97
+ $font-size-small: 0.6rem;
98
+ $font-size-1: 0.75rem;
99
+ $font-size-2: 0.875rem;
100
+ $font-size-3: 1rem;
101
+ $font-size-4: 1.125rem;
102
+ $font-size-5: 1.25rem;
103
+ $font-size-6: 1.5rem;
104
+
105
+ $line-height-tight: 1.2;
106
+ $line-height-normal: 1.5;
107
+ $line-height-relaxed: 1.75;
108
+ $line-height-loose: 2;
109
+
110
+ $font-weight-light: 300;
111
+ $font-weight-normal: 400;
112
+ $font-weight-medium: 500;
113
+ $font-weight-semibold: 600;
114
+ $font-weight-bold: 700;
115
+
116
+ $letter-spacing-tight: -0.02em;
117
+ $letter-spacing-normal: 0;
118
+ $letter-spacing-wide: 0.05em;
119
+
120
+ // === LAYOUT & SIZES ===
121
+
122
+ $container-xs: 320px;
123
+ $container-sm: 640px;
124
+ $container-md: 768px;
125
+ $container-lg: 1024px;
126
+ $container-xl: 1280px;
127
+
128
+ $header-height: 60px;
129
+ $footer-height: 50px;
130
+ $sidebar-width: 260px;
131
+ $layout-gap: 1rem;
132
+
133
+ // === BREAKPOINTS ===
134
+ // Breakpoints standard (Bootstrap-like)
135
+ $breakpoint-xs: 320px; // Mobile small
136
+ $breakpoint-sm: 576px; // Mobile large
137
+ $breakpoint-md: 768px; // Tablet
138
+ $breakpoint-lg: 992px; // Desktop
139
+ $breakpoint-xl: 1200px; // Large desktop
140
+ $breakpoint-2xl: 1400px; // Extra large desktop