@nexus-cross/design-system 1.1.1 → 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.
Files changed (47) hide show
  1. package/claude-rules/nexus/CLAUDE.md +102 -6
  2. package/cursor-rules/CLAUDE.md +38 -9
  3. package/cursor-rules/nexus-project-setup.mdc +80 -19
  4. package/cursor-rules/nexus-ui-api.mdc +8 -2
  5. package/dist/chunks/{chunk-NZHK76R3.js → chunk-LYPBQI3Y.js} +31 -6
  6. package/dist/chunks/{chunk-6BWOKTVQ.mjs → chunk-WZFKTTVX.mjs} +31 -6
  7. package/dist/components/NxImage.d.ts.map +1 -1
  8. package/dist/index.js +22 -23
  9. package/dist/index.mjs +4 -5
  10. package/dist/modal/index.js +11 -11
  11. package/dist/modal/index.mjs +2 -2
  12. package/dist/nx-image.js +2 -2
  13. package/dist/nx-image.mjs +1 -1
  14. package/dist/tailwind-v4.css +19 -0
  15. package/dist/tokens/TOKENS.md +426 -0
  16. package/dist/tokens/company.css +410 -0
  17. package/dist/tokens/css.css +405 -0
  18. package/dist/tokens/data/borderWidth.json +38 -0
  19. package/dist/tokens/data/breakpoint.json +23 -0
  20. package/dist/tokens/data/color.json +973 -0
  21. package/dist/tokens/data/index.ts +63 -0
  22. package/dist/tokens/data/motion.json +64 -0
  23. package/dist/tokens/data/opacity.json +65 -0
  24. package/dist/tokens/data/radius.json +25 -0
  25. package/dist/tokens/data/shadow.json +76 -0
  26. package/dist/tokens/data/size.json +46 -0
  27. package/dist/tokens/data/space.json +86 -0
  28. package/dist/tokens/data/typography.json +626 -0
  29. package/dist/tokens/data/zIndex.json +22 -0
  30. package/dist/tokens/index.d.ts +11 -0
  31. package/dist/tokens/index.d.ts.map +1 -0
  32. package/dist/tokens/index.js +12 -0
  33. package/dist/tokens/index.mjs +1 -0
  34. package/dist/tokens/tailwind.js +260 -0
  35. package/dist/tokens-domains/data/index.ts +16 -0
  36. package/dist/tokens-domains/data/prediction/domain.json +324 -0
  37. package/dist/tokens-domains/index.d.ts +12 -0
  38. package/dist/tokens-domains/index.d.ts.map +1 -0
  39. package/dist/tokens-domains/index.js +12 -0
  40. package/dist/tokens-domains/index.mjs +1 -0
  41. package/dist/tokens-domains/prediction-vars.css +154 -0
  42. package/dist/tokens-domains/prediction.css +153 -0
  43. package/dist/tokens-domains/prediction.md +70 -0
  44. package/dist/tokens-domains/tailwind.js +59 -0
  45. package/package.json +27 -6
  46. package/dist/chunks/{chunk-5ZVPTIL3.mjs → chunk-3VFBPFZF.mjs} +1 -1
  47. package/dist/chunks/{chunk-7F4SOLAC.js → chunk-U53UA76K.js} +1 -1
@@ -1,51 +1,51 @@
1
1
  'use strict';
2
2
 
3
- var chunk7F4SOLAC_js = require('../chunks/chunk-7F4SOLAC.js');
3
+ var chunkU53UA76K_js = require('../chunks/chunk-U53UA76K.js');
4
+ require('../chunks/chunk-HHXDOKXY.js');
4
5
  require('../chunks/chunk-NHDGKOAM.js');
5
6
  require('../chunks/chunk-T2IY2TSR.js');
6
7
  require('../chunks/chunk-XEHFB62A.js');
7
8
  require('../chunks/chunk-INP2AH3B.js');
8
9
  var chunkHUPAHDJ7_js = require('../chunks/chunk-HUPAHDJ7.js');
9
- require('../chunks/chunk-HHXDOKXY.js');
10
10
  require('../chunks/chunk-CZC76ZD5.js');
11
11
 
12
12
 
13
13
 
14
14
  Object.defineProperty(exports, "ModalContainer", {
15
15
  enumerable: true,
16
- get: function () { return chunk7F4SOLAC_js.ModalContainer_default; }
16
+ get: function () { return chunkU53UA76K_js.ModalContainer_default; }
17
17
  });
18
18
  Object.defineProperty(exports, "ModalPortalTarget", {
19
19
  enumerable: true,
20
- get: function () { return chunk7F4SOLAC_js.ModalPortalTarget_default; }
20
+ get: function () { return chunkU53UA76K_js.ModalPortalTarget_default; }
21
21
  });
22
22
  Object.defineProperty(exports, "ModalTemplate", {
23
23
  enumerable: true,
24
- get: function () { return chunk7F4SOLAC_js.ModalTemplate_default; }
24
+ get: function () { return chunkU53UA76K_js.ModalTemplate_default; }
25
25
  });
26
26
  Object.defineProperty(exports, "checkModal", {
27
27
  enumerable: true,
28
- get: function () { return chunk7F4SOLAC_js.checkModal; }
28
+ get: function () { return chunkU53UA76K_js.checkModal; }
29
29
  });
30
30
  Object.defineProperty(exports, "closeModal", {
31
31
  enumerable: true,
32
- get: function () { return chunk7F4SOLAC_js.closeModal; }
32
+ get: function () { return chunkU53UA76K_js.closeModal; }
33
33
  });
