@symbo.ls/mcp 1.0.10 → 1.0.11
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.
- package/package.json +5 -2
- package/symbols_mcp/skills/COMPONENTS.md +421 -0
- package/symbols_mcp/skills/DESIGN_SYSTEM.md +430 -0
- package/symbols_mcp/skills/MIGRATION.md +520 -0
- package/symbols_mcp/skills/PATTERNS.md +509 -0
- package/symbols_mcp/skills/PROJECT_STRUCTURE.md +400 -0
- package/symbols_mcp/skills/RULES.md +488 -0
- package/symbols_mcp/skills/SEO-METADATA.md +41 -1
- package/symbols_mcp/skills/SYNTAX.md +777 -0
- package/symbols_mcp/skills/ACCESSIBILITY.md +0 -471
- package/symbols_mcp/skills/ACCESSIBILITY_AUDITORY.md +0 -70
- package/symbols_mcp/skills/AGENT_INSTRUCTIONS.md +0 -265
- package/symbols_mcp/skills/BUILT_IN_COMPONENTS.md +0 -304
- package/symbols_mcp/skills/CLAUDE.md +0 -2158
- package/symbols_mcp/skills/CLI_QUICK_START.md +0 -205
- package/symbols_mcp/skills/DEFAULT_COMPONENTS.md +0 -2002
- package/symbols_mcp/skills/DEFAULT_DESIGN_SYSTEM.md +0 -496
- package/symbols_mcp/skills/DESIGN_SYSTEM_CONFIG.md +0 -487
- package/symbols_mcp/skills/DESIGN_SYSTEM_IN_PROPS.md +0 -136
- package/symbols_mcp/skills/DOMQL_v2-v3_MIGRATION.md +0 -236
- package/symbols_mcp/skills/MIGRATE_TO_SYMBOLS.md +0 -634
- package/symbols_mcp/skills/OPTIMIZATIONS_FOR_AGENT.md +0 -253
- package/symbols_mcp/skills/PROJECT_SETUP.md +0 -217
- package/symbols_mcp/skills/QUICKSTART.md +0 -79
- package/symbols_mcp/skills/REMOTE_PREVIEW.md +0 -144
- package/symbols_mcp/skills/SYMBOLS_LOCAL_INSTRUCTIONS.md +0 -1405
- package/symbols_mcp/skills/UI_UX_PATTERNS.md +0 -68
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
# Symbols Design System — Tokens, Themes & Configuration
|
|
2
|
+
|
|
3
|
+
The design system lives in `designSystem/` and controls all visual tokens consumed by DOMQL props.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Design System Files
|
|
8
|
+
|
|
9
|
+
| File | Purpose |
|
|
10
|
+
| ---------------- | ------------------------------------------------------------ |
|
|
11
|
+
| `COLOR.js` | Named color palette |
|
|
12
|
+
| `GRADIENT.js` | Gradient definitions |
|
|
13
|
+
| `THEME.js` | Semantic surface themes (document, dialog, field, primary…) |
|
|
14
|
+
| `FONT.js` | Custom font faces |
|
|
15
|
+
| `FONT_FAMILY.js` | Font family stacks |
|
|
16
|
+
| `TYPOGRAPHY.js` | Type scale (ratio + range) |
|
|
17
|
+
| `SPACING.js` | Spacing scale (ratio + range) |
|
|
18
|
+
| `TIMING.js` | Named easing curves |
|
|
19
|
+
| `CLASS.js` | Utility CSS class overrides |
|
|
20
|
+
| `ANIMATION.js` | Named keyframe animations |
|
|
21
|
+
| `MEDIA.js` | Custom media query breakpoints |
|
|
22
|
+
| `CASES.js` | Conditional environment flags |
|
|
23
|
+
| `RESET.js` | Global CSS reset overrides |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## How Tokens Are Used in Props
|
|
28
|
+
|
|
29
|
+
Props accept design tokens as strings. The system resolves them into CSS values via sequences, themes, and colors.
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
Card: {
|
|
33
|
+
padding: 'B C', // spacing token
|
|
34
|
+
background: 'primary.08', // color + opacity
|
|
35
|
+
borderRadius: 'B', // spacing token
|
|
36
|
+
shadow: 'soft', // shadow token
|
|
37
|
+
fontSize: 'B', // typography token
|
|
38
|
+
color: 'title' // adaptive color token
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## COLOR
|
|
45
|
+
|
|
46
|
+
### Static colors
|
|
47
|
+
|
|
48
|
+
| Token | Value | Use |
|
|
49
|
+
| ------------ | --------------- | ------------------------ |
|
|
50
|
+
| `green` | `#389d34` | Success states |
|
|
51
|
+
| `red` | `#e15c55` | Warning/error states |
|
|
52
|
+
| `yellow` | `#EDCB38` | Attention states |
|
|
53
|
+
| `orange` | `#e97c16` | Accent states |
|
|
54
|
+
| `blue` | `#0474f2` | Primary interactive |
|
|
55
|
+
| `black` | `black` | Pure black |
|
|
56
|
+
| `white` | `#ffffff` | Pure white |
|
|
57
|
+
| `gray` | `#4e4e50` | Neutral mid-tone |
|
|
58
|
+
| `codGray` | `#171717` | Near-black page bg |
|
|
59
|
+
| `transparent`| `rgba(0,0,0,0)` | Fully transparent |
|
|
60
|
+
|
|
61
|
+
### Adaptive semantic colors (dark/light aware)
|
|
62
|
+
|
|
63
|
+
| Token | Dark value | Light value | Use |
|
|
64
|
+
| ----------- | ------------------ | ------------------ | ------------------ |
|
|
65
|
+
| `title` | near-white | near-black | Primary text |
|
|
66
|
+
| `caption` | mid-gray | mid-gray | Secondary/meta |
|
|
67
|
+
| `paragraph` | lighter-gray | darker-gray | Body copy |
|
|
68
|
+
| `disabled` | dimmer-gray | dimmer-gray | Disabled state |
|
|
69
|
+
| `line` | subtle-gray | subtle-gray | Borders/dividers |
|
|
70
|
+
|
|
71
|
+
### Color modifier syntax (dot-notation)
|
|
72
|
+
|
|
73
|
+
Color tokens use dot-notation for opacity and `+`/`-` for relative tone shifts, `=` for absolute lightness:
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
'gray.95-68' // gray at 95% opacity, darkened 68 steps
|
|
77
|
+
'gray+168' // gray at full opacity, lightened 168 steps
|
|
78
|
+
'white-78' // white darkened 78 steps
|
|
79
|
+
'primary.5' // primary at 50% opacity
|
|
80
|
+
'primary+5' // shifted tone
|
|
81
|
+
'gray=90' // gray at absolute 90% lightness
|
|
82
|
+
'gray.5+15' // 50% opacity + 15 shade lighter
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Opacity rules:
|
|
86
|
+
- `.XX` always means `0.XX` — e.g., `.1` = 0.1, `.35` = 0.35, `.0` = 0.0
|
|
87
|
+
- Full opacity (1.0) = no modifier needed (just the color name)
|
|
88
|
+
- Raw CSS values (`rgba()`, `hsl()`, `#hex`) pass through unchanged
|
|
89
|
+
|
|
90
|
+
### Usage in components
|
|
91
|
+
|
|
92
|
+
```js
|
|
93
|
+
// Static
|
|
94
|
+
Text: { color: 'blue' }
|
|
95
|
+
|
|
96
|
+
// Adaptive semantic
|
|
97
|
+
Caption: { color: 'caption' }
|
|
98
|
+
|
|
99
|
+
// Inline tint
|
|
100
|
+
Box: { background: 'gray.1' }
|
|
101
|
+
|
|
102
|
+
// With tone modifier
|
|
103
|
+
Card: { background: 'gray.92+8' }
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## THEME
|
|
109
|
+
|
|
110
|
+
Apply with `theme: 'name'` on any element. Themes define `background` + `color` pairs per dark/light mode.
|
|
111
|
+
|
|
112
|
+
### Available themes
|
|
113
|
+
|
|
114
|
+
| Theme | Use |
|
|
115
|
+
| ----------------- | ------------------------------------------------- |
|
|
116
|
+
| `document` | Page root surface |
|
|
117
|
+
| `dialog` | Elevated card/panel with glass blur |
|
|
118
|
+
| `dialog-elevated` | Higher elevation (selected tabs) |
|
|
119
|
+
| `field` | Input control surface |
|
|
120
|
+
| `field-dialog` | Slightly elevated input inside dialog |
|
|
121
|
+
| `primary` | CTA: blue background, white text |
|
|
122
|
+
| `warning` | Destructive/alert: red background, white text |
|
|
123
|
+
| `success` | Positive: green background, white text |
|
|
124
|
+
| `transparent` | No background, inherits text color |
|
|
125
|
+
| `bordered` | Transparent + 1px border |
|
|
126
|
+
| `none` | Resets both color and background to `none` |
|
|
127
|
+
|
|
128
|
+
```js
|
|
129
|
+
Page: { extends: 'Flex', theme: 'document', minHeight: '100dvh' }
|
|
130
|
+
Card: { extends: 'Flex', theme: 'dialog', round: 'A', padding: 'A' }
|
|
131
|
+
Input: { theme: 'field' }
|
|
132
|
+
Button: { theme: 'primary', text: 'Save' }
|
|
133
|
+
Badge: { theme: 'warning', text: 'Error' }
|
|
134
|
+
Tab: { '.isActive': { theme: 'dialog-elevated' } }
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Custom theme definition
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
theme: {
|
|
141
|
+
button: {
|
|
142
|
+
color: 'text',
|
|
143
|
+
background: 'primary',
|
|
144
|
+
':hover': { background: 'primary.85' },
|
|
145
|
+
':active': { background: 'primary.75' },
|
|
146
|
+
'@dark': { background: 'primary.6' }
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## TYPOGRAPHY — Type Scale
|
|
154
|
+
|
|
155
|
+
Scale is generated using a ratio (Major Third = 1.25 by default). Tokens map to the sequence:
|
|
156
|
+
|
|
157
|
+
| Token range | Approx size | Common use |
|
|
158
|
+
| ------------- | ----------- | --------------------------- |
|
|
159
|
+
| `W`–`W2` | ~8–10 px | Micro text |
|
|
160
|
+
| `Z`–`Z2` | ~10–12 px | Caption, footnote |
|
|
161
|
+
| `Y`–`A` | ~12–16 px | Body text, small headings |
|
|
162
|
+
| `A1`–`B` | ~18–24 px | Headings, large body |
|
|
163
|
+
| `B1`–`C` | ~28–40 px | Display headings |
|
|
164
|
+
| `C1`–`C2` | ~48–64 px | Hero headlines |
|
|
165
|
+
|
|
166
|
+
```js
|
|
167
|
+
Heading: { fontSize: 'C' }
|
|
168
|
+
Caption: { fontSize: 'Z2' }
|
|
169
|
+
Body: { fontSize: 'A' }
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Config:
|
|
173
|
+
```js
|
|
174
|
+
typography: {
|
|
175
|
+
base: 16, // root font size
|
|
176
|
+
ratio: 1.25, // Major Third scale
|
|
177
|
+
range: [-5, 12],
|
|
178
|
+
subSequence: true // enables B2, C1 etc.
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## SPACING — Layout Scale
|
|
185
|
+
|
|
186
|
+
Golden Ratio scale (1.618 by default). Used for `padding`, `margin`, `gap`, `width`, `height`, `boxSize`, `borderRadius`, etc.
|
|
187
|
+
|
|
188
|
+
| Token | Approx value | Common use |
|
|
189
|
+
| -------- | ------------ | ------------------------------- |
|
|
190
|
+
| `W`–`W2` | 2–4 px | Micro gaps, offsets |
|
|
191
|
+
| `X`–`X2` | 4–6 px | Icon padding, tight gaps |
|
|
192
|
+
| `Z`–`Z2` | 10–16 px | Compact padding |
|
|
193
|
+
| `A`–`A2` | 16–26 px | Default padding, gutters |
|
|
194
|
+
| `B`–`B2` | 26–42 px | Section padding |
|
|
195
|
+
| `C`–`C2` | 42–68 px | Container padding, avatar sizes |
|
|
196
|
+
| `D`–`D2` | 68–110 px | Large sections |
|
|
197
|
+
| `E`–`F` | 110–178 px | Hero padding, max-widths |
|
|
198
|
+
|
|
199
|
+
> **Sub-sequence rules:** Small sequences like `W` and `X` only have `W`, `W1`, `W2` and `X`, `X1`, `X2`. Sub-tokens like `W4`, `X4` do **not** exist. The `3` and `4` sub-steps (e.g. `A3`, `A4`, `B3`, `B4`) only appear in larger sequences starting from `A` and above where the jump between base tokens is big enough to warrant them.
|
|
200
|
+
|
|
201
|
+
### Shorthand spacing
|
|
202
|
+
|
|
203
|
+
```js
|
|
204
|
+
padding: 'A' // all sides
|
|
205
|
+
padding: 'A B' // vertical | horizontal
|
|
206
|
+
padding: 'A B C' // top | horizontal | bottom
|
|
207
|
+
padding: 'A B C D' // top | right | bottom | left
|
|
208
|
+
margin: '- - - auto' // use '-' to skip a side
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Math in spacing
|
|
212
|
+
|
|
213
|
+
```js
|
|
214
|
+
Box: { padding: 'A+Z', margin: '-B', width: 'C+Z2' }
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## TIMING — Easing Curves
|
|
220
|
+
|
|
221
|
+
| Token | Value | Use |
|
|
222
|
+
| --------------- | ---------------------------------- | ---------------- |
|
|
223
|
+
| `defaultBezier` | `cubic-bezier(.29, .67, .51, .97)` | Smooth ease-out |
|
|
224
|
+
|
|
225
|
+
```js
|
|
226
|
+
Box: { transition: 'B defaultBezier', transitionProperty: 'opacity, transform' }
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Timing scale (in ms): `base: 150, ratio: 1.333`
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## ANIMATION
|
|
234
|
+
|
|
235
|
+
Named keyframe animations:
|
|
236
|
+
|
|
237
|
+
| Name | Effect | Use |
|
|
238
|
+
| ------------- | ------------------------------- | ---------------- |
|
|
239
|
+
| `fadeInUp` | Fade in + slide up from 12.5% | Entrance |
|
|
240
|
+
| `fadeOutDown` | Fade out + slide down to 12.5% | Exit |
|
|
241
|
+
| `marquee` | Scroll left by 50% | Ticker |
|
|
242
|
+
|
|
243
|
+
```js
|
|
244
|
+
Modal: { animation: 'fadeInUp B defaultBezier' }
|
|
245
|
+
Ticker: { animation: 'marquee 8s linear infinite' }
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## MEDIA — Breakpoints
|
|
251
|
+
|
|
252
|
+
Built-in breakpoints:
|
|
253
|
+
|
|
254
|
+
| Token | Query | Direction |
|
|
255
|
+
| ---------- | ------------------------ | ------------ |
|
|
256
|
+
| `tv` | `min-width: 2780px` | up |
|
|
257
|
+
| `screenL` | `max-width: 1920px` | down |
|
|
258
|
+
| `tabletL` | `max-width: 1366px` | down |
|
|
259
|
+
| `tabletS` | `max-width: 1024px` | down |
|
|
260
|
+
| `mobileL` | `max-width: 768px` | down |
|
|
261
|
+
| `mobileM` | `max-width: 560px` | down |
|
|
262
|
+
| `mobileS` | `max-width: 480px` | down |
|
|
263
|
+
| `light` | `prefers-color-scheme: light` | — |
|
|
264
|
+
| `dark` | `prefers-color-scheme: dark` | — |
|
|
265
|
+
|
|
266
|
+
Add `<` suffix for min-width (upward): `tabletL<` = `min-width: 1366px`
|
|
267
|
+
|
|
268
|
+
```js
|
|
269
|
+
Grid: {
|
|
270
|
+
columns: 'repeat(4, 1fr)',
|
|
271
|
+
'@tabletSm': { columns: 'repeat(2, 1fr)' },
|
|
272
|
+
'@mobileL': { columns: '1fr' }
|
|
273
|
+
}
|
|
274
|
+
Box: {
|
|
275
|
+
'@dark': { background: 'codGray' },
|
|
276
|
+
'@light': { background: 'concrete' }
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## CASES — Conditional Environment Flags
|
|
283
|
+
|
|
284
|
+
| Case | Condition |
|
|
285
|
+
| ---------- | ----------------------------------------- |
|
|
286
|
+
| `isSafari` | `true` when browser is Safari |
|
|
287
|
+
|
|
288
|
+
```js
|
|
289
|
+
Element: { $isSafari: { top: 'Z2', right: 'Z2' } }
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Design System Configuration
|
|
295
|
+
|
|
296
|
+
Define a single config object. Keys map directly to design system categories:
|
|
297
|
+
|
|
298
|
+
```js
|
|
299
|
+
const designSystemConfig = {
|
|
300
|
+
color: {
|
|
301
|
+
primary: '#1f6feb',
|
|
302
|
+
text: ['#0b0b0b', '#f5f5f5'], // [dark, light] adaptive
|
|
303
|
+
accent: {
|
|
304
|
+
'@light': '#ff7a18',
|
|
305
|
+
'@dark': '#ffb347'
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
theme: {
|
|
309
|
+
document: { color: 'text', background: 'primary.02' },
|
|
310
|
+
button: { color: 'text', background: 'primary' }
|
|
311
|
+
},
|
|
312
|
+
typography: { base: 16, ratio: 1.25, subSequence: true },
|
|
313
|
+
spacing: { base: 16, ratio: 1.618, subSequence: true },
|
|
314
|
+
timing: { base: 150, ratio: 1.333, unit: 'ms' },
|
|
315
|
+
font: {
|
|
316
|
+
Inter: {
|
|
317
|
+
url: '/fonts/Inter-Variable.woff2',
|
|
318
|
+
isVariable: true,
|
|
319
|
+
fontWeight: '100 900'
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
font_family: {
|
|
323
|
+
primary: { value: ['Inter'], type: 'sans', isDefault: true }
|
|
324
|
+
},
|
|
325
|
+
icons: { search: '<svg>...</svg>' },
|
|
326
|
+
svg: { logo: '<svg>...</svg>' },
|
|
327
|
+
shadow: {
|
|
328
|
+
soft: 'black.15 0px 10px 30px 0px',
|
|
329
|
+
hard: ['black.25 0px 8px 16px 0px', 'black.35 0px 10px 24px 0px'] // [light, dark]
|
|
330
|
+
},
|
|
331
|
+
media: {
|
|
332
|
+
mobile: '(max-width: 768px)',
|
|
333
|
+
desktop: '(min-width: 1024px)'
|
|
334
|
+
},
|
|
335
|
+
|
|
336
|
+
// Configuration flags
|
|
337
|
+
useVariable: true, // emit CSS custom properties
|
|
338
|
+
useReset: true, // apply CSS reset
|
|
339
|
+
useFontImport: true, // load fonts via @font-face
|
|
340
|
+
useIconSprite: true, // inline SVG sprite
|
|
341
|
+
useDocumentTheme: true, // apply document theme to <html>
|
|
342
|
+
useDefaultConfig: true, // merge smbls default design system
|
|
343
|
+
globalTheme: 'dark', // force dark/light mode globally
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Valid top-level config keys
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
color, gradient, theme, typography, spacing, timing,
|
|
351
|
+
font, font_family, icons, semantic_icons, svg, svg_data,
|
|
352
|
+
shadow, media, grid, class, reset, unit, animation, cases
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Do NOT** wrap these under `props` or other wrappers.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Fonts
|
|
360
|
+
|
|
361
|
+
### Variable font (Google Fonts)
|
|
362
|
+
```js
|
|
363
|
+
font: {
|
|
364
|
+
Inter: {
|
|
365
|
+
url: 'https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap',
|
|
366
|
+
isVariable: true,
|
|
367
|
+
fontWeight: '100 900'
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Variable font (self-hosted)
|
|
373
|
+
```js
|
|
374
|
+
font: {
|
|
375
|
+
Inter: { url: '/fonts/Inter-Variable.woff2', isVariable: true, fontWeight: '100 900' }
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Traditional per-weight files
|
|
380
|
+
```js
|
|
381
|
+
font: {
|
|
382
|
+
inter: {
|
|
383
|
+
400: { url: '/fonts/Inter-Regular.woff2', fontWeight: 400 },
|
|
384
|
+
700: { url: '/fonts/Inter-Bold.woff2', fontWeight: 700 }
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Icons & SVG
|
|
392
|
+
|
|
393
|
+
```js
|
|
394
|
+
icons: {
|
|
395
|
+
search: '<svg>...</svg>' // converted to sprite
|
|
396
|
+
},
|
|
397
|
+
semantic_icons: {
|
|
398
|
+
logo: true // NOT converted to sprite (used as-is)
|
|
399
|
+
},
|
|
400
|
+
svg: {
|
|
401
|
+
logo: '<svg>...</svg>' // general SVG assets
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Default icon set includes: `symbols`, `logo`, arrow variants, `check`, `checkCircle`, chevron variants, `copy`, `eye`, `eyeOff`, `info`, `lock`, `minus`, `plus`, `search`, `send`, `smile`, `star`, `sun`, `moon`, `upload`, `video`, `x`, `moreHorizontal`, `moreVertical`
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## Design System Flags
|
|
410
|
+
|
|
411
|
+
| Flag | Default | Effect |
|
|
412
|
+
| ------------------ | ------- | ----------------------------------------- |
|
|
413
|
+
| `useReset` | `true` | Apply CSS reset |
|
|
414
|
+
| `useVariable` | `true` | Emit CSS custom properties for all tokens |
|
|
415
|
+
| `useFontImport` | `true` | Load FONT entries via @font-face |
|
|
416
|
+
| `useIconSprite` | `true` | Inline the ICONS SVG sprite into the DOM |
|
|
417
|
+
| `useSvgSprite` | `true` | Inline SVG sprite definitions |
|
|
418
|
+
| `useDefaultConfig` | `true` | Merge smbls default design system config |
|
|
419
|
+
| `useDocumentTheme` | `true` | Apply document theme to `<html>` |
|
|
420
|
+
| `verbose` | `false` | Suppress design system debug output |
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Common Mistakes
|
|
425
|
+
|
|
426
|
+
- Do not nest config under `props` or other wrappers
|
|
427
|
+
- Use `font_family` instead of `fontFamily`
|
|
428
|
+
- Define `typography` and `spacing` if you use tokens like `A`, `B2`, or `C+Z`
|
|
429
|
+
- Use named color tokens, not raw hex, for all interactive/semantic colors
|
|
430
|
+
- Use dot-notation for color opacity: `color: 'white.7'` (not `'white .7'`)
|