@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.6 → 0.1.8

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.esm.js +11 -2
  4. package/dist/index.js +11 -2
  5. package/dist/styles.css +1 -1
  6. package/package.json +1 -1
  7. package/src/index.css +1046 -0
  8. package/src/index.ts +9 -1
  9. package/src/plugins/theme-css-generator.ts +354 -0
  10. package/src/styles/base/fonts.css +30 -0
  11. package/src/styles/base/generated-theme-variables.css +573 -0
  12. package/src/styles/base/index.css +7 -0
  13. package/src/styles/base/reset.css +48 -0
  14. package/src/styles/base/theme.css +1068 -0
  15. package/src/styles/base/typography.css +68 -0
  16. package/src/styles/base/variables.css +5 -0
  17. package/src/styles/components/CLAUDE.md +62 -0
  18. package/src/styles/components/base/badge.css +428 -0
  19. package/src/styles/components/base/button.css +774 -0
  20. package/src/styles/components/base/card.css +601 -0
  21. package/src/styles/components/base/checkbox.css +442 -0
  22. package/src/styles/components/base/index.css +9 -0
  23. package/src/styles/components/base/input.css +887 -0
  24. package/src/styles/components/base/label.css +296 -0
  25. package/src/styles/components/data-display/chart.css +353 -0
  26. package/src/styles/components/data-display/data-grid.css +619 -0
  27. package/src/styles/components/data-display/index.css +9 -0
  28. package/src/styles/components/data-display/list.css +560 -0
  29. package/src/styles/components/data-display/table.css +498 -0
  30. package/src/styles/components/data-display/timeline.css +764 -0
  31. package/src/styles/components/data-display/tree.css +881 -0
  32. package/src/styles/components/feedback/alert.css +358 -0
  33. package/src/styles/components/feedback/index.css +7 -0
  34. package/src/styles/components/feedback/progress.css +435 -0
  35. package/src/styles/components/feedback/skeleton.css +337 -0
  36. package/src/styles/components/feedback/toast.css +564 -0
  37. package/src/styles/components/index.css +17 -0
  38. package/src/styles/components/navigation/breadcrumb.css +465 -0
  39. package/src/styles/components/navigation/index.css +9 -0
  40. package/src/styles/components/navigation/menu.css +572 -0
  41. package/src/styles/components/navigation/pagination.css +635 -0
  42. package/src/styles/components/navigation/sidebar.css +807 -0
  43. package/src/styles/components/navigation/stepper.css +519 -0
  44. package/src/styles/components/navigation/tabs.css +404 -0
  45. package/src/styles/components/overlay/backdrop.css +243 -0
  46. package/src/styles/components/overlay/index.css +8 -0
  47. package/src/styles/components/overlay/modal.css +482 -0
  48. package/src/styles/components/overlay/popover.css +607 -0
  49. package/src/styles/components/overlay/portal.css +213 -0
  50. package/src/styles/components/overlay/tooltip.css +488 -0
  51. package/src/styles/generated-theme-variables.css +573 -0
  52. package/src/styles/index.css +5 -0
  53. package/src/styles/layers/index.css +54 -0
  54. package/src/styles/layers/overrides.css +108 -0
  55. package/src/styles/layers/validation.css +159 -0
  56. package/src/styles/layers/validation.js +310 -0
  57. package/src/styles/themes/default.css +450 -0
  58. package/src/styles/themes/enterprise.css +370 -0
  59. package/src/styles/themes/harvey.css +436 -0
  60. package/src/styles/themes/index.css +4 -0
  61. package/src/styles/themes/stan-design.css +572 -0
  62. package/src/styles/utilities/advanced-transition-system.css +467 -0
  63. package/src/styles/utilities/battery-conscious-animations.css +289 -0
  64. package/src/styles/utilities/enterprise-mobile-experience.css +817 -0
  65. package/src/styles/utilities/hardware-acceleration.css +121 -0
  66. package/src/styles/utilities/index.css +20 -0
  67. package/src/styles/utilities/mobile-skeleton-loading.css +596 -0
  68. package/src/styles/utilities/semantic-input-system.css +451 -0
  69. package/src/styles/utilities/touch-friendly-interface.css +247 -0
  70. package/src/styles/utilities/touch-optimization.css +165 -0
