@vestow/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.
@@ -0,0 +1,224 @@
1
+ /* =============================================================================
2
+ TỰ SINH — đừng sửa tay. Chạy lại bằng:
3
+
4
+ pnpm -F @vestow/theme gen
5
+
6
+ Chép NGUYÊN VĂN từ `tailwindcss/theme.css` của version đang cài, hai phần
7
+ theo hai luật khác nhau:
8
+
9
+ MÀU chỉ những nấc thật sự được dùng trong tokens.css / palettes.css
10
+ / surfaces.css.
11
+ PHI-MÀU trọn thang. Token ngữ nghĩa không trỏ qua chúng nên lọc theo mức
12
+ dùng sẽ ra rỗng — mà đây đúng là phần bên KHÔNG có Tailwind cần.
13
+
14
+ Có file này thì bộ token không còn phải đi vay bảng màu của Tailwind, nên
15
+ app không cần `theme(static)` và framework không dùng Tailwind vẫn nạp
16
+ được. Lý do đầy đủ ở đầu `scripts/gen-primitives.mjs`.
17
+ ========================================================================== */
18
+
19
+ :root {
20
+ /* trắng / đen */
21
+ --color-black: #000;
22
+ --color-white: #fff;
23
+
24
+ /* amber */
25
+ --color-amber-500: oklch(76.9% 0.188 70.08);
26
+ --color-amber-600: oklch(66.6% 0.179 58.318);
27
+
28
+ /* blue */
29
+ --color-blue-300: oklch(80.9% 0.105 251.813);
30
+ --color-blue-400: oklch(70.7% 0.165 254.624);
31
+ --color-blue-600: oklch(54.6% 0.245 262.881);
32
+ --color-blue-700: oklch(48.8% 0.243 264.376);
33
+ --color-blue-950: oklch(28.2% 0.091 267.935);
34
+
35
+ /* cyan */
36
+ --color-cyan-400: oklch(78.9% 0.154 211.53);
37
+ --color-cyan-500: oklch(71.5% 0.143 215.221);
38
+ --color-cyan-600: oklch(60.9% 0.126 221.723);
39
+ --color-cyan-700: oklch(52% 0.105 223.128);
40
+ --color-cyan-800: oklch(45% 0.085 224.283);
41
+ --color-cyan-950: oklch(30.2% 0.056 229.695);
42
+
43
+ /* emerald */
44
+ --color-emerald-400: oklch(76.5% 0.177 163.223);
45
+ --color-emerald-600: oklch(59.6% 0.145 163.225);
46
+
47
+ /* fuchsia */
48
+ --color-fuchsia-500: oklch(66.7% 0.295 322.15);
49
+ --color-fuchsia-800: oklch(45.2% 0.211 324.591);
50
+
51
+ /* gray */
52
+ --color-gray-400: oklch(70.7% 0.022 261.325);
53
+ --color-gray-600: oklch(44.6% 0.03 256.802);
54
+
55
+ /* green */
56
+ --color-green-300: oklch(87.1% 0.15 154.449);
57
+ --color-green-600: oklch(62.7% 0.194 149.214);
58
+ --color-green-700: oklch(52.7% 0.154 150.069);
59
+ --color-green-800: oklch(44.8% 0.119 151.328);
60
+
61
+ /* indigo */
62
+ --color-indigo-300: oklch(78.5% 0.115 274.713);
63
+ --color-indigo-400: oklch(67.3% 0.182 276.935);
64
+
65
+ /* mist */
66
+ --color-mist-50: oklch(98.7% 0.002 197.1);
67
+ --color-mist-100: oklch(96.3% 0.002 197.1);
68
+ --color-mist-200: oklch(92.5% 0.005 214.3);
69
+ --color-mist-400: oklch(72.3% 0.014 214.4);
70
+ --color-mist-500: oklch(56% 0.021 213.5);
71
+ --color-mist-800: oklch(27.5% 0.011 216.9);
72
+ --color-mist-900: oklch(21.8% 0.008 223.9);
73
+ --color-mist-950: oklch(14.8% 0.004 228.8);
74
+
75
+ /* neutral */
76
+ --color-neutral-50: oklch(98.5% 0 none);
77
+ --color-neutral-100: oklch(97% 0 none);
78
+ --color-neutral-200: oklch(92.2% 0 none);
79
+ --color-neutral-300: oklch(87% 0 none);
80
+ --color-neutral-400: oklch(70.8% 0 none);
81
+ --color-neutral-500: oklch(55.6% 0 none);
82
+ --color-neutral-600: oklch(43.9% 0 none);
83
+ --color-neutral-700: oklch(37.1% 0 none);
84
+ --color-neutral-800: oklch(26.9% 0 none);
85
+ --color-neutral-900: oklch(20.5% 0 none);
86
+ --color-neutral-950: oklch(14.5% 0 none);
87
+
88
+ /* orange */
89
+ --color-orange-100: oklch(95.4% 0.038 75.164);
90
+ --color-orange-600: oklch(64.6% 0.222 41.116);
91
+ --color-orange-700: oklch(55.3% 0.195 38.402);
92
+
93
+ /* pink */
94
+ --color-pink-300: oklch(82.3% 0.12 346.018);
95
+ --color-pink-500: oklch(65.6% 0.241 354.308);
96
+
97
+ /* purple */
98
+ --color-purple-100: oklch(94.6% 0.033 307.174);
99
+ --color-purple-500: oklch(62.7% 0.265 303.9);
100
+ --color-purple-600: oklch(55.8% 0.288 302.321);
101
+ --color-purple-700: oklch(49.6% 0.265 301.924);
102
+
103
+ /* red */
104
+ --color-red-400: oklch(70.4% 0.191 22.216);
105
+ --color-red-600: oklch(57.7% 0.245 27.325);
106
+ --color-red-700: oklch(50.5% 0.213 27.518);
107
+ --color-red-900: oklch(39.6% 0.141 25.723);
108
+
109
+ /* rose */
110
+ --color-rose-400: oklch(71.2% 0.194 13.428);
111
+ --color-rose-500: oklch(64.5% 0.246 16.439);
112
+
113
+ /* sky */
114
+ --color-sky-100: oklch(95.1% 0.026 236.824);
115
+ --color-sky-300: oklch(82.8% 0.111 230.318);
116
+ --color-sky-400: oklch(74.6% 0.16 232.661);
117
+ --color-sky-800: oklch(44.3% 0.11 240.79);
118
+ --color-sky-900: oklch(39.1% 0.09 240.876);
119
+
120
+ /* slate */
121
+ --color-slate-50: oklch(98.4% 0.003 247.858);
122
+ --color-slate-100: oklch(96.8% 0.007 247.896);
123
+ --color-slate-200: oklch(92.9% 0.013 255.508);
124
+ --color-slate-300: oklch(86.9% 0.022 252.894);
125
+ --color-slate-400: oklch(70.4% 0.04 256.788);
126
+ --color-slate-500: oklch(55.4% 0.046 257.417);
127
+ --color-slate-700: oklch(37.2% 0.044 257.287);
128
+ --color-slate-800: oklch(27.9% 0.041 260.031);
129
+ --color-slate-900: oklch(20.8% 0.042 265.755);
130
+ --color-slate-950: oklch(12.9% 0.042 264.695);
131
+
132
+ /* stone */
133
+ --color-stone-50: oklch(98.5% 0.001 106.423);
134
+ --color-stone-100: oklch(97% 0.001 106.424);
135
+ --color-stone-200: oklch(92.3% 0.003 48.717);
136
+ --color-stone-400: oklch(70.9% 0.01 56.259);
137
+ --color-stone-500: oklch(55.3% 0.013 58.071);
138
+ --color-stone-800: oklch(26.8% 0.007 34.298);
139
+ --color-stone-900: oklch(21.6% 0.006 56.043);
140
+ --color-stone-950: oklch(14.7% 0.004 49.25);
141
+
142
+ /* teal */
143
+ --color-teal-600: oklch(60% 0.118 184.704);
144
+ --color-teal-700: oklch(51.1% 0.096 186.391);
145
+
146
+ /* violet */
147
+ --color-violet-100: oklch(94.3% 0.029 294.588);
148
+ --color-violet-400: oklch(70.2% 0.183 293.541);
149
+ --color-violet-500: oklch(60.6% 0.25 292.717);
150
+ --color-violet-900: oklch(38% 0.189 293.745);
151
+
152
+ /* yellow */
153
+ --color-yellow-400: oklch(85.2% 0.199 91.936);
154
+ --color-yellow-500: oklch(79.5% 0.184 86.047);
155
+ --color-yellow-800: oklch(47.6% 0.114 61.907);
156
+
157
+ /* zinc */
158
+ --color-zinc-50: oklch(98.5% 0 none);
159
+ --color-zinc-100: oklch(96.7% 0.001 286.375);
160
+ --color-zinc-200: oklch(92% 0.004 286.32);
161
+ --color-zinc-400: oklch(70.5% 0.015 286.067);
162
+ --color-zinc-500: oklch(55.2% 0.016 285.938);
163
+ --color-zinc-800: oklch(27.4% 0.006 286.033);
164
+ --color-zinc-900: oklch(21% 0.006 285.885);
165
+ --color-zinc-950: oklch(14.1% 0.005 285.823);
166
+
167
+ /* spacing */
168
+ --spacing: 0.25rem;
169
+
170
+ /* breakpoint */
171
+ --breakpoint-sm: 40rem;
172
+ --breakpoint-md: 48rem;
173
+ --breakpoint-lg: 64rem;
174
+ --breakpoint-xl: 80rem;
175
+ --breakpoint-2xl: 96rem;
176
+
177
+ /* text */
178
+ --text-xs: 0.75rem;
179
+ --text-xs--line-height: calc(1 / 0.75);
180
+ --text-sm: 0.875rem;
181
+ --text-sm--line-height: calc(1.25 / 0.875);
182
+ --text-base: 1rem;
183
+ --text-base--line-height: calc(1.5 / 1);
184
+ --text-lg: 1.125rem;
185
+ --text-lg--line-height: calc(1.75 / 1.125);
186
+ --text-xl: 1.25rem;
187
+ --text-xl--line-height: calc(1.75 / 1.25);
188
+ --text-2xl: 1.5rem;
189
+ --text-2xl--line-height: calc(2 / 1.5);
190
+ --text-3xl: 1.875rem;
191
+ --text-3xl--line-height: calc(2.25 / 1.875);
192
+ --text-4xl: 2.25rem;
193
+ --text-4xl--line-height: calc(2.5 / 2.25);
194
+ --text-5xl: 3rem;
195
+ --text-5xl--line-height: 1;
196
+ --text-6xl: 3.75rem;
197
+ --text-6xl--line-height: 1;
198
+ --text-7xl: 4.5rem;
199
+ --text-7xl--line-height: 1;
200
+ --text-8xl: 6rem;
201
+ --text-8xl--line-height: 1;
202
+ --text-9xl: 8rem;
203
+ --text-9xl--line-height: 1;
204
+
205
+ /* tracking */
206
+ --tracking-tighter: -0.05em;
207
+ --tracking-tight: -0.025em;
208
+ --tracking-normal: 0em;
209
+ --tracking-wide: 0.025em;
210
+ --tracking-wider: 0.05em;
211
+ --tracking-widest: 0.1em;
212
+
213
+ /* leading */
214
+ --leading-tight: 1.25;
215
+ --leading-snug: 1.375;
216
+ --leading-normal: 1.5;
217
+ --leading-relaxed: 1.625;
218
+ --leading-loose: 2;
219
+
220
+ /* ease */
221
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
222
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
223
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
224
+ }
package/css/styles.css ADDED
@@ -0,0 +1,203 @@
1
+ /* =============================================================================
2
+ Trục HÌNH KHỐI — `data-style`. CSS THUẦN.
3
+
4
+ Trục thứ tư, độc lập với các trục kia: `data-palette` nói về SẮC, `.dark` nói
5
+ về SÁNG/TỐI, `data-surface` nói về VẬT LIỆU, còn cái này nói về BO GÓC, ĐỘ
6
+ ĐẬM CỦA ĐƯỜNG KẺ và ĐỘ THOÁNG.
7
+
8
+ TÁM giá trị, và chúng là TỔ HỢP của đúng ba núm vặn — không phải tám thiết kế
9
+ rời rạc. Ba núm đó, tất cả đều là token ĐÃ CÓ NGƯỜI ĐỌC từ trước:
10
+
11
+ bo góc `--radius`, kéo theo năm nấc `--radius-sm…2xl`
12
+ đường kẻ `--border`, `--input`
13
+ độ thoáng bốn `--ui-control-height-*`, hai `--ui-control-padding-x*`,
14
+ hai `--ui-field-height-*`, hai `--ui-field-padding-x-*`
15
+
16
+ | style | bo góc | đường kẻ | độ thoáng |
17
+ |-------|---------|----------|------------|
18
+ | Vega | 0,625rem| vừa | vừa | ← mặc định, KHÔNG có khối CSS
19
+ | Nova | 1rem | mờ | thoáng |
20
+ | Maia | 0,25rem | vừa | vừa |
21
+ | Lyra | 0 | đậm | vừa |
22
+ | Mira | 1,4rem | mờ | rất thoáng |
23
+ | Luma | 0,625rem| rất mờ | thoáng |
24
+ | Sera | 0,375rem| đậm | gọn |
25
+ | Rhea | 0,75rem | đậm | rất thoáng |
26
+
27
+ ĐIỀU KIỆN KẾT NẠP VẪN NGUYÊN: một style chỉ được nhận nếu nó dựng được từ
28
+ token đã có người đọc. Tám khối dưới đây KHÔNG khai một token mới nào — đó là
29
+ lý do con số tám không kéo theo cái giá mà "bản cạn kiệt kiểu PrimeVue" phải
30
+ trả (44 cỡ trên 12 component là ra 130–220 token). Style thứ chín mà phải đẻ
31
+ token mới thì đó là dấu hiệu dừng lại, không phải dấu hiệu viết thêm token.
32
+
33
+ Bản trước chỉ có hai (`default`, `flat`) và ghi "con số hai là cố ý". Lập
34
+ luận hồi đó nhắm vào SỐ TOKEN, không phải số style — mà tám tổ hợp của cùng
35
+ ba núm thì vẫn là số token đó. `default` nay là `vega`, `flat` nay là `nova`,
36
+ giá trị giữ nguyên từng con số.
37
+
38
+ Đổi id có một hệ quả đã biết: ai từng lưu `flat` trong localStorage sẽ được
39
+ `isStyleId` từ chối rồi rơi lui về `vega`. `readStored` KHÔNG xoá khoá, nên
40
+ không mất gì ngoài một lần chọn lại.
41
+
42
+ `vega` không có khối CSS nào cả — nó CHÍNH LÀ giá trị trong tokens.css. Cùng
43
+ lý do `hyperion` / `solid` / `theme` / `slate` / `subtle` không có khối.
44
+
45
+ ĐỘ ĐẶC HIỆU — ba lần lặp attribute ở mọi khối, không phải gõ nhầm:
46
+ `palettes.css` khai `--radius`, `--border` và `--input` bên trong
47
+ `:root:not(.dark)[data-palette="solar"]` — cũng (0,3,0). Nếu khối ở đây chỉ
48
+ (0,1,0) thì đặt cả hai thuộc tính lên CÙNG một phần tử sẽ ra: bảng màu thắng,
49
+ style im lặng không có tác dụng — đúng lớp lỗi `surfaces.css` đã dính một lần
50
+ ("Bảng màu đè token kính"). Bằng điểm rồi thì thứ tự nạp quyết định, và
51
+ `index.css` nạp file này SAU `palettes.css`.
52
+ ========================================================================== */
53
+
54
+ /* --- Nova — bo to, kẻ mờ, thoáng. Chính là `flat` của bản trước ------------ */
55
+
56
+ [data-style="nova"][data-style="nova"][data-style="nova"] {
57
+ --radius: 1rem;
58
+
59
+ /* Đường kẻ pha từ `--foreground` chứ không chốt một nấc xám: nhờ vậy một khai
60
+ báo đúng cho CẢ hai chế độ (nền tối thì `--foreground` gần trắng nên ra vệt
61
+ sáng mờ) và nó tự ám theo bảng màu. Chốt nấc thì phải khai mười lần. */
62
+ --border: color-mix(in oklab, var(--foreground) 7%, transparent);
63
+ --input: color-mix(in oklab, var(--foreground) 11%, transparent);
64
+
65
+ /* Control thoáng ra đúng một nấc `--spacing` (4px) ở cả bốn cỡ. Cộng đều chứ
66
+ không giãn theo tỉ lệ: thang cỡ của Button vốn cách nhau đúng một nấc, nhân
67
+ lên là nó vỡ nhịp. */
68
+ --ui-control-height-xs: calc(var(--spacing) * 7);
69
+ --ui-control-height-sm: calc(var(--spacing) * 8);
70
+ --ui-control-height-md: calc(var(--spacing) * 9);
71
+ --ui-control-height-lg: calc(var(--spacing) * 10);
72
+ --ui-control-padding-x-xs: calc(var(--spacing) * 2.5);
73
+ --ui-control-padding-x: calc(var(--spacing) * 3.5);
74
+
75
+ /* Ô nhập cũng vậy. `7.5` của mặc định giữ nguyên phần lẻ vì 30px là số đo có
76
+ thật của thiết kế — xem ghi chú tại chỗ trong tokens.css. */
77
+ --ui-field-height-sm: calc(var(--spacing) * 8.5);
78
+ --ui-field-height-md: calc(var(--spacing) * 10);
79
+ --ui-field-padding-x-sm: calc(var(--spacing) * 3.5);
80
+ --ui-field-padding-x-md: calc(var(--spacing) * 4);
81
+
82
+ /* Chữ trong khối văn xuôi cũng thoáng theo, nếu `.typeset` có mặt. Không đụng
83
+ `--typeset-size`: đổi cỡ chữ là việc của trang /typeset, không phải hệ quả
84
+ phụ của một style. */
85
+ --typeset-flow: 1.5em;
86
+ }
87
+
88
+ /* --- Maia — góc gần vuông, còn lại y như mặc định -------------------------- */
89
+
90
+ [data-style="maia"][data-style="maia"][data-style="maia"] {
91
+ --radius: 0.25rem;
92
+ }
93
+
94
+ /* --- Lyra — góc vuông hẳn, đường kẻ rõ. Nhịp control giữ mặc định --------- */
95
+
96
+ [data-style="lyra"][data-style="lyra"][data-style="lyra"] {
97
+ --radius: 0rem;
98
+ --border: color-mix(in oklab, var(--foreground) 16%, transparent);
99
+ --input: color-mix(in oklab, var(--foreground) 22%, transparent);
100
+ }
101
+
102
+ /* --- Mira — mềm nhất và rộng nhất ----------------------------------------- */
103
+
104
+ [data-style="mira"][data-style="mira"][data-style="mira"] {
105
+ --radius: 1.4rem;
106
+ --border: color-mix(in oklab, var(--foreground) 7%, transparent);
107
+ --input: color-mix(in oklab, var(--foreground) 11%, transparent);
108
+
109
+ --ui-control-height-xs: calc(var(--spacing) * 8);
110
+ --ui-control-height-sm: calc(var(--spacing) * 9);
111
+ --ui-control-height-md: calc(var(--spacing) * 10);
112
+ --ui-control-height-lg: calc(var(--spacing) * 11);
113
+ --ui-control-padding-x-xs: calc(var(--spacing) * 3);
114
+ --ui-control-padding-x: calc(var(--spacing) * 4);
115
+
116
+ --ui-field-height-sm: calc(var(--spacing) * 9.5);
117
+ --ui-field-height-md: calc(var(--spacing) * 11);
118
+ --ui-field-padding-x-sm: calc(var(--spacing) * 4);
119
+ --ui-field-padding-x-md: calc(var(--spacing) * 4.5);
120
+
121
+ --typeset-flow: 1.6em;
122
+ }
123
+
124
+ /* --- Luma — gần như không viền. Bo góc giữ mặc định ------------------------ */
125
+
126
+ [data-style="luma"][data-style="luma"][data-style="luma"] {
127
+ /* 4% chứ không phải `transparent`: đường kẻ còn phải tách hàng trong bảng và
128
+ tách mục trong menu. Bỏ hẳn là mất ranh giới, không phải mất trang trí. */
129
+ --border: color-mix(in oklab, var(--foreground) 4%, transparent);
130
+ --input: color-mix(in oklab, var(--foreground) 8%, transparent);
131
+
132
+ --ui-control-height-xs: calc(var(--spacing) * 7);
133
+ --ui-control-height-sm: calc(var(--spacing) * 8);
134
+ --ui-control-height-md: calc(var(--spacing) * 9);
135
+ --ui-control-height-lg: calc(var(--spacing) * 10);
136
+ --ui-control-padding-x-xs: calc(var(--spacing) * 2.5);
137
+ --ui-control-padding-x: calc(var(--spacing) * 3.5);
138
+
139
+ --ui-field-height-sm: calc(var(--spacing) * 8.5);
140
+ --ui-field-height-md: calc(var(--spacing) * 10);
141
+ --ui-field-padding-x-sm: calc(var(--spacing) * 3.5);
142
+ --ui-field-padding-x-md: calc(var(--spacing) * 4);
143
+
144
+ --typeset-flow: 1.5em;
145
+ }
146
+
147
+ /* --- Sera — dày đặc, kẻ rõ. Kiểu bảng điều khiển nhiều dữ liệu ------------- */
148
+
149
+ [data-style="sera"][data-style="sera"][data-style="sera"] {
150
+ --radius: 0.375rem;
151
+ --border: color-mix(in oklab, var(--foreground) 16%, transparent);
152
+ --input: color-mix(in oklab, var(--foreground) 22%, transparent);
153
+
154
+ --ui-control-height-xs: calc(var(--spacing) * 5);
155
+ --ui-control-height-sm: calc(var(--spacing) * 6);
156
+ --ui-control-height-md: calc(var(--spacing) * 7);
157
+ --ui-control-height-lg: calc(var(--spacing) * 8);
158
+ --ui-control-padding-x-xs: calc(var(--spacing) * 1.5);
159
+ --ui-control-padding-x: calc(var(--spacing) * 2);
160
+
161
+ --ui-field-height-sm: calc(var(--spacing) * 6.5);
162
+ --ui-field-height-md: calc(var(--spacing) * 8);
163
+ --ui-field-padding-x-sm: calc(var(--spacing) * 2);
164
+ --ui-field-padding-x-md: calc(var(--spacing) * 2.5);
165
+ }
166
+
167
+ /* --- Rhea — góc mềm vừa phải nhưng kẻ đậm và rất thoáng -------------------- */
168
+
169
+ /* BẢN ĐẦU CỦA KHỐI NÀY LÀ "VIÊN THUỐC" (`--radius: 999px`) VÀ NÓ BẤT KHẢ THI.
170
+ Ghi lại vì cái chặn nó không nằm ở CSS mà ở cấu trúc token, nên ai muốn thử
171
+ lại sẽ đâm vào đúng chỗ đó:
172
+
173
+ `Card` và `Button` cỡ mặc định CÙNG đọc `rounded-lg`. Đẩy `--radius` lên
174
+ 999px để nút thành viên thuốc thì card cũng nhận 999px, mà `border-radius`
175
+ tự kẹp ở một nửa cạnh ngắn — card 400×300 biến thành hình bầu dục. Đã dựng
176
+ và nhìn tận mắt, không phải suy đoán.
177
+
178
+ Chữa bằng cách khai thẳng năm nấc (`--radius-sm…2xl`) để chỉ nấc nhỏ thành
179
+ pill cũng không xong: nấc bị tranh chấp CHÍNH LÀ `lg`, tức nút cỡ mặc định
180
+ và card dùng chung. Muốn có pill thật thì phải đổi `Card` sang một nấc khác —
181
+ việc của component, không phải của trục hình khối.
182
+
183
+ Nên Rhea thành tổ hợp còn trống trong ba núm: góc mềm vừa, kẻ ĐẬM, rất
184
+ thoáng. Không style nào khác ghép đường kẻ đậm với control rộng. */
185
+ [data-style="rhea"][data-style="rhea"][data-style="rhea"] {
186
+ --radius: 0.75rem;
187
+ --border: color-mix(in oklab, var(--foreground) 16%, transparent);
188
+ --input: color-mix(in oklab, var(--foreground) 22%, transparent);
189
+
190
+ --ui-control-height-xs: calc(var(--spacing) * 8);
191
+ --ui-control-height-sm: calc(var(--spacing) * 9);
192
+ --ui-control-height-md: calc(var(--spacing) * 10);
193
+ --ui-control-height-lg: calc(var(--spacing) * 11);
194
+ --ui-control-padding-x-xs: calc(var(--spacing) * 3);
195
+ --ui-control-padding-x: calc(var(--spacing) * 4);
196
+
197
+ --ui-field-height-sm: calc(var(--spacing) * 9.5);
198
+ --ui-field-height-md: calc(var(--spacing) * 11);
199
+ --ui-field-padding-x-sm: calc(var(--spacing) * 4);
200
+ --ui-field-padding-x-md: calc(var(--spacing) * 4.5);
201
+
202
+ --typeset-flow: 1.6em;
203
+ }