@fastwork/xosmoz-theme 0.0.14 → 0.0.16
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/README.md +70 -97
- package/dist/base.css +208 -4
- package/dist/{index-B3oQ5FIa.d.mts → index-D8kHN4dA.d.mts} +8 -25
- package/dist/{index-B3oQ5FIa.d.ts → index-D8kHN4dA.d.ts} +8 -25
- package/dist/index.d.mts +61 -73
- package/dist/index.d.ts +61 -73
- package/dist/index.js +532 -541
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +533 -523
- package/dist/index.mjs.map +1 -1
- package/dist/themes/dark.css +174 -25
- package/dist/themes/light.css +175 -26
- package/dist/themes.css +349 -138
- package/dist/tokens.d.mts +1 -1
- package/dist/tokens.d.ts +1 -1
- package/dist/tokens.js +0 -244
- package/dist/tokens.js.map +1 -1
- package/dist/tokens.mjs +1 -234
- package/dist/tokens.mjs.map +1 -1
- package/package.json +55 -57
- package/dist/semantic.css +0 -51
- package/dist/themes/cyberpunk.css +0 -27
- package/dist/themes/forest.css +0 -27
- package/dist/themes/ocean.css +0 -27
- package/dist/variables.css +0 -290
- package/dist/xosmoz.css +0 -377
package/README.md
CHANGED
|
@@ -18,24 +18,19 @@ Xosmoz includes a powerful multi-theme system inspired by DaisyUI. Choose from p
|
|
|
18
18
|
|
|
19
19
|
- **light** - Clean, modern light theme (default)
|
|
20
20
|
- **dark** - Elegant dark theme
|
|
21
|
-
- **cyberpunk** - Neon colors on dark background
|
|
22
|
-
- **forest** - Natural greens and earthy tones
|
|
23
|
-
- **ocean** - Deep blues and aqua tones
|
|
24
21
|
|
|
25
22
|
#### Quick Start
|
|
26
23
|
|
|
27
24
|
```css
|
|
28
|
-
/* Import base
|
|
29
|
-
@import '@fastwork/xosmoz-theme/css
|
|
30
|
-
@import '@fastwork/xosmoz-theme/css/base';
|
|
25
|
+
/* Import base styles and non-color tokens */
|
|
26
|
+
@import '@fastwork/xosmoz-theme/base.css';
|
|
31
27
|
|
|
32
|
-
/* Import all themes */
|
|
33
|
-
@import '@fastwork/xosmoz-theme/themes';
|
|
28
|
+
/* Import all themes (light + dark) */
|
|
29
|
+
@import '@fastwork/xosmoz-theme/themes.css';
|
|
34
30
|
|
|
35
|
-
/* OR import specific
|
|
36
|
-
@import '@fastwork/xosmoz-theme/themes/light';
|
|
37
|
-
@import '@fastwork/xosmoz-theme/themes/dark';
|
|
38
|
-
@import '@fastwork/xosmoz-theme/themes/cyberpunk';
|
|
31
|
+
/* OR import specific theme only */
|
|
32
|
+
@import '@fastwork/xosmoz-theme/themes/light.css';
|
|
33
|
+
/* @import '@fastwork/xosmoz-theme/themes/dark.css'; */
|
|
39
34
|
```
|
|
40
35
|
|
|
41
36
|
Then set the theme via HTML attribute:
|
|
@@ -46,15 +41,6 @@ Then set the theme via HTML attribute:
|
|
|
46
41
|
|
|
47
42
|
<!-- Dark theme -->
|
|
48
43
|
<html data-theme="dark">...</html>
|
|
49
|
-
|
|
50
|
-
<!-- Cyberpunk theme -->
|
|
51
|
-
<html data-theme="cyberpunk">...</html>
|
|
52
|
-
|
|
53
|
-
<!-- Forest theme -->
|
|
54
|
-
<html data-theme="forest">...</html>
|
|
55
|
-
|
|
56
|
-
<!-- Ocean theme -->
|
|
57
|
-
<html data-theme="ocean">...</html>
|
|
58
44
|
```
|
|
59
45
|
|
|
60
46
|
#### Using Theme Variables
|
|
@@ -63,22 +49,22 @@ All themes use the same semantic CSS variables, so your components work across a
|
|
|
63
49
|
|
|
64
50
|
```css
|
|
65
51
|
.button {
|
|
66
|
-
background-color: var(--xz-primary);
|
|
67
|
-
color: var(--xz-primary-
|
|
52
|
+
background-color: var(--xz-color-primary-bg-100);
|
|
53
|
+
color: var(--xz-color-primary-fg);
|
|
68
54
|
padding: var(--xz-spacing-4);
|
|
69
55
|
border-radius: var(--xz-radius-md);
|
|
70
56
|
}
|
|
71
57
|
|
|
72
58
|
.card {
|
|
73
|
-
background: var(--xz-
|
|
74
|
-
color: var(--xz-
|
|
75
|
-
border: 1px solid var(--xz-border);
|
|
59
|
+
background: var(--xz-color-bg-200);
|
|
60
|
+
color: var(--xz-color-content-100);
|
|
61
|
+
border: 1px solid var(--xz-color-border);
|
|
76
62
|
box-shadow: var(--xz-shadow-md);
|
|
77
63
|
}
|
|
78
64
|
|
|
79
65
|
.alert-success {
|
|
80
|
-
background: var(--xz-success);
|
|
81
|
-
color: var(--xz-success-
|
|
66
|
+
background: var(--xz-color-success-bg-100);
|
|
67
|
+
color: var(--xz-color-success-fg);
|
|
82
68
|
}
|
|
83
69
|
```
|
|
84
70
|
|
|
@@ -91,9 +77,8 @@ function setTheme(themeName) {
|
|
|
91
77
|
}
|
|
92
78
|
|
|
93
79
|
// Usage
|
|
94
|
-
setTheme('dark');
|
|
95
|
-
setTheme('
|
|
96
|
-
setTheme('light'); // Switch to light theme
|
|
80
|
+
setTheme('dark'); // Switch to dark theme
|
|
81
|
+
setTheme('light'); // Switch to light theme
|
|
97
82
|
|
|
98
83
|
// Load saved theme on page load
|
|
99
84
|
const savedTheme = localStorage.getItem('theme') || 'light';
|
|
@@ -108,12 +93,12 @@ You can create custom themes in two ways:
|
|
|
108
93
|
|
|
109
94
|
```css
|
|
110
95
|
[data-theme="my-custom-theme"] {
|
|
111
|
-
--xz-
|
|
112
|
-
--xz-
|
|
113
|
-
--xz-
|
|
114
|
-
--xz-
|
|
115
|
-
--xz-
|
|
116
|
-
--xz-
|
|
96
|
+
--xz-color-bg-100: oklch(1.00 0 0);
|
|
97
|
+
--xz-color-bg-200: oklch(0.98 0 0);
|
|
98
|
+
--xz-color-content-100: oklch(0.20 0 0);
|
|
99
|
+
--xz-color-border: oklch(0.90 0.005 260);
|
|
100
|
+
--xz-color-primary-bg-100: oklch(0.58 .2524 30);
|
|
101
|
+
--xz-color-primary-fg: oklch(1 0 0);
|
|
117
102
|
/* ... other theme variables */
|
|
118
103
|
}
|
|
119
104
|
```
|
|
@@ -145,25 +130,28 @@ console.log(myTheme.colors.primary); // '#ff6b6b'
|
|
|
145
130
|
|
|
146
131
|
All themes support these semantic CSS variables:
|
|
147
132
|
|
|
148
|
-
|
|
149
|
-
- `--xz-
|
|
150
|
-
- `--xz-
|
|
151
|
-
- `--xz-
|
|
152
|
-
- `--xz-
|
|
153
|
-
- `--xz-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
- `--xz-
|
|
157
|
-
- `--xz-
|
|
158
|
-
- `--xz-
|
|
133
|
+
**Base Colors:**
|
|
134
|
+
- `--xz-color-bg-100` / `--xz-color-bg-200` / `--xz-color-bg-300` / `--xz-color-bg-400` - Background shades
|
|
135
|
+
- `--xz-color-content-100` / `--xz-color-content-200` - Text/content colors
|
|
136
|
+
- `--xz-color-border` - Border color
|
|
137
|
+
- `--xz-color-input` - Input border color
|
|
138
|
+
- `--xz-color-ring` - Focus ring color
|
|
139
|
+
|
|
140
|
+
**Semantic Colors (primary, danger, success, warning, info):**
|
|
141
|
+
- `--xz-color-{name}-bg-100` - Main background color
|
|
142
|
+
- `--xz-color-{name}-bg-200` - Hover/darker background color
|
|
143
|
+
- `--xz-color-{name}-content-100` - Main content color
|
|
144
|
+
- `--xz-color-{name}-content-200` - Muted content color
|
|
145
|
+
- `--xz-color-{name}-fg` - Foreground/text color for use on background
|
|
159
146
|
|
|
160
147
|
### Using Design Tokens in JavaScript/TypeScript
|
|
161
148
|
|
|
162
149
|
```typescript
|
|
163
|
-
import {
|
|
150
|
+
import { lightTheme, darkTheme, typography, spacing } from '@fastwork/xosmoz-theme';
|
|
164
151
|
|
|
165
|
-
// Access color tokens
|
|
166
|
-
console.log(colors.
|
|
152
|
+
// Access color tokens from themes
|
|
153
|
+
console.log(lightTheme.colors.fastwork[500]); // 'oklch(0.72 .1881 260)'
|
|
154
|
+
console.log(darkTheme.colors.gray[300]); // 'oklch(0.90 0.005 260)'
|
|
167
155
|
|
|
168
156
|
// Access typography
|
|
169
157
|
console.log(typography.fontSize.lg); // '1.125rem'
|
|
@@ -172,38 +160,27 @@ console.log(typography.fontSize.lg); // '1.125rem'
|
|
|
172
160
|
console.log(spacing[4]); // '1rem'
|
|
173
161
|
```
|
|
174
162
|
|
|
175
|
-
### Using the Theme Object
|
|
176
|
-
|
|
177
|
-
```typescript
|
|
178
|
-
import { defaultTheme, createTheme } from '@fastwork/xosmoz-theme';
|
|
179
|
-
|
|
180
|
-
// Use default theme
|
|
181
|
-
console.log(defaultTheme);
|
|
182
|
-
|
|
183
|
-
// Create custom theme
|
|
184
|
-
const customTheme = createTheme({
|
|
185
|
-
colors: {
|
|
186
|
-
primary: {
|
|
187
|
-
// Override primary colors
|
|
188
|
-
500: '#custom-color',
|
|
189
|
-
// ... other shades
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
});
|
|
193
|
-
```
|
|
194
|
-
|
|
195
163
|
### Generate CSS Variables Programmatically
|
|
196
164
|
|
|
197
165
|
```typescript
|
|
198
|
-
import { generateCSSVariables,
|
|
166
|
+
import { generateCSSVariables, lightTheme, typography, spacing, borderRadius, shadows } from '@fastwork/xosmoz-theme';
|
|
167
|
+
|
|
168
|
+
// Construct a complete theme object
|
|
169
|
+
const themeObject = {
|
|
170
|
+
colors: lightTheme.colors,
|
|
171
|
+
typography,
|
|
172
|
+
spacing,
|
|
173
|
+
borderRadius,
|
|
174
|
+
shadows,
|
|
175
|
+
};
|
|
199
176
|
|
|
200
177
|
// Generate CSS custom properties as a string
|
|
201
|
-
const cssVars = generateCSSVariables(
|
|
178
|
+
const cssVars = generateCSSVariables(themeObject);
|
|
202
179
|
console.log(cssVars);
|
|
203
180
|
// Output:
|
|
204
181
|
// :root {
|
|
205
|
-
// --
|
|
206
|
-
// --
|
|
182
|
+
// --xosmoz-color-fastwork-100: oklch(0.96 .0223 260);
|
|
183
|
+
// --xosmoz-color-fastwork-200: oklch(0.94 .0299 260);
|
|
207
184
|
// ...
|
|
208
185
|
// }
|
|
209
186
|
```
|
|
@@ -240,32 +217,28 @@ console.log(cssVars);
|
|
|
240
217
|
|
|
241
218
|
After building, the following CSS files are generated in `dist/`:
|
|
242
219
|
|
|
243
|
-
###
|
|
244
|
-
- **`
|
|
245
|
-
- **`
|
|
246
|
-
- **`
|
|
247
|
-
|
|
248
|
-
### Theme Files (DaisyUI-style)
|
|
249
|
-
- **`themes.css`** - All 5 predefined themes in one file
|
|
250
|
-
- **`themes/light.css`** - Light theme only
|
|
251
|
-
- **`themes/dark.css`** - Dark theme only
|
|
252
|
-
- **`themes/cyberpunk.css`** - Cyberpunk theme only
|
|
253
|
-
- **`themes/forest.css`** - Forest theme only
|
|
254
|
-
- **`themes/ocean.css`** - Ocean theme only
|
|
220
|
+
### Files
|
|
221
|
+
- **`base.css`** - Base styles, CSS resets, and non-color design tokens (typography, spacing, borders, shadows)
|
|
222
|
+
- **`themes.css`** - All predefined themes (light + dark) in one file
|
|
223
|
+
- **`themes/light.css`** - Light theme colors only
|
|
224
|
+
- **`themes/dark.css`** - Dark theme colors only
|
|
255
225
|
|
|
256
226
|
### Import Examples
|
|
257
227
|
|
|
258
228
|
```css
|
|
259
|
-
/* Recommended: Base
|
|
260
|
-
@import '@fastwork/xosmoz-theme/css
|
|
261
|
-
@import '@fastwork/xosmoz-theme/css
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
@import '@fastwork/xosmoz-theme/css
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
229
|
+
/* Recommended: Base + all themes */
|
|
230
|
+
@import '@fastwork/xosmoz-theme/base.css';
|
|
231
|
+
@import '@fastwork/xosmoz-theme/themes.css';
|
|
232
|
+
|
|
233
|
+
/* OR: Base + specific theme only */
|
|
234
|
+
@import '@fastwork/xosmoz-theme/base.css';
|
|
235
|
+
@import '@fastwork/xosmoz-theme/themes/light.css';
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
```javascript
|
|
239
|
+
// In JavaScript/TypeScript
|
|
240
|
+
import '@fastwork/xosmoz-theme/base.css';
|
|
241
|
+
import '@fastwork/xosmoz-theme/themes.css';
|
|
269
242
|
```
|
|
270
243
|
|
|
271
244
|
## Development
|
package/dist/base.css
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Xosmoz Design System - Base Styles
|
|
3
|
+
*
|
|
4
|
+
* This file includes:
|
|
5
|
+
* - CSS Reset
|
|
6
|
+
* - Design token CSS variables (typography, spacing, borders, shadows)
|
|
7
|
+
*
|
|
8
|
+
* Note: Color tokens are in separate theme files (themes/light.css, themes/dark.css)
|
|
9
|
+
* Import both base.css and your chosen theme file.
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
* @import '@fastwork/xosmoz-theme/base.css';
|
|
13
|
+
* @import '@fastwork/xosmoz-theme/themes/light.css';
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/* CSS Reset */
|
|
2
17
|
|
|
3
18
|
*,
|
|
4
19
|
*::before,
|
|
@@ -15,9 +30,198 @@ html {
|
|
|
15
30
|
}
|
|
16
31
|
|
|
17
32
|
body {
|
|
18
|
-
font-family: var(--xz-font-family-
|
|
33
|
+
font-family: var(--xz-font-family-primary);
|
|
19
34
|
font-size: var(--xz-font-size-base);
|
|
20
35
|
line-height: var(--xz-line-height-normal);
|
|
21
|
-
color: var(--xz-
|
|
22
|
-
background-color: var(--xz-
|
|
36
|
+
color: var(--xz-color-content-100);
|
|
37
|
+
background-color: var(--xz-color-bg-100);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
:root {
|
|
42
|
+
--xz-font-size-50: 0.5rem;
|
|
43
|
+
--xz-font-size-100: 0.625rem;
|
|
44
|
+
--xz-font-size-200: 0.75rem;
|
|
45
|
+
--xz-font-size-300: 0.875rem;
|
|
46
|
+
--xz-font-size-400: 1rem;
|
|
47
|
+
--xz-font-size-500: 1.125rem;
|
|
48
|
+
--xz-font-size-600: 1.25rem;
|
|
49
|
+
--xz-font-size-700: 1.5rem;
|
|
50
|
+
--xz-font-size-800: 1.625rem;
|
|
51
|
+
--xz-font-size-900: 2rem;
|
|
52
|
+
--xz-font-size-1000: 2.375rem;
|
|
53
|
+
--xz-font-size-1100: 2.5rem;
|
|
54
|
+
--xz-font-size-1200: 2.6875rem;
|
|
55
|
+
--xz-font-size-1300: 3rem;
|
|
56
|
+
--xz-font-size-1400: 3.5rem;
|
|
57
|
+
--xz-font-size-1500: 4rem;
|
|
58
|
+
--xz-font-size-1600: 4.5rem;
|
|
59
|
+
|
|
60
|
+
--xz-font-weight-100: 100;
|
|
61
|
+
--xz-font-weight-200: 200;
|
|
62
|
+
--xz-font-weight-300: 300;
|
|
63
|
+
--xz-font-weight-400: 400;
|
|
64
|
+
--xz-font-weight-500: 500;
|
|
65
|
+
--xz-font-weight-600: 600;
|
|
66
|
+
--xz-font-weight-700: 700;
|
|
67
|
+
--xz-font-weight-800: 800;
|
|
68
|
+
--xz-font-weight-900: 900;
|
|
69
|
+
|
|
70
|
+
--xz-font-family-primary: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
71
|
+
--xz-font-family-secondary: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
72
|
+
|
|
73
|
+
--xz-line-height-100pct: 1;
|
|
74
|
+
--xz-line-height-125pct: 1.25;
|
|
75
|
+
--xz-line-height-135pct: 1.35;
|
|
76
|
+
--xz-line-height-150pct: 1.5;
|
|
77
|
+
--xz-line-height-165pct: 1.65;
|
|
78
|
+
--xz-line-height-200pct: 2;
|
|
79
|
+
|
|
80
|
+
--xz-heading-h1-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
81
|
+
--xz-heading-h1-font-size: 4.5rem;
|
|
82
|
+
--xz-heading-h1-font-weight: 700;
|
|
83
|
+
--xz-heading-h2-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
84
|
+
--xz-heading-h2-font-size: 4rem;
|
|
85
|
+
--xz-heading-h2-font-weight: 700;
|
|
86
|
+
--xz-heading-h3-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
87
|
+
--xz-heading-h3-font-size: 3.5rem;
|
|
88
|
+
--xz-heading-h3-font-weight: 700;
|
|
89
|
+
--xz-heading-h4-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
90
|
+
--xz-heading-h4-font-size: 3rem;
|
|
91
|
+
--xz-heading-h4-font-weight: 700;
|
|
92
|
+
--xz-heading-h5-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
93
|
+
--xz-heading-h5-font-size: 2.5rem;
|
|
94
|
+
--xz-heading-h5-font-weight: 700;
|
|
95
|
+
--xz-heading-h6-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
96
|
+
--xz-heading-h6-font-size: 2rem;
|
|
97
|
+
--xz-heading-h6-font-weight: 700;
|
|
98
|
+
|
|
99
|
+
--xz-title-title1-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
100
|
+
--xz-title-title1-font-size: 1.5rem;
|
|
101
|
+
--xz-title-title1-font-weight: 700;
|
|
102
|
+
--xz-title-title2-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
103
|
+
--xz-title-title2-font-size: 1.25rem;
|
|
104
|
+
--xz-title-title2-font-weight: 700;
|
|
105
|
+
--xz-title-title3-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
106
|
+
--xz-title-title3-font-size: 1.125rem;
|
|
107
|
+
--xz-title-title3-font-weight: 700;
|
|
108
|
+
--xz-title-title4-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
109
|
+
--xz-title-title4-font-size: 1rem;
|
|
110
|
+
--xz-title-title4-font-weight: 700;
|
|
111
|
+
|
|
112
|
+
--xz-subtitle-subtitle1Bold-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
113
|
+
--xz-subtitle-subtitle1Bold-font-size: 1rem;
|
|
114
|
+
--xz-subtitle-subtitle1Bold-font-weight: 700;
|
|
115
|
+
--xz-subtitle-subtitle1Regular-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
116
|
+
--xz-subtitle-subtitle1Regular-font-size: 1rem;
|
|
117
|
+
--xz-subtitle-subtitle1Regular-font-weight: 400;
|
|
118
|
+
--xz-subtitle-subtitle2Bold-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
119
|
+
--xz-subtitle-subtitle2Bold-font-size: 0.875rem;
|
|
120
|
+
--xz-subtitle-subtitle2Bold-font-weight: 700;
|
|
121
|
+
--xz-subtitle-subtitle2Regular-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
122
|
+
--xz-subtitle-subtitle2Regular-font-size: 0.875rem;
|
|
123
|
+
--xz-subtitle-subtitle2Regular-font-weight: 400;
|
|
124
|
+
--xz-subtitle-subtitle3Bold-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
125
|
+
--xz-subtitle-subtitle3Bold-font-size: 0.75rem;
|
|
126
|
+
--xz-subtitle-subtitle3Bold-font-weight: 700;
|
|
127
|
+
--xz-subtitle-subtitle3Regular-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
128
|
+
--xz-subtitle-subtitle3Regular-font-size: 0.75rem;
|
|
129
|
+
--xz-subtitle-subtitle3Regular-font-weight: 400;
|
|
130
|
+
|
|
131
|
+
--xz-body-body1-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
132
|
+
--xz-body-body1-font-size: 1rem;
|
|
133
|
+
--xz-body-body1-font-weight: 400;
|
|
134
|
+
--xz-body-body2-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
135
|
+
--xz-body-body2-font-size: 0.875rem;
|
|
136
|
+
--xz-body-body2-font-weight: 400;
|
|
137
|
+
--xz-body-body3-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
138
|
+
--xz-body-body3-font-size: 0.75rem;
|
|
139
|
+
--xz-body-body3-font-weight: 400;
|
|
140
|
+
--xz-body-body4-font-family: "Fastwork", "Noto Sans Thai", "Noto Sans", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
|
|
141
|
+
--xz-body-body4-font-size: 0.625rem;
|
|
142
|
+
--xz-body-body4-font-weight: 400;
|
|
143
|
+
|
|
144
|
+
--xz-spacing-0: 0;
|
|
145
|
+
--xz-spacing-1: 0.25rem;
|
|
146
|
+
--xz-spacing-2: 0.5rem;
|
|
147
|
+
--xz-spacing-3: 0.75rem;
|
|
148
|
+
--xz-spacing-4: 1rem;
|
|
149
|
+
--xz-spacing-5: 1.25rem;
|
|
150
|
+
--xz-spacing-6: 1.5rem;
|
|
151
|
+
--xz-spacing-7: 1.75rem;
|
|
152
|
+
--xz-spacing-8: 2rem;
|
|
153
|
+
--xz-spacing-9: 2.25rem;
|
|
154
|
+
--xz-spacing-10: 2.5rem;
|
|
155
|
+
--xz-spacing-11: 2.75rem;
|
|
156
|
+
--xz-spacing-12: 3rem;
|
|
157
|
+
--xz-spacing-14: 3.5rem;
|
|
158
|
+
--xz-spacing-16: 4rem;
|
|
159
|
+
--xz-spacing-20: 5rem;
|
|
160
|
+
--xz-spacing-24: 6rem;
|
|
161
|
+
--xz-spacing-28: 7rem;
|
|
162
|
+
--xz-spacing-32: 8rem;
|
|
163
|
+
--xz-spacing-36: 9rem;
|
|
164
|
+
--xz-spacing-40: 10rem;
|
|
165
|
+
--xz-spacing-44: 11rem;
|
|
166
|
+
--xz-spacing-48: 12rem;
|
|
167
|
+
--xz-spacing-52: 13rem;
|
|
168
|
+
--xz-spacing-56: 14rem;
|
|
169
|
+
--xz-spacing-60: 15rem;
|
|
170
|
+
--xz-spacing-64: 16rem;
|
|
171
|
+
--xz-spacing-72: 18rem;
|
|
172
|
+
--xz-spacing-80: 20rem;
|
|
173
|
+
--xz-spacing-96: 24rem;
|
|
174
|
+
--xz-spacing-px: 1px;
|
|
175
|
+
--xz-spacing-0_5: 0.125rem;
|
|
176
|
+
--xz-spacing-1_5: 0.375rem;
|
|
177
|
+
--xz-spacing-2_5: 0.625rem;
|
|
178
|
+
--xz-spacing-3_5: 0.875rem;
|
|
179
|
+
|
|
180
|
+
--xz-radius-none: 0;
|
|
181
|
+
--xz-radius-sm: 0.125rem;
|
|
182
|
+
--xz-radius-base: 0.25rem;
|
|
183
|
+
--xz-radius-md: 0.375rem;
|
|
184
|
+
--xz-radius-lg: 0.5rem;
|
|
185
|
+
--xz-radius-xl: 0.75rem;
|
|
186
|
+
--xz-radius-2xl: 1rem;
|
|
187
|
+
--xz-radius-3xl: 1.5rem;
|
|
188
|
+
--xz-radius-full: 9999px;
|
|
189
|
+
|
|
190
|
+
--xz-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
191
|
+
--xz-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
192
|
+
--xz-shadow-base: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
193
|
+
--xz-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
194
|
+
--xz-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
195
|
+
--xz-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
|
|
196
|
+
--xz-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
|
|
197
|
+
--xz-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
|
|
198
|
+
--xz-shadow-none: 0 0 #0000;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
@media (max-width: 768px) {
|
|
202
|
+
:root {
|
|
203
|
+
--xz-heading-h1-font-size: 3rem;
|
|
204
|
+
--xz-heading-h2-font-size: 2.6875rem;
|
|
205
|
+
--xz-heading-h3-font-size: 2.375rem;
|
|
206
|
+
--xz-heading-h4-font-size: 2rem;
|
|
207
|
+
--xz-heading-h5-font-size: 1.625rem;
|
|
208
|
+
--xz-heading-h6-font-size: 1.5rem;
|
|
209
|
+
|
|
210
|
+
--xz-title-title1-font-size: 1.25rem;
|
|
211
|
+
--xz-title-title2-font-size: 1.125rem;
|
|
212
|
+
--xz-title-title3-font-size: 1rem;
|
|
213
|
+
--xz-title-title4-font-size: 0.875rem;
|
|
214
|
+
|
|
215
|
+
--xz-subtitle-subtitle1Bold-font-size: 0.875rem;
|
|
216
|
+
--xz-subtitle-subtitle1Regular-font-size: 0.875rem;
|
|
217
|
+
--xz-subtitle-subtitle2Bold-font-size: 0.75rem;
|
|
218
|
+
--xz-subtitle-subtitle2Regular-font-size: 0.75rem;
|
|
219
|
+
--xz-subtitle-subtitle3Bold-font-size: 0.625rem;
|
|
220
|
+
--xz-subtitle-subtitle3Regular-font-size: 0.625rem;
|
|
221
|
+
|
|
222
|
+
--xz-body-body1-font-size: 0.875rem;
|
|
223
|
+
--xz-body-body2-font-size: 0.75rem;
|
|
224
|
+
--xz-body-body3-font-size: 0.625rem;
|
|
225
|
+
--xz-body-body4-font-size: 0.5rem;
|
|
226
|
+
}
|
|
23
227
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Theme type definitions
|
|
3
3
|
*/
|
|
4
4
|
interface ColorToken {
|
|
5
|
-
50: string;
|
|
6
5
|
100: string;
|
|
7
6
|
200: string;
|
|
8
7
|
300: string;
|
|
@@ -12,20 +11,20 @@ interface ColorToken {
|
|
|
12
11
|
700: string;
|
|
13
12
|
800: string;
|
|
14
13
|
900: string;
|
|
15
|
-
1000
|
|
16
|
-
1100?: string;
|
|
14
|
+
1000: string;
|
|
17
15
|
}
|
|
18
16
|
interface ThemeColors {
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
fastwork: ColorToken;
|
|
18
|
+
gray: ColorToken;
|
|
21
19
|
green: ColorToken;
|
|
22
|
-
|
|
20
|
+
mint: ColorToken;
|
|
21
|
+
amber: ColorToken;
|
|
23
22
|
red: ColorToken;
|
|
24
23
|
orange: ColorToken;
|
|
25
24
|
purple: ColorToken;
|
|
26
25
|
cyan: ColorToken;
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
blackAlpha: ColorToken;
|
|
27
|
+
whiteAlpha: ColorToken;
|
|
29
28
|
}
|
|
30
29
|
interface TypographyScale {
|
|
31
30
|
50: string;
|
|
@@ -179,22 +178,6 @@ interface Theme {
|
|
|
179
178
|
shadows: Shadows;
|
|
180
179
|
}
|
|
181
180
|
|
|
182
|
-
/**
|
|
183
|
-
* Color design tokens
|
|
184
|
-
*/
|
|
185
|
-
|
|
186
|
-
declare const primary: ColorToken;
|
|
187
|
-
declare const neutral: ColorToken;
|
|
188
|
-
declare const green: ColorToken;
|
|
189
|
-
declare const yellow: ColorToken;
|
|
190
|
-
declare const red: ColorToken;
|
|
191
|
-
declare const orange: ColorToken;
|
|
192
|
-
declare const purple: ColorToken;
|
|
193
|
-
declare const cyan: ColorToken;
|
|
194
|
-
declare const blackAlpha: ColorToken;
|
|
195
|
-
declare const whiteAlpha: ColorToken;
|
|
196
|
-
declare const colors: ThemeColors;
|
|
197
|
-
|
|
198
181
|
/**
|
|
199
182
|
* Typography design tokens
|
|
200
183
|
*/
|
|
@@ -256,4 +239,4 @@ declare const shadows: Shadows;
|
|
|
256
239
|
|
|
257
240
|
declare const borderRadius: BorderRadius;
|
|
258
241
|
|
|
259
|
-
export { type
|
|
242
|
+
export { type BodyTokens as B, type ColorToken as C, type FontWeights as F, type HeadingTokens as H, type SubtitleTokens as S, type ThemeColors as T, fontWeight as a, fontFamily as b, body as c, typography as d, spacing as e, fontSize as f, shadows as g, headings as h, borderRadius as i, type TypographyScale as j, type TypographyToken as k, lineHeight as l, type TitleTokens as m, type SpacingScale as n, type BorderRadius as o, type Shadows as p, type Theme as q, subtitles as s, titles as t };
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Theme type definitions
|
|
3
3
|
*/
|
|
4
4
|
interface ColorToken {
|
|
5
|
-
50: string;
|
|
6
5
|
100: string;
|
|
7
6
|
200: string;
|
|
8
7
|
300: string;
|
|
@@ -12,20 +11,20 @@ interface ColorToken {
|
|
|
12
11
|
700: string;
|
|
13
12
|
800: string;
|
|
14
13
|
900: string;
|
|
15
|
-
1000
|
|
16
|
-
1100?: string;
|
|
14
|
+
1000: string;
|
|
17
15
|
}
|
|
18
16
|
interface ThemeColors {
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
fastwork: ColorToken;
|
|
18
|
+
gray: ColorToken;
|
|
21
19
|
green: ColorToken;
|
|
22
|
-
|
|
20
|
+
mint: ColorToken;
|
|
21
|
+
amber: ColorToken;
|
|
23
22
|
red: ColorToken;
|
|
24
23
|
orange: ColorToken;
|
|
25
24
|
purple: ColorToken;
|
|
26
25
|
cyan: ColorToken;
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
blackAlpha: ColorToken;
|
|
27
|
+
whiteAlpha: ColorToken;
|
|
29
28
|
}
|
|
30
29
|
interface TypographyScale {
|
|
31
30
|
50: string;
|
|
@@ -179,22 +178,6 @@ interface Theme {
|
|
|
179
178
|
shadows: Shadows;
|
|
180
179
|
}
|
|
181
180
|
|
|
182
|
-
/**
|
|
183
|
-
* Color design tokens
|
|
184
|
-
*/
|
|
185
|
-
|
|
186
|
-
declare const primary: ColorToken;
|
|
187
|
-
declare const neutral: ColorToken;
|
|
188
|
-
declare const green: ColorToken;
|
|
189
|
-
declare const yellow: ColorToken;
|
|
190
|
-
declare const red: ColorToken;
|
|
191
|
-
declare const orange: ColorToken;
|
|
192
|
-
declare const purple: ColorToken;
|
|
193
|
-
declare const cyan: ColorToken;
|
|
194
|
-
declare const blackAlpha: ColorToken;
|
|
195
|
-
declare const whiteAlpha: ColorToken;
|
|
196
|
-
declare const colors: ThemeColors;
|
|
197
|
-
|
|
198
181
|
/**
|
|
199
182
|
* Typography design tokens
|
|
200
183
|
*/
|
|
@@ -256,4 +239,4 @@ declare const shadows: Shadows;
|
|
|
256
239
|
|
|
257
240
|
declare const borderRadius: BorderRadius;
|
|
258
241
|
|
|
259
|
-
export { type
|
|
242
|
+
export { type BodyTokens as B, type ColorToken as C, type FontWeights as F, type HeadingTokens as H, type SubtitleTokens as S, type ThemeColors as T, fontWeight as a, fontFamily as b, body as c, typography as d, spacing as e, fontSize as f, shadows as g, headings as h, borderRadius as i, type TypographyScale as j, type TypographyToken as k, lineHeight as l, type TitleTokens as m, type SpacingScale as n, type BorderRadius as o, type Shadows as p, type Theme as q, subtitles as s, titles as t };
|