@@ -0,0 +1,68 @@
1
+ /* Typography - Base Layer */
2
+ /* Base typography styles using design system variables */
3
+
4
+ body {
5
+ font-family: var(--cs-fonts-body-family, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif);
6
+ font-size: var(--cs-fonts-body-size, 16px);
7
+ font-weight: var(--cs-fonts-body-weight, 400);
8
+ line-height: var(--cs-fonts-body-line-height, 1.5);
9
+ color: var(--cs-colors-text-primary, #0f172a);
10
+ }
11
+
12
+ h1,
13
+ h2,
14
+ h3,
15
+ h4,
16
+ h5,
17
+ h6 {
18
+ font-family: var(--cs-fonts-heading-family, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif);
19
+ font-weight: var(--cs-fonts-heading-weight, 600);
20
+ line-height: var(--cs-fonts-heading-line-height, 1.2);
21
+ color: var(--cs-colors-text-primary, #0f172a);
22
+ margin-bottom: var(--cs-spacing-scale-3, 0.75rem);
23
+ }
24
+
25
+ h1 {
26
+ font-size: var(--cs-fonts-heading-h1-size, 2.25rem);
27
+ }
28
+
29
+ h2 {
30
+ font-size: var(--cs-fonts-heading-h2-size, 1.875rem);
31
+ }
32
+
33
+ h3 {
34
+ font-size: var(--cs-fonts-heading-h3-size, 1.5rem);
35
+ }
36
+
37
+ h4 {
38
+ font-size: var(--cs-fonts-heading-h4-size, 1.25rem);
39
+ }
40
+
41
+ h5 {
42
+ font-size: var(--cs-fonts-heading-h5-size, 1.125rem);
43
+ }
44
+
45
+ h6 {
46
+ font-size: var(--cs-fonts-heading-h6-size, 1rem);
47
+ }
48
+
49
+ p {
50
+ margin-bottom: var(--cs-spacing-scale-3, 0.75rem);
51
+ }
52
+
53
+ a {
54
+ color: var(--cs-colors-primary, #3b82f6);
55
+ text-decoration: underline;
56
+ }
57
+
58
+ a:hover {
59
+ color: var(--cs-colors-primary-hover, #2563eb);
60
+ }
61
+
62
+ code {
63
+ font-family: var(--cs-fonts-mono-family, 'Monaco', 'Menlo', 'Ubuntu Mono', monospace);
64
+ font-size: var(--cs-fonts-mono-size, 0.875rem);
65
+ background-color: var(--cs-colors-surface-secondary, #f1f5f9);
66
+ padding: var(--cs-spacing-scale-1, 0.25rem) var(--cs-spacing-scale-2, 0.5rem);
67
+ border-radius: var(--cs-border-radius-sm, 0.25rem);
68
+ }
@@ -0,0 +1,5 @@
1
+ /* CSS Variables - Base Layer */
2
+ /* Import theme variables from generated files */
3
+
4
+ @import '../generated-theme-variables.css';
5
+ @import './fonts.css';
@@ -0,0 +1,62 @@
1
+ # CSS Rules and Best Practices
2
+
3
+ ## Core Principles
4
+ - Only use the design system variables, do not use any generic or tailwind variables
5
+ - Follow semantic CSS architecture with BEM methodology
6
+ - Maintain consistency across all components
7
+ - Ensure accessibility and responsive design
8
+
9
+ ## Design System Integration
10
+ - **Colors**: Always use `var(--cs-colors-*)` variables instead of hardcoded hex values
11
+ - **Spacing**: Use `var(--cs-spacing-scale-*)` for margins, padding, and gaps
12
+ - **Typography**: Use `var(--cs-fonts-*)` for font sizes, weights, and families
13
+ - **Shadows**: Use `var(--cs-shadows-*)` for box-shadow values
14
+ - **Border Radius**: Use `var(--cs-border-radius-*)` for border-radius values
15
+ - **Transitions**: Use `var(--cs-transitions-*)` for animation durations and easing
16
+
17
+ ## Responsive Design Rules
18
+ - **Media Queries**: Use hardcoded breakpoints (e.g., `@media (min-width: 768px)`) instead of CSS variables
19
+ - **CSS Variables in Media Queries**: Never use `var(--cs-breakpoints-*)` inside `@media` rules - this will break
20
+ - **Breakpoint Values**:
21
+ - Mobile: 640px
22
+ - Tablet: 768px
23
+ - Desktop: 1024px
24
+ - Wide: 1280px
25
+ - Ultra: 1536px
26
+ - **Container Queries**: Consider using `@container` for component-level responsiveness when appropriate
27
+
28
+ ## CSS Architecture
29
+ - **Component Isolation**: Each component should have its own CSS file
30
+ - **CSS Import Strategy**: Use direct JavaScript imports in Storybook instead of CSS `@import` statements
31
+ - **CSS Specificity**: Use `!important` sparingly and only when necessary to override conflicting styles
32
+ - **CSS Variables**: Define component-specific variables with fallbacks: `var(--component-var, fallback-value)`
33
+
34
+ ## Storybook Compatibility
35
+ - **CSS Loading**: Import CSS files directly in `.storybook/preview.tsx` for reliable loading
36
+ - **Theme CSS Generation**: Ensure theme CSS generator runs in Storybook builds
37
+ - **CSS Processing**: Avoid PostCSS-dependent features like `@custom-media` unless explicitly configured
38
+ - **CSS Variables**: All design system variables must be available before component CSS loads
39
+
40
+ ## Component Styling Patterns
41
+ - **Flexbox Layouts**: Use `display: flex` with `flex-wrap: wrap` for responsive button grids
42
+ - **Grid Layouts**: Use CSS Grid for responsive column layouts
43
+ - **Gap Management**: Use design system spacing variables for consistent gaps
44
+ - **Width Management**: Set `width: 100%` on flex containers to ensure proper wrapping behavior
45
+
46
+ ## Error Prevention
47
+ - **No Hardcoded Values**: Never use values like `1rem`, `#ffffff`, `768px` directly in CSS
48
+ - **Fallback Values**: Always provide fallback values in CSS variable declarations
49
+ - **Type Safety**: Ensure all design system variables are properly typed in TypeScript interfaces
50
+ - **Build Validation**: Run `npm run build` and `npm test` after any CSS changes
51
+
52
+ ## Performance Considerations
53
+ - **CSS Generation**: Use build-time CSS generation from TypeScript theme definitions
54
+ - **CSS Imports**: Minimize CSS imports to only necessary files
55
+ - **CSS Variables**: Leverage CSS variables for runtime theme switching
56
+ - **CSS Optimization**: Ensure generated CSS is optimized and minified in production builds
57
+
58
+ ## Testing and Validation
59
+ - **Storybook Testing**: Test all responsive behaviors in Storybook viewport modes
60
+ - **Cross-Browser**: Ensure CSS works across different browsers and devices
61
+ - **Theme Switching**: Test light/dark mode switching in Storybook
62
+ - **Responsive Behavior**: Verify breakpoint behavior at exact pixel values
@@ -0,0 +1,428 @@
1
+ /* Badge Component Styles */
2
+ /* Using semantic CSS architecture with CSS variables and BEM methodology */
3
+
4
+ /* Badge Component CSS Variables */
5
+ :root {
6
+ /* Badge Base Variables */
7
+ --badge-height: var(--cs-spacing-scale-lg);
8
+ --badge-padding-y: var(--cs-spacing-scale-xs);
9
+ --badge-padding-x: var(--cs-spacing-scale-sm);
10
+ --badge-font-size: var(--cs-fonts-primary-sizes-xs);
11
+ --badge-font-weight: var(--cs-fonts-primary-weights-semibold);
12
+ --badge-line-height: var(--cs-fonts-primary-line-heights-tight);
13
+ --badge-border-width: var(--cs-spacing-scale-xs);
14
+ --badge-border-radius: var(--cs-border-radius-full);
15
+ --badge-transition: var(--cs-transitions-properties-colors);
16
+
17
+ /* Badge Variant Variables - Using Original Poker Project Colors */
18
+ --badge-default-background: var(--cs-colors-primary-500);
19
+ --badge-default-text: var(--cs-colors-text-inverse);
20
+ --badge-default-border: var(--cs-colors-border-transparent);
21
+
22
+ --badge-secondary-background: var(--cs-colors-surface-surface);
23
+ --badge-secondary-text: var(--cs-colors-text-primary);
24
+ --badge-secondary-border: var(--cs-colors-border-transparent);
25
+
26
+ --badge-destructive-background: var(--cs-colors-semantic-error);
27
+ --badge-destructive-text: var(--cs-colors-text-inverse);
28
+ --badge-destructive-border: var(--cs-colors-border-transparent);
29
+
30
+ --badge-outline-background: var(--cs-colors-border-transparent);
31
+ --badge-outline-text: var(--cs-colors-text-primary);
32
+ --badge-outline-border: var(--cs-colors-border-transparent);
33
+
34
+ /* Badge Hover State Variables - Using Original Poker Project Colors */
35
+ --badge-default-hover: var(--cs-colors-primary-hover);
36
+ --badge-secondary-hover: var(--cs-colors-interactive-hover);
37
+ --badge-destructive-hover: var(--cs-colors-semantic-error-dark);
38
+ --badge-outline-hover: var(--cs-colors-interactive-hover);
39
+ --badge-outline-hover-border: var(--cs-colors-border-transparent);
40
+
41
+ /* Badge Interactive State Variables */
42
+ --badge-hover-transform: translateY(calc(-1 * var(--cs-spacing-scale-xs)));
43
+ --badge-hover-shadow: var(--cs-shadows-md);
44
+ --badge-focus-outline: var(--cs-spacing-scale-xs) solid var(--cs-colors-interactive-focus);
45
+ --badge-focus-offset: var(--cs-spacing-scale-xs);
46
+ --badge-active-transform: translateY(0);
47
+ --badge-active-shadow: var(--cs-shadows-sm);
48
+ --badge-focus-ring-outline: var(--cs-spacing-scale-xs) solid var(--cs-colors-interactive-focus);
49
+ --badge-focus-ring-offset: var(--cs-spacing-scale-xs);
50
+
51
+ /* Badge High Contrast Variables */
52
+ --badge-high-contrast-border-width: var(--cs-spacing-scale-xs);
53
+ --badge-outline-high-contrast-border-width: var(--cs-spacing-scale-xs);
54
+
55
+ /* Badge Responsive Variables */
56
+ --badge-mobile-font-size: var(--cs-fonts-primary-sizes-xs);
57
+ --badge-mobile-padding-y: var(--cs-spacing-scale-xs);
58
+ --badge-mobile-padding-x: var(--cs-spacing-scale-sm);
59
+ --badge-container-font-size: var(--cs-fonts-primary-sizes-sm);
60
+
61
+ /* Badge Size Variables */
62
+ --badge-sm-height: var(--cs-spacing-scale-md);
63
+ --badge-sm-padding-y: var(--cs-spacing-scale-xs);
64
+ --badge-sm-padding-x: var(--cs-spacing-scale-sm);
65
+ --badge-sm-font-size: var(--cs-fonts-primary-sizes-xs);
66
+
67
+ --badge-lg-height: var(--cs-spacing-scale-xl);
68
+ --badge-lg-padding-y: var(--cs-spacing-scale-sm);
69
+ --badge-lg-padding-x: var(--cs-spacing-scale-sm);
70
+ --badge-lg-font-size: var(--cs-fonts-primary-sizes-sm);
71
+
72
+ /* Badge Element Variables */
73
+ --badge-icon-margin: var(--cs-spacing-scale-xs);
74
+ --badge-icon-size: var(--cs-fonts-primary-sizes-sm);
75
+
76
+ /* Badge Showcase Variables */
77
+ --badge-showcase-gap: var(--cs-spacing-scale-md);
78
+ --badge-status-showcase-gap: var(--cs-spacing-scale-sm);
79
+ --badge-status-item-gap: var(--cs-spacing-scale-sm);
80
+ --badge-status-text-size: var(--cs-fonts-primary-sizes-sm);
81
+ --badge-notification-text-size: var(--cs-fonts-primary-sizes-sm);
82
+ --badge-category-title-size: var(--cs-fonts-primary-sizes-lg);
83
+ --badge-category-title-weight: var(--cs-fonts-primary-weights-semibold);
84
+ --badge-category-grid-gap: var(--cs-spacing-scale-sm);
85
+ --badge-responsive-grid-gap: var(--cs-spacing-scale-md);
86
+ --badge-responsive-title-size: var(--cs-fonts-primary-sizes-md);
87
+ --badge-responsive-title-weight: var(--cs-fonts-primary-weights-medium);
88
+ --badge-responsive-badges-gap: var(--cs-spacing-scale-sm);
89
+ }
90
+
91
+ /* Base Badge Component - Using Original Poker Project Styling */
92
+ .badge {
93
+ /* Layout */
94
+ display: inline-flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+
98
+ /* Sizing */
99
+ min-height: var(--cs-spacing-scale-lg);
100
+ padding: var(--cs-spacing-scale-xs) var(--cs-spacing-scale-sm);
101
+
102
+ /* Typography */
103
+ font-family: var(--cs-fonts-primary-family);
104
+ font-size: var(--cs-fonts-primary-sizes-xs);
105
+ font-weight: var(--cs-fonts-primary-weights-semibold);
106
+ line-height: var(--cs-fonts-primary-line-heights-tight);
107
+
108
+ /* Visual Styling */
109
+ border: var(--cs-spacing-scale-xs) solid var(--cs-colors-border-transparent);
110
+ border-radius: var(--cs-border-radius-full);
111
+
112
+ /* Transitions */
113
+ transition: var(--cs-transitions-properties-colors);
114
+
115
+ /* Focus Management */
116
+ outline: none;
117
+ cursor: default;
118
+ }
119
+
120
+ /* Badge Variants - Using Original Poker Project Colors */
121
+ .badge--default {
122
+ background-color: var(--badge-default-background, var(--cs-colors-primary-500));
123
+ color: var(--badge-default-text, var(--cs-colors-text-inverse));
124
+ border-color: var(--badge-default-border);
125
+ }
126
+
127
+ .badge--secondary {
128
+ background-color: var(--badge-secondary-background, var(--cs-colors-surface-surface));
129
+ color: var(--badge-secondary-text, var(--cs-colors-text-primary));
130
+ border-color: var(--badge-secondary-border, var(--cs-colors-surface-border));
131
+ }
132
+
133
+ .badge--destructive {
134
+ background-color: var(--badge-destructive-background, var(--cs-colors-semantic-error));
135
+ color: var(--badge-destructive-text, var(--cs-colors-text-inverse));
136
+ border-color: var(--badge-destructive-border, var(--cs-colors-semantic-error));
137
+ }
138
+
139
+ .badge--outline {
140
+ background-color: var(--badge-outline-background);
141
+ color: var(--badge-outline-text, var(--cs-colors-text-primary));
142
+ border-color: var(--badge-outline-border, var(--cs-colors-surface-border));
143
+ }
144
+
145
+ /* Interactive States - Using Original Poker Project Colors */
146
+ .badge[tabindex]:hover,
147
+ .badge[role="button"]:hover,
148
+ .badge[role="link"]:hover {
149
+ transform: var(--badge-hover-transform, translateY(calc(-1 * var(--cs-spacing-scale-xs))));
150
+ box-shadow: var(--badge-hover-shadow, var(--cs-shadows-md));
151
+ }
152
+
153
+ /* Hover States for Specific Variants - Matching Original Project */
154
+ .badge--default:hover {
155
+ background-color: var(--badge-default-hover, var(--cs-colors-primary-hover));
156
+ }
157
+
158
+ .badge--secondary:hover {
159
+ background-color: var(--badge-secondary-hover, var(--cs-colors-interactive-hover));
160
+ }
161
+
162
+ .badge--destructive:hover {
163
+ background-color: var(--badge-destructive-hover);
164
+ }
165
+
166
+ .badge--outline:hover {
167
+ background-color: var(--badge-outline-hover, var(--cs-colors-interactive-hover));
168
+ border-color: var(--badge-outline-hover-border, var(--cs-colors-surface-border));
169
+ }
170
+
171
+ .badge[tabindex]:focus,
172
+ .badge[role="button"]:focus,
173
+ .badge[role="link"]:focus {
174
+ outline: none;
175
+ box-shadow: 0 0 0 var(--cs-spacing-scale-xs) var(--cs-colors-interactive-focus), 0 0 0 var(--cs-spacing-scale-sm) var(--cs-colors-text-inverse);
176
+ }
177
+
178
+ .badge[tabindex]:active,
179
+ .badge[role="button"]:active,
180
+ .badge[role="link"]:active {
181
+ transform: var(--badge-active-transform, translateY(0));
182
+ box-shadow: var(--badge-active-shadow, var(--cs-shadow-sm));
183
+ }
184
+
185
+ /* Focus Ring for Accessibility */
186
+ .badge:focus-visible {
187
+ outline: none;
188
+ box-shadow: 0 0 0 var(--cs-spacing-scale-xs) var(--cs-colors-interactive-focus), 0 0 0 var(--cs-spacing-scale-sm) var(--cs-colors-text-inverse);
189
+ }
190
+
191
+ /* High Contrast Mode Support */
192
+ @media (prefers-contrast: high) {
193
+ .badge {
194
+ border-width: var(--badge-high-contrast-border-width);
195
+ }
196
+
197
+ .badge--outline {
198
+ border-width: var(--badge-outline-high-contrast-border-width);
199
+ }
200
+ }
201
+
202
+ /* Reduced Motion Support */
203
+ @media (prefers-reduced-motion: reduce) {
204
+ .badge {
205
+ transition: none;
206
+ }
207
+
208
+ .badge[tabindex]:hover,
209
+ .badge[role="button"]:hover,
210
+ .badge[role="link"]:hover {
211
+ transform: none;
212
+ }
213
+ }
214
+
215
+ /* Responsive Design */
216
+ @media (max-width: var(--cs-breakpoints-mobile)) {
217
+ .badge {
218
+ font-size: var(--badge-mobile-font-size, var(--cs-fonts-primary-sizes-xs));
219
+ padding: var(--badge-mobile-padding-y, var(--cs-spacing-scale-xs)) var(--badge-mobile-padding-x, var(--cs-spacing-scale-sm));
220
+ }
221
+ }
222
+
223
+ /* Container Queries for Adaptive Layouts */
224
+ @container (min-width: var(--cs-breakpoints-tablet)) {
225
+ .badge {
226
+ font-size: var(--badge-container-font-size, var(--cs-fonts-primary-sizes-sm));
227
+ }
228
+ }
229
+
230
+ /* Badge Element Modifiers */
231
+ .badge__icon {
232
+ margin-right: var(--badge-icon-margin, var(--cs-spacing-scale-xs));
233
+ width: var(--badge-icon-size, var(--cs-fonts-primary-sizes-sm));
234
+ height: var(--badge-icon-size, var(--cs-fonts-primary-sizes-sm));
235
+ flex-shrink: 0;
236
+ }
237
+
238
+ .badge__text {
239
+ white-space: nowrap;
240
+ overflow: hidden;
241
+ text-overflow: ellipsis;
242
+ }
243
+
244
+ /* Badge Size Variants */
245
+ .badge--sm {
246
+ min-height: var(--badge-sm-height, var(--cs-spacing-scale-md));
247
+ padding: var(--badge-sm-padding-y, var(--cs-spacing-scale-xs)) var(--badge-sm-padding-x, var(--cs-spacing-scale-sm));
248
+ font-size: var(--badge-sm-font-size, var(--cs-fonts-primary-sizes-xs));
249
+ }
250
+
251
+ .badge--lg {
252
+ min-height: var(--badge-lg-height, var(--cs-spacing-scale-xl));
253
+ padding: var(--badge-lg-padding-y, var(--cs-spacing-scale-sm)) var(--badge-lg-padding-x, var(--cs-spacing-scale-sm));
254
+ font-size: var(--badge-lg-font-size, var(--cs-fonts-primary-sizes-sm));
255
+ }
256
+
257
+ /* Storybook Showcase Styles */
258
+ /* Badge Showcase Layout */
259
+ .badge-showcase {
260
+ display: flex;
261
+ flex-wrap: wrap;
262
+ gap: var(--badge-showcase-gap, var(--cs-spacing-scale-md));
263
+ align-items: center;
264
+ }
265
+
266
+ /* Status Badge Showcase */
267
+ .badge-status-showcase {
268
+ display: flex;
269
+ flex-direction: column;
270
+ gap: var(--badge-status-showcase-gap, var(--cs-spacing-scale-md));
271
+ }
272
+
273
+ .badge-status-item {
274
+ display: flex;
275
+ align-items: center;
276
+ gap: var(--badge-status-item-gap, var(--cs-spacing-scale-sm));
277
+ }
278
+
279
+ .badge-status-text {
280
+ font-size: var(--badge-status-text-size, var(--cs-fonts-primary-sizes-sm));
281
+ color: var(--cs-text-secondary);
282
+ }
283
+
284
+ /* Notification Badge Showcase */
285
+ .badge-notification-showcase {
286
+ display: flex;
287
+ flex-direction: column;
288
+ gap: var(--badge-notification-gap, var(--cs-spacing-scale-md));
289
+ }
290
+
291
+ .badge-notification-item {
292
+ display: flex;
293
+ align-items: center;
294
+ gap: var(--badge-notification-item-gap, var(--cs-spacing-scale-sm));
295
+ }
296
+
297
+ .badge-notification-text {
298
+ font-size: var(--badge-notification-text-size, var(--cs-fonts-primary-sizes-sm));
299
+ color: var(--cs-text-secondary);
300
+ }
301
+
302
+ /* Category Badge Showcase */
303
+ .badge-category-showcase {
304
+ display: flex;
305
+ flex-direction: column;
306
+ gap: var(--badge-category-gap, var(--cs-spacing-scale-md));
307
+ }
308
+
309
+ .badge-category-section {
310
+ display: flex;
311
+ flex-direction: column;
312
+ gap: var(--badge-category-section-gap, var(--cs-spacing-scale-sm));
313
+ }
314
+
315
+ .badge-category-title {
316
+ font-size: var(--badge-category-title-size, var(--cs-fonts-primary-sizes-lg));
317
+ font-weight: var(--badge-category-title-weight, var(--cs-fonts-primary-weights-semibold));
318
+ margin-bottom: var(--badge-category-title-margin, var(--cs-spacing-scale-sm));
319
+ color: var(--cs-text-primary);
320
+ }
321
+
322
+ .badge-category-grid {
323
+ display: flex;
324
+ flex-wrap: wrap;
325
+ gap: var(--badge-category-grid-gap, var(--cs-spacing-scale-sm));
326
+ }
327
+
328
+ /* Interactive Badge Showcase */
329
+ .badge-interactive-showcase {
330
+ display: flex;
331
+ flex-direction: column;
332
+ gap: var(--badge-interactive-gap, var(--cs-spacing-scale-md));
333
+ }
334
+
335
+ .badge-interactive-grid {
336
+ display: flex;
337
+ flex-wrap: wrap;
338
+ gap: var(--badge-interactive-grid-gap, var(--cs-spacing-scale-sm));
339
+ }
340
+
341
+ .badge-interactive-description {
342
+ font-size: var(--cs-fonts-primary-sizes-sm);
343
+ color: var(--cs-text-muted);
344
+ }
345
+
346
+ /* Badge Size Showcase */
347
+ .badge-size-showcase {
348
+ display: flex;
349
+ flex-direction: column;
350
+ gap: var(--badge-size-gap, var(--cs-spacing-scale-md));
351
+ }
352
+
353
+ .badge-size-grid {
354
+ display: flex;
355
+ align-items: center;
356
+ gap: var(--badge-size-grid-gap, var(--cs-spacing-scale-sm));
357
+ }
358
+
359
+ .badge-size-description {
360
+ font-size: var(--cs-fonts-primary-sizes-sm);
361
+ color: var(--cs-text-muted);
362
+ }
363
+
364
+ /* Badge Icon Showcase */
365
+ .badge-icon-showcase {
366
+ display: flex;
367
+ flex-direction: column;
368
+ gap: var(--badge-icon-gap, var(--cs-spacing-scale-md));
369
+ }
370
+
371
+ .badge-icon-grid {
372
+ display: flex;
373
+ flex-wrap: wrap;
374
+ gap: var(--badge-icon-grid-gap, var(--cs-spacing-scale-sm));
375
+ }
376
+
377
+ .badge-icon-description {
378
+ font-size: var(--cs-fonts-primary-sizes-sm);
379
+ color: var(--cs-text-muted);
380
+ }
381
+
382
+ /* Badge Responsive Showcase */
383
+ .badge-responsive-showcase {
384
+ display: flex;
385
+ flex-direction: column;
386
+ gap: var(--badge-responsive-gap, var(--cs-spacing-scale-md));
387
+ }
388
+
389
+ .badge-responsive-description {
390
+ font-size: var(--cs-fonts-primary-sizes-sm);
391
+ color: var(--cs-text-muted);
392
+ margin-bottom: var(--badge-responsive-description-margin, var(--cs-spacing-scale-sm));
393
+ }
394
+
395
+ .badge-responsive-grid {
396
+ display: grid;
397
+ grid-template-columns: 1fr;
398
+ gap: var(--badge-responsive-grid-gap, var(--cs-spacing-scale-md));
399
+ width: 100%;
400
+ max-width: var(--badge-responsive-grid-max-width, var(--cs-spacing-scale-6xl));
401
+ }
402
+
403
+ .badge-responsive-column {
404
+ display: flex;
405
+ flex-direction: column;
406
+ gap: var(--badge-responsive-column-gap, var(--cs-spacing-scale-sm));
407
+ }
408
+
409
+ .badge-responsive-title {
410
+ font-size: var(--badge-responsive-title-size, var(--cs-fonts-primary-sizes-base));
411
+ font-weight: var(--badge-responsive-title-weight, var(--cs-fonts-primary-weights-medium));
412
+ margin-bottom: var(--badge-responsive-title-margin, var(--cs-spacing-scale-sm));
413
+ color: var(--cs-text-primary);
414
+ }
415
+
416
+ .badge-responsive-badges {
417
+ display: flex;
418
+ flex-wrap: wrap;
419
+ gap: var(--badge-responsive-badges-gap, var(--cs-spacing-scale-sm));
420
+ width: 100%;
421
+ }
422
+
423
+ /* Responsive Design for Showcase */
424
+ @media (min-width: 768px) {
425
+ .badge-responsive-grid {
426
+ grid-template-columns: 1fr 1fr !important;
427
+ }
428
+ }