@fractaldesign/fractalstyler 0.0.0-stage → 0.9.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 (46) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +123 -2
  3. package/cli/main.mjs +141 -0
  4. package/cli/scaffold.mjs +406 -0
  5. package/data/recipes.json +61 -0
  6. package/dist/asset.d.ts +3 -0
  7. package/dist/css/fractalstyler.css +2453 -0
  8. package/dist/css/fractalstyler.min.css +2 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.js +6 -0
  11. package/dist/styles/_00_config.sass +29 -0
  12. package/dist/styles/_00_fonts.sass +58 -0
  13. package/dist/styles/_00_tokens.sass +211 -0
  14. package/dist/styles/_01_base.sass +58 -0
  15. package/dist/styles/_02_dimensions.sass +70 -0
  16. package/dist/styles/_03_typography.sass +170 -0
  17. package/dist/styles/_04_containers.sass +173 -0
  18. package/dist/styles/_05_layouts.sass +104 -0
  19. package/dist/styles/_06_shells.sass +135 -0
  20. package/dist/styles/_07_interactions.sass +212 -0
  21. package/dist/styles/_08_visuals.sass +136 -0
  22. package/dist/styles/_09_own.sass +174 -0
  23. package/dist/styles/colorpacks.sass +119 -0
  24. package/dist/styles/index.sass +14 -0
  25. package/dist/styles/themeplates.sass +159 -0
  26. package/docs/REGISTRY.api.md +477 -0
  27. package/docs/REGISTRY.md +14 -0
  28. package/docs/references/configurations-api.md +220 -0
  29. package/docs/references/configurations.md +258 -0
  30. package/lint/browser.mjs +79 -0
  31. package/lint/cli.mjs +212 -0
  32. package/lint/lib/agent-reporter.mjs +51 -0
  33. package/lint/lib/fuzzy.mjs +45 -0
  34. package/lint/lib/registry.mjs +107 -0
  35. package/lint/lib/sass-linter.mjs +71 -0
  36. package/lint/lib/svelte-linter.mjs +116 -0
  37. package/lint/lib/token-linter.mjs +97 -0
  38. package/package.json +112 -5
  39. package/registry.json +3999 -0
  40. package/scripts/class-vocab.js +197 -0
  41. package/scripts/update-registry.js +934 -0
  42. package/skills/fractal-styler/references/fractals.md +630 -0
  43. package/skills/fractal-styler/references/tokens.md +226 -0
  44. package/skills/fractalstyler/SKILL.md +59 -0
  45. package/skills/fractalstyler/references/fractals.md +630 -0
  46. package/skills/fractalstyler/references/tokens.md +226 -0
