@symbo.ls/mcp 1.0.23 → 1.0.25
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 +1 -1
- package/symbols_mcp/skills/AUDIT.md +3 -10
- package/symbols_mcp/skills/COMMON_MISTAKES.md +62 -2
- package/symbols_mcp/skills/DEFAULT_COMPONENTS.md +3 -487
- package/symbols_mcp/skills/DEFAULT_LIBRARY.md +1 -109
- package/symbols_mcp/skills/DEFAULT_STYLES.md +227 -0
- package/symbols_mcp/skills/DESIGN_PERSONAS.md +325 -0
- package/symbols_mcp/skills/DESIGN_SYSTEM.md +69 -27
- package/symbols_mcp/skills/DESIGN_TO_CODE.md +1 -10
- package/symbols_mcp/skills/LEARNINGS.md +91 -70
- package/symbols_mcp/skills/MIGRATION.md +3 -3
- package/symbols_mcp/skills/PATTERNS.md +102 -24
- package/symbols_mcp/skills/PROJECT_STRUCTURE.md +1 -1
- package/symbols_mcp/skills/RULES.md +50 -76
- package/symbols_mcp/skills/SDK.md +16 -0
- package/symbols_mcp/skills/SYNTAX.md +8 -6
- package/symbols_mcp/skills/BRAND_IDENTITY.md +0 -75
- package/symbols_mcp/skills/DESIGN_CRITIQUE.md +0 -75
- package/symbols_mcp/skills/DESIGN_SYSTEM_ARCHITECT.md +0 -72
- package/symbols_mcp/skills/DESIGN_TREND.md +0 -62
- package/symbols_mcp/skills/FIGMA_MATCHING.md +0 -74
- package/symbols_mcp/skills/MARKETING_ASSETS.md +0 -78
- package/symbols_mcp/skills/PRESENTATION.md +0 -78
package/package.json
CHANGED
|
@@ -59,26 +59,19 @@ Before auditing, confirm that every skill below has been consulted. Do not proce
|
|
|
59
59
|
|
|
60
60
|
### Design System
|
|
61
61
|
- DESIGN_SYSTEM
|
|
62
|
-
- DESIGN_SYSTEM_ARCHITECT
|
|
63
62
|
- DEFAULT_LIBRARY
|
|
63
|
+
- DEFAULT_STYLES
|
|
64
64
|
|
|
65
65
|
### UI / UX / Direction
|
|
66
66
|
- PATTERNS
|
|
67
67
|
- DESIGN_DIRECTION
|
|
68
|
-
- DESIGN_CRITIQUE
|
|
69
|
-
- DESIGN_TREND
|
|
70
68
|
- DESIGN_TO_CODE
|
|
71
|
-
-
|
|
69
|
+
- DESIGN_PERSONAS (includes: Brand Identity, Design Critique, Design Trend, Design System Architect, Figma Matching, Marketing Assets, Presentation)
|
|
72
70
|
|
|
73
71
|
### Components
|
|
74
72
|
- COMPONENTS
|
|
75
73
|
- DEFAULT_COMPONENTS
|
|
76
74
|
|
|
77
|
-
### Brand / Presentation
|
|
78
|
-
- BRAND_IDENTITY
|
|
79
|
-
- MARKETING_ASSETS
|
|
80
|
-
- PRESENTATION
|
|
81
|
-
|
|
82
75
|
### SEO
|
|
83
76
|
- SEO-METADATA
|
|
84
77
|
|
|
@@ -155,7 +148,7 @@ Complete each phase fully before moving to the next.
|
|
|
155
148
|
1. Align all layouts and flows with DESIGN_DIRECTION.md.
|
|
156
149
|
2. Enforce visual hierarchy discipline.
|
|
157
150
|
3. Fix all layout inconsistencies.
|
|
158
|
-
4. Validate Figma-to-code fidelity per
|
|
151
|
+
4. Validate Figma-to-code fidelity per DESIGN_PERSONAS (Figma Matching section).
|
|
159
152
|
5. Remove all visual noise.
|
|
160
153
|
|
|
161
154
|
---
|
|
@@ -242,18 +242,24 @@ set({ color: { blue: '#00f' }, typography: { base: 16 } })
|
|
|
242
242
|
|
|
243
243
|
---
|
|
244
244
|
|
|
245
|
-
## 14. Navigation — use `el.router()
|
|
245
|
+
## 14. Navigation — use `el.router()` with root element, never `window.location`
|
|
246
246
|
|
|
247
247
|
```js
|
|
248
248
|
// ❌ WRONG — bypasses SPA routing
|
|
249
249
|
onClick: () => { window.location.href = '/' }
|
|
250
250
|
onClick: () => { window.location.assign('/dashboard') }
|
|
251
251
|
|
|
252
|
-
//
|
|
252
|
+
// ❌ WRONG — el is a leaf/button, has no routes — throws "Cannot read properties of undefined"
|
|
253
|
+
onClick: (e, el) => el.router('/')
|
|
254
|
+
onClick: (e, el) => el.router('/', el)
|
|
255
|
+
|
|
256
|
+
// ✅ CORRECT — pass root element that holds route map
|
|
253
257
|
onClick: (e, el) => el.router('/', el.getRoot())
|
|
254
258
|
onClick: (e, el) => el.router('/dashboard', el.getRoot())
|
|
255
259
|
```
|
|
256
260
|
|
|
261
|
+
`el.getRoot()` returns the DOMQL root element which holds the `routes` map. Passing any other element causes a runtime error.
|
|
262
|
+
|
|
257
263
|
---
|
|
258
264
|
|
|
259
265
|
## 15. Links — use `extends: 'Link'` with `href` as prop, never `attr: { href }`
|
|
@@ -268,3 +274,57 @@ Nav: { tag: 'a', attr: { href: '/about' } }
|
|
|
268
274
|
// ✅ CORRECT — Link component with href as prop
|
|
269
275
|
Nav: { extends: 'Link', href: '/about', text: 'About' }
|
|
270
276
|
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 16. Animated elements — use `opacity + pointerEvents`, never `show` for transitions
|
|
281
|
+
|
|
282
|
+
`show: false` sets `display: none`, which cuts CSS transitions instantly. Elements that animate in/out must stay in the DOM.
|
|
283
|
+
|
|
284
|
+
```js
|
|
285
|
+
// ❌ WRONG — show removes element from layout, transitions never fire
|
|
286
|
+
Dropdown: {
|
|
287
|
+
show: (el, s) => s.root.open,
|
|
288
|
+
transition: 'opacity 0.2s ease', // Ignored — element is display:none when closed
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// ✅ CORRECT — element stays in DOM, transitions work
|
|
292
|
+
Dropdown: {
|
|
293
|
+
opacity: (el, s) => s.root.open ? '1' : '0',
|
|
294
|
+
pointerEvents: (el, s) => s.root.open ? 'auto' : 'none',
|
|
295
|
+
transition: 'opacity 0.2s ease, transform 0.2s ease',
|
|
296
|
+
transform: (el, s) => s.root.open ? 'translateY(0)' : 'translateY(-6px)',
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Use `show` only for elements that should be fully removed from layout with no animation. For modals, dropdowns, tooltips, drawers — always use the opacity pattern.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 17. CSS selectors — nest media and pseudo, never chain into one string
|
|
305
|
+
|
|
306
|
+
```js
|
|
307
|
+
// ❌ WRONG — chained selector string
|
|
308
|
+
'@dark :hover': { background: 'blue' }
|
|
309
|
+
'@mobileL :focus': { outline: 'none' }
|
|
310
|
+
|
|
311
|
+
// ✅ CORRECT — nested objects
|
|
312
|
+
'@dark': { ':hover': { background: 'blue' } }
|
|
313
|
+
'@mobileL': { ':focus': { outline: 'none' } }
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## 18. Colors — define once, shade with modifiers, not Tailwind-style palettes
|
|
319
|
+
|
|
320
|
+
```js
|
|
321
|
+
// ❌ WRONG — multiple shade definitions
|
|
322
|
+
color: {
|
|
323
|
+
blue50: '#eff6ff', blue100: '#dbeafe', blue200: '#bfdbfe',
|
|
324
|
+
blue300: '#93c5fd', blue400: '#60a5fa', blue500: '#3b82f6',
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// ✅ CORRECT — single base, use modifiers in components
|
|
328
|
+
color: { blue: '#0474f2' }
|
|
329
|
+
// Then: 'blue.7' (opacity), 'blue+20' (lighten), 'blue-30' (darken)
|
|
330
|
+
```
|
|
@@ -1,455 +1,10 @@
|
|
|
1
1
|
# Default Project Template — Complete Component Reference
|
|
2
2
|
|
|
3
3
|
All components from the default Symbols project template (default.symbo.ls).
|
|
4
|
-
|
|
5
|
-
Reference
|
|
4
|
+
Available in every project that includes the default library.
|
|
5
|
+
Reference by PascalCase key name — no imports needed.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Project Configuration
|
|
10
|
-
|
|
11
|
-
### symbols.json
|
|
12
|
-
```json
|
|
13
|
-
{
|
|
14
|
-
"key": "default-flattened.symbo.ls",
|
|
15
|
-
"dir": ".",
|
|
16
|
-
"bundler": "parcel"
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### config.js
|
|
21
|
-
```js
|
|
22
|
-
export default {
|
|
23
|
-
useReset: true,
|
|
24
|
-
useVariable: true,
|
|
25
|
-
useFontImport: true,
|
|
26
|
-
useIconSprite: true,
|
|
27
|
-
useSvgSprite: true,
|
|
28
|
-
useDefaultConfig: true,
|
|
29
|
-
useDocumentTheme: true,
|
|
30
|
-
verbose: false,
|
|
31
|
-
globalTheme: 'auto'
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### context.js
|
|
36
|
-
```js
|
|
37
|
-
import state from './state.js'
|
|
38
|
-
import dependencies from './dependencies.js'
|
|
39
|
-
import * as components from './components/index.js'
|
|
40
|
-
import * as snippets from './snippets/index.js'
|
|
41
|
-
import pages from './pages/index.js'
|
|
42
|
-
import * as functions from './functions/index.js'
|
|
43
|
-
import * as methods from './methods/index.js'
|
|
44
|
-
import designSystem from './designSystem/index.js'
|
|
45
|
-
import cases from './cases.js'
|
|
46
|
-
import files from './files/index.js'
|
|
47
|
-
|
|
48
|
-
export default {
|
|
49
|
-
state,
|
|
50
|
-
dependencies,
|
|
51
|
-
components,
|
|
52
|
-
snippets,
|
|
53
|
-
pages,
|
|
54
|
-
functions,
|
|
55
|
-
methods,
|
|
56
|
-
designSystem,
|
|
57
|
-
cases,
|
|
58
|
-
files
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### state.js
|
|
63
|
-
```js
|
|
64
|
-
export default {};
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### dependencies.js
|
|
68
|
-
```js
|
|
69
|
-
export default {};
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### envs.js
|
|
73
|
-
```js
|
|
74
|
-
export default {}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### sharedLibraries.js
|
|
78
|
-
```js
|
|
79
|
-
export default []
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Design System
|
|
85
|
-
|
|
86
|
-
### index.js (Design System entry)
|
|
87
|
-
```js
|
|
88
|
-
import color from './color.js'
|
|
89
|
-
import gradient from './gradient.js'
|
|
90
|
-
import theme from './theme.js'
|
|
91
|
-
import font from './font.js'
|
|
92
|
-
import font_family from './font_family.js'
|
|
93
|
-
import typography from './typography.js'
|
|
94
|
-
import spacing from './spacing.js'
|
|
95
|
-
import timing from './timing.js'
|
|
96
|
-
import _class from './class.js'
|
|
97
|
-
import grid from './grid.js'
|
|
98
|
-
import icons from './icons.js'
|
|
99
|
-
import shape from './shape.js'
|
|
100
|
-
import reset from './reset.js'
|
|
101
|
-
import animation from './animation.js'
|
|
102
|
-
import media from './media.js'
|
|
103
|
-
import cases from './cases.js'
|
|
104
|
-
|
|
105
|
-
export default {
|
|
106
|
-
color: color,
|
|
107
|
-
gradient: gradient,
|
|
108
|
-
theme: theme,
|
|
109
|
-
font: font,
|
|
110
|
-
font_family: font_family,
|
|
111
|
-
typography: typography,
|
|
112
|
-
spacing: spacing,
|
|
113
|
-
timing: timing,
|
|
114
|
-
class: _class,
|
|
115
|
-
grid: grid,
|
|
116
|
-
icons: icons,
|
|
117
|
-
shape: shape,
|
|
118
|
-
reset: reset,
|
|
119
|
-
animation: animation,
|
|
120
|
-
media: media,
|
|
121
|
-
cases: cases,
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### color
|
|
126
|
-
```js
|
|
127
|
-
export default {
|
|
128
|
-
green: '#389d34',
|
|
129
|
-
red: '#e15c55',
|
|
130
|
-
yellow: '#EDCB38',
|
|
131
|
-
orange: '#e97c16',
|
|
132
|
-
transparent: 'rgba(0, 0, 0, 0)',
|
|
133
|
-
black: 'black',
|
|
134
|
-
gray: '#4e4e50',
|
|
135
|
-
white: '#ffffff',
|
|
136
|
-
title: [
|
|
137
|
-
'--gray 1 -168',
|
|
138
|
-
'--gray 1 +168',
|
|
139
|
-
],
|
|
140
|
-
caption: [
|
|
141
|
-
'--gray 1 -68',
|
|
142
|
-
'--gray 1 +68',
|
|
143
|
-
],
|
|
144
|
-
paragraph: [
|
|
145
|
-
'--gray 1 -42',
|
|
146
|
-
'--gray 1 +42',
|
|
147
|
-
],
|
|
148
|
-
disabled: [
|
|
149
|
-
'--gray 1 -26',
|
|
150
|
-
'--gray 1 +26',
|
|
151
|
-
],
|
|
152
|
-
line: [
|
|
153
|
-
'--gray 1 -16',
|
|
154
|
-
'--gray 1 +16',
|
|
155
|
-
],
|
|
156
|
-
codGray: '#171717',
|
|
157
|
-
solitude: '#e5f1ff',
|
|
158
|
-
anakiwa: '#a3cdfd',
|
|
159
|
-
concrete: '#f2f2f2',
|
|
160
|
-
blue: '#0474f2',
|
|
161
|
-
phosphorus: '#4db852',
|
|
162
|
-
};
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### gradient
|
|
166
|
-
```js
|
|
167
|
-
export default {};
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### theme
|
|
171
|
-
```js
|
|
172
|
-
export default {
|
|
173
|
-
document: {
|
|
174
|
-
'@dark': {
|
|
175
|
-
background: 'codGray',
|
|
176
|
-
color: 'title',
|
|
177
|
-
},
|
|
178
|
-
'@light': {
|
|
179
|
-
background: 'gray 1 +168',
|
|
180
|
-
color: 'title',
|
|
181
|
-
},
|
|
182
|
-
},
|
|
183
|
-
dialog: {
|
|
184
|
-
'@dark': {
|
|
185
|
-
background: 'gray 0.95 -68',
|
|
186
|
-
color: 'title',
|
|
187
|
-
backdropFilter: 'blur(3px)',
|
|
188
|
-
borderColor: 'gray 0',
|
|
189
|
-
outlineColor: 'blue',
|
|
190
|
-
},
|
|
191
|
-
'@light': {
|
|
192
|
-
background: 'gray .95 +150',
|
|
193
|
-
color: 'title',
|
|
194
|
-
backdropFilter: 'blur(3px)',
|
|
195
|
-
borderColor: 'gray 0',
|
|
196
|
-
outlineColor: 'blue',
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
'dialog-elevated': {
|
|
200
|
-
'@dark': {
|
|
201
|
-
color: 'title',
|
|
202
|
-
background: 'gray 1 +68',
|
|
203
|
-
borderColor: 'gray 0',
|
|
204
|
-
outlineColor: 'blue',
|
|
205
|
-
backgroundKey: 'caption',
|
|
206
|
-
},
|
|
207
|
-
'@light': {
|
|
208
|
-
color: 'title',
|
|
209
|
-
background: 'gray 0.95 +140',
|
|
210
|
-
borderColor: 'gray 0',
|
|
211
|
-
outlineColor: 'blue',
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
field: {
|
|
215
|
-
'@dark': {
|
|
216
|
-
color: 'white',
|
|
217
|
-
background: 'gray 0.95 -65',
|
|
218
|
-
'::placeholder': {
|
|
219
|
-
color: 'white 1 -78',
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
'@light': {
|
|
223
|
-
color: 'black',
|
|
224
|
-
'::placeholder': {
|
|
225
|
-
color: 'gray 1 -68',
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
|
-
'field-dialog': {
|
|
230
|
-
'@dark': {
|
|
231
|
-
background: 'gray 1 -16',
|
|
232
|
-
color: 'title',
|
|
233
|
-
},
|
|
234
|
-
'@light': {
|
|
235
|
-
color: 'title',
|
|
236
|
-
background: 'gray 1 -96',
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
primary: {
|
|
240
|
-
'@dark': {
|
|
241
|
-
background: 'blue',
|
|
242
|
-
color: 'white',
|
|
243
|
-
},
|
|
244
|
-
'@light': {
|
|
245
|
-
color: 'white',
|
|
246
|
-
background: 'blue',
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
warning: {
|
|
250
|
-
'@dark': {
|
|
251
|
-
background: 'red',
|
|
252
|
-
color: 'white',
|
|
253
|
-
},
|
|
254
|
-
'@light': {
|
|
255
|
-
color: 'white',
|
|
256
|
-
background: 'red',
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
success: {
|
|
260
|
-
'@dark': {
|
|
261
|
-
background: 'green',
|
|
262
|
-
color: 'white',
|
|
263
|
-
},
|
|
264
|
-
'@light': {
|
|
265
|
-
background: 'green',
|
|
266
|
-
color: 'white',
|
|
267
|
-
},
|
|
268
|
-
},
|
|
269
|
-
none: {
|
|
270
|
-
color: 'none',
|
|
271
|
-
background: 'none',
|
|
272
|
-
},
|
|
273
|
-
transparent: {
|
|
274
|
-
color: 'currentColor',
|
|
275
|
-
background: 'transparent',
|
|
276
|
-
},
|
|
277
|
-
bordered: {
|
|
278
|
-
background: 'transparent',
|
|
279
|
-
'@dark': {
|
|
280
|
-
border: '1px solid #4e4e50',
|
|
281
|
-
},
|
|
282
|
-
'@light': {
|
|
283
|
-
border: '1px solid #a3cdfd',
|
|
284
|
-
},
|
|
285
|
-
},
|
|
286
|
-
};
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### font
|
|
290
|
-
```js
|
|
291
|
-
export default {};
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### font_family
|
|
295
|
-
```js
|
|
296
|
-
export default {
|
|
297
|
-
Default: {
|
|
298
|
-
isDefault: true,
|
|
299
|
-
value: [
|
|
300
|
-
'San Francisco, Helvetica Neue, Helvetica, Arial',
|
|
301
|
-
],
|
|
302
|
-
type: 'sans-serif',
|
|
303
|
-
},
|
|
304
|
-
};
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### typography
|
|
308
|
-
```js
|
|
309
|
-
export default {
|
|
310
|
-
'@default': {
|
|
311
|
-
base: 16,
|
|
312
|
-
ratio: 1.25,
|
|
313
|
-
range: [
|
|
314
|
-
-5,
|
|
315
|
-
12,
|
|
316
|
-
],
|
|
317
|
-
subSequence: true,
|
|
318
|
-
},
|
|
319
|
-
};
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### spacing
|
|
323
|
-
```js
|
|
324
|
-
export default {
|
|
325
|
-
'@default': {
|
|
326
|
-
base: 16,
|
|
327
|
-
ratio: 1.25,
|
|
328
|
-
range: [
|
|
329
|
-
-5,
|
|
330
|
-
12,
|
|
331
|
-
],
|
|
332
|
-
subSequence: true,
|
|
333
|
-
},
|
|
334
|
-
};
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### TIMING
|
|
338
|
-
```js
|
|
339
|
-
export default {
|
|
340
|
-
defaultBezier: 'cubic-bezier(.29, .67, .51, .97)',
|
|
341
|
-
};
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
### CLASS
|
|
345
|
-
```js
|
|
346
|
-
export default {};
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
### GRID
|
|
350
|
-
```js
|
|
351
|
-
export default {};
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
### icons
|
|
355
|
-
```js
|
|
356
|
-
export default {
|
|
357
|
-
symbols: '<svg height="24" width="24"><path d="M13.843 2.7C19.063 2.7 23 6.366 23 11.228c0 3.754-2.862 6.584-6.658 6.584-3.287 0-5.007-2.318-5.007-4.609 0-2.395 1.923-4.344 4.287-4.344.566 0 1.023.12 1.309.223a.212.212 0 01.137.229l-.016.058-.514 1.18a.223.223 0 01-.245.13 2.965 2.965 0 00-.506-.046c-1.245 0-2.258 1.027-2.258 2.288 0 1.33 1.165 2.373 2.651 2.373 2.195 0 3.913-1.777 3.913-4.046 0-3.024-2.294-5.135-5.58-5.135-4.076 0-7.393 3.36-7.393 7.491a7.519 7.519 0 002.871 5.924l-4.96 3.18A12.042 12.042 0 012 14.7c0-6.617 5.313-12 11.843-12z" fill-rule="evenodd"/></svg>',
|
|
358
|
-
logo: '<svg height="24" width="24"><path d="M13.843 2.7C19.063 2.7 23 6.366 23 11.228c0 3.754-2.862 6.584-6.658 6.584-3.287 0-5.007-2.318-5.007-4.609 0-2.395 1.923-4.344 4.287-4.344.566 0 1.023.12 1.309.223a.212.212 0 01.137.229l-.016.058-.514 1.18a.223.223 0 01-.245.13 2.965 2.965 0 00-.506-.046c-1.245 0-2.258 1.027-2.258 2.288 0 1.33 1.165 2.373 2.651 2.373 2.195 0 3.913-1.777 3.913-4.046 0-3.024-2.294-5.135-5.58-5.135-4.076 0-7.393 3.36-7.393 7.491a7.519 7.519 0 002.871 5.924l-4.96 3.18A12.042 12.042 0 012 14.7c0-6.617 5.313-12 11.843-12z" fill-rule="evenodd"/></svg>',
|
|
359
|
-
arrowDownCircle: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-circle"><circle cx="12" cy="12" r="10"/><path d="M8 12l4 4 4-4M12 8v8"/></svg>',
|
|
360
|
-
arrowDownLeft: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-left"><path d="M17 7L7 17M17 17H7V7"/></svg>',
|
|
361
|
-
arrowDownRight: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down-right"><path d="M7 7l10 10M17 7v10H7"/></svg>',
|
|
362
|
-
arrowDown: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down"><path d="M12 5v14M19 12l-7 7-7-7"/></svg>',
|
|
363
|
-
arrowLeftCircle: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left-circle"><circle cx="12" cy="12" r="10"/><path d="M12 8l-4 4 4 4M16 12H8"/></svg>',
|
|
364
|
-
arrowLeft: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><path d="M19 12H5M12 19l-7-7 7-7"/></svg>',
|
|
365
|
-
arrowRight: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><path d="M5 12h14M12 5l7 7-7 7"/></svg>',
|
|
366
|
-
arrowRightCircle: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right-circle"><circle cx="12" cy="12" r="10"/><path d="M12 16l4-4-4-4M8 12h8"/></svg>',
|
|
367
|
-
arrowUpCircle: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-circle"><circle cx="12" cy="12" r="10"/><path d="M16 12l-4-4-4 4M12 16V8"/></svg>',
|
|
368
|
-
arrowUpLeft: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-left"><path d="M17 17L7 7M7 17V7h10"/></svg>',
|
|
369
|
-
arrowUpRight: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-right"><path d="M7 17L17 7M7 7h10v10"/></svg>',
|
|
370
|
-
arrowUp: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up"><path d="M12 19V5M5 12l7-7 7 7"/></svg>',
|
|
371
|
-
checkCircle: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check-circle"><path d="M22 11.08V12a10 10 0 11-5.93-9.14"/><path d="M22 4L12 14.01l-3-3"/></svg>',
|
|
372
|
-
check: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><path d="M20 6L9 17l-5-5"/></svg>',
|
|
373
|
-
chevronDown: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><path d="M6 9l6 6 6-6"/></svg>',
|
|
374
|
-
chevronLeft: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-left"><path d="M15 18l-6-6 6-6"/></svg>',
|
|
375
|
-
chevronRight: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><path d="M9 18l6-6-6-6"/></svg>',
|
|
376
|
-
chevronUp: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-up"><path d="M18 15l-6-6-6 6"/></svg>',
|
|
377
|
-
copy: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-copy"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"/></svg>',
|
|
378
|
-
eyeOff: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye-off"><path d="M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24M1 1l22 22"/></svg>',
|
|
379
|
-
eye: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>',
|
|
380
|
-
info: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-info"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg>',
|
|
381
|
-
lock: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-lock"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0110 0v4"/></svg>',
|
|
382
|
-
minus: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minus"><path d="M5 12h14"/></svg>',
|
|
383
|
-
sun: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>',
|
|
384
|
-
moon: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg>',
|
|
385
|
-
moreHorizontal: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-horizontal"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg>',
|
|
386
|
-
moreVertical: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-vertical"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>',
|
|
387
|
-
send: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-send"><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></svg>',
|
|
388
|
-
smile: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-smile"><circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01"/></svg>',
|
|
389
|
-
search: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg>',
|
|
390
|
-
upload: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-upload"><path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 3v12"/></svg>',
|
|
391
|
-
video: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video"><path d="M23 7l-7 5 7 5V7z"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/></svg>',
|
|
392
|
-
x: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><path d="M18 6L6 18M6 6l12 12"/></svg>',
|
|
393
|
-
star: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-star"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>',
|
|
394
|
-
plus: '<svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus"><path d="M12 5v14M5 12h14"/></svg>',
|
|
395
|
-
};
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
### SHAPE
|
|
399
|
-
```js
|
|
400
|
-
export default {};
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
### reset
|
|
404
|
-
```js
|
|
405
|
-
export default {};
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
### ANIMATION
|
|
409
|
-
```js
|
|
410
|
-
export default {
|
|
411
|
-
fadeInUp: {
|
|
412
|
-
from: {
|
|
413
|
-
transform: 'translate3d(0, 12.5%, 1px)',
|
|
414
|
-
opacity: 0,
|
|
415
|
-
},
|
|
416
|
-
to: {
|
|
417
|
-
transform: 'translate3d(0, 0, 1px)',
|
|
418
|
-
opacity: 1,
|
|
419
|
-
},
|
|
420
|
-
},
|
|
421
|
-
fadeOutDown: {
|
|
422
|
-
from: {
|
|
423
|
-
transform: 'translate3d(0, 0, 1px)',
|
|
424
|
-
opacity: 1,
|
|
425
|
-
},
|
|
426
|
-
to: {
|
|
427
|
-
transform: 'translate3d(0, 12.5%, 1px)',
|
|
428
|
-
opacity: 0,
|
|
429
|
-
},
|
|
430
|
-
},
|
|
431
|
-
marquee: {
|
|
432
|
-
from: {
|
|
433
|
-
transform: 'translate3d(0, 0, 1px)',
|
|
434
|
-
},
|
|
435
|
-
to: {
|
|
436
|
-
transform: 'translate3d(-50%, 0, 1px)',
|
|
437
|
-
},
|
|
438
|
-
},
|
|
439
|
-
};
|
|
440
|
-
```
|
|
441
|
-
|
|
442
|
-
### media
|
|
443
|
-
```js
|
|
444
|
-
export default {};
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
### CASES
|
|
448
|
-
```js
|
|
449
|
-
export default {
|
|
450
|
-
isSafari: () => /^((?!chrome|android).)*safari/i.test(navigator.userAgent),
|
|
451
|
-
};
|
|
452
|
-
```
|
|
7
|
+
For project configuration, see PROJECT_STRUCTURE.md. For design system values, see DEFAULT_STYLES.md.
|
|
453
8
|
|
|
454
9
|
---
|
|
455
10
|
|
|
@@ -3801,42 +3356,3 @@ export const Video = {
|
|
|
3801
3356
|
|
|
3802
3357
|
---
|
|
3803
3358
|
|
|
3804
|
-
## Pages
|
|
3805
|
-
|
|
3806
|
-
The pages index exports an empty object:
|
|
3807
|
-
|
|
3808
|
-
```js
|
|
3809
|
-
export default {
|
|
3810
|
-
|
|
3811
|
-
}
|
|
3812
|
-
```
|
|
3813
|
-
|
|
3814
|
-
---
|
|
3815
|
-
|
|
3816
|
-
## Functions
|
|
3817
|
-
|
|
3818
|
-
### functions/index.js
|
|
3819
|
-
```js
|
|
3820
|
-
export * from './fibonacciNumberByIndex.js';
|
|
3821
|
-
export * from './fibonacciNumberByIndexCopy.js';
|
|
3822
|
-
```
|
|
3823
|
-
|
|
3824
|
-
### fibonacciNumberByIndex
|
|
3825
|
-
```js
|
|
3826
|
-
export const fibonacciNumberByIndex = {};
|
|
3827
|
-
```
|
|
3828
|
-
|
|
3829
|
-
### fibonacciNumberByIndexCopy
|
|
3830
|
-
```js
|
|
3831
|
-
export const fibonacciNumberByIndexCopy = {};
|
|
3832
|
-
```
|
|
3833
|
-
|
|
3834
|
-
---
|
|
3835
|
-
|
|
3836
|
-
## Snippets
|
|
3837
|
-
|
|
3838
|
-
The snippets index is empty (no exported snippets).
|
|
3839
|
-
|
|
3840
|
-
```js
|
|
3841
|
-
// empty
|
|
3842
|
-
```
|