ionbase-ui 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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/Icon.d.ts +72 -0
  4. package/dist/Icon.d.ts.map +1 -0
  5. package/dist/Icon.js +50 -0
  6. package/dist/Icon.js.map +1 -0
  7. package/dist/components/Avatar.d.ts +52 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Avatar.js +59 -0
  10. package/dist/components/Avatar.js.map +1 -0
  11. package/dist/components/Badge.d.ts +26 -0
  12. package/dist/components/Badge.d.ts.map +1 -0
  13. package/dist/components/Badge.js +17 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Button.d.ts +18 -0
  16. package/dist/components/Button.d.ts.map +1 -0
  17. package/dist/components/Button.js +43 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Checkbox.d.ts +30 -0
  20. package/dist/components/Checkbox.d.ts.map +1 -0
  21. package/dist/components/Checkbox.js +39 -0
  22. package/dist/components/Checkbox.js.map +1 -0
  23. package/dist/components/Divider.d.ts +17 -0
  24. package/dist/components/Divider.d.ts.map +1 -0
  25. package/dist/components/Divider.js +16 -0
  26. package/dist/components/Divider.js.map +1 -0
  27. package/dist/components/Header.d.ts +25 -0
  28. package/dist/components/Header.d.ts.map +1 -0
  29. package/dist/components/Header.js +18 -0
  30. package/dist/components/Header.js.map +1 -0
  31. package/dist/components/Input.d.ts +32 -0
  32. package/dist/components/Input.d.ts.map +1 -0
  33. package/dist/components/Input.js +66 -0
  34. package/dist/components/Input.js.map +1 -0
  35. package/dist/components/Logo.d.ts +41 -0
  36. package/dist/components/Logo.d.ts.map +1 -0
  37. package/dist/components/Logo.js +70 -0
  38. package/dist/components/Logo.js.map +1 -0
  39. package/dist/components/Menu.d.ts +29 -0
  40. package/dist/components/Menu.d.ts.map +1 -0
  41. package/dist/components/Menu.js +31 -0
  42. package/dist/components/Menu.js.map +1 -0
  43. package/dist/components/NavItem.d.ts +30 -0
  44. package/dist/components/NavItem.d.ts.map +1 -0
  45. package/dist/components/NavItem.js +45 -0
  46. package/dist/components/NavItem.js.map +1 -0
  47. package/dist/components/Radio.d.ts +30 -0
  48. package/dist/components/Radio.d.ts.map +1 -0
  49. package/dist/components/Radio.js +61 -0
  50. package/dist/components/Radio.js.map +1 -0
  51. package/dist/components/ScrollProgress.d.ts +33 -0
  52. package/dist/components/ScrollProgress.d.ts.map +1 -0
  53. package/dist/components/ScrollProgress.js +115 -0
  54. package/dist/components/ScrollProgress.js.map +1 -0
  55. package/dist/components/Select.d.ts +43 -0
  56. package/dist/components/Select.d.ts.map +1 -0
  57. package/dist/components/Select.js +80 -0
  58. package/dist/components/Select.js.map +1 -0
  59. package/dist/components/Table.d.ts +71 -0
  60. package/dist/components/Table.d.ts.map +1 -0
  61. package/dist/components/Table.js +60 -0
  62. package/dist/components/Table.js.map +1 -0
  63. package/dist/components/Tabs.d.ts +23 -0
  64. package/dist/components/Tabs.d.ts.map +1 -0
  65. package/dist/components/Tabs.js +47 -0
  66. package/dist/components/Tabs.js.map +1 -0
  67. package/dist/components/Toggle.d.ts +25 -0
  68. package/dist/components/Toggle.d.ts.map +1 -0
  69. package/dist/components/Toggle.js +32 -0
  70. package/dist/components/Toggle.js.map +1 -0
  71. package/dist/components/index.d.ts +33 -0
  72. package/dist/components/index.d.ts.map +1 -0
  73. package/dist/components/index.js +17 -0
  74. package/dist/components/index.js.map +1 -0
  75. package/dist/index.d.ts +25 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +24 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/styles/avatar.css +138 -0
  80. package/dist/styles/badge.css +125 -0
  81. package/dist/styles/button.css +331 -0
  82. package/dist/styles/checkbox.css +229 -0
  83. package/dist/styles/divider.css +31 -0
  84. package/dist/styles/header.css +95 -0
  85. package/dist/styles/index.css +44 -0
  86. package/dist/styles/input.css +264 -0
  87. package/dist/styles/logo.css +63 -0
  88. package/dist/styles/menu.css +150 -0
  89. package/dist/styles/nav-item.css +120 -0
  90. package/dist/styles/radio.css +200 -0
  91. package/dist/styles/scroll-progress.css +171 -0
  92. package/dist/styles/select.css +162 -0
  93. package/dist/styles/table.css +192 -0
  94. package/dist/styles/tabs.css +219 -0
  95. package/dist/styles/toggle.css +184 -0
  96. package/dist/styles/tokens/base.css +386 -0
  97. package/dist/styles/tokens/breakpoint-mobile.css +34 -0
  98. package/dist/styles/tokens/breakpoint-tablet.css +25 -0
  99. package/dist/styles/tokens/elevation.css +112 -0
  100. package/dist/styles/tokens/index.css +6 -0
  101. package/dist/styles/tokens/theme-dark.css +106 -0
  102. package/dist/styles/tokens/typography.css +124 -0
  103. package/dist/tokens/index.d.ts +2097 -0
  104. package/dist/tokens/index.d.ts.map +1 -0
  105. package/dist/tokens/index.js +1702 -0
  106. package/dist/tokens/index.js.map +1 -0
  107. package/package.json +70 -0