34
34
  Object.defineProperty(exports, "getModalDefaultOption", {
35
35
  enumerable: true,
36
- get: function () { return chunk7F4SOLAC_js.getModalDefaultOption; }
36
+ get: function () { return chunkU53UA76K_js.getModalDefaultOption; }
37
37
  });
38
38
  Object.defineProperty(exports, "modal", {
39
39
  enumerable: true,
40
- get: function () { return chunk7F4SOLAC_js.openModal; }
40
+ get: function () { return chunkU53UA76K_js.openModal; }
41
41
  });
42
42
  Object.defineProperty(exports, "openModal", {
43
43
  enumerable: true,
44
- get: function () { return chunk7F4SOLAC_js.openModal; }
44
+ get: function () { return chunkU53UA76K_js.openModal; }
45
45
  });
46
46
  Object.defineProperty(exports, "resetModal", {
47
47
  enumerable: true,
48
- get: function () { return chunk7F4SOLAC_js.resetModal; }
48
+ get: function () { return chunkU53UA76K_js.resetModal; }
49
49
  });
50
50
  Object.defineProperty(exports, "useModal", {
51
51
  enumerable: true,
@@ -1,8 +1,8 @@
1
- export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from '../chunks/chunk-5ZVPTIL3.mjs';
1
+ export { ModalContainer_default as ModalContainer, ModalPortalTarget_default as ModalPortalTarget, ModalTemplate_default as ModalTemplate, checkModal, closeModal, getModalDefaultOption, openModal as modal, openModal, resetModal } from '../chunks/chunk-3VFBPFZF.mjs';
2
+ import '../chunks/chunk-U56AGSLE.mjs';
2
3
  import '../chunks/chunk-4J3GCZ7W.mjs';
3
4
  import '../chunks/chunk-54IA2P2Z.mjs';
4
5
  import '../chunks/chunk-YEWKPWK3.mjs';
5
6
  import '../chunks/chunk-OTGS6BDQ.mjs';
6
7
  export { useModal } from '../chunks/chunk-6H7V2I3X.mjs';
7
- import '../chunks/chunk-U56AGSLE.mjs';
8
8
  import '../chunks/chunk-MCKOWMLS.mjs';
package/dist/nx-image.js CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkNZHK76R3_js = require('./chunks/chunk-NZHK76R3.js');
3
+ var chunkLYPBQI3Y_js = require('./chunks/chunk-LYPBQI3Y.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "NxImage", {
9
9
  enumerable: true,
10
- get: function () { return chunkNZHK76R3_js.NxImage; }
10
+ get: function () { return chunkLYPBQI3Y_js.NxImage; }
11
11
  });
package/dist/nx-image.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { NxImage } from './chunks/chunk-6BWOKTVQ.mjs';
1
+ export { NxImage } from './chunks/chunk-WZFKTTVX.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * @nexus-cross/design-system — Tailwind v4 Single-Import Preset
3
+ *
4
+ * Use after `@import 'tailwindcss';` in your app's globals.css:
5
+ *
6
+ * @import 'tailwindcss';
7
+ * @import '@nexus-cross/design-system/tailwind-v4.css';
8
+ *
9
+ * Loads NEXUS company tokens (vendored sub-path) and design-system component
10
+ * CSS into Tailwind's `components` layer (Tailwind order: base < components <
11
+ * utilities), so `className="bg-red-500"` overrides ALWAYS win over component
12
+ * styles.
13
+ *
14
+ * Need domain tokens? Add a third import in your globals.css:
15
+ * @import '@nexus-cross/design-system/tokens-domains/prediction.css';
16
+ */
17
+
18
+ @import './tokens/company.css';
19
+ @import './styles.css' layer(components);
@@ -0,0 +1,426 @@
1
+ # @nexus-cross/tokens — Design Token Reference
2
+
3
+ > NEXUS design token reference for AI coding assistants.
4
+ > Includes Tailwind v4 utility classes and CSS variables.
5
+
6
+ ## Installation & Usage
7
+
8
+ ### Tailwind v4 (Recommended)
9
+ ```css
10
+ @import "tailwindcss";
11
+ @import "@nexus-cross/tokens/company.css";
12
+ ```
13
+
14
+ ### Tailwind v3
15
+ ```js
16
+ // tailwind.config.js
17
+ module.exports = {
18
+ presets: [require("@nexus-cross/tokens/tailwind")],
19
+ };
20
+ ```
21
+
22
+ ### Plain CSS (without Tailwind)
23
+ ```css
24
+ @import "@nexus-cross/tokens/css";
25
+ ```
26
+
27
+ ### JS/TS API
28
+ ```ts
29
+ import { getTheme } from "@nexus-cross/tokens";
30
+ const { semantic } = getTheme("dark");
31
+ // semantic.bg.default.base → "#1E232E"
32
+ ```
33
+
34
+ ## Color Tokens (@theme → Tailwind Classes)
35
+
36
+ ### Background
37
+
38
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
39
+ |---|---|---|---|---|
40
+ | `bg-bg-default` | `--color-bg-default` | Default background | `#FFFFFF` | `#1E232E` |
41
+ | `bg-bg-subtle` | `--color-bg-subtle` | Subtle background | `#F3F6F8` | `#161A21` |
42
+ | `bg-bg-strong` | `--color-bg-strong` | Strong background | `#EAEDEE` | `#000000` |
43
+
44
+ ### Surface
45
+
46
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
47
+ |---|---|---|---|---|
48
+ | `bg-surface-default` | `--color-surface-default` | Default surface | `#FFFFFF` | `#1E232E` |
49
+ | `bg-surface-default-dim` | `--color-surface-default-dim` | Default surface - dim | `#F3F6F8` | `#161A21` |
50
+ | `bg-surface-default-hover` | `--color-surface-default-hover` | Default surface - hover | `#F3F6F8` | `#252B39` |
51
+ | `bg-surface-default-pressed` | `--color-surface-default-pressed` | Default surface - pressed | `#EAEDEE` | `#363B4C` |
52
+ | `bg-surface-default-disabled` | `--color-surface-default-disabled` | Default surface - disabled | `#EAEDEE` | `#363B4C` |
53
+ | `bg-surface-subtle` | `--color-surface-subtle` | Subtle surface | `#F3F6F8` | `#252B39` |
54
+ | `bg-surface-subtle-hover` | `--color-surface-subtle-hover` | Subtle surface - hover | `#EAEDEE` | `#363B4C` |
55
+ | `bg-surface-strong` | `--color-surface-strong` | Strong surface | `#EAEDEE` | `#363B4C` |
56
+ | `bg-surface-inverted` | `--color-surface-inverted` | Inverted surface | `#161A21` | `#F3F6F8` |
57
+
58
+ ### Text
59
+
60
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
61
+ |---|---|---|---|---|
62
+ | `text-text-highlight` | `--color-text-highlight` | Highlight text | `#000000` | `#FFFFFF` |
63
+ | `text-text-primary` | `--color-text-primary` | Primary text | `#1E232E` | `#EAEDEE` |
64
+ | `text-text-primary-hover` | `--color-text-primary-hover` | Primary text - hover | `#000000` | `#FFFFFF` |
65
+ | `text-text-primary-pressed` | `--color-text-primary-pressed` | Primary text - pressed | `#000000` | `#FFFFFF` |
66
+ | `text-text-secondary` | `--color-text-secondary` | Secondary text | `#7E8597` | `#A2AABA` |
67
+ | `text-text-secondary-hover` | `--color-text-secondary-hover` | Secondary text - hover | `#3B4153` | `#C6D0DA` |
68
+ | `text-text-secondary-pressed` | `--color-text-secondary-pressed` | Secondary text - pressed | `#3B4153` | `#C6D0DA` |
69
+ | `text-text-tertiary` | `--color-text-tertiary` | Tertiary text | `#7E8597` | `#7E8597` |
70
+ | `text-text-tertiary-hover` | `--color-text-tertiary-hover` | Tertiary text - hover | `#62697A` | `#A2AABA` |
71
+ | `text-text-tertiary-pressed` | `--color-text-tertiary-pressed` | Tertiary text - pressed | `#62697A` | `#A2AABA` |
72
+ | `text-text-muted` | `--color-text-muted` | Muted text | `#A2AABA` | `#62697A` |
73
+ | `text-text-inverted` | `--color-text-inverted` | Inverted text | `#FFFFFF` | `#000000` |
74
+
75
+ ### Icon
76
+
77
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
78
+ |---|---|---|---|---|
79
+ | `text-icon-highlight` | `--color-icon-highlight` | Highlight icon | `#000000` | `#FFFFFF` |
80
+ | `text-icon-primary` | `--color-icon-primary` | Primary icon | `#1E232E` | `#EAEDEE` |
81
+ | `text-icon-primary-hover` | `--color-icon-primary-hover` | Primary icon - hover | `#000000` | `#FFFFFF` |
82
+ | `text-icon-primary-pressed` | `--color-icon-primary-pressed` | Primary icon - pressed | `#000000` | `#FFFFFF` |
83
+ | `text-icon-secondary` | `--color-icon-secondary` | Secondary icon | `#7E8597` | `#A2AABA` |
84
+ | `text-icon-secondary-hover` | `--color-icon-secondary-hover` | Secondary icon - hover | `#3B4153` | `#C6D0DA` |
85
+ | `text-icon-secondary-pressed` | `--color-icon-secondary-pressed` | Secondary icon - pressed | `#3B4153` | `#C6D0DA` |
86
+ | `text-icon-tertiary` | `--color-icon-tertiary` | Tertiary icon | `#7E8597` | `#7E8597` |
87
+ | `text-icon-tertiary-hover` | `--color-icon-tertiary-hover` | Tertiary icon - hover | `#62697A` | `#A2AABA` |
88
+ | `text-icon-tertiary-pressed` | `--color-icon-tertiary-pressed` | Tertiary icon - pressed | `#62697A` | `#A2AABA` |
89
+ | `text-icon-muted` | `--color-icon-muted` | Muted icon | `#A2AABA` | `#62697A` |
90
+ | `text-icon-inverted` | `--color-icon-inverted` | Inverted icon | `#FFFFFF` | `#000000` |
91
+
92
+ ### Border
93
+
94
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
95
+ |---|---|---|---|---|
96
+ | `border-border-default` | `--color-border-default` | Default border | `#EAEDEE` | `#3B4153` |
97
+ | `border-border-default-hover` | `--color-border-default-hover` | Default border - hover | `#A2AABA` | `#62697A` |
98
+ | `border-border-default-focus` | `--color-border-default-focus` | Default border - focus | `#62697A` | `#A2AABA` |
99
+ | `border-border-subtle` | `--color-border-subtle` | Subtle border | `#F3F6F8` | `#252B39` |
100
+ | `border-border-medium` | `--color-border-medium` | Medium border | `#C6D0DA` | `#62697A` |
101
+ | `border-border-strong` | `--color-border-strong` | Strong border | `#000000` | `#FFFFFF` |
102
+
103
+ ### Accent
104
+
105
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
106
+ |---|---|---|---|---|
107
+ | `bg-accent-primary` | `--color-accent-primary` | Primary accent | `#09B498` | `#00D5AA` |
108
+ | `bg-accent-primary-hover` | `--color-accent-primary-hover` | Primary accent - hover | `#07C6A6` | `#12DFB6` |
109
+ | `bg-accent-primary-pressed` | `--color-accent-primary-pressed` | Primary accent - pressed | `#0F947E` | `#07C6A6` |
110
+ | `bg-accent-primary-disabled` | `--color-accent-primary-disabled` | Primary accent - disabled | `#CDF4ED` | `#123F3C` |
111
+ | `bg-accent-primary-focus` | `--color-accent-primary-focus` | Primary accent - focus | `#09B498` | `#07C6A6` |
112
+ | `bg-accent-primary-intense` | `--color-accent-primary-intense` | Primary accent - intense | `#0F947E` | `#12DFB6` |
113
+ | `bg-accent-primary-dim` | `--color-accent-primary-dim` | Primary accent - dim | `#83DCC9` | `#0F947E` |
114
+ | `bg-accent-on-primary` | `--color-accent-on-primary` | Foreground on accent | `#FFFFFF` | `#000000` |
115
+ | `bg-accent-secondary` | `--color-accent-secondary` | | `#7346F3` | `#7D4FFF` |
116
+ | `bg-accent-secondary-intense` | `--color-accent-secondary-intense` | | `#7346F3` | `#9975FF` |
117
+ | `bg-accent-secondary-dim` | `--color-accent-secondary-dim` | | `#E0CDF8` | `#7346F3` |
118
+ | `bg-accent-secondary-hover` | `--color-accent-secondary-hover` | | `#7D4FFF` | `#9975FF` |
119
+ | `bg-accent-secondary-pressed` | `--color-accent-secondary-pressed` | | `#9975FF` | `#7346F3` |
120
+ | `bg-accent-secondary-disabled` | `--color-accent-secondary-disabled` | | `#F4EBFF` | `#3A1D7C` |
121
+ | `bg-accent-secondary-focus` | `--color-accent-secondary-focus` | | `#7D4FFF` | `#9975FF` |
122
+ | `bg-accent-on-secondary` | `--color-accent-on-secondary` | | `#FFFFFF` | `#FFFFFF` |
123
+ | `bg-accent-primary-bg` | `--color-accent-primary-bg` | | `#EAFAF6` | `#113535` |
124
+ | `bg-accent-secondary-bg` | `--color-accent-secondary-bg` | | `#F9F5FF` | `#2F1766` |
125
+
126
+ ### Status
127
+
128
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
129
+ |---|---|---|---|---|
130
+ | `bg-status-success` | `--color-status-success` | Success | `#00B784` | `#02D69C` |
131
+ | `bg-status-success-hover` | `--color-status-success-hover` | Success - hover | `#00C890` | `#0BDFA5` |
132
+ | `bg-status-success-pressed` | `--color-status-success-pressed` | Success - pressed | `#1B9674` | `#00C890` |
133
+ | `bg-status-success-disabled` | `--color-status-success-disabled` | Success - disabled | `#CDF4EA` | `#0D4431` |
134
+ | `bg-status-success-intense` | `--color-status-success-intense` | Success - intense | `#1B9674` | `#0BDFA5` |
135
+ | `bg-status-success-dim` | `--color-status-success-dim` | Success - dim | `#9FECD7` | `#1B9674` |
136
+ | `bg-status-warning` | `--color-status-warning` | Warning | `#FF9D00` | `#FFAA00` |
137
+ | `bg-status-warning-hover` | `--color-status-warning-hover` | Warning - hover | `#FFAA00` | `#FF9D00` |
138
+ | `bg-status-warning-pressed` | `--color-status-warning-pressed` | Warning - pressed | `#F9C127` | `#F9C127` |
139
+ | `bg-status-warning-disabled` | `--color-status-warning-disabled` | Warning - disabled | `#FFF2D2` | `#4A3F2B` |
140
+ | `bg-status-warning-intense` | `--color-status-warning-intense` | Warning - intense | `#D9840C` | `#FFAA00` |
141
+ | `bg-status-warning-dim` | `--color-status-warning-dim` | Warning - dim | `#FFDB6E` | `#9F701A` |
142
+ | `bg-status-danger` | `--color-status-danger` | Danger | `#DB0A2D` | `#DB0A2D` |
143
+ | `bg-status-danger-hover` | `--color-status-danger-hover` | Danger - hover | `#E62848` | `#E62848` |
144
+ | `bg-status-danger-pressed` | `--color-status-danger-pressed` | Danger - pressed | `#AF2239` | `#D20625` |
145
+ | `bg-status-danger-disabled` | `--color-status-danger-disabled` | Danger - disabled | `#FDE8EB` | `#5B121E` |
146
+ | `bg-status-danger-intense` | `--color-status-danger-intense` | Danger - intense | `#D20625` | `#EC3C56` |
147
+ | `bg-status-danger-dim` | `--color-status-danger-dim` | Danger - dim | `#FFBBC4` | `#AF2239` |
148
+ | `bg-status-danger-focus` | `--color-status-danger-focus` | Danger - focus | `#E62848` | `#AF2239` |
149
+ | `bg-status-info` | `--color-status-info` | Info | `#0095FF` | `#0095FF` |
150
+ | `bg-status-info-hover` | `--color-status-info-hover` | Info - hover | `#20B1FF` | `#20B1FF` |
151
+ | `bg-status-info-pressed` | `--color-status-info-pressed` | Info - pressed | `#1087FF` | `#1087FF` |
152
+ | `bg-status-info-disabled` | `--color-status-info-disabled` | Info - disabled | `#CCEFFF` | `#143A67` |
153
+ | `bg-status-info-intense` | `--color-status-info-intense` | Info - intense | `#1672D0` | `#20B1FF` |
154
+ | `bg-status-info-dim` | `--color-status-info-dim` | Info - dim | `#92DDFF` | `#1672D0` |
155
+
156
+ ### Overlay
157
+
158
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
159
+ |---|---|---|---|---|
160
+ | `bg-overlay-dim` | `--color-overlay-dim` | | `#000000` | `#000000` |
161
+ | `bg-overlay-light` | `--color-overlay-light` | | `#000000` | `#000000` |
162
+
163
+ ### Static
164
+
165
+ | Tailwind Class | CSS Variable | Purpose | Light | Dark |
166
+ |---|---|---|---|---|
167
+ | `bg-static-white` | `--color-static-white` | Static white | `#FFFFFF` | `#FFFFFF` |
168
+ | `bg-static-black` | `--color-static-black` | Static black | `#000000` | `#000000` |
169
+
170
+ ### Shadow
171
+
172
+ | Tailwind Class | CSS Variable | Value |
173
+ |---|---|---|
174
+ | `shadow-none` | `--shadow-none` | `none` |
175
+ | `shadow-sm` | `--shadow-sm` | `0 1px 2px 0 rgb(0 0 0 / 0.12)` |
176
+ | `shadow-md` | `--shadow-md` | `0 1px 3px 0 rgb(0 0 0 / 0.12)` |
177
+ | `shadow-lg` | `--shadow-lg` | `0 2px 8px -1px rgb(0 0 0 / 0.12)` |
178
+ | `shadow-xl` | `--shadow-xl` | `0 4px 15px -3px rgb(0 0 0 / 0.12)` |
179
+ | `shadow-2xl` | `--shadow-2xl` | `0 5px 25px -5px rgb(0 0 0 / 0.12)` |
180
+
181
+ ### Radius
182
+
183
+ | Tailwind Class | CSS Variable | Value |
184
+ |---|---|---|
185
+ | `rounded-corner-none` | `--radius-corner-none` | `0px` |
186
+ | `rounded-corner-sm` | `--radius-corner-sm` | `4px` |
187
+ | `rounded-corner-md` | `--radius-corner-md` | `8px` |
188
+ | `rounded-corner-lg` | `--radius-corner-lg` | `12px` |
189
+ | `rounded-corner-xl` | `--radius-corner-xl` | `16px` |
190
+ | `rounded-corner-2xl` | `--radius-corner-2xl` | `24px` |
191
+ | `rounded-corner-full` | `--radius-corner-full` | `9999px` |
192
+
193
+ ### Breakpoint
194
+
195
+ | Tailwind Class | CSS Variable | Value |
196
+ |---|---|---|
197
+ | `var(--breakpoint-screen-xs)` | `--breakpoint-screen-xs` | `320px` |
198
+ | `var(--breakpoint-screen-sm)` | `--breakpoint-screen-sm` | `640px` |
199
+ | `var(--breakpoint-screen-md)` | `--breakpoint-screen-md` | `768px` |
200
+ | `var(--breakpoint-screen-lg)` | `--breakpoint-screen-lg` | `1024px` |
201
+ | `var(--breakpoint-screen-xl)` | `--breakpoint-screen-xl` | `1280px` |
202
+ | `var(--breakpoint-screen-2xl)` | `--breakpoint-screen-2xl` | `1440px` |
203
+
204
+ ### Typography
205
+
206
+ | Tailwind Class | CSS Variable | Value |
207
+ |---|---|---|
208
+ | `text-text-xs` | `--text-text-xs` | `0.75rem` |
209
+ | `text-text-sm` | `--text-text-sm` | `0.875rem` |
210
+ | `text-text-base` | `--text-text-base` | `1rem` |
211
+ | `text-text-lg` | `--text-text-lg` | `1.125rem` |
212
+ | `text-text-xl` | `--text-text-xl` | `1.25rem` |
213
+ | `text-text-medium-xs` | `--text-text-medium-xs` | `0.75rem` |
214
+ | `text-text-medium-sm` | `--text-text-medium-sm` | `0.875rem` |
215
+ | `text-text-medium-base` | `--text-text-medium-base` | `1rem` |
216
+ | `text-text-medium-lg` | `--text-text-medium-lg` | `1.125rem` |
217
+ | `text-text-medium-xl` | `--text-text-medium-xl` | `1.25rem` |
218
+ | `text-text-semibold-xs` | `--text-text-semibold-xs` | `0.75rem` |
219
+ | `text-text-semibold-sm` | `--text-text-semibold-sm` | `0.875rem` |
220
+ | `text-text-semibold-base` | `--text-text-semibold-base` | `1rem` |
221
+ | `text-text-semibold-lg` | `--text-text-semibold-lg` | `1.125rem` |
222
+ | `text-text-semibold-xl` | `--text-text-semibold-xl` | `1.25rem` |
223
+ | `text-heading-h7` | `--text-heading-h7` | `0.875rem` |
224
+ | `text-heading-h6` | `--text-heading-h6` | `1rem` |
225
+ | `text-heading-h5` | `--text-heading-h5` | `1.125rem` |
226
+ | `text-heading-h4` | `--text-heading-h4` | `1.25rem` |
227
+ | `text-heading-h3` | `--text-heading-h3` | `1.5rem` |
228
+ | `text-heading-h2` | `--text-heading-h2` | `1.875rem` |
229
+ | `text-heading-h1` | `--text-heading-h1` | `2.25rem` |
230
+ | `text-display-sm` | `--text-display-sm` | `2.25rem` |
231
+ | `text-display-md` | `--text-display-md` | `3rem` |
232
+ | `text-display-lg` | `--text-display-lg` | `3.75rem` |
233
+ | `text-label-sm` | `--text-label-sm` | `0.75rem` |
234
+ | `text-label-md` | `--text-label-md` | `0.875rem` |
235
+ | `text-label-lg` | `--text-label-lg` | `1rem` |
236
+ | `text-label-semibold-sm` | `--text-label-semibold-sm` | `0.75rem` |
237
+ | `text-label-semibold-md` | `--text-label-semibold-md` | `0.875rem` |
238
+ | `text-label-semibold-lg` | `--text-label-semibold-lg` | `1rem` |
239
+
240
+ ### Easing
241
+
242
+ | Tailwind Class | CSS Variable | Value |
243
+ |---|---|---|
244
+ | `ease-transition-instant` | `--ease-transition-instant` | `linear` |
245
+ | `ease-transition-fast` | `--ease-transition-fast` | `cubic-bezier(0, 0, 0.2, 1)` |
246
+ | `ease-transition-normal` | `--ease-transition-normal` | `cubic-bezier(0, 0, 0.2, 1)` |
247
+ | `ease-transition-slow` | `--ease-transition-slow` | `cubic-bezier(0, 0, 0.2, 1)` |
248
+ | `ease-animation-enter` | `--ease-animation-enter` | `cubic-bezier(0, 0, 0.2, 1)` |
249
+ | `ease-animation-exit` | `--ease-animation-exit` | `cubic-bezier(0.4, 0, 1, 1)` |
250
+ | `ease-animation-bounce` | `--ease-animation-bounce` | `cubic-bezier(0.175, 0.885, 0.32, 1.275)` |
251
+
252
+ ## Foundation Tokens (:root → use with var())
253
+
254
+ ### Spacing
255
+
256
+ | CSS Variable | Value | Example |
257
+ |---|---|---|
258
+ | `--spacing-padding-none` | `0` | `spacing-padding: var(--spacing-padding-none)` |
259
+ | `--spacing-padding-2xs` | `0.25rem` | `spacing-padding: var(--spacing-padding-2xs)` |
260
+ | `--spacing-padding-xs` | `0.5rem` | `spacing-padding: var(--spacing-padding-xs)` |
261
+ | `--spacing-padding-sm` | `0.75rem` | `spacing-padding: var(--spacing-padding-sm)` |
262
+ | `--spacing-padding-md` | `1rem` | `spacing-padding: var(--spacing-padding-md)` |
263
+ | `--spacing-padding-lg` | `1.5rem` | `spacing-padding: var(--spacing-padding-lg)` |
264
+ | `--spacing-padding-xl` | `2rem` | `spacing-padding: var(--spacing-padding-xl)` |
265
+ | `--spacing-padding-2xl` | `2.5rem` | `spacing-padding: var(--spacing-padding-2xl)` |
266
+ | `--spacing-gap-none` | `0` | `spacing-gap: var(--spacing-gap-none)` |
267
+ | `--spacing-gap-xs` | `0.25rem` | `spacing-gap: var(--spacing-gap-xs)` |
268
+ | `--spacing-gap-sm` | `0.5rem` | `spacing-gap: var(--spacing-gap-sm)` |
269
+ | `--spacing-gap-md` | `1rem` | `spacing-gap: var(--spacing-gap-md)` |
270
+ | `--spacing-gap-lg` | `1.5rem` | `spacing-gap: var(--spacing-gap-lg)` |
271
+ | `--spacing-gap-xl` | `2rem` | `spacing-gap: var(--spacing-gap-xl)` |
272
+
273
+ ### Border Width
274
+
275
+ | CSS Variable | Value | Example |
276
+ |---|---|---|
277
+ | `--border-width-stroke-none` | `0px` | `border-width: var(--border-width-stroke-none)` |
278
+ | `--border-width-stroke-hairline` | `0.5px` | `border-width: var(--border-width-stroke-hairline)` |
279
+ | `--border-width-stroke-thin` | `1px` | `border-width: var(--border-width-stroke-thin)` |
280
+ | `--border-width-stroke-default` | `1px` | `border-width: var(--border-width-stroke-default)` |
281
+ | `--border-width-stroke-thick` | `1.5px` | `border-width: var(--border-width-stroke-thick)` |
282
+ | `--border-width-stroke-heavy` | `2px` | `border-width: var(--border-width-stroke-heavy)` |
283
+
284
+ ### Opacity
285
+
286
+ | CSS Variable | Value | Example |
287
+ |---|---|---|
288
+ | `--opacity-overlay-dim` | `0.5` | `opacity-overlay: var(--opacity-overlay-dim)` |
289
+ | `--opacity-overlay-light` | `0.3` | `opacity-overlay: var(--opacity-overlay-light)` |
290
+ | `--opacity-overlay-heavy` | `0.7` | `opacity-overlay: var(--opacity-overlay-heavy)` |
291
+ | `--opacity-disabled-element` | `0.4` | `opacity-disabled: var(--opacity-disabled-element)` |
292
+ | `--opacity-disabled-text` | `0.5` | `opacity-disabled: var(--opacity-disabled-text)` |
293
+ | `--opacity-hover-subtle` | `0.05` | `opacity-hover: var(--opacity-hover-subtle)` |
294
+ | `--opacity-hover-default` | `0.1` | `opacity-hover: var(--opacity-hover-default)` |
295
+ | `--opacity-pressed-subtle` | `0.1` | `opacity-pressed: var(--opacity-pressed-subtle)` |
296
+ | `--opacity-pressed-default` | `0.2` | `opacity-pressed: var(--opacity-pressed-default)` |
297
+
298
+ ### Size
299
+
300
+ | CSS Variable | Value | Example |
301
+ |---|---|---|
302
+ | `--size-icon-xs` | `12px` | `size-icon: var(--size-icon-xs)` |
303
+ | `--size-icon-sm` | `16px` | `size-icon: var(--size-icon-sm)` |
304
+ | `--size-icon-md` | `20px` | `size-icon: var(--size-icon-md)` |
305
+ | `--size-icon-lg` | `24px` | `size-icon: var(--size-icon-lg)` |
306
+ | `--size-icon-xl` | `32px` | `size-icon: var(--size-icon-xl)` |
307
+ | `--size-control-xs` | `24px` | `size-control: var(--size-control-xs)` |
308
+ | `--size-control-sm` | `32px` | `size-control: var(--size-control-sm)` |
309
+ | `--size-control-md` | `40px` | `size-control: var(--size-control-md)` |
310
+ | `--size-control-lg` | `48px` | `size-control: var(--size-control-lg)` |
311
+ | `--size-touch-min` | `44px` | `size-touch: var(--size-touch-min)` |
312
+ | `--size-avatar-xs` | `24px` | `size-avatar: var(--size-avatar-xs)` |
313
+ | `--size-avatar-sm` | `32px` | `size-avatar: var(--size-avatar-sm)` |
314
+ | `--size-avatar-md` | `40px` | `size-avatar: var(--size-avatar-md)` |
315
+ | `--size-avatar-lg` | `48px` | `size-avatar: var(--size-avatar-lg)` |
316
+ | `--size-avatar-xl` | `64px` | `size-avatar: var(--size-avatar-xl)` |
317
+ | `--size-avatar-2xl` | `96px` | `size-avatar: var(--size-avatar-2xl)` |
318
+
319
+ ### Z-Index
320
+
321
+ | CSS Variable | Value | Example |
322
+ |---|---|---|
323
+ | `--z-index-layer-base` | `0` | `z-index: var(--z-index-layer-base)` |
324
+ | `--z-index-layer-dropdown` | `10` | `z-index: var(--z-index-layer-dropdown)` |
325
+ | `--z-index-layer-sticky` | `20` | `z-index: var(--z-index-layer-sticky)` |
326
+ | `--z-index-layer-popover` | `30` | `z-index: var(--z-index-layer-popover)` |
327
+ | `--z-index-layer-modal` | `40` | `z-index: var(--z-index-layer-modal)` |
328
+ | `--z-index-layer-toast` | `50` | `z-index: var(--z-index-layer-toast)` |
329
+ | `--z-index-layer-tooltip` | `100` | `z-index: var(--z-index-layer-tooltip)` |
330
+
331
+ ### Duration
332
+
333
+ | CSS Variable | Value | Example |
334
+ |---|---|---|
335
+ | `--duration-transition-instant` | `0ms` | `duration-transition: var(--duration-transition-instant)` |
336
+ | `--duration-transition-fast` | `150ms` | `duration-transition: var(--duration-transition-fast)` |
337
+ | `--duration-transition-normal` | `200ms` | `duration-transition: var(--duration-transition-normal)` |
338
+ | `--duration-transition-slow` | `300ms` | `duration-transition: var(--duration-transition-slow)` |
339
+ | `--duration-animation-enter` | `200ms` | `duration-animation: var(--duration-animation-enter)` |
340
+ | `--duration-animation-exit` | `150ms` | `duration-animation: var(--duration-animation-exit)` |
341
+ | `--duration-animation-bounce` | `500ms` | `duration-animation: var(--duration-animation-bounce)` |
342
+
343
+ ### Font Weight
344
+
345
+ | CSS Variable | Value | Example |
346
+ |---|---|---|
347
+ | `--font-weight-text-xs` | `400` | `font-weight: var(--font-weight-text-xs)` |
348
+ | `--font-weight-text-sm` | `400` | `font-weight: var(--font-weight-text-sm)` |
349
+ | `--font-weight-text-base` | `400` | `font-weight: var(--font-weight-text-base)` |
350
+ | `--font-weight-text-lg` | `400` | `font-weight: var(--font-weight-text-lg)` |
351
+ | `--font-weight-text-xl` | `400` | `font-weight: var(--font-weight-text-xl)` |
352
+ | `--font-weight-text-medium-xs` | `500` | `font-weight: var(--font-weight-text-medium-xs)` |
353
+ | `--font-weight-text-medium-sm` | `500` | `font-weight: var(--font-weight-text-medium-sm)` |
354
+ | `--font-weight-text-medium-base` | `500` | `font-weight: var(--font-weight-text-medium-base)` |
355
+ | `--font-weight-text-medium-lg` | `500` | `font-weight: var(--font-weight-text-medium-lg)` |
356
+ | `--font-weight-text-medium-xl` | `500` | `font-weight: var(--font-weight-text-medium-xl)` |
357
+ | `--font-weight-text-semibold-xs` | `600` | `font-weight: var(--font-weight-text-semibold-xs)` |
358
+ | `--font-weight-text-semibold-sm` | `600` | `font-weight: var(--font-weight-text-semibold-sm)` |
359
+ | `--font-weight-text-semibold-base` | `600` | `font-weight: var(--font-weight-text-semibold-base)` |
360
+ | `--font-weight-text-semibold-lg` | `600` | `font-weight: var(--font-weight-text-semibold-lg)` |
361
+ | `--font-weight-text-semibold-xl` | `600` | `font-weight: var(--font-weight-text-semibold-xl)` |
362
+ | `--font-weight-heading-h7` | `600` | `font-weight: var(--font-weight-heading-h7)` |
363
+ | `--font-weight-heading-h6` | `600` | `font-weight: var(--font-weight-heading-h6)` |
364
+ | `--font-weight-heading-h5` | `600` | `font-weight: var(--font-weight-heading-h5)` |
365
+ | `--font-weight-heading-h4` | `600` | `font-weight: var(--font-weight-heading-h4)` |
366
+ | `--font-weight-heading-h3` | `600` | `font-weight: var(--font-weight-heading-h3)` |
367
+ | `--font-weight-heading-h2` | `700` | `font-weight: var(--font-weight-heading-h2)` |
368
+ | `--font-weight-heading-h1` | `700` | `font-weight: var(--font-weight-heading-h1)` |
369
+ | `--font-weight-display-sm` | `700` | `font-weight: var(--font-weight-display-sm)` |
370
+ | `--font-weight-display-md` | `700` | `font-weight: var(--font-weight-display-md)` |
371
+ | `--font-weight-display-lg` | `700` | `font-weight: var(--font-weight-display-lg)` |
372
+ | `--font-weight-label-sm` | `500` | `font-weight: var(--font-weight-label-sm)` |
373
+ | `--font-weight-label-md` | `500` | `font-weight: var(--font-weight-label-md)` |
374
+ | `--font-weight-label-lg` | `500` | `font-weight: var(--font-weight-label-lg)` |
375
+ | `--font-weight-label-semibold-sm` | `600` | `font-weight: var(--font-weight-label-semibold-sm)` |
376
+ | `--font-weight-label-semibold-md` | `600` | `font-weight: var(--font-weight-label-semibold-md)` |
377
+ | `--font-weight-label-semibold-lg` | `600` | `font-weight: var(--font-weight-label-semibold-lg)` |
378
+
379
+ ### Letter Spacing
380
+
381
+ | CSS Variable | Value | Example |
382
+ |---|---|---|
383
+ | `--letter-spacing-text-xs` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-xs)` |
384
+ | `--letter-spacing-text-sm` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-sm)` |
385
+ | `--letter-spacing-text-base` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-base)` |
386
+ | `--letter-spacing-text-lg` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-lg)` |
387
+ | `--letter-spacing-text-xl` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-xl)` |
388
+ | `--letter-spacing-text-medium-xs` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-medium-xs)` |
389
+ | `--letter-spacing-text-medium-sm` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-medium-sm)` |
390
+ | `--letter-spacing-text-medium-base` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-medium-base)` |
391
+ | `--letter-spacing-text-medium-lg` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-medium-lg)` |
392
+ | `--letter-spacing-text-medium-xl` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-medium-xl)` |
393
+ | `--letter-spacing-text-semibold-xs` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-semibold-xs)` |
394
+ | `--letter-spacing-text-semibold-sm` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-semibold-sm)` |
395
+ | `--letter-spacing-text-semibold-base` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-semibold-base)` |
396
+ | `--letter-spacing-text-semibold-lg` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-semibold-lg)` |
397
+ | `--letter-spacing-text-semibold-xl` | `-0.01em` | `letter-spacing: var(--letter-spacing-text-semibold-xl)` |
398
+ | `--letter-spacing-heading-h7` | `0` | `letter-spacing: var(--letter-spacing-heading-h7)` |
399
+ | `--letter-spacing-heading-h6` | `0` | `letter-spacing: var(--letter-spacing-heading-h6)` |
400
+ | `--letter-spacing-heading-h5` | `0` | `letter-spacing: var(--letter-spacing-heading-h5)` |
401
+ | `--letter-spacing-heading-h4` | `0` | `letter-spacing: var(--letter-spacing-heading-h4)` |
402
+ | `--letter-spacing-heading-h3` | `0` | `letter-spacing: var(--letter-spacing-heading-h3)` |
403
+ | `--letter-spacing-heading-h2` | `0` | `letter-spacing: var(--letter-spacing-heading-h2)` |
404
+ | `--letter-spacing-heading-h1` | `0` | `letter-spacing: var(--letter-spacing-heading-h1)` |
405
+ | `--letter-spacing-display-sm` | `0` | `letter-spacing: var(--letter-spacing-display-sm)` |
406
+ | `--letter-spacing-display-md` | `0` | `letter-spacing: var(--letter-spacing-display-md)` |
407
+ | `--letter-spacing-display-lg` | `0` | `letter-spacing: var(--letter-spacing-display-lg)` |
408
+ | `--letter-spacing-label-sm` | `0` | `letter-spacing: var(--letter-spacing-label-sm)` |
409
+ | `--letter-spacing-label-md` | `0` | `letter-spacing: var(--letter-spacing-label-md)` |
410
+ | `--letter-spacing-label-lg` | `0` | `letter-spacing: var(--letter-spacing-label-lg)` |
411
+ | `--letter-spacing-label-semibold-sm` | `0` | `letter-spacing: var(--letter-spacing-label-semibold-sm)` |
412
+ | `--letter-spacing-label-semibold-md` | `0` | `letter-spacing: var(--letter-spacing-label-semibold-md)` |
413
+ | `--letter-spacing-label-semibold-lg` | `0` | `letter-spacing: var(--letter-spacing-label-semibold-lg)` |
414
+
415
+ ## Usage Guidelines
416
+
417
+ - **Background**: use `bg-bg-*` or `bg-surface-*`
418
+ - **Text**: use `text-text-*`
419
+ - **Icon**: use `text-icon-*`
420
+ - **Border**: use `border-border-*`
421
+ - **Accent/CTA**: use `bg-accent-*`, `text-accent-*`
422
+ - **Status**: use `text-status-*`, `bg-status-*`
423
+ - **Dark mode**: toggle via `.dark` class for automatic CSS switching
424
+ - **Spacing**: `p-[var(--spacing-padding-md)]`, `gap-[var(--spacing-gap-sm)]`
425
+ - **Size**: `w-[var(--size-icon-md)]`, `h-[var(--size-control-lg)]`
426
+ - **z-index**: `z-[var(--z-index-layer-modal)]`