@aziontech/theme 0.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.
Files changed (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +466 -0
  3. package/package.json +52 -0
  4. package/src/azion/_custom.scss +3 -0
  5. package/src/azion/_extensions.scss +37 -0
  6. package/src/azion/_fonts.scss +153 -0
  7. package/src/azion/_variables-widget.scss +400 -0
  8. package/src/azion/_variables.scss +407 -0
  9. package/src/azion/custom/_code.scss +11 -0
  10. package/src/azion/custom/_focus.scss +5 -0
  11. package/src/azion/custom/_scrollbehavior.scss +6 -0
  12. package/src/azion/custom/_selection.scss +4 -0
  13. package/src/azion/custom/_special-button.scss +57 -0
  14. package/src/azion/extended-components/_autocomplete.scss +13 -0
  15. package/src/azion/extended-components/_badge.scss +53 -0
  16. package/src/azion/extended-components/_breadcumb.scss +18 -0
  17. package/src/azion/extended-components/_button.scss +134 -0
  18. package/src/azion/extended-components/_calendar.scss +310 -0
  19. package/src/azion/extended-components/_carousel.scss +9 -0
  20. package/src/azion/extended-components/_checkbox.scss +33 -0
  21. package/src/azion/extended-components/_datatable.scss +130 -0
  22. package/src/azion/extended-components/_dialog.scss +45 -0
  23. package/src/azion/extended-components/_divider.scss +37 -0
  24. package/src/azion/extended-components/_dropdown.scss +10 -0
  25. package/src/azion/extended-components/_dropdownitem.scss +13 -0
  26. package/src/azion/extended-components/_inlinemessage.scss +10 -0
  27. package/src/azion/extended-components/_inputnumber.scss +40 -0
  28. package/src/azion/extended-components/_inputpassword.scss +4 -0
  29. package/src/azion/extended-components/_inputswitch.scss +53 -0
  30. package/src/azion/extended-components/_listbox.scss +35 -0
  31. package/src/azion/extended-components/_markdown.scss +135 -0
  32. package/src/azion/extended-components/_menuitem.scss +22 -0
  33. package/src/azion/extended-components/_multiselect.scss +167 -0
  34. package/src/azion/extended-components/_overlaypanel.scss +18 -0
  35. package/src/azion/extended-components/_picklist.scss +25 -0
  36. package/src/azion/extended-components/_progressbar.scss +6 -0
  37. package/src/azion/extended-components/_radiobutton.scss +63 -0
  38. package/src/azion/extended-components/_selectbutton.scss +36 -0
  39. package/src/azion/extended-components/_sidebar.scss +28 -0
  40. package/src/azion/extended-components/_splitbutton.scss +22 -0
  41. package/src/azion/extended-components/_tabmenu.scss +21 -0
  42. package/src/azion/extended-components/_tabview.scss +41 -0
  43. package/src/azion/extended-components/_tag.scss +47 -0
  44. package/src/azion/extended-components/_toast.scss +9 -0
  45. package/src/azion/extended-components/_tooltip.scss +7 -0
  46. package/src/azion/extended-components/_treeselect.scss +10 -0
  47. package/src/azion/extended-components/jsonform/_inputcheckbox.scss +41 -0
  48. package/src/azion/extended-components/jsonform/_inputtext.scss +26 -0
  49. package/src/azion/extended-components/jsonform/_label.scss +185 -0
  50. package/src/azion/extended-components/jsonform/_select.scss +34 -0
  51. package/src/azion/theme-base/_colors.scss +18 -0
  52. package/src/azion/theme-base/_common.scss +75 -0
  53. package/src/azion/theme-base/_components.scss +103 -0
  54. package/src/azion/theme-base/_mixins.scss +250 -0
  55. package/src/azion/theme-base/components/button/_button.scss +567 -0
  56. package/src/azion/theme-base/components/button/_speeddial.scss +97 -0
  57. package/src/azion/theme-base/components/button/_splitbutton.scss +390 -0
  58. package/src/azion/theme-base/components/data/_carousel.scss +37 -0
  59. package/src/azion/theme-base/components/data/_datatable.scss +347 -0
  60. package/src/azion/theme-base/components/data/_dataview.scss +47 -0
  61. package/src/azion/theme-base/components/data/_filter.scss +138 -0
  62. package/src/azion/theme-base/components/data/_orderlist.scss +70 -0
  63. package/src/azion/theme-base/components/data/_organizationchart.scss +50 -0
  64. package/src/azion/theme-base/components/data/_paginator.scss +92 -0
  65. package/src/azion/theme-base/components/data/_picklist.scss +70 -0
  66. package/src/azion/theme-base/components/data/_timeline.scss +38 -0
  67. package/src/azion/theme-base/components/data/_tree.scss +90 -0
  68. package/src/azion/theme-base/components/data/_treetable.scss +251 -0
  69. package/src/azion/theme-base/components/file/_fileupload.scss +82 -0
  70. package/src/azion/theme-base/components/input/_autocomplete.scss +114 -0
  71. package/src/azion/theme-base/components/input/_calendar.scss +251 -0
  72. package/src/azion/theme-base/components/input/_cascadeselect.scss +106 -0
  73. package/src/azion/theme-base/components/input/_checkbox.scss +86 -0
  74. package/src/azion/theme-base/components/input/_chips.scss +53 -0
  75. package/src/azion/theme-base/components/input/_colorpicker.scss +18 -0
  76. package/src/azion/theme-base/components/input/_dropdown.scss +147 -0
  77. package/src/azion/theme-base/components/input/_editor.scss +122 -0
  78. package/src/azion/theme-base/components/input/_inputgroup.scss +74 -0
  79. package/src/azion/theme-base/components/input/_inputnumber.scss +5 -0
  80. package/src/azion/theme-base/components/input/_inputswitch.scss +62 -0
  81. package/src/azion/theme-base/components/input/_inputtext.scss +100 -0
  82. package/src/azion/theme-base/components/input/_listbox.scss +89 -0
  83. package/src/azion/theme-base/components/input/_multiselect.scss +166 -0
  84. package/src/azion/theme-base/components/input/_password.scss +33 -0
  85. package/src/azion/theme-base/components/input/_radiobutton.scss +78 -0
  86. package/src/azion/theme-base/components/input/_rating.scss +60 -0
  87. package/src/azion/theme-base/components/input/_selectbutton.scss +50 -0
  88. package/src/azion/theme-base/components/input/_slider.scss +49 -0
  89. package/src/azion/theme-base/components/input/_togglebutton.scss +52 -0
  90. package/src/azion/theme-base/components/input/_treeselect.scss +91 -0
  91. package/src/azion/theme-base/components/menu/_breadcrumb.scss +42 -0
  92. package/src/azion/theme-base/components/menu/_contextmenu.scss +39 -0
  93. package/src/azion/theme-base/components/menu/_dock.scss +95 -0
  94. package/src/azion/theme-base/components/menu/_megamenu.scss +55 -0
  95. package/src/azion/theme-base/components/menu/_menu.scss +33 -0
  96. package/src/azion/theme-base/components/menu/_menubar.scss +141 -0
  97. package/src/azion/theme-base/components/menu/_panelmenu.scss +153 -0
  98. package/src/azion/theme-base/components/menu/_steps.scss +56 -0
  99. package/src/azion/theme-base/components/menu/_tabmenu.scss +49 -0
  100. package/src/azion/theme-base/components/menu/_tieredmenu.scss +43 -0
  101. package/src/azion/theme-base/components/messages/_inlinemessage.scss +64 -0
  102. package/src/azion/theme-base/components/messages/_message.scss +100 -0
  103. package/src/azion/theme-base/components/messages/_toast.scss +100 -0
  104. package/src/azion/theme-base/components/misc/_avatar.scss +30 -0
  105. package/src/azion/theme-base/components/misc/_badge.scss +48 -0
  106. package/src/azion/theme-base/components/misc/_blockui.scss +0 -0
  107. package/src/azion/theme-base/components/misc/_chip.scss +39 -0
  108. package/src/azion/theme-base/components/misc/_inplace.scss +17 -0
  109. package/src/azion/theme-base/components/misc/_progressbar.scss +17 -0
  110. package/src/azion/theme-base/components/misc/_progressspinner.scss +49 -0
  111. package/src/azion/theme-base/components/misc/_scrolltop.scss +25 -0
  112. package/src/azion/theme-base/components/misc/_skeleton.scss +8 -0
  113. package/src/azion/theme-base/components/misc/_tag.scss +40 -0
  114. package/src/azion/theme-base/components/misc/_terminal.scss +12 -0
  115. package/src/azion/theme-base/components/multimedia/_galleria.scss +151 -0
  116. package/src/azion/theme-base/components/multimedia/_image.scss +54 -0
  117. package/src/azion/theme-base/components/overlay/_confirmpopup.scss +72 -0
  118. package/src/azion/theme-base/components/overlay/_dialog.scss +64 -0
  119. package/src/azion/theme-base/components/overlay/_overlaypanel.scss +38 -0
  120. package/src/azion/theme-base/components/overlay/_sidebar.scss +23 -0
  121. package/src/azion/theme-base/components/overlay/_tooltip.scss +33 -0
  122. package/src/azion/theme-base/components/panel/_accordion.scss +118 -0
  123. package/src/azion/theme-base/components/panel/_card.scss +30 -0
  124. package/src/azion/theme-base/components/panel/_divider.scss +40 -0
  125. package/src/azion/theme-base/components/panel/_fieldset.scss +51 -0
  126. package/src/azion/theme-base/components/panel/_panel.scss +47 -0
  127. package/src/azion/theme-base/components/panel/_scrollpanel.scss +11 -0
  128. package/src/azion/theme-base/components/panel/_splitter.scss +24 -0
  129. package/src/azion/theme-base/components/panel/_tabview.scss +66 -0
  130. package/src/azion/theme-base/components/panel/_toolbar.scss +11 -0
  131. package/src/azion/theme-widget.scss +9 -0
  132. package/src/azion/theme.scss +9 -0
  133. package/src/azion/variables/_button.scss +438 -0
  134. package/src/azion/variables/_data.scss +346 -0
  135. package/src/azion/variables/_form.scss +570 -0
  136. package/src/azion/variables/_general.scss +149 -0
  137. package/src/azion/variables/_media.scss +231 -0
  138. package/src/azion/variables/_menu.scss +287 -0
  139. package/src/azion/variables/_message.scss +145 -0
  140. package/src/azion/variables/_misc.scss +143 -0
  141. package/src/azion/variables/_overlay.scss +67 -0
  142. package/src/azion/variables/_panel.scss +327 -0
  143. package/src/tokens/README.md +345 -0
  144. package/src/tokens/build/css-vars.js +41 -0
  145. package/src/tokens/build/preset.js +69 -0
  146. package/src/tokens/build/refs.js +7 -0
  147. package/src/tokens/build/resolve.js +102 -0
  148. package/src/tokens/build/tailwind-helper.js +12 -0
  149. package/src/tokens/build/tailwind-plugin.js +175 -0
  150. package/src/tokens/colors-brand.js +24 -0
  151. package/src/tokens/index.js +16 -0
  152. package/src/tokens/primitives/brand.js +69 -0
  153. package/src/tokens/primitives/colors.js +133 -0
  154. package/src/tokens/semantic/backgrounds.js +48 -0
  155. package/src/tokens/semantic/borders.js +46 -0
  156. package/src/tokens/semantic/text.js +78 -0
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Tailwind plugin to generate static light/dark utilities from semantic tokens.
3
+ *
4
+ * This plugin emits concrete values for both light and dark themes,
5
+ * supporting:
6
+ * - Background color utilities
7
+ * - Text color utilities
8
+ * - Border color utilities
9
+ * - Both dark selectors (.dark and .azion.azion-dark)
10
+ */
11
+
12
+ // Lazy-require to avoid hard dependency for consumers
13
+ const plugin = (() => {
14
+ try {
15
+ return require('tailwindcss/plugin');
16
+ } catch {
17
+ return (handler) => handler;
18
+ }
19
+ })();
20
+
21
+ import { primitives } from '../primitives/colors.js';
22
+ import { surfacePrimitives, brandPrimitives } from '../primitives/brand.js';
23
+ import { textSemantic } from '../semantic/text.js';
24
+ import { backgroundSemantic } from '../semantic/backgrounds.js';
25
+ import { borderSemantic } from '../semantic/borders.js';
26
+ import { resolveRefsToCssVars } from './resolve.js';
27
+
28
+ const kebab = (value) =>
29
+ value
30
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
31
+ .replace(/_/g, '-')
32
+ .toLowerCase();
33
+
34
+ const stripPrefix = (value, prefix) =>
35
+ value.startsWith(prefix) ? value.slice(prefix.length) : value;
36
+
37
+ const resolveTokenMaps = () =>
38
+ resolveRefsToCssVars({
39
+ primitives,
40
+ surfacePrimitives,
41
+ brandPrimitives,
42
+ textSemantic,
43
+ backgroundSemantic,
44
+ borderSemantic,
45
+ });
46
+
47
+ const getValue = (map, key) => map[`--${key}`];
48
+
49
+ const addUtility = (
50
+ utilities,
51
+ darkUtilities,
52
+ selectors,
53
+ className,
54
+ property,
55
+ lightValue,
56
+ darkValue
57
+ ) => {
58
+ if (lightValue) {
59
+ utilities[className] = { [property]: lightValue };
60
+ }
61
+ if (darkValue) {
62
+ selectors.forEach((selector) => {
63
+ darkUtilities[`${selector} ${className}`] = { [property]: darkValue };
64
+ });
65
+ }
66
+ };
67
+
68
+ /**
69
+ * Generate semantic token utilities for light and dark modes
70
+ *
71
+ * Usage:
72
+ * - Background: bg-layer1, bg-layer2, bg-base, bg-canvas, etc.
73
+ * - Text: text-base, text-muted, text-link, text-primary, etc.
74
+ * - Border: border-base, border-warning, border-danger, border-primary, etc.
75
+ */
76
+ export const tokenUtilities = (options = {}) => {
77
+ const { light, dark } = resolveTokenMaps();
78
+ const darkSelectors = [options.darkSelector ?? '.dark', ...(options.extraDarkSelectors ?? ['.azion.azion-dark'])];
79
+
80
+ const utilities = {};
81
+ const darkUtilities = {};
82
+
83
+ // Background color utilities
84
+ Object.keys(backgroundSemantic.light).forEach((key) => {
85
+ const suffix = kebab(stripPrefix(key, 'bg'));
86
+ const className = `.bg-${suffix}`;
87
+ addUtility(
88
+ utilities,
89
+ darkUtilities,
90
+ darkSelectors,
91
+ className,
92
+ 'backgroundColor',
93
+ getValue(light, `background-${key}`),
94
+ getValue(dark, `background-${key}`)
95
+ );
96
+ });
97
+
98
+ // Text color utilities
99
+ const hasAccent = 'textColorAccent' in textSemantic.light;
100
+ const accentKey = hasAccent ? 'textColorAccent' : 'textColorSecondary';
101
+ const accentHoverKey = hasAccent ? 'textColorAccentHover' : 'textColorSecondaryHover';
102
+
103
+ const textMap = {
104
+ base: 'textColorBase',
105
+ muted: 'textColorMuted',
106
+ link: 'textColorLink',
107
+ code: 'textColorCode',
108
+ 'muted-hover': 'textColorMutedHover',
109
+ 'link-hover': 'textColorLinkHover',
110
+ 'base-hover': 'textColorBaseHover',
111
+ primary: 'textColorPrimary',
112
+ 'primary-hover': 'textColorPrimaryHover',
113
+ accent: accentKey,
114
+ 'accent-hover': accentHoverKey,
115
+ secondary: 'textColorSecondary',
116
+ 'secondary-hover': 'textColorSecondaryHover',
117
+ danger: 'textDanger',
118
+ 'danger-hover': 'textDangerHover',
119
+ warning: 'textWarning',
120
+ 'warning-hover': 'textWarningHover',
121
+ success: 'textSuccess',
122
+ 'success-hover': 'textSuccessHover',
123
+ };
124
+
125
+ Object.entries(textMap).forEach(([name, key]) => {
126
+ const className = `.text-${name}`;
127
+ addUtility(
128
+ utilities,
129
+ darkUtilities,
130
+ darkSelectors,
131
+ className,
132
+ 'color',
133
+ getValue(light, `text-${key}`),
134
+ getValue(dark, `text-${key}`)
135
+ );
136
+ });
137
+
138
+ // Border color utilities
139
+ const borderMap = {
140
+ base: 'borderBase',
141
+ 'base-hover': 'borderBaseHover',
142
+ warning: 'borderWarning',
143
+ success: 'borderSuccess',
144
+ danger: 'borderDanger',
145
+ primary: 'borderPrimary',
146
+ 'primary-hover': 'borderPrimaryHover',
147
+ secondary: 'borderSecondary',
148
+ 'secondary-hover': 'borderSecondaryHover',
149
+ accent: 'borderAccent',
150
+ 'accent-hover': 'borderAccentHover',
151
+ 'warning-hover': 'borderWarningHover',
152
+ 'success-hover': 'borderSuccessHover',
153
+ 'danger-hover': 'borderDangerHover',
154
+ };
155
+
156
+ Object.entries(borderMap).forEach(([name, key]) => {
157
+ const className = `.border-${name}`;
158
+ addUtility(
159
+ utilities,
160
+ darkUtilities,
161
+ darkSelectors,
162
+ className,
163
+ 'borderColor',
164
+ getValue(light, `border-${key}`),
165
+ getValue(dark, `border-${key}`)
166
+ );
167
+ });
168
+
169
+ return plugin(({ addUtilities }) => {
170
+ addUtilities(utilities);
171
+ addUtilities(darkUtilities);
172
+ });
173
+ };
174
+
175
+ export default tokenUtilities;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * BRAND COLORS TOKENS
3
+ *
4
+ * Organized brand colors consuming primitive colors.
5
+ */
6
+
7
+ import { primitives } from './primitives/colors.js';
8
+
9
+ export const brandColors = {
10
+ orange: primitives.orange[500],
11
+ darkOrange: primitives.orange[600],
12
+ lavander: primitives.violet[300],
13
+ darkLavander: primitives.slate[900],
14
+ blackLavander: primitives.slate[950],
15
+ gray: primitives.neutral[200],
16
+ mediumGray: primitives.neutral[500],
17
+ darkGray: primitives.neutral[900],
18
+ white: primitives.neutral[50],
19
+ black: primitives.neutral[950],
20
+ };
21
+
22
+ export default {
23
+ brand: brandColors,
24
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tokens public exports.
3
+ */
4
+
5
+ export * from './primitives/colors.js';
6
+ export * from './primitives/brand.js';
7
+ export * from './colors-brand.js';
8
+ export * from './semantic/text.js';
9
+ export * from './semantic/backgrounds.js';
10
+ export * from './semantic/borders.js';
11
+ export * from './build/refs.js';
12
+ export * from './build/resolve.js';
13
+ export * from './build/css-vars.js';
14
+ export * from './build/preset.js';
15
+ export * from './build/tailwind-helper.js';
16
+ export * from './build/tailwind-plugin.js';
@@ -0,0 +1,69 @@
1
+ /**
2
+ * BRAND + SURFACE PRIMITIVES TOKENS
3
+ *
4
+ * Generated from figma-reference-tokens-studio.
5
+ */
6
+
7
+ import { brandColors } from '../colors-brand.js';
8
+ import { primitives } from './colors.js';
9
+
10
+ // Aliases:
11
+ // - surfaces are neutrals
12
+ // - accent is violet
13
+ export const surfacePrimitives = {
14
+ surface: {
15
+ 0: primitives.base.white,
16
+ 50: primitives.neutral[50],
17
+ 100: primitives.neutral[100],
18
+ 200: primitives.neutral[200],
19
+ 300: primitives.neutral[300],
20
+ 400: primitives.neutral[400],
21
+ 500: primitives.neutral[500],
22
+ 600: primitives.neutral[600],
23
+ 700: primitives.neutral[700],
24
+ 800: primitives.neutral[800],
25
+ 900: primitives.neutral[900],
26
+ 950: primitives.neutral[950]
27
+ }
28
+ };
29
+
30
+ export const brandPrimitives = {
31
+ accent: {
32
+ 50: primitives.violet[50],
33
+ 100: primitives.violet[100],
34
+ 200: primitives.violet[200],
35
+ 300: primitives.violet[300],
36
+ 400: primitives.violet[400],
37
+ 500: primitives.violet[500],
38
+ 600: primitives.violet[600],
39
+ 700: primitives.violet[700],
40
+ 800: primitives.violet[800],
41
+ 900: primitives.violet[900],
42
+ 950: primitives.violet[950]
43
+ },
44
+ primary: {
45
+ 50: primitives.orange[50],
46
+ 100: primitives.orange[100],
47
+ 200: primitives.orange[200],
48
+ 300: primitives.orange[300],
49
+ 400: primitives.orange[400],
50
+ 500: primitives.orange[500],
51
+ 600: primitives.orange[600],
52
+ 700: primitives.orange[700],
53
+ 800: primitives.orange[800],
54
+ 900: primitives.orange[900],
55
+ 950: primitives.orange[950]
56
+ },
57
+ absolute: {
58
+ white: primitives.neutral[50],
59
+ black: primitives.neutral[950]
60
+ }
61
+ };
62
+
63
+ export { brandColors };
64
+
65
+ export default {
66
+ brandColors,
67
+ brandPrimitives,
68
+ surfacePrimitives,
69
+ };
@@ -0,0 +1,133 @@
1
+ /**
2
+ * PRIMITIVE COLORS TOKENS
3
+ *
4
+ * Generated from figma-reference-tokens-studio.
5
+ */
6
+
7
+ export const primitives = {
8
+ base: {
9
+ white: '#ffffff',
10
+ black: '#000000',
11
+ },
12
+ gray: {
13
+ '50': '#f9fafb',
14
+ '100': '#f3f4f6',
15
+ '200': '#e5e7eb',
16
+ '300': '#d1d5db',
17
+ '400': '#9ca3af',
18
+ '500': '#6b7280',
19
+ '600': '#4b5563',
20
+ '700': '#374151',
21
+ '800': '#1f2937',
22
+ '900': '#111827',
23
+ '950': '#030712',
24
+ },
25
+ violet: {
26
+ '50': '#f6f6ff',
27
+ '100': '#ececff',
28
+ '200': '#d9d7fa',
29
+ '300': '#b5b1f4',
30
+ '400': '#9f9af1',
31
+ '500': '#8a84ec',
32
+ '600': '#756fe5',
33
+ '700': '#625bd5',
34
+ '800': '#524bbb',
35
+ '900': '#423f99',
36
+ '950': '#343279',
37
+ },
38
+ orange: {
39
+ '50': '#fff5ef',
40
+ '100': '#ffe7d8',
41
+ '200': '#ffcfb3',
42
+ '300': '#ffb180',
43
+ '400': '#ff8e4d',
44
+ '500': '#fe601f',
45
+ '600': '#d94a03',
46
+ '700': '#b03c02',
47
+ '800': '#8a2f02',
48
+ '900': '#692402',
49
+ '950': '#401602',
50
+ },
51
+ slate: {
52
+ '50': '#f8f7fc',
53
+ '100': '#f0eff8',
54
+ '200': '#e3e1f0',
55
+ '300': '#d3d2e6',
56
+ '400': '#bebbd6',
57
+ '500': '#a39fbe',
58
+ '600': '#8884a4',
59
+ '700': '#6d698b',
60
+ '800': '#534f70',
61
+ '900': '#353040',
62
+ '950': '#13131a',
63
+ },
64
+ yellow: {
65
+ '50': '#fefce8',
66
+ '100': '#fef9c3',
67
+ '200': '#fef08a',
68
+ '300': '#fde047',
69
+ '400': '#facc15',
70
+ '500': '#eab308',
71
+ '600': '#ca8a04',
72
+ '700': '#a16207',
73
+ '800': '#854d0e',
74
+ '900': '#713f12',
75
+ '950': '#422006',
76
+ },
77
+ green: {
78
+ '50': '#f0fdf4',
79
+ '100': '#dcfce7',
80
+ '200': '#bbf7d0',
81
+ '300': '#86efac',
82
+ '400': '#4ade80',
83
+ '500': '#22c55e',
84
+ '600': '#16a34a',
85
+ '700': '#15803d',
86
+ '800': '#166534',
87
+ '900': '#14532d',
88
+ '950': '#052e16',
89
+ },
90
+ blue: {
91
+ '50': '#eff6ff',
92
+ '100': '#dbeafe',
93
+ '200': '#bfdbfe',
94
+ '300': '#93c5fd',
95
+ '400': '#60a5fa',
96
+ '500': '#3b82f6',
97
+ '600': '#2563eb',
98
+ '700': '#1d4ed8',
99
+ '800': '#1e40af',
100
+ '900': '#1e3a8a',
101
+ '950': '#172554',
102
+ },
103
+ neutral: {
104
+ '50': '#fafafa',
105
+ '100': '#f5f5f5',
106
+ '200': '#e5e5e5',
107
+ '300': '#d4d4d4',
108
+ '400': '#a3a3a3',
109
+ '500': '#737373',
110
+ '600': '#525252',
111
+ '700': '#404040',
112
+ '800': '#262626',
113
+ '900': '#171717',
114
+ '950': '#0a0a0a',
115
+ },
116
+ red: {
117
+ '50': '#ffe5e5',
118
+ '100': '#ffcccc',
119
+ '200': '#fecaca',
120
+ '300': '#fca5a5',
121
+ '400': '#f87171',
122
+ '500': '#ef4444',
123
+ '600': '#dc2626',
124
+ '700': '#b91c1c',
125
+ '800': '#991b1b',
126
+ '900': '#7f1d1d',
127
+ '950': '#450a0a',
128
+ },
129
+ };
130
+
131
+ export default {
132
+ primitives,
133
+ };
@@ -0,0 +1,48 @@
1
+ /**
2
+ * SEMANTIC BACKGROUND TOKENS
3
+ *
4
+ * Generated from figma-reference-tokens-studio.
5
+ */
6
+
7
+ import { tokenRef } from '../build/refs.js';
8
+
9
+ export const backgroundSemantic = {
10
+ light: {
11
+ bgLayer1: tokenRef('brand.surfaces.surface-0'),
12
+ bgLayer2: tokenRef('brand.surfaces.surface-50'),
13
+ bgBase: tokenRef('brand.surfaces.surface-0'),
14
+ bgCanvas: tokenRef('brand.surfaces.surface-100'),
15
+ bgLayer1Hover: tokenRef('brand.surfaces.surface-50'),
16
+ bgLayer2Hover: tokenRef('brand.surfaces.surface-100'),
17
+ bgDangerHover: tokenRef('primitives.red.400'),
18
+ bgWarningHover: tokenRef('primitives.yellow.400'),
19
+ bgSuccessHover: tokenRef('primitives.green.400'),
20
+ bgSuccess: tokenRef('primitives.green.200'),
21
+ bgDanger: tokenRef('primitives.red.200'),
22
+ bgWarning: tokenRef('primitives.yellow.200'),
23
+ bgBackdrop: tokenRef('#00000040'),
24
+ bgPrimaryHover: tokenRef('brand.primary.primary-600'),
25
+ bgPrimary: tokenRef('brand.primary.primary-500')
26
+ },
27
+ dark: {
28
+ bgLayer1: tokenRef('brand.surfaces.surface-800'),
29
+ bgLayer2: tokenRef('brand.surfaces.surface-700'),
30
+ bgBase: tokenRef('brand.surfaces.surface-900'),
31
+ bgCanvas: tokenRef('brand.surfaces.surface-950'),
32
+ bgLayer1Hover: tokenRef('brand.surfaces.surface-700'),
33
+ bgLayer2Hover: tokenRef('brand.surfaces.surface-600'),
34
+ bgDangerHover: tokenRef('primitives.red.600'),
35
+ bgWarningHover: tokenRef('primitives.yellow.600'),
36
+ bgSuccessHover: tokenRef('primitives.green.600'),
37
+ bgSuccess: tokenRef('primitives.green.800'),
38
+ bgDanger: tokenRef('primitives.red.800'),
39
+ bgWarning: tokenRef('primitives.yellow.800'),
40
+ bgBackdrop: tokenRef('#00000040'),
41
+ bgPrimaryHover: tokenRef('brand.primary.primary-400'),
42
+ bgPrimary: tokenRef('brand.primary.primary-500')
43
+ },
44
+ };
45
+
46
+ export default {
47
+ backgroundSemantic,
48
+ };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * SEMANTIC BORDER TOKENS
3
+ *
4
+ * Generated from figma-reference-tokens-studio.
5
+ */
6
+
7
+ import { tokenRef } from '../build/refs.js';
8
+
9
+ export const borderSemantic = {
10
+ light: {
11
+ borderBase: tokenRef('brand.surfaces.surface-200'),
12
+ borderBaseHover: tokenRef('primitives.base.black'),
13
+ borderWarning: tokenRef('primitives.yellow.600'),
14
+ borderSuccess: tokenRef('primitives.green.600'),
15
+ borderDanger: tokenRef('primitives.red.600'),
16
+ borderPrimary: tokenRef('brand.primary.primary-500'),
17
+ borderSecondary: tokenRef('primitives.violet.500'),
18
+ borderWarningHover: tokenRef('primitives.yellow.500'),
19
+ borderSuccessHover: tokenRef('primitives.green.500'),
20
+ borderDangerHover: tokenRef('primitives.red.500'),
21
+ borderPrimaryHover: tokenRef('brand.primary.primary-600'),
22
+ borderSecondaryHover: tokenRef('primitives.violet.600'),
23
+ borderAccent: tokenRef('brand.accent.accent-500'),
24
+ borderAccentHover: tokenRef('brand.accent.accent-600')
25
+ },
26
+ dark: {
27
+ borderBase: tokenRef('brand.surfaces.surface-700'),
28
+ borderBaseHover: tokenRef('primitives.base.white'),
29
+ borderWarning: tokenRef('primitives.yellow.400'),
30
+ borderSuccess: tokenRef('primitives.green.400'),
31
+ borderDanger: tokenRef('primitives.red.400'),
32
+ borderPrimary: tokenRef('brand.primary.primary-500'),
33
+ borderSecondary: tokenRef('primitives.violet.500'),
34
+ borderWarningHover: tokenRef('primitives.yellow.500'),
35
+ borderSuccessHover: tokenRef('primitives.green.500'),
36
+ borderDangerHover: tokenRef('primitives.red.500'),
37
+ borderPrimaryHover: tokenRef('brand.primary.primary-400'),
38
+ borderSecondaryHover: tokenRef('primitives.violet.400'),
39
+ borderAccent: tokenRef('brand.accent.accent-500'),
40
+ borderAccentHover: tokenRef('brand.accent.accent-400')
41
+ },
42
+ };
43
+
44
+ export default {
45
+ borderSemantic,
46
+ };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * SEMANTIC TEXT TOKENS
3
+ *
4
+ * Generated from figma-reference-tokens-studio.
5
+ */
6
+
7
+ import { tokenRef } from '../build/refs.js';
8
+
9
+ export const textSemantic = {
10
+ light: {
11
+ textColorBase: tokenRef('primitives.neutral.900'),
12
+ textColorMuted: tokenRef('primitives.neutral.600'),
13
+ textColorLink: tokenRef('primitives.blue.600'),
14
+ textColorCode: tokenRef('primitives.neutral.600'),
15
+ textColorMutedHover: tokenRef('primitives.neutral.500'),
16
+ textColorLinkHover: tokenRef('primitives.blue.700'),
17
+ textColorBaseHover: tokenRef('primitives.neutral.800'),
18
+ textColorPrimary: tokenRef('brand.primary.primary-500'),
19
+ textColorPrimaryHover: tokenRef('brand.primary.primary-600'),
20
+ textColorSecondary: tokenRef('primitives.violet.500'),
21
+ textColorSecondaryHover: tokenRef('primitives.violet.600'),
22
+ textColorAccent: tokenRef('brand.accent.accent-500'),
23
+ textColorAccentHover: tokenRef('brand.accent.accent-600'),
24
+ textBase: tokenRef('primitives.neutral.900'),
25
+ textMuted: tokenRef('primitives.neutral.600'),
26
+ textLink: tokenRef('primitives.blue.600'),
27
+ textCode: tokenRef('primitives.neutral.600'),
28
+ textMutedHover: tokenRef('primitives.neutral.500'),
29
+ textLinkHover: tokenRef('primitives.blue.700'),
30
+ textBaseHover: tokenRef('primitives.neutral.800'),
31
+ textPrimary: tokenRef('brand.primary.primary-500'),
32
+ textPrimaryHover: tokenRef('brand.primary.primary-600'),
33
+ textAccent: tokenRef('brand.accent.accent-500'),
34
+ textAccentHover: tokenRef('brand.accent.accent-600'),
35
+ textDangerHover: tokenRef('primitives.red.500'),
36
+ textWarningHover: tokenRef('primitives.yellow.500'),
37
+ textSuccessHover: tokenRef('primitives.green.500'),
38
+ textSuccess: tokenRef('primitives.green.600'),
39
+ textDanger: tokenRef('primitives.red.600'),
40
+ textWarning: tokenRef('primitives.yellow.600')
41
+ },
42
+ dark: {
43
+ textColorBase: tokenRef('primitives.neutral.50'),
44
+ textColorMuted: tokenRef('primitives.neutral.400'),
45
+ textColorLink: tokenRef('primitives.blue.300'),
46
+ textColorCode: tokenRef('primitives.neutral.400'),
47
+ textColorMutedHover: tokenRef('primitives.neutral.500'),
48
+ textColorLinkHover: tokenRef('primitives.blue.300'),
49
+ textColorBaseHover: tokenRef('primitives.neutral.200'),
50
+ textColorPrimary: tokenRef('brand.primary.primary-500'),
51
+ textColorPrimaryHover: tokenRef('brand.primary.primary-400'),
52
+ textColorSecondary: tokenRef('primitives.violet.500'),
53
+ textColorSecondaryHover: tokenRef('primitives.violet.400'),
54
+ textColorAccent: tokenRef('brand.accent.accent-500'),
55
+ textColorAccentHover: tokenRef('brand.accent.accent-400'),
56
+ textBase: tokenRef('primitives.neutral.50'),
57
+ textMuted: tokenRef('primitives.neutral.400'),
58
+ textLink: tokenRef('primitives.blue.300'),
59
+ textCode: tokenRef('primitives.neutral.400'),
60
+ textMutedHover: tokenRef('primitives.neutral.500'),
61
+ textLinkHover: tokenRef('primitives.blue.300'),
62
+ textBaseHover: tokenRef('primitives.neutral.200'),
63
+ textPrimary: tokenRef('brand.primary.primary-500'),
64
+ textPrimaryHover: tokenRef('brand.primary.primary-400'),
65
+ textAccent: tokenRef('brand.accent.accent-500'),
66
+ textAccentHover: tokenRef('brand.accent.accent-400'),
67
+ textDangerHover: tokenRef('primitives.red.500'),
68
+ textWarningHover: tokenRef('primitives.yellow.500'),
69
+ textSuccessHover: tokenRef('primitives.green.500'),
70
+ textSuccess: tokenRef('primitives.green.400'),
71
+ textDanger: tokenRef('primitives.red.400'),
72
+ textWarning: tokenRef('primitives.yellow.400')
73
+ },
74
+ };
75
+
76
+ export default {
77
+ textSemantic,
78
+ };