@@ -0,0 +1,184 @@
1
+ /*
2
+ * Toggle
3
+ *
4
+ * Measured from Figma `Toggle` (18 variants: 3 colours x 3 sizes x 2 states).
5
+ *
6
+ * track 36x20 / 44x24 / 52x28, inset 2 all round, radius/full
7
+ * thumb 16 / 20 / 24, surface/default
8
+ * off surface/muted with a border/strong outline
9
+ * on the intent surface, and NO border at all
10
+ *
11
+ * THE TRACK IS DERIVED, NOT MEASURED
12
+ *
13
+ * 36, 44, 52 and 28 are on no ladder — spacing skips all four. But they are not
14
+ * arbitrary: the track is exactly the thumb plus its inset.
15
+ *
16
+ * height = thumb + 2 x inset 16+4=20 20+4=24 24+4=28
17
+ * width = 2 x thumb + 2 x inset 36 44 52
18
+ *
19
+ * So the only numbers this file states are the thumb (16/20/24, all on the
20
+ * spacing scale) and the inset (spacing/2). Everything else follows. That is
21
+ * both closer to how the control actually works and the reason nothing here
22
+ * needs an off-ladder literal.
23
+ *
24
+ * ON HAS NO BORDER
25
+ *
26
+ * Easy to miss and it matters: Figma's On track carries no stroke. Keeping a
27
+ * 1px border would make the on-track 2px narrower than the design and shift the
28
+ * thumb. The border goes transparent rather than away, so the box never resizes
29
+ * between states.
30
+ *
31
+ * The thumb slides with `margin-left: auto` inside a flex track rather than a
32
+ * transform, so the inset is honoured on both sides automatically — the same
33
+ * way Figma flips the track's alignment from MIN to MAX.
34
+ */
35
+ .ion-toggle {
36
+ --ion-toggle-thumb: var(--spacing-20);
37
+ --ion-toggle-inset: var(--spacing-2);
38
+ --ion-toggle-gap: var(--spacing-8);
39
+ --ion-toggle-font-size: var(--type-body);
40
+ --ion-toggle-line-height: var(--type-body-line-height);
41
+ --ion-toggle-on: var(--surface-primary);
42
+
43
+ /*
44
+ * Two different shadow families on one control, which is the point of
45
+ * splitting them: the thumb genuinely floats above the track, so it casts
46
+ * (`Shadow/xs`), while the on-track is bevelled into the surface and casts
47
+ * nothing (`Raised/Flush/*`). A single combined style could not express both.
48
+ */
49
+ --ion-toggle-raised: var(--ion-shadow-raised-flush-sm);
50
+
51
+ /* Derived — see the header. */
52
+ --ion-toggle-track-h: calc(
53
+ var(--ion-toggle-thumb) + 2 * var(--ion-toggle-inset)
54
+ );
55
+ --ion-toggle-track-w: calc(
56
+ 2 * var(--ion-toggle-thumb) + 2 * var(--ion-toggle-inset)
57
+ );
58
+
59
+ display: inline-flex;
60
+ align-items: flex-start;
61
+ gap: var(--ion-toggle-gap);
62
+ font-family: var(--font-family-sans);
63
+ font-size: var(--ion-toggle-font-size);
64
+ line-height: var(--ion-toggle-line-height);
65
+ cursor: pointer;
66
+ }
67
+
68
+ .ion-toggle--sm {
69
+ --ion-toggle-thumb: var(--spacing-16);
70
+ --ion-toggle-font-size: var(--type-body-sm);
71
+ --ion-toggle-line-height: var(--type-body-sm-line-height);
72
+ --ion-toggle-raised: var(--ion-shadow-raised-flush-xs);
73
+ }
74
+
75
+ .ion-toggle--lg {
76
+ --ion-toggle-thumb: var(--spacing-24);
77
+ --ion-toggle-gap: var(--spacing-12);
78
+ --ion-toggle-raised: var(--ion-shadow-raised-flush-lg);
79
+ }
80
+
81
+ .ion-toggle__input {
82
+ position: absolute;
83
+ width: 1px;
84
+ height: 1px;
85
+ margin: 0;
86
+ padding: 0;
87
+ border: none;
88
+ opacity: 0;
89
+ pointer-events: none;
90
+ }
91
+
92
+ .ion-toggle__track {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ flex-shrink: 0;
96
+ width: var(--ion-toggle-track-w);
97
+ height: var(--ion-toggle-track-h);
98
+
99
+ /*
100
+ * Figma's stroke is drawn INSIDE the track, so the 2px inset is measured from
101
+ * the outer edge and the stroke overlaps it. A CSS border sits outside the
102
+ * padding box, so the border width is subtracted back out — the same
103
+ * correction Input, Badge and Tabs needed. Without it the thumb's travel is
104
+ * 2px short and the track reads unbalanced.
105
+ */
106
+ padding: calc(var(--ion-toggle-inset) - var(--border-width-default));
107
+ background-color: var(--surface-muted);
108
+ border-style: solid;
109
+ border-width: var(--border-width-default);
110
+ border-color: var(--border-strong);
111
+ border-radius: var(--radius-full);
112
+
113
+ /* Centred on the label's first line — see checkbox.css. */
114
+ margin-top: calc(
115
+ (var(--ion-toggle-line-height) - var(--ion-toggle-track-h)) / 2
116
+ );
117
+ transition:
118
+ background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
119
+ border-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
120
+ }
121
+
122
+ .ion-toggle__thumb {
123
+ width: var(--ion-toggle-thumb);
124
+ height: var(--ion-toggle-thumb);
125
+ background-color: var(--surface-default);
126
+ border-radius: var(--radius-full);
127
+
128
+ /* Cast, not bevelled — and the same in both states, so it is unconditional. */
129
+ box-shadow: var(--ion-shadow-shadow-xs);
130
+ transition: margin 150ms cubic-bezier(0.4, 0, 0.2, 1);
131
+ }
132
+
133
+ .ion-toggle__label {
134
+ color: var(--text-secondary);
135
+ user-select: none;
136
+ }
137
+
138
+ .ion-toggle__input:checked + .ion-toggle__track {
139
+ background-color: var(--ion-toggle-on);
140
+
141
+ /* Transparent, not removed — see the header. */
142
+ border-color: transparent;
143
+
144
+ /* Only the on-track is bevelled; the off-track is a plain muted surface. */
145
+ box-shadow: var(--ion-toggle-raised);
146
+ }
147
+
148
+ .ion-toggle__input:checked + .ion-toggle__track .ion-toggle__thumb {
149
+ margin-left: auto;
150
+ }
151
+
152
+ .ion-toggle--neutral {
153
+ --ion-toggle-on: var(--surface-inverse);
154
+ }
155
+
156
+ .ion-toggle--danger {
157
+ --ion-toggle-on: var(--surface-error);
158
+ }
159
+
160
+ .ion-toggle__input:focus-visible + .ion-toggle__track,
161
+ .ion-toggle[data-focused='true'] .ion-toggle__track {
162
+ outline: var(--border-width-thick) solid var(--border-focus);
163
+ outline-offset: 0;
164
+ }
165
+
166
+ /* Driven off `:disabled` so it out-specifies `:checked` — see checkbox.css. */
167
+ .ion-toggle__input:disabled + .ion-toggle__track,
168
+ .ion-toggle__input:checked:disabled + .ion-toggle__track {
169
+ background-color: var(--surface-disabled);
170
+ border-color: var(--border-disabled);
171
+
172
+ /* Flat whether or not it is on — matches Checkbox and Radio. */
173
+ box-shadow: none;
174
+ }
175
+
176
+ .ion-toggle--disabled,
177
+ .ion-toggle[data-disabled='true'] {
178
+ cursor: not-allowed;
179
+ }
180
+
181
+ .ion-toggle--disabled .ion-toggle__label,
182
+ .ion-toggle[data-disabled='true'] .ion-toggle__label {
183
+ color: var(--text-disabled);
184
+ }
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :root {
6
+ --color-base-white: #ffffff;
7
+ --color-base-black: #000000;
8
+ --color-gray-50: #f6f8f9;
9
+ --color-gray-100: #f0f2f4;
10
+ --color-gray-200: #e5e7eb;
11
+ --color-gray-300: #dde0e4;
12
+ --color-gray-400: #9ca3b0;
13
+ --color-gray-500: #6b7280;
14
+ --color-gray-600: #4b5563;
15
+ --color-gray-700: #384252;
16
+ --color-gray-800: #1d2735;
17
+ --color-gray-900: #131923;
18
+ --color-purple-50: #f6f1f8;
19
+ --color-purple-100: #f1e8fd;
20
+ --color-purple-200: #dfd4fc;
21
+ --color-purple-300: #adadf5;
22
+ --color-purple-400: #7e6ff1;
23
+ --color-purple-500: #5a4cd6;
24
+ --color-purple-600: #4f3cc8;
25
+ --color-purple-700: #4715b2;
26
+ --color-purple-800: #350e8b;
27
+ --color-purple-900: #260769;
28
+ --color-red-50: #fef1f1;
29
+ --color-red-100: #fee7e7;
30
+ --color-red-200: #fed2d2;
31
+ --color-red-300: #ffadad;
32
+ --color-red-400: #f56b6b;
33
+ --color-red-500: #ef4343;
34
+ --color-red-600: #dc2828;
35
+ --color-red-700: #ba1c1c;
36
+ --color-red-800: #981b1b;
37
+ --color-red-900: #811d1d;
38
+ --color-orange-50: #fff4e5;
39
+ --color-orange-100: #ffeed6;
40
+ --color-orange-200: #fedbb4;
41
+ --color-orange-300: #fdc17c;
42
+ --color-orange-400: #ef8539;
43
+ --color-orange-500: #ea5600;
44
+ --color-orange-600: #af3e0e;
45
+ --color-orange-700: #8e2f07;
46
+ --color-orange-800: #671f07;
47
+ --color-orange-900: #401604;
48
+ --color-green-50: #effbf6;
49
+ --color-green-100: #e4f7f3;
50
+ --color-green-200: #c6ebdc;
51
+ --color-green-300: #8fdbbb;
52
+ --color-green-400: #50c38c;
53
+ --color-green-500: #12a154;
54
+ --color-green-600: #14994e;
55
+ --color-green-700: #0d7d38;
56
+ --color-green-800: #076426;
57
+ --color-green-900: #054d1a;
58
+ --color-blue-50: #ebf7ff;
59
+ --color-blue-100: #e2f1fd;
60
+ --color-blue-200: #c7e4fa;
61
+ --color-blue-300: #9fd5f9;
62
+ --color-blue-400: #609cf0;
63
+ --color-blue-500: #286ef0;
64
+ --color-blue-600: #1c62e3;
65
+ --color-blue-700: #1541b2;
66
+ --color-blue-800: #0e2d8b;
67
+ --color-blue-900: #071e69;
68
+ --color-yellow-50: #fefce7;
69
+ --color-yellow-100: #fdf9d8;
70
+ --color-yellow-200: #faef9e;
71
+ --color-yellow-300: #f0dc7a;
72
+ --color-yellow-400: #eac534;
73
+ --color-yellow-500: #c89809;
74
+ --color-yellow-600: #a97a14;
75
+ --color-yellow-700: #91700d;
76
+ --color-yellow-800: #795a0c;
77
+ --color-yellow-900: #6f4815;
78
+ --color-pink-50: #fdf2f8;
79
+ --color-pink-100: #fce8f4;
80
+ --color-pink-200: #fbd0e8;
81
+ --color-pink-300: #f9a9d5;
82
+ --color-pink-400: #f773b7;
83
+ --color-pink-500: #f04299;
84
+ --color-pink-600: #df2679;
85
+ --color-pink-700: #c3135c;
86
+ --color-pink-800: #a0134b;
87
+ --color-pink-900: #881141;
88
+ --color-alpha-black-05: rgba(0, 0, 0, 0.05);
89
+ --color-alpha-black-10: rgba(0, 0, 0, 0.1);
90
+ --color-alpha-black-40: rgba(0, 0, 0, 0.4);
91
+ --color-alpha-black-60: rgba(0, 0, 0, 0.6);
92
+ --color-alpha-white-05: rgba(255, 255, 255, 0.05);
93
+ --color-alpha-white-10: rgba(255, 255, 255, 0.1);
94
+ --color-alpha-white-20: rgba(255, 255, 255, 0.2);
95
+ --spacing-0: 0px;
96
+ --spacing-2: 2px;
97
+ --spacing-4: 4px;
98
+ --spacing-6: 6px;
99
+ --spacing-8: 8px;
100
+ --spacing-12: 12px;
101
+ --spacing-16: 16px;
102
+ --spacing-20: 20px;
103
+ --spacing-24: 24px;
104
+ --spacing-32: 32px;
105
+ --spacing-40: 40px;
106
+ --spacing-48: 48px;
107
+ --spacing-64: 64px;
108
+ --spacing-80: 80px;
109
+ --spacing-96: 96px;
110
+ --spacing-128: 128px;
111
+ --font-size-12: 12px;
112
+ --font-size-14: 14px;
113
+ --font-size-16: 16px;
114
+ --font-size-18: 18px;
115
+ --font-size-20: 20px;
116
+ --font-size-24: 24px;
117
+ --font-size-28: 28px;
118
+ --font-size-32: 32px;
119
+ --font-size-36: 36px;
120
+ --font-size-40: 40px;
121
+ --font-size-48: 48px;
122
+ --font-size-56: 56px;
123
+ --font-size-64: 64px;
124
+ --font-size-72: 72px;
125
+ --font-family-host-grotesk: Host Grotesk;
126
+ --font-family-merriweather: Merriweather;
127
+ --font-family-space-mono: Space Mono;
128
+ --font-family-stix-two-text: STIX Two Text;
129
+ --font-family-sans: Host Grotesk;
130
+ --font-family-serif: Merriweather;
131
+ --font-family-mono: Space Mono;
132
+ --font-family-serif-display: STIX Two Text;
133
+ --font-weight-400: 400;
134
+ --font-weight-500: 500;
135
+ --font-weight-600: 600;
136
+ --font-weight-700: 700;
137
+ --font-weight-regular: 400;
138
+ --font-weight-medium: 500;
139
+ --font-weight-semibold: 600;
140
+ --font-weight-bold: 700;
141
+ --scale-0: 0px;
142
+ --scale-1: 1px;
143
+ --scale-2: 2px;
144
+ --scale-4: 4px;
145
+ --scale-6: 6px;
146
+ --scale-8: 8px;
147
+ --scale-10: 10px;
148
+ --scale-12: 12px;
149
+ --scale-14: 14px;
150
+ --scale-16: 16px;
151
+ --scale-20: 20px;
152
+ --scale-24: 24px;
153
+ --scale-32: 32px;
154
+ --scale-full: 9999px;
155
+ --primary-50: #ebf7ff;
156
+ --primary-100: #e2f1fd;
157
+ --primary-200: #c7e4fa;
158
+ --primary-300: #9fd5f9;
159
+ --primary-400: #609cf0;
160
+ --primary-500: #286ef0;
161
+ --primary-600: #1c62e3;
162
+ --primary-700: #1541b2;
163
+ --primary-800: #0e2d8b;
164
+ --primary-900: #071e69;
165
+ --neutral-50: #f6f8f9;
166
+ --neutral-100: #f0f2f4;
167
+ --neutral-200: #e5e7eb;
168
+ --neutral-300: #dde0e4;
169
+ --neutral-400: #9ca3b0;
170
+ --neutral-500: #6b7280;
171
+ --neutral-600: #4b5563;
172
+ --neutral-700: #384252;
173
+ --neutral-800: #1d2735;
174
+ --neutral-900: #131923;
175
+ --success-50: #effbf6;
176
+ --success-100: #e4f7f3;
177
+ --success-200: #c6ebdc;
178
+ --success-300: #8fdbbb;
179
+ --success-400: #50c38c;
180
+ --success-500: #12a154;
181
+ --success-600: #14994e;
182
+ --success-700: #0d7d38;
183
+ --success-800: #076426;
184
+ --success-900: #054d1a;
185
+ --warning-50: #fff4e5;
186
+ --warning-100: #ffeed6;
187
+ --warning-200: #fedbb4;
188
+ --warning-300: #fdc17c;
189
+ --warning-400: #ef8539;
190
+ --warning-500: #ea5600;
191
+ --warning-600: #af3e0e;
192
+ --warning-700: #8e2f07;
193
+ --warning-800: #671f07;
194
+ --warning-900: #401604;
195
+ --error-50: #fef1f1;
196
+ --error-100: #fee7e7;
197
+ --error-200: #fed2d2;
198
+ --error-300: #ffadad;
199
+ --error-400: #f56b6b;
200
+ --error-500: #ef4343;
201
+ --error-600: #dc2828;
202
+ --error-700: #ba1c1c;
203
+ --error-800: #981b1b;
204
+ --error-900: #811d1d;
205
+ --information-50: #f6f1f8;
206
+ --information-100: #f1e8fd;
207
+ --information-200: #dfd4fc;
208
+ --information-300: #adadf5;
209
+ --information-400: #7e6ff1;
210
+ --information-500: #5a4cd6;
211
+ --information-600: #4f3cc8;
212
+ --information-700: #4715b2;
213
+ --information-800: #350e8b;
214
+ --information-900: #260769;
215
+ --chart-1: #286ef0;
216
+ --chart-2: #12a154;
217
+ --chart-3: #5a4cd6;
218
+ --chart-4: #ea5600;
219
+ --chart-5: #f04299;
220
+ --chart-6: #a97a14;
221
+ --chart-7: #ef4343;
222
+ --chart-8: #6b7280;
223
+ --base-white: #ffffff;
224
+ --base-black: #000000;
225
+ --alpha-black-05: rgba(0, 0, 0, 0.05);
226
+ --alpha-black-10: rgba(0, 0, 0, 0.1);
227
+ --alpha-black-40: rgba(0, 0, 0, 0.4);
228
+ --alpha-black-60: rgba(0, 0, 0, 0.6);
229
+ --alpha-white-05: rgba(255, 255, 255, 0.05);
230
+ --alpha-white-10: rgba(255, 255, 255, 0.1);
231
+ --alpha-white-20: rgba(255, 255, 255, 0.2);
232
+ --radius-none: 0px;
233
+ --radius-2xs: 2px;
234
+ --radius-xs: 4px;
235
+ --radius-sm: 6px;
236
+ --radius-md: 8px;
237
+ --radius-lg: 10px;
238
+ --radius-xl: 12px;
239
+ --radius-2xl: 14px;
240
+ --radius-3xl: 16px;
241
+ --radius-4xl: 20px;
242
+ --radius-5xl: 24px;
243
+ --radius-6xl: 32px;
244
+ --radius-full: 9999px;
245
+ --border-width-default: 1px;
246
+ --border-width-thick: 2px;
247
+ --border-width-thicker: 4px;
248
+ --icon-size-xs: 12px;
249
+ --icon-size-sm: 16px;
250
+ --icon-size-md: 20px;
251
+ --icon-size-lg: 24px;
252
+ --icon-size-xl: 32px;
253
+ --text-default: #131923;
254
+ --text-secondary: #384252;
255
+ --text-tertiary: #4b5563;
256
+ --text-placeholder: #9ca3b0;
257
+ --text-disabled: #6b7280;
258
+ --text-on-color: #ffffff;
259
+ --text-inverse: #f6f8f9;
260
+ --text-primary: #1c62e3;
261
+ --text-error: #ba1c1c;
262
+ --text-success: #0d7d38;
263
+ --text-warning: #8e2f07;
264
+ --text-information: #4715b2;
265
+ --text-link: #1541b2;
266
+ --text-link-hover: #0e2d8b;
267
+ --text-link-visited: #4715b2;
268
+ --text-interactive: #384252;
269
+ --text-interactive-hover: #131923;
270
+ --icon-default: #1d2735;
271
+ --icon-secondary: #384252;
272
+ --icon-tertiary: #4b5563;
273
+ --icon-disabled: #6b7280;
274
+ --icon-on-color: #ffffff;
275
+ --icon-inverse: #f6f8f9;
276
+ --icon-primary: #1c62e3;
277
+ --icon-error: #dc2828;
278
+ --icon-success: #14994e;
279
+ --icon-warning: #af3e0e;
280
+ --icon-information: #4f3cc8;
281
+ --icon-interactive: #384252;
282
+ --icon-interactive-hover: #131923;
283
+ --surface-default: #ffffff;
284
+ --surface-page: #f6f8f9;
285
+ --surface-sunken: #f0f2f4;
286
+ --surface-subtle: #e5e7eb;
287
+ --surface-muted: #f0f2f4;
288
+ --surface-raised: #ffffff;
289
+ --surface-overlay: #ffffff;
290
+ --surface-scrim: rgba(0, 0, 0, 0.4);
291
+ --surface-inverse: #131923;
292
+ --surface-inverse-subtle: #384252;
293
+ --surface-disabled: #f0f2f4;
294
+ --surface-placeholder: #dde0e4;
295
+ --surface-hover: rgba(0, 0, 0, 0.05);
296
+ --surface-pressed: rgba(0, 0, 0, 0.1);
297
+ --surface-selected: #ebf7ff;
298
+ --surface-selected-hover: #e2f1fd;
299
+ --surface-primary: #1c62e3;
300
+ --surface-primary-hover: #1541b2;
301
+ --surface-primary-pressed: #0e2d8b;
302
+ --surface-primary-subtle: #ebf7ff;
303
+ --surface-primary-subtle-hover: #e2f1fd;
304
+ --surface-primary-tint: #e2f1fd;
305
+ --surface-error: #dc2828;
306
+ --surface-error-hover: #ba1c1c;
307
+ --surface-error-pressed: #981b1b;
308
+ --surface-error-subtle: #fef1f1;
309
+ --surface-error-subtle-hover: #fee7e7;
310
+ --surface-error-tint: #fee7e7;
311
+ --surface-success: #14994e;
312
+ --surface-success-hover: #0d7d38;
313
+ --surface-success-pressed: #076426;
314
+ --surface-success-subtle: #effbf6;
315
+ --surface-success-subtle-hover: #e4f7f3;
316
+ --surface-success-tint: #e4f7f3;
317
+ --surface-warning: #af3e0e;
318
+ --surface-warning-hover: #8e2f07;
319
+ --surface-warning-pressed: #671f07;
320
+ --surface-warning-subtle: #fff4e5;
321
+ --surface-warning-subtle-hover: #ffeed6;
322
+ --surface-warning-tint: #ffeed6;
323
+ --surface-information: #4f3cc8;
324
+ --surface-information-hover: #4715b2;
325
+ --surface-information-pressed: #350e8b;
326
+ --surface-information-subtle: #f6f1f8;
327
+ --surface-information-subtle-hover: #f1e8fd;
328
+ --surface-information-tint: #f1e8fd;
329
+ --border-subtle: #f0f2f4;
330
+ --border-default: #e5e7eb;
331
+ --border-strong: #dde0e4;
332
+ --border-stronger: #9ca3b0;
333
+ --border-inverse: #131923;
334
+ --border-disabled: #e5e7eb;
335
+ --border-transparent: rgba(0, 0, 0, 0.05);
336
+ --border-primary: #286ef0;
337
+ --border-primary-strong: #1541b2;
338
+ --border-primary-subtle: #c7e4fa;
339
+ --border-error: #ef4343;
340
+ --border-error-strong: #ba1c1c;
341
+ --border-error-subtle: #fed2d2;
342
+ --border-success: #12a154;
343
+ --border-success-strong: #0d7d38;
344
+ --border-success-subtle: #c6ebdc;
345
+ --border-warning: #ea5600;
346
+ --border-warning-strong: #8e2f07;
347
+ --border-warning-subtle: #fedbb4;
348
+ --border-information: #5a4cd6;
349
+ --border-information-strong: #4715b2;
350
+ --border-information-subtle: #dfd4fc;
351
+ --border-focus: #286ef0;
352
+ --border-focus-error: #ef4343;
353
+ --ring-focus: #286ef0;
354
+ --ring-error: #ef4343;
355
+ --ring-offset: #ffffff;
356
+ --grid-margin: 80px;
357
+ --grid-gutter: 24px;
358
+ --grid-columns: 12;
359
+ --container-max-width: 1216px;
360
+ --section-gap-y: 96px;
361
+ --section-gap-y-sm: 64px;
362
+ --type-display: 64px;
363
+ --type-display-line-height: 72px;
364
+ --type-h1: 48px;
365
+ --type-h1-line-height: 56px;
366
+ --type-h2: 40px;
367
+ --type-h2-line-height: 48px;
368
+ --type-h3: 32px;
369
+ --type-h3-line-height: 40px;
370
+ --type-h4: 24px;
371
+ --type-h4-line-height: 32px;
372
+ --type-h5: 20px;
373
+ --type-h5-line-height: 28px;
374
+ --type-h6: 18px;
375
+ --type-h6-line-height: 26px;
376
+ --type-body-lg: 20px;
377
+ --type-body-lg-line-height: 32px;
378
+ --type-body-md: 18px;
379
+ --type-body-md-line-height: 28px;
380
+ --type-body: 16px;
381
+ --type-body-line-height: 24px;
382
+ --type-body-sm: 14px;
383
+ --type-body-sm-line-height: 20px;
384
+ --type-caption: 12px;
385
+ --type-caption-line-height: 18px;
386
+ }
@@ -0,0 +1,34 @@
1
+ @media (max-width: 767px) {
2
+ /**
3
+ * Do not edit directly, this file was auto-generated.
4
+ */
5
+
6
+ :root {
7
+ --grid-margin: 20px;
8
+ --grid-gutter: 16px;
9
+ --grid-columns: 4;
10
+ --container-max-width: 9999px;
11
+ --section-gap-y: 48px;
12
+ --section-gap-y-sm: 32px;
13
+ --type-display: 36px;
14
+ --type-display-line-height: 44px;
15
+ --type-h1: 32px;
16
+ --type-h1-line-height: 40px;
17
+ --type-h2: 28px;
18
+ --type-h2-line-height: 36px;
19
+ --type-h3: 24px;
20
+ --type-h3-line-height: 32px;
21
+ --type-h4: 20px;
22
+ --type-h4-line-height: 28px;
23
+ --type-h5: 18px;
24
+ --type-h5-line-height: 26px;
25
+ --type-h6: 16px;
26
+ --type-h6-line-height: 24px;
27
+ --type-body-lg: 18px;
28
+ --type-body-lg-line-height: 30px;
29
+ --type-body-md: 16px;
30
+ --type-body-md-line-height: 26px;
31
+ --type-caption-line-height: 16px;
32
+ }
33
+
34
+ }
@@ -0,0 +1,25 @@
1
+ @media (max-width: 1023px) {
2
+ /**
3
+ * Do not edit directly, this file was auto-generated.
4
+ */
5
+
6
+ :root {
7
+ --grid-margin: 40px;
8
+ --grid-gutter: 20px;
9
+ --grid-columns: 8;
10
+ --container-max-width: 896px;
11
+ --section-gap-y: 64px;
12
+ --section-gap-y-sm: 48px;
13
+ --type-display: 48px;
14
+ --type-display-line-height: 56px;
15
+ --type-h1: 40px;
16
+ --type-h1-line-height: 48px;
17
+ --type-h2: 32px;
18
+ --type-h2-line-height: 40px;
19
+ --type-h3: 28px;
20
+ --type-h3-line-height: 36px;
21
+ --type-h6: 16px;
22
+ --type-h6-line-height: 24px;
23
+ }
24
+
25
+ }