@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 +30 -0
- package/README.md +276 -0
- package/dist/foundations.css +180 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +11 -0
- package/dist/vite.svg +1 -0
- package/dist/yggdrasil-dark.css +12 -0
- package/dist/yggdrasil-light.css +12 -0
- package/docs/AI-AGENT-GUIDE.md +575 -0
- package/docs/CONSUMPTION-GUIDE.md +384 -0
- package/docs/ELEVATION-IMPLEMENTATION.md +146 -0
- package/docs/ELEVATION-SYSTEM.md +104 -0
- package/docs/NPM-PUBLISHING-GUIDE.md +337 -0
- package/docs/PACKAGING-CHECKLIST.md +193 -0
- package/docs/PRE-PUBLISH-CHECKLIST.md +136 -0
- package/docs/README.md +161 -0
- package/docs/archive/README.md +27 -0
- package/docs/archive/SEMANTIC-MIGRATION-PLAN.md +177 -0
- package/docs/archive/YGGDRASIL_THEME.md +264 -0
- package/docs/archive/agentic_policy.md +216 -0
- package/docs/contrast-report.md +9 -0
- package/docs/scripts/README.md +180 -0
- package/package.json +113 -0
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
|
+
[](https://your-storybook-url.com)
|
|
8
|
+
[](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
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";
|