@@ -0,0 +1,212 @@
1
+ @use '00_config' as *
2
+ @use '00_tokens' as *
3
+
4
+ .input
5
+ display: block
6
+ width: 100%
7
+ height: var(--height-lg)
8
+ padding-inline: var(--space-bs)
9
+ font-size: var(--text-md)
10
+ background: var(--bg-input)
11
+ color: var(--text-primary)
12
+ border: 1px solid var(--border)
13
+ border-radius: var(--radius-sm)
14
+ &:focus-visible
15
+ outline: none
16
+ border-color: var(--theme-color)
17
+ box-shadow: 0 0 0 2px var(--ring)
18
+ &.small
19
+ height: var(--height-bs)
20
+ font-size: var(--text-sm)
21
+
22
+ .select
23
+ display: block
24
+ width: 100%
25
+ height: var(--height-lg)
26
+ padding-inline: var(--space-bs)
27
+ font-size: var(--text-md)
28
+ background-color: var(--bg-input)
29
+ color: var(--text-primary)
30
+ border: 1px solid var(--border)
31
+ border-radius: var(--radius-sm)
32
+ appearance: none
33
+ -webkit-appearance: none
34
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23697080' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
35
+ background-repeat: no-repeat
36
+ background-position: right 8px center
37
+ cursor: pointer
38
+ &:focus-visible
39
+ outline: none
40
+ border-color: var(--theme-color)
41
+ box-shadow: 0 0 0 2px var(--ring)
42
+ &.small
43
+ height: var(--height-bs)
44
+ font-size: var(--text-sm)
45
+
46
+
47
+ // --- The link family -------------------------------------------------------------
48
+ .link
49
+ color: var(--theme-color)
50
+ text-decoration: none
51
+ transition: color var(--motionin1)
52
+ &:hover
53
+ color: var(--theme-color-alt)
54
+
55
+ .link-plain
56
+ color: var(--text-primary)
57
+ text-decoration: none
58
+ transition: color var(--motionin1)
59
+ &:hover
60
+ color: var(--theme-color)
61
+
62
+ .link-parent
63
+ color: var(--text-primary)
64
+ text-decoration: none
65
+ .link-title
66
+ transition: color var(--motionin1)
67
+ &:hover
68
+ .link-title
69
+ color: var(--theme-color)
70
+
71
+ a.nav-link
72
+ padding: var(--space-sm)
73
+ border-radius: var(--radius-sm)
74
+ &:hover
75
+ background: var(--state-hover)
76
+
77
+ // --- The button quartet (nested — never standalone) -----------------------------
78
+ button
79
+ display: flex
80
+ align-items: center
81
+ justify-content: center
82
+ height: var(--height-bs)
83
+ font-size: var(--text-md)
84
+ color: var(--text-primary)
85
+ text-decoration: none
86
+ cursor: pointer
87
+ user-select: none
88
+ transition: background var(--motionin1), border-color var(--motionin1), color var(--motionin1)
89
+ padding-inline: var(--space-md)
90
+ &:focus-visible
91
+ outline: 2px solid var(--ring)
92
+ outline-offset: 1px
93
+ &:disabled
94
+ opacity: 0.5
95
+ cursor: not-allowed
96
+ pointer-events: none
97
+ &.icon
98
+ height: 24px
99
+ width: 24px
100
+ border: 1px solid transparent
101
+ background: transparent
102
+ padding: 0
103
+ &:hover
104
+ background: var(--state-hover)
105
+ &.modern
106
+ border-radius: var(--space-xs)
107
+ &.primary
108
+ background: var(--theme-color)
109
+ &[data-variant="primary"]
110
+ background: var(--theme-color)
111
+ color: var(--white-fixed)
112
+ border: 1px solid var(--theme-color)
113
+ &:hover
114
+ background: var(--theme-color-alt)
115
+ border: 1px solid var(--theme-color-alt)
116
+ &[data-variant="secondary"]
117
+ background: var(--state-surface)
118
+ color: var(--text-primary)
119
+ border: 1px solid var(--border-strong)
120
+ &:hover
121
+ background: var(--state-hover)
122
+ &[data-variant="soft"]
123
+ background: var(--theme-color-sub)
124
+ color: var(--white-fixed)
125
+ border: 1px solid var(--theme-color-sub)
126
+ &:hover
127
+ border: 1px solid var(--text-primary)
128
+ color: var(--text-primary)
129
+ &[data-variant="outline"]
130
+ background: var(--bg)
131
+ color: var(--text-primary)
132
+ border: 1px solid var(--text-primary)
133
+ &:hover
134
+ background: var(--state-hover)
135
+ &[data-variant="ghost"]
136
+ background: transparent
137
+ color: var(--text-primary)
138
+ border: none
139
+ &:hover
140
+ background: var(--state-hover)
141
+ &[data-variant="link"]
142
+ background: transparent
143
+ color: var(--theme-color)
144
+ border: none
145
+ &:hover
146
+ text-decoration: underline
147
+ &[data-variant="destructive"]
148
+ background: var(--danger)
149
+ color: var(--white-fixed)
150
+ border: 1px solid var(--danger)
151
+ &:hover
152
+ animation: vibrating 60ms infinite forwards
153
+ &[data-shape="modern"]
154
+ border-radius: var(--radius-sm)
155
+ &[data-shape="curved"]
156
+ border-radius: var(--radius-md)
157
+ &[data-shape="round"]
158
+ border-radius: var(--radius-full)
159
+ &[data-size="sm"]
160
+ height: var(--height-sm)
161
+ font-size: var(--text-sm)
162
+ &[data-size="md"]
163
+ height: var(--height-md)
164
+ font-size: var(--text-md)
165
+ &[data-size="bs"]
166
+ height: var(--height-bs)
167
+ font-size: var(--text-bs)
168
+ &[data-size="lg"]
169
+ height: var(--height-lg)
170
+ font-size: var(--text-bs)
171
+
172
+ @keyframes vibrating
173
+ 0%
174
+ transform: scale(0)
175
+ 50%
176
+ transform: scale(1.03)
177
+ 100%
178
+ transform: scale(0)
179
+
180
+
181
+ a.primary
182
+ background: var(--theme-color)
183
+ font-size: var(--text-lg)
184
+ color: var(--white-fixed)
185
+ height: 40px
186
+ align-items: center
187
+ justify-content: center
188
+ display: flex
189
+ min-width: 6rem
190
+ box-shadow: var(--shadow-sm)
191
+ transition: box-shadow var(--motionin1)
192
+ &.modern
193
+ border-radius: var(--space-xs)
194
+ &:hover
195
+ box-shadow: var(--shadow-bs)
196
+
197
+ a.outline
198
+ background: transparent
199
+ font-size: var(--text-lg)
200
+ color: var(--text-primary)
201
+ align-items: center
202
+ justify-content: center
203
+ display: flex
204
+ min-width: 6rem
205
+ height: 40px
206
+ box-shadow: var(--shadow-sm)
207
+ border: 1px solid var(--text-primary)
208
+ transition: box-shadow var(--motionin1)
209
+ &.modern
210
+ border-radius: var(--space-xs)
211
+ &:hover
212
+ box-shadow: var(--shadow-bs)
@@ -0,0 +1,136 @@
1
+ // ============================================================================
2
+ // dress — L5. Skin and compositions. Emission order within this file follows
3
+ // Contract 5: bare dress before compositions. Components own their own hover
4
+ // states; there is no standalone .hover / .transition (registry ruling).
5
+ // All compositions read the --radius-* channels so shape presets reach them.
6
+ // ============================================================================
7
+
8
+ @use 'sass:string'
9
+ @use 'sass:list'
10
+ @use 'sass:map'
11
+ @use '00_config' as *
12
+ @use '00_tokens' as *
13
+
14
+ // --- Bare backgrounds (one declaration each) ----------------------------------
15
+ .bg
16
+ background: var(--bg)
17
+ .surface
18
+ background: var(--bg-surface)
19
+ .panel
20
+ background: var(--bg-panel)
21
+ .sunken
22
+ background: var(--bg-sunken)
23
+ .raised
24
+ background: var(--bg-raised)
25
+ .extra
26
+ background: var(--bg-extra)
27
+
28
+ // --- Ink ----------------------------------------------------------------------
29
+ .text-primary
30
+ color: var(--text-primary)
31
+ .text-secondary
32
+ color: var(--text-secondary)
33
+ .text-muted
34
+ color: var(--text-muted)
35
+ .text-inverse
36
+ color: var(--text-inverse)
37
+ .text-white
38
+ color: var(--white-fixed)
39
+ .text-black
40
+ color: var(--black-fixed)
41
+ .text-theme
42
+ color: var(--theme-color)
43
+ .text-success
44
+ color: var(--success)
45
+ .text-warning
46
+ color: var(--warning)
47
+ .text-danger
48
+ color: var(--danger)
49
+ .text-info
50
+ color: var(--info)
51
+
52
+ // Status fills, mirroring the status inks above. A dot or chip that carries the
53
+ // status as a background had no composable form before these, which made it a
54
+ // reason to open _09_own.sass.
55
+ .bg-success
56
+ background: var(--success)
57
+ .bg-warning
58
+ background: var(--warning)
59
+ .bg-danger
60
+ background: var(--danger)
61
+ .bg-info
62
+ background: var(--info)
63
+
64
+ // --- Lines (the partition-law set) ---------------------------------------------
65
+ .border
66
+ border: 1px solid var(--border)
67
+ .border-subtle
68
+ border: 1px solid var(--border-subtle)
69
+ .border-strong
70
+ border: 1px solid var(--border-strong)
71
+ .bt
72
+ border-top: 1px solid var(--border)
73
+ .br
74
+ border-right: 1px solid var(--border)
75
+ .bb
76
+ border-bottom: 1px solid var(--border)
77
+ .bl
78
+ border-left: 1px solid var(--border)
79
+ .bt-str
80
+ border-top: 1px solid var(--border-strong)
81
+ .br-str
82
+ border-right: 1px solid var(--border-strong)
83
+ .bb-str
84
+ border-bottom: 1px solid var(--border-strong)
85
+ .bl-str
86
+ border-left: 1px solid var(--border-strong)
87
+ .bt-sub
88
+ border-top: 1px solid var(--border-subtle)
89
+ .br-sub
90
+ border-right: 1px solid var(--border-subtle)
91
+ .bb-sub
92
+ border-bottom: 1px solid var(--border-subtle)
93
+ .bl-sub
94
+ border-left: 1px solid var(--border-subtle)
95
+
96
+ .shadow-xs
97
+ box-shadow: var(--shadow-xs)
98
+ .shadow-sm
99
+ box-shadow: var(--shadow-sm)
100
+ .shadow-md
101
+ box-shadow: var(--shadow-md)
102
+ .shadow-bs
103
+ box-shadow: var(--shadow-bs)
104
+ .shadow-lg
105
+ box-shadow: var(--shadow-lg)
106
+ .shadow-xl
107
+ box-shadow: var(--shadow-xl)
108
+ .shadow-2xl
109
+ box-shadow: var(--shadow-2xl)
110
+ .shadow-3xl
111
+ box-shadow: var(--shadow-3xl)
112
+
113
+
114
+ // --- Responsive visibility -----------------------------------------------------
115
+ .hide-mobile
116
+ @media (max-width: 1024px)
117
+ display: none
118
+
119
+ .hide-desktop
120
+ @media (min-width: 1025px)
121
+ display: none
122
+
123
+ //special color classes
124
+
125
+ .orange1
126
+ color: var(--orangepop1)
127
+ .orange2
128
+ color: var(--orangepop2)
129
+ .orange3
130
+ color: var(--orangepop3)
131
+ .orange4
132
+ color: var(--orangepop4)
133
+ .orange5
134
+ color: var(--orangepop5)
135
+ .orange6
136
+ color: var(--orangepop6)
@@ -0,0 +1,174 @@
1
+ @use '00_config' as *
2
+ @use '00_tokens' as *
3
+
4
+ .site-logomotif
5
+ height: 48px
6
+ transform-origin: center center
7
+ transition: transform 210ms var(--transin2)
8
+ &:hover
9
+ transform: scale(1.2)
10
+
11
+ .logotype
12
+ height: 28px
13
+
14
+ .project-circle
15
+ border-radius: 24px
16
+ width: 16px
17
+ height: 16px
18
+
19
+
20
+ // Mascot (src/lib/comps/Mascot.svelte): CSS-only "3D feel" logo.
21
+ // JS writes the --mascot-* custom properties on .mascot; all transforms live here.
22
+ // Pupil/gloss translations are in SVG user units (1024 image space), hence `* 1px`.
23
+ .mascot
24
+ display: inline-block
25
+ position: relative
26
+ flex: none
27
+ line-height: 0
28
+ perspective: var(--mascot-persp, 400px)
29
+
30
+ .mascot-bob,
31
+ .mascot-tilt
32
+ display: block
33
+
34
+ .mascot-bobs .mascot-bob
35
+ animation: mascot-bob 3.6s ease-in-out infinite alternate
36
+
37
+ .mascot-tilt
38
+ position: relative
39
+ transform: rotateX(var(--mascot-rx, 0deg)) rotateY(var(--mascot-ry, 0deg))
40
+ will-change: transform
41
+
42
+ .mascot-base
43
+ display: block
44
+ user-select: none
45
+ -webkit-user-drag: none
46
+
47
+ .mascot-overlay
48
+ position: absolute
49
+ inset: 0
50
+ width: 100%
51
+ height: 100%
52
+ overflow: visible
53
+ pointer-events: none
54
+
55
+ .mascot-mask
56
+ mask-type: alpha
57
+
58
+ .mascot-pupil-l
59
+ transform: translate(calc(var(--mascot-plx, 0) * 1px), calc(var(--mascot-ply, 0) * 1px))
60
+
61
+ .mascot-pupil-r
62
+ transform: translate(calc(var(--mascot-prx, 0) * 1px), calc(var(--mascot-pry, 0) * 1px))
63
+
64
+ .mascot-gloss
65
+ opacity: 0.42
66
+ transform: translate(calc(var(--mascot-gx, 400) * 1px), calc(var(--mascot-gy, 400) * 1px))
67
+
68
+ .mascot-shade
69
+ opacity: 0.55
70
+ transform: translate(calc((1024 - var(--mascot-gx, 400)) * 1px), calc((1120 - var(--mascot-gy, 400)) * 1px))
71
+
72
+ .mascot-blinks .mascot-lid
73
+ animation: mascot-blink 5.2s ease-in-out infinite
74
+
75
+ @keyframes mascot-blink
76
+ 0%, 93%, 100%
77
+ transform: translateY(0)
78
+ 96%
79
+ transform: translateY(232px)
80
+
81
+ @keyframes mascot-bob
82
+ from
83
+ transform: translateY(0)
84
+ to
85
+ transform: translateY(-3%)
86
+
87
+ @media (prefers-reduced-motion: reduce)
88
+ .mascot-bobs .mascot-bob,
89
+ .mascot-blinks .mascot-lid
90
+ animation: none
91
+ .mascot-tilt
92
+ transform: none
93
+
94
+ // MascotGL (src/lib/comps/MascotGL.svelte): WebGL2 lab version of the mascot.
95
+ // The canvas overhangs the mascot box by 30% per side (EXTENT = 0.8) for tilt + shadow.
96
+ .mascotgl
97
+ display: inline-block
98
+ position: relative
99
+ flex: none
100
+ line-height: 0
101
+
102
+ .mascotgl-spacer
103
+ display: block
104
+
105
+ .mascotgl-canvas
106
+ position: absolute
107
+ left: 50%
108
+ top: 50%
109
+ width: 160%
110
+ height: 160%
111
+ transform: translate(-50%, -50%)
112
+ pointer-events: none
113
+ opacity: 0
114
+
115
+ .mascotgl-ready
116
+ opacity: 1
117
+
118
+ // Header-sized: 15% overhang per side (EXTENT_COMPACT = 0.65), still outside the layout box.
119
+ .mascotgl-compact .mascotgl-canvas
120
+ width: 130%
121
+ height: 130%
122
+
123
+ h3, h2, h1
124
+ font-weight: 600
125
+
126
+ .hero-name
127
+ font-weight: 800
128
+ font-size: calc(var(--text-5xl) * 2)
129
+ letter-spacing: -0.2rem
130
+
131
+ .accordion
132
+ display: flex
133
+ flex-direction: column
134
+ gap: var(--space-xs)
135
+
136
+ .accordion-item
137
+ border: 1px solid var(--border)
138
+ border-radius: var(--radius-md)
139
+ background: var(--bg-surface)
140
+ .accordion-content
141
+ display: grid
142
+ grid-template-rows: 0fr
143
+ padding: 0
144
+ transition: grid-template-rows var(--speed2) var(--transout1)
145
+ // The panel is what collapses. It needs min-height: 0 so the grid row can
146
+ // size it, and overflow: hidden so the content clips while closed — which
147
+ // is why it carries a name rather than being reached at by position.
148
+ .accordion-panel
149
+ overflow: hidden
150
+ min-height: 0
151
+ &.open .accordion-content
152
+ grid-template-rows: 1fr
153
+ padding: var(--space-xs)
154
+
155
+ .accordion-trigger
156
+ display: flex
157
+ flex-direction: row
158
+ align-items: center
159
+ justify-content: space-between
160
+ width: 100%
161
+ min-height: var(--control-h-md)
162
+ padding: var(--space-xs)
163
+ font-weight: 500
164
+ font-size: var(--text-sm)
165
+ text-align: left
166
+ background: transparent
167
+ border: 0
168
+ cursor: pointer
169
+ user-select: none
170
+ &:hover
171
+ background: var(--bg-raised)
172
+ &:focus-visible
173
+ outline: 2px solid var(--ring)
174
+ outline-offset: -2px
@@ -0,0 +1,119 @@
1
+ $green90: #004b23
2
+ $green80: #006400
3
+ $green70: #007200
4
+ $green60: #008000
5
+ $green50: #38b000
6
+ $green40: #70e000
7
+ $green30: #9ef01a
8
+ $green20: #ccff33
9
+ $green55: #25a244
10
+ $green56: #08a045
11
+ $green45: #4ad66d
12
+ $green46: #6ede8a
13
+
14
+ $blue95: #051923
15
+ $blue90: #012a4a
16
+ $blue85: #003554
17
+ $blue80: #013a63
18
+ $blue70: #01497c
19
+ $blue60: #014f86
20
+ $blue55: #006494
21
+ $blue50: #2a6f97
22
+ $blue45: #0582ca
23
+ $blue40: #2c7da0
24
+ $blue30: #468faf
25
+ $blue20: #61a5c2
26
+ $blue10: #89c2d9
27
+
28
+ $orange85: #03071e
29
+ $orange80: #370617
30
+ $orange75: #6a040f
31
+ $orange70: #9d0208
32
+ $orange65: #d00000
33
+ $orange60: #dc2f02
34
+ $orange55: #e85d04
35
+ $orange50: #ff4800
36
+ $orange45: #ff5400
37
+ $orange40: #ff6000
38
+ $orange35: #ff6d00
39
+ $orange30: #ff7900
40
+ $orange25: #ff8500
41
+ $orange20: #ff9100
42
+ $orange15: #ff9e00
43
+ $orange10: #ffaa00
44
+
45
+ $red80: #590d22
46
+ $red75: #641220
47
+ $red70: #6e1423
48
+ $red65: #85182a
49
+ $red60: #a11d33
50
+ $red55: #a71e34
51
+ $red50: #b21e35
52
+ $red45: #bd1f36
53
+ $red40: #c71f37
54
+ $red35: #da1e37
55
+ $red30: #e01e37
56
+ $red25: #ff4d6d
57
+ $red20: #ff758f
58
+ $red15: #ff8fa3
59
+ $red10: #ffb3c1
60
+ $red05: #ffccd5
61
+ $red00: #fff0f3
62
+ $blue11: #1c558e
63
+ $blue12: #1d4e89
64
+ $blue13: #1a5b92
65
+ $blue14: #14746f
66
+ $blue15: #036666
67
+ $blue16: #16679a
68
+ $blue17: #0f80aa
69
+ $blue18: #0899ba
70
+ $blue19: #248277
71
+ $blue20: #358f80
72
+ $blue21: #04a6c2
73
+ $blue22: #469d89
74
+ $blue23: #56ab91
75
+ $blue24: #00b2ca
76
+ $blue25: #67b99a
77
+ $blue26: #78c6a3
78
+ $blue27: #20bac5
79
+ $blue28: #3fc1c0
80
+ $teal11: #88d4ab
81
+ $teal12: #99e2b4
82
+ $teal13: #47126b
83
+ $teal14: #571089
84
+ $teal15: #6411ad
85
+ $teal16: #6d23b6
86
+ $teal17: #6247aa
87
+ $teal18: #7251b5
88
+ $teal19: #815ac0
89
+ $teal20: #822faf
90
+ $teal21: #973aa8
91
+ $teal22: #ac46a1
92
+ $teal23: #c05299
93
+ $teal24: #d55d92
94
+ $teal25: #ea698b
95
+ $teal26: #9163cb
96
+ $teal27: #b185db
97
+ $teal28: #c19ee0
98
+ $teal29: #dac3e8
99
+ $neutral11: #adb5bd
100
+ $neutral12: #cccccc
101
+ $neutral13: #ced4da
102
+ $neutral14: #dee2e6
103
+ $neutral15: #e9ecef
104
+ $neutral16: #e6e6e9
105
+ $neutral17: #e9ecef
106
+ $neutral18: #f8f9fa
107
+ $neutral19: #f2f2f2
108
+ $neutral20: #f4f4f6
109
+ $neutral21: #f2f2f2
110
+ $neutral22: #f8f9fa
111
+ $neutral23: #212529
112
+ $neutral24: #343a40
113
+ $neutral25: #495057
114
+ $neutral26: #595959
115
+ $neutral27: #66666e
116
+ $neutral28: #6c757d
117
+ $neutral29: #7f7f7f
118
+ $neutral30: #9999a1
119
+ $neutral31: #adb5bd
@@ -0,0 +1,14 @@
1
+ @forward '00_config'
2
+ @forward '00_tokens'
3
+ @forward '00_fonts'
4
+ @use '00_config' as *
5
+ @use '00_tokens' as *
6
+ @use '01_base' as *
7
+ @use '02_dimensions' as *
8
+ @use '03_typography' as *
9
+ @use '04_containers' as *
10
+ @use '05_layouts' as *
11
+ @use '06_shells' as *
12
+ @use '07_interactions' as *
13
+ @use '08_visuals' as *
14
+ @use '09_own' as *