@lifeonlars/prime-yggdrasil 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.
package/LICENSE ADDED
@@ -0,0 +1,30 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Lars Farstad
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ This design system provides CSS theming for PrimeReact components.
26
+ PrimeReact is a separate library with its own license:
27
+
28
+ PrimeReact - https://github.com/primefaces/primereact
29
+ Copyright (c) 2024 PrimeTek Informatics
30
+ Licensed under MIT License
package/README.md ADDED
@@ -0,0 +1,276 @@
1
+ # 🌳 Yggdrasil Design System
2
+
3
+ > **AI-agent-friendly PrimeReact design system for component-driven development**
4
+
5
+ Yggdrasil is a comprehensive design system built on [PrimeReact](https://primereact.org/) that enforces consistency through semantic tokens, prevents bespoke component creation, and guides AI agents to use existing patterns.
6
+
7
+ [![Storybook](https://img.shields.io/badge/Storybook-FF4785?logo=storybook&logoColor=white)](https://your-storybook-url.com)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+
10
+ ## 🎯 Purpose
11
+
12
+ **Problem**: AI agents often create custom components and hardcode styles, leading to inconsistent UIs and maintenance nightmares.
13
+
14
+ **Solution**: Yggdrasil enforces component reuse and token-based styling through:
15
+ - 📚 Comprehensive semantic token system (727+ tokens)
16
+ - 🧩 PrimeReact component library integration
17
+ - 🌓 Automatic light/dark mode support
18
+ - 📏 4px grid system for consistent spacing
19
+ - 🤖 AI-agent-specific documentation and guardrails
20
+
21
+ ## ✨ Features
22
+
23
+ - **🎨 Semantic Token System** - 96% of styles use semantic tokens instead of hardcoded values
24
+ - **🌗 Dark Mode Built-in** - Automatic theme switching with optimized dark mode shadows
25
+ - **📦 Modular Architecture** - Split into 10 category files for easy maintenance
26
+ - **🧩 Component-First** - Encourages PrimeReact usage over custom components
27
+ - **📐 4px Grid System** - Consistent spacing and sizing across all components
28
+ - **♿ WCAG 3.0 Compliant** - APCA contrast tested for accessibility
29
+ - **📖 Storybook Integration** - Live component examples and documentation
30
+ - **🤖 AI Agent Guides** - Purpose-built documentation for AI-driven development
31
+
32
+ ## 🚀 Quick Start
33
+
34
+ ### Installation
35
+
36
+ ```bash
37
+ npm install prime-yggdrasil primereact primeicons
38
+ ```
39
+
40
+ ### Usage
41
+
42
+ ```tsx
43
+ // Import theme
44
+ import 'prime-yggdrasil/yggdrasil-light.css'; // or yggdrasil-dark.css
45
+ import 'primeicons/primeicons.css';
46
+
47
+ // Use PrimeReact components
48
+ import { Button } from 'primereact/button';
49
+ import { DataTable } from 'primereact/datatable';
50
+
51
+ function App() {
52
+ return (
53
+ <div style={{ color: 'var(--text-neutral-default)' }}>
54
+ <Button label="Click me" />
55
+ </div>
56
+ );
57
+ }
58
+ ```
59
+
60
+ ## 📚 Documentation
61
+
62
+ ### For Developers
63
+ - **[Getting Started](./docs/README.md)** - Overview and project structure
64
+ - **[Theme Architecture](./src/theme/README.md)** - How the theme system works
65
+ - **[Consumption Guide](./docs/CONSUMPTION-GUIDE.md)** - How to use in your project
66
+
67
+ ### For AI Agents
68
+ - **[AI Agent Guide](./docs/AI-AGENT-GUIDE.md)** - Complete guide for AI-driven development
69
+ - **[Component Selection](./docs/AI-AGENT-GUIDE.md#component-selection-guide)** - Decision tree for choosing components
70
+ - **[Token Reference](./docs/AI-AGENT-GUIDE.md#quick-reference-for-common-tasks)** - Quick semantic token lookup
71
+
72
+ ### For Designers
73
+ - **[Design Principles](./docs/README.md#design-principles)** - 4px grid, semantic tokens
74
+ - **[Elevation System](./docs/ELEVATION-SYSTEM.md)** - Shadow hierarchy and usage
75
+ - **[Contrast Report](./docs/contrast-report.md)** - Accessibility validation
76
+
77
+ ## 🎨 Design Tokens
78
+
79
+ ### Colors
80
+ ```css
81
+ /* Text */
82
+ --text-neutral-default /* Main body text */
83
+ --text-neutral-subdued /* Secondary text */
84
+ --text-state-interactive /* Links, interactive elements */
85
+ --text-onsurface-onbrand /* Text on colored backgrounds */
86
+
87
+ /* Surfaces */
88
+ --surface-neutral-primary /* Main backgrounds */
89
+ --surface-neutral-secondary /* Secondary backgrounds */
90
+ --surface-brand-primary /* Brand blue */
91
+ --surface-state-hover /* Hover states */
92
+
93
+ /* Borders */
94
+ --border-neutral-default /* Standard borders */
95
+ --border-state-interactive /* Interactive borders */
96
+ --border-state-focus /* Focus rings */
97
+ ```
98
+
99
+ ### Spacing (4px Grid)
100
+ ```css
101
+ 0.5rem /* 8px */
102
+ 1rem /* 16px */
103
+ 1.5rem /* 24px */
104
+ 2rem /* 32px */
105
+ ```
106
+
107
+ ### Border Radius
108
+ ```css
109
+ --radius-sm /* 4px - Subtle */
110
+ --radius-md /* 8px - Standard */
111
+ --radius-lg /* 12px - Cards */
112
+ --radius-full /* Pills, avatars */
113
+ ```
114
+
115
+ ## 🧩 Component Usage
116
+
117
+ ### ✅ Correct (Use PrimeReact)
118
+ ```tsx
119
+ import { Button } from 'primereact/button';
120
+ import { DataTable } from 'primereact/datatable';
121
+ import { InputText } from 'primereact/inputtext';
122
+
123
+ <Button label="Save" />
124
+ <DataTable value={data} />
125
+ <InputText placeholder="Enter text" />
126
+ ```
127
+
128
+ ### ❌ Incorrect (Don't Create Custom)
129
+ ```tsx
130
+ // Don't do this!
131
+ const CustomButton = ({ children }) => (
132
+ <button style={{ background: '#3B82F6', color: 'white' }}>
133
+ {children}
134
+ </button>
135
+ );
136
+ ```
137
+
138
+ ## 🛠️ Development
139
+
140
+ ### Prerequisites
141
+ - Node.js 18+
142
+ - npm or pnpm
143
+
144
+ ### Local Development
145
+ ```bash
146
+ # Install dependencies
147
+ npm install
148
+
149
+ # Start Storybook
150
+ npm run dev
151
+
152
+ # Run tests
153
+ npm test
154
+
155
+ # Build library
156
+ npm run build
157
+ ```
158
+
159
+ ### Scripts
160
+ ```bash
161
+ npm run dev # Start Storybook
162
+ npm run build # Build library
163
+ npm run test:contrast # Test color contrast
164
+ npm run test:themes # Validate theme structure
165
+ npm run lint:css # Lint CSS files
166
+ ```
167
+
168
+ ## 📊 Project Stats
169
+
170
+ - **Semantic Tokens**: 727 color replacements (96% coverage)
171
+ - **Components**: 69 PrimeReact components themed
172
+ - **Files**: 10 modular CSS category files
173
+ - **Contrast**: WCAG 3.0 (APCA) validated
174
+ - **Dark Mode**: Optimized shadows with white rim strategy
175
+
176
+ ## 🤖 AI Agent Integration
177
+
178
+ Yggdrasil is specifically designed to guide AI agents toward component-driven development:
179
+
180
+ 1. **Comprehensive Documentation** - AI agents can read [AI-AGENT-GUIDE.md](./docs/AI-AGENT-GUIDE.md)
181
+ 2. **Decision Trees** - Step-by-step component selection guidance
182
+ 3. **Token Reference** - Quick lookup for semantic tokens
183
+ 4. **Anti-Patterns** - Clear examples of what NOT to do
184
+ 5. **Validation Rules** - Optional ESLint/pre-commit hooks
185
+
186
+ ### Example AI Prompt
187
+ ```
188
+ I'm building a React app with Yggdrasil design system.
189
+
190
+ Before implementing UI:
191
+ 1. Read: node_modules/prime-yggdrasil/docs/AI-AGENT-GUIDE.md
192
+ 2. Check: Is there a PrimeReact component for this?
193
+ 3. Use: Semantic tokens only (no hardcoded colors)
194
+ 4. Follow: 4px grid for all spacing
195
+
196
+ Create a user profile form with name, email, and submit button.
197
+ ```
198
+
199
+ ## 🏗️ Architecture
200
+
201
+ ```
202
+ Yggdrasil
203
+ ├── Foundations (foundations.css)
204
+ │ └── Raw color palette (Sky, Sea, Forest, etc.)
205
+
206
+ ├── Border Radius (radius.css)
207
+ │ └── Semantic radius tokens (sm, md, lg)
208
+
209
+ ├── Semantic Tokens (semantic-light/dark.css)
210
+ │ ├── Surfaces (backgrounds)
211
+ │ ├── Text (typography colors)
212
+ │ ├── Borders (borders, focus rings)
213
+ │ ├── Icons (icon colors)
214
+ │ └── Elevation (shadows)
215
+
216
+ └── Components (components/*.css)
217
+ ├── button.css (buttons, splitbutton)
218
+ ├── data.css (tables, trees, pagination)
219
+ ├── form.css (inputs, dropdowns, checkboxes)
220
+ ├── menu.css (navigation components)
221
+ └── ... (6 more category files)
222
+ ```
223
+
224
+ ## 📦 Package Contents
225
+
226
+ When you install Yggdrasil, you get:
227
+
228
+ ```
229
+ prime-yggdrasil/
230
+ ├── dist/
231
+ │ ├── yggdrasil-light.css # Light theme (import this)
232
+ │ ├── yggdrasil-dark.css # Dark theme (import this)
233
+ │ ├── index.js # Optional JS utilities
234
+ │ └── index.d.ts # TypeScript definitions
235
+
236
+ └── docs/
237
+ ├── AI-AGENT-GUIDE.md # For AI agents
238
+ ├── CONSUMPTION-GUIDE.md # Integration guide
239
+ ├── ELEVATION-SYSTEM.md # Shadow system
240
+ └── contrast-report.md # Accessibility report
241
+ ```
242
+
243
+ ## 🤝 Contributing
244
+
245
+ We welcome contributions! Please:
246
+
247
+ 1. Follow existing semantic token patterns
248
+ 2. Test in both light and dark modes
249
+ 3. Run contrast tests for new colors
250
+ 4. Update documentation
251
+ 5. Add Storybook examples
252
+
253
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
254
+
255
+ ## 📄 License
256
+
257
+ MIT © Lars Farstad
258
+
259
+ ## 🙏 Credits
260
+
261
+ Built with:
262
+ - [PrimeReact](https://primereact.org/) - Component library
263
+ - [PrimeIcons](https://primereact.org/icons) - Icon set
264
+ - [Storybook](https://storybook.js.org/) - Component documentation
265
+ - [APCA](https://github.com/Myndex/apca-w3) - Contrast testing
266
+
267
+ ## 📞 Support
268
+
269
+ - 📖 [Documentation](./docs/README.md)
270
+ - 🐛 [Issue Tracker](https://github.com/lifeonlars/prime-yggdrasil/issues)
271
+ - 💬 [Discussions](https://github.com/lifeonlars/prime-yggdrasil/discussions)
272
+ - 🎨 [Storybook](https://your-storybook-url.com)
273
+
274
+ ---
275
+
276
+ **Made for AI agents, loved by developers** 🤖❤️👨‍💻
@@ -0,0 +1,180 @@
1
+ :root {
2
+
3
+ --foundation-sky-050: #F0F4F9;
4
+ --foundation-black: #000000;
5
+ --foundation-sky-100: #DDE0EA;
6
+ --foundation-white: #FFFFFF;
7
+ --foundation-sky-200: #BCCEE2;
8
+ --foundation-sky-300: #9DB7D6;
9
+ --foundation-sky-400: #648CC3;
10
+ --foundation-sky-500: #2E598F;
11
+ --foundation-sky-600: #183B60;
12
+ --foundation-sky-700: #001F4A;
13
+ --foundation-sky-800: #001129;
14
+ --foundation-sky-900: #000712;
15
+ --foundation-sky-950: #000409;
16
+ --foundation-sea-100: #D9E4E1;
17
+ --foundation-sea-200: #BEDCDD;
18
+ --foundation-sea-300: #98C5D3;
19
+ --foundation-sea-400: #7BB8D1;
20
+ --foundation-sea-500: #649EB3;
21
+ --foundation-sea-600: #477E92;
22
+ --foundation-sea-700: #336174;
23
+ --foundation-sea-800: #244655;
24
+ --foundation-sand-100: #EFE7DB;
25
+ --foundation-sand-200: #F4DAB8;
26
+ --foundation-sand-300: #F2C77F;
27
+ --foundation-sand-400: #E2AC5D;
28
+ --foundation-sand-500: #D39327;
29
+ --foundation-sand-600: #C17B16;
30
+ --foundation-sand-700: #AA6509;
31
+ --foundation-sand-800: #7B4E0F;
32
+ --foundation-forest-100: #DFE3D9;
33
+ --foundation-forest-200: #C7D3B2;
34
+ --foundation-forest-300: #B0C18E;
35
+ --foundation-forest-400: #9AB56B;
36
+ --foundation-forest-500: #7A9652;
37
+ --foundation-forest-600: #5D7235;
38
+ --foundation-forest-700: #485E1D;
39
+ --foundation-berries-100: #F4DFDF;
40
+ --foundation-berries-200: #F9BBC3;
41
+ --foundation-berries-300: #FCA4AB;
42
+ --foundation-berries-400: #FF8186;
43
+ --foundation-berries-500: #EA5E68;
44
+ --foundation-berries-600: #D64949;
45
+ --foundation-berries-700: #BC3939;
46
+ --foundation-rock-050: #F8F8F8;
47
+ --foundation-rock-100: #F2F1F2;
48
+ --foundation-rock-200: #E4E4E4;
49
+ --foundation-rock-300: #C4C2C5;
50
+ --foundation-rock-400: #A39FA7;
51
+ --foundation-rock-500: #8A858E;
52
+ --foundation-rock-600: #716C75;
53
+ --foundation-rock-700: #58525D;
54
+ --foundation-rock-800: #2E2734;
55
+ --foundation-rock-900: #201C25;
56
+ --foundation-rock-950: #131116;
57
+ --foundation-darker-050: #000F260C;
58
+ --foundation-darker-100: #000F2619;
59
+ --foundation-darker-150: #000F2626;
60
+ --foundation-darker-200: #000F2633;
61
+ --foundation-darker-250: #000F263F;
62
+ --foundation-darker-300: #000F264C;
63
+ --foundation-darker-400: #000F2666;
64
+ --foundation-darker-500: #000F267F;
65
+ --foundation-darker-600: #000F2699;
66
+ --foundation-darker-700: #000F26B2;
67
+ --foundation-darker-800: #000F26CC;
68
+ --foundation-darker-900: #000F26E5;
69
+ --foundation-darker-950: #000F26F2;
70
+ --foundation-lighter-050: #FFFFFF0C;
71
+ --foundation-lighter-100: #FFFFFF19;
72
+ --foundation-lighter-200: #FFFFFF33;
73
+ --foundation-lighter-300: #FFFFFF4C;
74
+ --foundation-lighter-400: #FFFFFF66;
75
+ --foundation-lighter-500: #FFFFFF7F;
76
+ --foundation-lighter-600: #FFFFFF99;
77
+ --foundation-lighter-700: #FFFFFFB2;
78
+ --foundation-lighter-800: #FFFFFFCC;
79
+ --foundation-lighter-900: #FFFFFFE5;
80
+ --foundation-lighter-950: #FFFFFFF2;
81
+ --charts-aquamarine-050: #B1E7E4;
82
+ --charts-aquamarine-100: #95DEDB;
83
+ --charts-aquamarine-200: #76D5D0;
84
+ --charts-aquamarine-300: #53CAC4;
85
+ --charts-aquamarine-400: #3ABCB5;
86
+ --charts-aquamarine-500: #34AAA4;
87
+ --charts-aquamarine-600: #2E958F;
88
+ --charts-aquamarine-700: #267B77;
89
+ --charts-aquamarine-800: #133F3C;
90
+ --charts-aquamarine-900: #0D2B2A;
91
+ --charts-aquamarine-950: #091D1C;
92
+ --charts-amber-050: #FFD79A;
93
+ --charts-amber-100: #FFC876;
94
+ --charts-amber-200: #FFB84D;
95
+ --charts-amber-300: #FFA41C;
96
+ --charts-amber-400: #F49300;
97
+ --charts-amber-500: #DD8500;
98
+ --charts-amber-600: #C27400;
99
+ --charts-amber-700: #A16000;
100
+ --charts-amber-800: #523100;
101
+ --charts-amber-900: #392200;
102
+ --charts-amber-950: #261700;
103
+ --charts-garnet-050: #F9D3E0;
104
+ --charts-garnet-100: #F7C4D6;
105
+ --charts-garnet-200: #F5B3CA;
106
+ --charts-garnet-300: #F3A0BD;
107
+ --charts-garnet-400: #F193B4;
108
+ --charts-garnet-500: #ED709C;
109
+ --charts-garnet-600: #E84C83;
110
+ --charts-garnet-700: #D71C5D;
111
+ --charts-garnet-800: #700E31;
112
+ --charts-garnet-900: #4F0A22;
113
+ --charts-garnet-950: #360717;
114
+ --charts-charoite-050: #DEDAEE;
115
+ --charts-charoite-100: #D4CEE9;
116
+ --charts-charoite-200: #C8C1E3;
117
+ --charts-charoite-300: #BCB3DC;
118
+ --charts-charoite-400: #AEA3D5;
119
+ --charts-charoite-500: #9E91CD;
120
+ --charts-charoite-600: #8B7CC3;
121
+ --charts-charoite-700: #7462B7;
122
+ --charts-charoite-800: #3B2F68;
123
+ --charts-charoite-900: #292147;
124
+ --charts-charoite-950: #1B162F;
125
+ --charts-sapphire-050: #D2EBF8;
126
+ --charts-sapphire-100: #A9D8F1;
127
+ --charts-sapphire-200: #92CDEE;
128
+ --charts-sapphire-300: #77C1E9;
129
+ --charts-sapphire-400: #58B3E4;
130
+ --charts-sapphire-500: #33A2DF;
131
+ --charts-sapphire-600: #208ECA;
132
+ --charts-sapphire-700: #1B76A8;
133
+ --charts-sapphire-800: #0E3C55;
134
+ --charts-sapphire-900: #092A3B;
135
+ --charts-sapphire-950: #061C27;
136
+ --charts-amethyst-050: #F1D4F2;
137
+ --charts-emerald-050: #CCF7D8;
138
+ --charts-emerald-100: #9CEFB3;
139
+ --charts-emerald-200: #76E896;
140
+ --charts-emerald-300: #45E070;
141
+ --charts-emerald-400: #20C34E;
142
+ --charts-emerald-500: #1DB146;
143
+ --charts-emerald-600: #199B3E;
144
+ --charts-emerald-700: #158133;
145
+ --charts-emerald-800: #0F5D25;
146
+ --charts-emerald-900: #0B421A;
147
+ --charts-emerald-950: #072D12;
148
+ --charts-topaz-050: #F8EDB3;
149
+ --charts-topaz-100: #F2DE6E;
150
+ --charts-topaz-200: #EDD138;
151
+ --charts-topaz-300: #E4C414;
152
+ --charts-topaz-400: #C4A912;
153
+ --charts-topaz-500: #B19810;
154
+ --charts-topaz-600: #9C860E;
155
+ --charts-topaz-700: #816F0C;
156
+ --charts-topaz-800: #604E08;
157
+ --charts-topaz-900: #443706;
158
+ --charts-topaz-950: #2F2604;
159
+ --charts-ruby-050: #FBE8E8;
160
+ --charts-ruby-100: #F8D4D4;
161
+ --charts-ruby-200: #F6C6C6;
162
+ --charts-ruby-300: #F4B6B6;
163
+ --charts-ruby-400: #EE9090;
164
+ --charts-ruby-500: #EA7777;
165
+ --charts-ruby-600: #E55656;
166
+ --charts-ruby-700: #D92121;
167
+ --charts-ruby-800: #9E1818;
168
+ --charts-ruby-900: #711111;
169
+ --charts-ruby-950: #500C0C;
170
+ --charts-amethyst-100: #ECC5EE;
171
+ --charts-amethyst-200: #E7B5E9;
172
+ --charts-amethyst-300: #E2A3E3;
173
+ --charts-amethyst-400: #DB8FDD;
174
+ --charts-amethyst-500: #D377D6;
175
+ --charts-amethyst-600: #CA59CD;
176
+ --charts-amethyst-700: #B437B8;
177
+ --charts-amethyst-800: #5D1D5F;
178
+ --charts-amethyst-900: #411442;
179
+ --charts-amethyst-950: #2B0D2C;
180
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.1.0",o={name:"Yggdrasil",version:"0.1.0",tokens:727,coverage:"96%",modes:["light","dark"]};exports.theme=o;exports.version=e;
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ const e = "0.1.0", o = {
2
+ name: "Yggdrasil",
3
+ version: "0.1.0",
4
+ tokens: 727,
5
+ coverage: "96%",
6
+ modes: ["light", "dark"]
7
+ };
8
+ export {
9
+ o as theme,
10
+ e as version
11
+ };
package/dist/vite.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Yggdrasil Dark
3
+ *
4
+ * Legacy theme file for stylesheet swapping.
5
+ * For runtime switching, use yggdrasil-adaptive.css
6
+ */
7
+
8
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
9
+ @import "./foundations.css";
10
+ @import "./radius.css";
11
+ @import "./semantic-dark.css";
12
+ @import "./components.css";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Yggdrasil Light
3
+ *
4
+ * Legacy theme file for stylesheet swapping.
5
+ * For runtime switching, use yggdrasil-adaptive.css
6
+ */
7
+
8
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
9
+ @import "./foundations.css";
10
+ @import "./radius.css";
11
+ @import "./semantic-light.css";
12
+ @import "./components.css";