@bcc-code/design-tokens 1.0.20 → 2.0.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,47 @@
1
+ /**
2
+ * BCC Design Tokens Preset Configuration for PrimeVue v4
3
+ *
4
+ * This preset configuration object extends the Aura theme with BCC design tokens.
5
+ * It maps your core design tokens to PrimeVue's semantic system while
6
+ * keeping Aura's component-specific styling as fallback.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { definePreset } from '@primevue/themes';
11
+ * import Aura from '@primevue/themes/aura';
12
+ * import BCCPresetConfig from '@bcc-code/design-tokens/bcc/primevue';
13
+ *
14
+ * const BCCPreset = definePreset(Aura, BCCPresetConfig);
15
+ *
16
+ * app.use(PrimeVue, {
17
+ * theme: {
18
+ * preset: BCCPreset,
19
+ * options: {
20
+ * darkModeSelector: '.dark'
21
+ * }
22
+ * }
23
+ * });
24
+ * ```
25
+ *
26
+ * @example
27
+ * Make sure to import your CSS tokens first:
28
+ * ```typescript
29
+ * import '@bcc-code/design-tokens/bcc/cdn';
30
+ * ```
31
+ */
32
+
33
+ interface BCCPresetConfig {
34
+ semantic?: {
35
+ primary?: Record<string, string>;
36
+ surface?: Record<string, string>;
37
+ colorScheme?: {
38
+ light?: Record<string, any>;
39
+ dark?: Record<string, any>;
40
+ };
41
+ };
42
+ components?: Record<string, any>;
43
+ }
44
+
45
+ declare const BCCPresetConfig: BCCPresetConfig;
46
+
47
+ export default BCCPresetConfig;
@@ -0,0 +1,299 @@
1
+ /**
2
+ * BCC Design Tokens Preset for PrimeVue v4
3
+ *
4
+ * This preset extends the Aura theme with BCC design tokens.
5
+ * It maps your core design tokens to PrimeVue's semantic system while
6
+ * keeping Aura's component-specific styling as fallback.
7
+ *
8
+ * Usage:
9
+ * ```javascript
10
+ * import PrimeVue from "primevue/config";
11
+ * import { definePreset } from '@primevue/themes';
12
+ * import Aura from '@primevue/themes/aura';
13
+ * import BCCPresetConfig from '@bcc-code/design-tokens/bcc/primevue';
14
+ *
15
+ * const BCCPreset = definePreset(Aura, BCCPresetConfig);
16
+ *
17
+ * app.use(PrimeVue, {
18
+ * theme: {
19
+ * preset: BCCPreset,
20
+ * options: {
21
+ * darkModeSelector: '.dark'
22
+ * }
23
+ * },
24
+ * });
25
+ *
26
+ * app.mount("#app");
27
+ * ```
28
+ *
29
+ * Make sure to import your CSS tokens first:
30
+ * ```javascript
31
+ * import '@bcc-code/design-tokens/bcc/cdn';
32
+ * ```
33
+ */
34
+
35
+ const BCCPresetConfig = {
36
+ semantic: {
37
+ // PRIMARY: Map BCC brand colors to PrimeVue primary system
38
+ primary: {
39
+ 50: "var(--color-bcc-100)", // Lightest tint
40
+ 100: "var(--color-bcc-200)",
41
+ 200: "var(--color-bcc-300)",
42
+ 300: "var(--color-bcc-400)",
43
+ 400: "var(--color-bcc-500)",
44
+ 500: "var(--color-bcc-600)", // Main brand color - primary action color
45
+ 600: "var(--color-bcc-700)",
46
+ 700: "var(--color-bcc-800)",
47
+ 800: "var(--color-bcc-900)",
48
+ 900: "var(--color-bcc-1000)", // Darkest shade
49
+ 950: "var(--color-bcc-1000)", // Extra dark (reuse darkest)
50
+ },
51
+
52
+ // SURFACES: Map your elevation/neutral tokens to PrimeVue surface system
53
+ surface: {
54
+ 0: "var(--color-elevation-surface-default)", // Main background (white/dark)
55
+ 50: "var(--color-elevation-surface-raised-default)", // Slightly elevated (cards)
56
+ 100: "var(--color-elevation-surface-overlay-default)", // Modals, dropdowns
57
+ 200: "var(--color-neutral-200)", // Subtle contrast
58
+ 300: "var(--color-neutral-300)", // Borders, dividers
59
+ 400: "var(--color-neutral-400)", // Disabled elements
60
+ 500: "var(--color-neutral-500)", // Placeholder text
61
+ 600: "var(--color-neutral-600)", // Secondary text
62
+ 700: "var(--color-neutral-700)", // Body text
63
+ 800: "var(--color-neutral-800)", // Headings
64
+ 900: "var(--color-neutral-900)", // High contrast text
65
+ 950: "var(--color-neutral-1100)", // Highest contrast
66
+ },
67
+
68
+ // COLOR SCHEME: Define how colors behave in light and dark modes
69
+ colorScheme: {
70
+ light: {
71
+ // Primary action colors
72
+ primary: {
73
+ color: "var(--color-background-brand-default)",
74
+ contrastColor: "var(--color-text-inverse)",
75
+ hoverColor: "var(--color-background-brand-hover)",
76
+ activeColor: "var(--color-background-brand-pressed)",
77
+ },
78
+
79
+ // Surface colors for light mode
80
+ surface: {
81
+ 0: "var(--color-elevation-surface-default)",
82
+ 50: "var(--color-elevation-surface-raised-default)",
83
+ 100: "var(--color-elevation-surface-overlay-default)",
84
+ 200: "var(--color-neutral-200)",
85
+ 300: "var(--color-neutral-300)",
86
+ 400: "var(--color-neutral-400)",
87
+ 500: "var(--color-neutral-500)",
88
+ 600: "var(--color-neutral-600)",
89
+ 700: "var(--color-neutral-700)",
90
+ 800: "var(--color-neutral-800)",
91
+ 900: "var(--color-neutral-900)",
92
+ 950: "var(--color-neutral-1100)",
93
+ },
94
+
95
+ // Text colors
96
+ text: {
97
+ color: "var(--color-text-default)",
98
+ hoverColor: "var(--color-text-default)",
99
+ mutedColor: "var(--color-text-subtle)",
100
+ highlightColor: "var(--color-text-selected)",
101
+ },
102
+
103
+ // Content areas (forms, panels, etc.)
104
+ content: {
105
+ background: "var(--color-elevation-surface-default)",
106
+ hoverBackground: "var(--color-elevation-surface-hovered)",
107
+ borderColor: "var(--color-border-default)",
108
+ color: "var(--color-text-default)",
109
+ hoverColor: "var(--color-text-default)",
110
+ },
111
+
112
+ // Navigation (menus, breadcrumbs, etc.)
113
+ navigation: {
114
+ list: {
115
+ padding: "var(--space-150)",
116
+ gap: "var(--space-50)",
117
+ },
118
+ item: {
119
+ focusBackground: "var(--color-background-neutral-subtle-hover)",
120
+ activeBackground: "var(--color-background-brand-subtle-default)",
121
+ color: "var(--color-text-default)",
122
+ focusColor: "var(--color-text-default)",
123
+ activeColor: "var(--color-text-selected)",
124
+ padding: "var(--space-150)",
125
+ borderRadius: "var(--border-radius-md)",
126
+ gap: "var(--space-150)",
127
+ icon: {
128
+ color: "var(--color-icon-default)",
129
+ focusColor: "var(--color-icon-default)",
130
+ activeColor: "var(--color-icon-selected)",
131
+ },
132
+ },
133
+ },
134
+ },
135
+
136
+ dark: {
137
+ // Primary colors (same as light - your tokens handle the mode switching)
138
+ primary: {
139
+ color: "var(--color-background-brand-default)",
140
+ contrastColor: "var(--color-text-inverse)",
141
+ hoverColor: "var(--color-background-brand-hover)",
142
+ activeColor: "var(--color-background-brand-pressed)",
143
+ },
144
+
145
+ // Surface colors for dark mode (your CSS variables handle the switching)
146
+ surface: {
147
+ 0: "var(--color-elevation-surface-default)",
148
+ 50: "var(--color-elevation-surface-raised-default)",
149
+ 100: "var(--color-elevation-surface-overlay-default)",
150
+ 200: "var(--color-neutral-200)",
151
+ 300: "var(--color-neutral-300)",
152
+ 400: "var(--color-neutral-400)",
153
+ 500: "var(--color-neutral-500)",
154
+ 600: "var(--color-neutral-600)",
155
+ 700: "var(--color-neutral-700)",
156
+ 800: "var(--color-neutral-800)",
157
+ 900: "var(--color-neutral-900)",
158
+ 950: "var(--color-neutral-1100)",
159
+ },
160
+
161
+ // Text colors (your tokens handle light/dark switching)
162
+ text: {
163
+ color: "var(--color-text-default)",
164
+ hoverColor: "var(--color-text-default)",
165
+ mutedColor: "var(--color-text-subtle)",
166
+ highlightColor: "var(--color-text-selected)",
167
+ },
168
+
169
+ content: {
170
+ background: "var(--color-elevation-surface-default)",
171
+ hoverBackground: "var(--color-elevation-surface-hovered)",
172
+ borderColor: "var(--color-border-default)",
173
+ color: "var(--color-text-default)",
174
+ hoverColor: "var(--color-text-default)",
175
+ },
176
+
177
+ navigation: {
178
+ list: {
179
+ padding: "var(--space-150)",
180
+ gap: "var(--space-50)",
181
+ },
182
+ item: {
183
+ focusBackground: "var(--color-background-neutral-subtle-hover)",
184
+ activeBackground: "var(--color-background-brand-subtle-default)",
185
+ color: "var(--color-text-default)",
186
+ focusColor: "var(--color-text-default)",
187
+ activeColor: "var(--color-text-selected)",
188
+ padding: "var(--space-150)",
189
+ borderRadius: "var(--border-radius-md)",
190
+ gap: "var(--space-150)",
191
+ icon: {
192
+ color: "var(--color-icon-default)",
193
+ focusColor: "var(--color-icon-default)",
194
+ activeColor: "var(--color-icon-selected)",
195
+ },
196
+ },
197
+ },
198
+ },
199
+ },
200
+ },
201
+
202
+ // COMPONENT CUSTOMIZATIONS: Apply your spacing and radius tokens to specific components
203
+ components: {
204
+ // Buttons
205
+ button: {
206
+ borderRadius: "var(--border-radius-md)",
207
+ padding: {
208
+ x: "var(--space-300)", // 24px horizontal padding
209
+ y: "var(--space-150)", // 12px vertical padding
210
+ },
211
+ sm: {
212
+ fontSize: "var(--font-size-sm)",
213
+ padding: {
214
+ x: "var(--space-200)", // 16px horizontal
215
+ y: "var(--space-100)", // 8px vertical
216
+ },
217
+ },
218
+ lg: {
219
+ fontSize: "var(--font-size-lg)",
220
+ padding: {
221
+ x: "var(--space-400)", // 32px horizontal
222
+ y: "var(--space-200)", // 16px vertical
223
+ },
224
+ },
225
+ },
226
+
227
+ // Cards
228
+ card: {
229
+ borderRadius: "var(--border-radius-lg)",
230
+ body: {
231
+ padding: "var(--space-300)",
232
+ gap: "var(--space-200)",
233
+ },
234
+ header: {
235
+ padding: "var(--space-300)",
236
+ },
237
+ footer: {
238
+ padding: "var(--space-300)",
239
+ },
240
+ },
241
+
242
+ // Panels (accordions, fieldsets, etc.)
243
+ panel: {
244
+ borderRadius: "var(--border-radius-lg)",
245
+ header: {
246
+ padding: "var(--space-300)",
247
+ borderRadius: "var(--border-radius-lg) var(--border-radius-lg) 0 0",
248
+ },
249
+ },
250
+
251
+ // Form inputs
252
+ inputtext: {
253
+ borderRadius: "var(--border-radius-md)",
254
+ padding: {
255
+ x: "var(--space-200)",
256
+ y: "var(--space-150)",
257
+ },
258
+ },
259
+
260
+ // Dropdowns and selects
261
+ dropdown: {
262
+ borderRadius: "var(--border-radius-md)",
263
+ padding: {
264
+ x: "var(--space-200)",
265
+ y: "var(--space-150)",
266
+ },
267
+ },
268
+
269
+ // Dialogs and overlays
270
+ dialog: {
271
+ borderRadius: "var(--border-radius-xl)",
272
+ header: {
273
+ padding: "var(--space-400)",
274
+ },
275
+ content: {
276
+ padding: "var(--space-400)",
277
+ },
278
+ footer: {
279
+ padding: "var(--space-400)",
280
+ },
281
+ },
282
+
283
+ // Data tables
284
+ datatable: {
285
+ header: {
286
+ cell: {
287
+ padding: "var(--space-200)",
288
+ },
289
+ },
290
+ body: {
291
+ cell: {
292
+ padding: "var(--space-200)",
293
+ },
294
+ },
295
+ },
296
+ },
297
+ };
298
+
299
+ export default BCCPresetConfig;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ @layer base {
6
+ @variant dark {
7
+
8
+ /* COLOR: TEXT */
9
+ --color-text-default: var(--color-dark-neutral-1100);
10
+ --color-text-subtle: var(--color-dark-neutral-600);
11
+ --color-text-subtler: var(--color-dark-neutral-400);
12
+ --color-text-disabled: var(--color-dark-neutral-alpha-400-a);
13
+ --color-text-selected: var(--color-bcc-400);
14
+ --color-text-inverse: var(--color-dark-neutral-0);
15
+ --color-text-brand: var(--color-bcc-400);
16
+ --color-text-success: var(--color-green-500);
17
+ --color-text-warning: var(--color-red-500);
18
+ --color-text-information: var(--color-neutral-0);
19
+ --color-text-danger: var(--color-neutral-0);
20
+ --color-text-accent-orange-default: var(--color-orange-400);
21
+ --color-text-accent-orange-bold: var(--color-orange-300);
22
+ --color-text-accent-yellow-default: var(--color-red-400);
23
+ --color-text-accent-yellow-bold: var(--color-red-300);
24
+ --color-text-accent-green-default: var(--color-green-400);
25
+ --color-text-accent-green-bold: var(--color-green-300);
26
+ --color-text-accent-teal-default: var(--color-teal-400);
27
+ --color-text-accent-teal-bold: var(--color-teal-300);
28
+ --color-text-accent-brown-default: var(--color-brown-400);
29
+ --color-text-accent-brown-bold: var(--color-brown-300);
30
+ --color-text-accent-blue-default: var(--color-blue-400);
31
+ --color-text-accent-blue-bold: var(--color-blue-300);
32
+ --color-text-accent-purple-default: var(--color-purple-400);
33
+ --color-text-accent-purple-bold: var(--color-purple-300);
34
+ --color-text-accent-magenta-default: var(--color-magenta-400);
35
+ --color-text-accent-magenta-bold: var(--color-magenta-300);
36
+
37
+ /* COLOR: LINK */
38
+ --color-link-default: var(--color-blue-500);
39
+ --color-link-hover: var(--color-blue-400);
40
+ --color-link-visited-default: var(--color-blue-200);
41
+ --color-link-visited-hover: var(--color-blue-200);
42
+
43
+ /* COLOR: BACKGROUND */
44
+ --color-background-brand-default: var(--color-bcc-500);
45
+ --color-background-brand-hover: var(--color-bcc-400);
46
+ --color-background-brand-pressed: var(--color-bcc-300);
47
+ --color-background-brand-subtler-default: var(--color-bcc-200);
48
+ --color-background-brand-subtler-hover: var(--color-bcc-300);
49
+ --color-background-brand-subtler-pressed: var(--color-bcc-400);
50
+ --color-background-brand-subtle-default: var(--color-bcc-400);
51
+ --color-background-brand-subtle-hover: var(--color-bcc-500);
52
+ --color-background-brand-subtle-pressed: var(--color-bcc-500);
53
+ --color-background-brand-bold-default: var(--color-bcc-300);
54
+ --color-background-brand-bold-hover: var(--color-bcc-200);
55
+ --color-background-brand-bold-pressed: var(--color-bcc-1000);
56
+ --color-background-accent-red-default: var(--color-red-500);
57
+ --color-background-accent-red-hover: var(--color-red-400);
58
+ --color-background-accent-red-pressed: var(--color-red-300);
59
+ --color-background-accent-red-subtler-default: var(--color-red-200);
60
+ --color-background-accent-red-subtler-hover: var(--color-red-300);
61
+ --color-background-accent-red-subtler-pressed: var(--color-red-400);
62
+ --color-background-accent-red-subtle-default: var(--color-red-400);
63
+ --color-background-accent-red-subtle-hover: var(--color-red-500);
64
+ --color-background-accent-red-subtle-pressed: var(--color-red-500);
65
+ --color-background-accent-red-bold-default: var(--color-red-300);
66
+ --color-background-accent-red-bold-hover: var(--color-red-400);
67
+ --color-background-accent-red-bold-pressed: var(--color-red-500);
68
+ --color-background-accent-orange-default: var(--color-orange-500);
69
+ --color-background-accent-orange-hover: var(--color-orange-400);
70
+ --color-background-accent-orange-pressed: var(--color-orange-300);
71
+ --color-background-accent-orange-subtler-default: var(--color-orange-200);
72
+ --color-background-accent-orange-subtler-hover: var(--color-orange-300);
73
+ --color-background-accent-orange-subtler-pressed: var(--color-orange-400);
74
+ --color-background-accent-orange-subtle-default: var(--color-orange-400);
75
+ --color-background-accent-orange-subtle-hover: var(--color-orange-500);
76
+ --color-background-accent-orange-subtle-pressed: var(--color-orange-500);
77
+ --color-background-accent-orange-bold-default: var(--color-orange-300);
78
+ --color-background-accent-orange-bold-hover: var(--color-orange-400);
79
+ --color-background-accent-orange-bold-pressed: var(--color-orange-500);
80
+ --color-background-accent-green-default: var(--color-green-500);
81
+ --color-background-accent-green-hover: var(--color-green-500);
82
+ --color-background-accent-green-pressed: var(--color-green-400);
83
+ --color-background-accent-green-subtler-default: var(--color-green-200);
84
+ --color-background-accent-green-subtler-hover: var(--color-green-300);
85
+ --color-background-accent-green-subtler-pressed: var(--color-green-400);
86
+ --color-background-accent-green-subtle-default: var(--color-green-400);
87
+ --color-background-accent-green-subtle-hover: var(--color-green-500);
88
+ --color-background-accent-green-subtle-pressed: var(--color-green-500);
89
+ --color-background-accent-green-bold-default: var(--color-green-300);
90
+ --color-background-accent-green-bold-hover: var(--color-green-400);
91
+ --color-background-accent-green-bold-pressed: var(--color-green-500);
92
+ --color-background-accent-teal-default: var(--color-teal-500);
93
+ --color-background-accent-teal-hover: var(--color-teal-400);
94
+ --color-background-accent-teal-pressed: var(--color-teal-300);
95
+ --color-background-accent-teal-subtler-default: var(--color-teal-200);
96
+ --color-background-accent-teal-subtler-hover: var(--color-teal-300);
97
+ --color-background-accent-teal-subtle-default: var(--color-teal-400);
98
+ --color-background-accent-teal-bold-default: var(--color-teal-300);
99
+ --color-background-accent-sand-default: var(--color-brown-500);
100
+ --color-background-accent-sand-subtler-default: var(--color-brown-200);
101
+ --color-background-accent-sand-subtler-hover: var(--color-brown-300);
102
+ --color-background-accent-sand-subtle-default: var(--color-brown-400);
103
+ --color-background-accent-sand-bold-default: var(--color-brown-300);
104
+ --color-background-accent-blue-default: var(--color-blue-500);
105
+ --color-background-accent-blue-subtler-default: var(--color-blue-200);
106
+ --color-background-accent-blue-subtle-default: var(--color-blue-400);
107
+ --color-background-accent-blue-bold-default: var(--color-blue-300);
108
+ --color-background-accent-purple-default: var(--color-purple-500);
109
+ --color-background-accent-purple-subtler-default: var(--color-purple-200);
110
+ --color-background-accent-purple-subtle-default: var(--color-purple-400);
111
+ --color-background-accent-purple-bold-default: var(--color-purple-300);
112
+ --color-background-accent-magenta-default: var(--color-magenta-500);
113
+ --color-background-accent-magenta-subtler-default: var(--color-magenta-200);
114
+ --color-background-accent-magenta-subtle-default: var(--color-magenta-400);
115
+ --color-background-accent-magenta-bold-default: var(--color-magenta-300);
116
+ --color-background-neutral-default: var(--color-neutral-alpha-300-a);
117
+ --color-background-neutral-hover: var(--color-neutral-alpha-400-a);
118
+ --color-background-neutral-pressed: var(--color-neutral-alpha-500-a);
119
+ --color-background-neutral-subtle-pressed: var(--color-neutral-alpha-200-a);
120
+ --color-background-neutral-subtle-default: var(--color-dark-neutral-alpha-100-a);
121
+ --color-background-neutral-subtle-hover: var(--color-neutral-alpha-200-a);
122
+ --color-background-neutral-bold-hover: var(--color-neutral-alpha-100-a);
123
+ --color-background-neutral-bold-pressed: var(--color-neutral-alpha-200-a);
124
+
125
+ /* COLOR: BORDER */
126
+ --color-border-default: var(--color-neutral-100);
127
+ --color-border-bold: var(--color-neutral-200);
128
+ --color-border-disabled: var(--color-neutral-100);
129
+ --color-border-selected: var(--color-bcc-500);
130
+ --color-border-accent-red: var(--color-red-500);
131
+ --color-border-accent-orange: var(--color-orange-500);
132
+ --color-border-accent-green: var(--color-green-500);
133
+ --color-border-accent-teal: var(--color-teal-500);
134
+ --color-border-accent-sand: var(--color-brown-500);
135
+ --color-border-accent-blue: var(--color-blue-500);
136
+ --color-border-accent-purple: var(--color-purple-500);
137
+ --color-border-accent-magenta: var(--color-magenta-500);
138
+
139
+ /* COLOR: ICON */
140
+ --color-icon-default: var(--color-neutral-100);
141
+ --color-icon-bold: var(--color-neutral-200);
142
+ --color-icon-disabled: var(--color-neutral-100);
143
+ --color-icon-selected: var(--color-bcc-500);
144
+ --color-icon-accent-red: var(--color-red-500);
145
+ --color-icon-accent-orage: var(--color-orange-500);
146
+ --color-icon-accent-green: var(--color-green-500);
147
+ --color-icon-accent-teal: var(--color-teal-500);
148
+ --color-icon-accent-sand: var(--color-brown-500);
149
+ --color-icon-accent-blue: var(--color-blue-500);
150
+ --color-icon-accent-purple: var(--color-purple-500);
151
+ --color-icon-accent-magenta: var(--color-magenta-500);
152
+
153
+ /* COLOR: ELEVATION */
154
+ --color-elevation-surface-default: var(--color-dark-neutral-100);
155
+ --color-elevation-surface-hovered: var(--color-dark-neutral-200);
156
+ --color-elevation-surface-pressed: var(--color-dark-neutral-300);
157
+ --color-elevation-surface-overlay-default: var(--color-dark-neutral-200);
158
+ --color-elevation-surface-overlay-hovered: var(--color-dark-neutral-300);
159
+ --color-elevation-surface-overlay-pressed: var(--color-dark-neutral-400);
160
+ --color-elevation-surface-raised-default: var(--color-dark-neutral-200);
161
+ --color-elevation-surface-raised-hovered: var(--color-dark-neutral-300);
162
+ --color-elevation-surface-raised-pressed: var(--color-dark-neutral-400);
163
+ --color-elevation-surface-sunken-default: var(--color-dark-neutral-0);
164
+ }
165
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ *
4
+ * Complete Tailwind CSS integration for bcc design tokens.
5
+ * Import this file to get everything you need:
6
+ * - Base Tailwind CSS
7
+ * - Light theme tokens
8
+ * - Dark theme with automatic switching
9
+ * - Utility classes
10
+ */
11
+
12
+ @import "tailwindcss";
13
+ @custom-variant dark (&:where(.dark, .dark *));
14
+
15
+ @import "./light.css";
16
+ @import "./dark.css";
17
+ @import "./utilities.css";