@vestow/theme 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/README.md +157 -0
- package/css/README.md +90 -0
- package/css/app.css +100 -0
- package/css/bases.css +86 -0
- package/css/charts.css +152 -0
- package/css/components/button.css +143 -0
- package/css/index.css +63 -0
- package/css/menus.css +165 -0
- package/css/palettes.css +292 -0
- package/css/primitives.css +224 -0
- package/css/styles.css +203 -0
- package/css/surfaces.css +364 -0
- package/css/tailwind.css +163 -0
- package/css/tokens.css +627 -0
- package/css/typeset.css +274 -0
- package/dist/controller.d.ts +56 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +256 -0
- package/dist/controller.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/preset.d.ts +90 -0
- package/dist/preset.d.ts.map +1 -0
- package/dist/preset.js +86 -0
- package/dist/preset.js.map +1 -0
- package/dist/registry.d.ts +252 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +238 -0
- package/dist/registry.js.map +1 -0
- package/dist/token-names.d.ts +512 -0
- package/dist/token-names.d.ts.map +1 -0
- package/dist/token-names.js +7 -0
- package/dist/token-names.js.map +1 -0
- package/package.json +40 -0
package/dist/registry.js
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Danh mục ba trục giao diện, và quy ước chúng được ghi lên DOM.
|
|
3
|
+
*
|
|
4
|
+
* Đây là DỮ LIỆU thuần — không import framework nào, không đụng `document`.
|
|
5
|
+
* Vue composable, React hook hay Angular service đều đọc chung file này, nên
|
|
6
|
+
* thêm một bảng màu là mọi framework thấy ngay, không phải chép danh sách.
|
|
7
|
+
*/
|
|
8
|
+
export const colorModes = ['light', 'dark', 'system'];
|
|
9
|
+
export function isColorMode(value) {
|
|
10
|
+
return typeof value === 'string' && colorModes.includes(value);
|
|
11
|
+
}
|
|
12
|
+
// `name` và `description` là bản MẶC ĐỊNH, cố ý để tiếng Anh: package này là
|
|
13
|
+
// dữ liệu thuần dùng chung cho mọi framework, nhét một danh sách ngôn ngữ vào
|
|
14
|
+
// đây là bắt nó biết tới i18n. Bên nào có i18n thì phủ lên theo `id` — xem
|
|
15
|
+
// `PaletteMenu.vue`; bên nào không có vẫn đọc được nhãn ở đây.
|
|
16
|
+
export const palettes = [
|
|
17
|
+
{
|
|
18
|
+
id: 'hyperion',
|
|
19
|
+
name: 'Hyperion',
|
|
20
|
+
description: 'Repo default blue, cool neutrals',
|
|
21
|
+
swatches: ['oklch(0.55 0.19 258)', 'oklch(0.945 0.008 258)', 'oklch(0.18 0.008 258)'],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'solar',
|
|
25
|
+
name: 'Solar',
|
|
26
|
+
description: 'Molten orange, warm charcoal',
|
|
27
|
+
swatches: ['oklch(0.62 0.215 38)', 'oklch(0.955 0.022 55)', 'oklch(0.155 0.018 35)'],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: 'nebula',
|
|
31
|
+
name: 'Nebula',
|
|
32
|
+
description: 'Electric violet, cool neutrals',
|
|
33
|
+
swatches: ['oklch(0.55 0.245 298)', 'oklch(0.955 0.025 300)', 'oklch(0.16 0.028 295)'],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'aurora',
|
|
37
|
+
name: 'Aurora',
|
|
38
|
+
description: 'Teal over deep navy',
|
|
39
|
+
swatches: ['oklch(0.72 0.155 178)', 'oklch(0.955 0.025 190)', 'oklch(0.16 0.024 225)'],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'eclipse',
|
|
43
|
+
name: 'Eclipse',
|
|
44
|
+
description: 'Monochrome primary, status colours kept',
|
|
45
|
+
swatches: ['oklch(0.18 0 0)', 'oklch(0.965 0 0)', 'oklch(0.145 0 0)'],
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
export function isPaletteId(value) {
|
|
49
|
+
return typeof value === 'string' && palettes.some(item => item.id === value);
|
|
50
|
+
}
|
|
51
|
+
// `name` và `description` là bản MẶC ĐỊNH, cố ý để tiếng Anh: package này là
|
|
52
|
+
// dữ liệu thuần dùng chung cho mọi framework, nhét một danh sách ngôn ngữ vào
|
|
53
|
+
// đây là bắt nó biết tới i18n. Bên nào có i18n thì phủ lên theo `id` — xem
|
|
54
|
+
// `PaletteMenu.vue`; bên nào không có vẫn đọc được nhãn ở đây.
|
|
55
|
+
export const surfaces = [
|
|
56
|
+
{ id: 'solid', name: 'Solid', description: 'Opaque panels, no blur' },
|
|
57
|
+
// Kính ĐÃ TRỞ LẠI giao diện. Nó từng bị gỡ khỏi mảng này vì một món nợ AA có
|
|
58
|
+
// thật: chữ mờ trên card kính ở chế độ SÁNG chỉ đạt 3,66–4,23 trên các đỉnh
|
|
59
|
+
// gradient. Món đó đã trả — xem khối `--muted-foreground` trong nhánh kính
|
|
60
|
+
// sáng của `surfaces.css`, giờ đo được 5,00 ở đỉnh xấu nhất.
|
|
61
|
+
//
|
|
62
|
+
// Gỡ khỏi mảng NÀY chứ không chỉ ẩn cái picker là đúng cách làm hồi đó:
|
|
63
|
+
// `isSurfaceId` suy ra từ đúng mảng này và `readStoredState` lọc giá trị đã
|
|
64
|
+
// lưu qua nó. Nhờ `readStored` rơi lui mà KHÔNG xoá localStorage, người từng
|
|
65
|
+
// bật kính trước lúc ẩn nay được trả lại đúng lựa chọn cũ.
|
|
66
|
+
{ id: 'glass', name: 'Glass', description: 'Translucent panels over a tinted backdrop' },
|
|
67
|
+
];
|
|
68
|
+
export function isSurfaceId(value) {
|
|
69
|
+
return typeof value === 'string' && surfaces.some(item => item.id === value);
|
|
70
|
+
}
|
|
71
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` và `surfaces`
|
|
72
|
+
// ở trên: package này là dữ liệu thuần dùng chung cho mọi framework. Bên nào có
|
|
73
|
+
// i18n thì phủ lên theo `id`.
|
|
74
|
+
export const styleVariants = [
|
|
75
|
+
{ id: 'vega', name: 'Vega', description: 'Medium radius, visible borders, compact controls' },
|
|
76
|
+
{ id: 'nova', name: 'Nova', description: 'Large radius, faint borders, roomier controls' },
|
|
77
|
+
{ id: 'maia', name: 'Maia', description: 'Nearly square corners, everything else as default' },
|
|
78
|
+
{ id: 'lyra', name: 'Lyra', description: 'Square corners and strong rules' },
|
|
79
|
+
{ id: 'mira', name: 'Mira', description: 'Softest corners, roomiest controls' },
|
|
80
|
+
{ id: 'luma', name: 'Luma', description: 'Barely-there rules, roomier controls' },
|
|
81
|
+
{ id: 'sera', name: 'Sera', description: 'Dense controls with strong rules' },
|
|
82
|
+
{ id: 'rhea', name: 'Rhea', description: 'Soft corners with strong rules and roomy controls' },
|
|
83
|
+
];
|
|
84
|
+
export function isStyleId(value) {
|
|
85
|
+
return typeof value === 'string' && styleVariants.some(item => item.id === value);
|
|
86
|
+
}
|
|
87
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` ở trên.
|
|
88
|
+
export const menuAccents = [
|
|
89
|
+
{ id: 'subtle', name: 'Subtle', description: 'Faint tint, the default' },
|
|
90
|
+
{ id: 'solid', name: 'Solid', description: 'Filled with the primary colour' },
|
|
91
|
+
{ id: 'muted', name: 'Muted', description: 'Grey fill, no hue at all' },
|
|
92
|
+
];
|
|
93
|
+
export function isMenuAccentId(value) {
|
|
94
|
+
return typeof value === 'string' && menuAccents.some(item => item.id === value);
|
|
95
|
+
}
|
|
96
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` ở trên.
|
|
97
|
+
export const menuColors = [
|
|
98
|
+
{ id: 'default', name: 'Default', description: 'The popover surface, like every other overlay' },
|
|
99
|
+
{ id: 'inverted', name: 'Inverted', description: 'Dark menu on a light theme, and the other way round' },
|
|
100
|
+
];
|
|
101
|
+
export function isMenuColorId(value) {
|
|
102
|
+
return typeof value === 'string' && menuColors.some(item => item.id === value);
|
|
103
|
+
}
|
|
104
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` ở trên.
|
|
105
|
+
export const menuAppearances = [
|
|
106
|
+
{ id: 'solid', name: 'Solid', description: 'Opaque panel, the default' },
|
|
107
|
+
{ id: 'translucent', name: 'Translucent', description: 'Blurred panel — no-op while the glass surface is on' },
|
|
108
|
+
];
|
|
109
|
+
export function isMenuAppearanceId(value) {
|
|
110
|
+
return typeof value === 'string' && menuAppearances.some(item => item.id === value);
|
|
111
|
+
}
|
|
112
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` ở trên.
|
|
113
|
+
export const bases = [
|
|
114
|
+
{ id: 'slate', name: 'Slate', description: 'Cool blue-grey, the default', swatch: 'oklch(0.554 0.046 265.755)' },
|
|
115
|
+
{ id: 'zinc', name: 'Zinc', description: 'Faint violet grey', swatch: 'oklch(0.552 0.046 285.885)' },
|
|
116
|
+
{ id: 'stone', name: 'Stone', description: 'Warm grey', swatch: 'oklch(0.553 0.046 56.043)' },
|
|
117
|
+
{ id: 'mist', name: 'Mist', description: 'Cool teal grey', swatch: 'oklch(0.56 0.041 223.9)' },
|
|
118
|
+
{ id: 'taupe', name: 'Taupe', description: 'Brown-leaning grey', swatch: 'oklch(0.547 0.046 43.1)' },
|
|
119
|
+
{ id: 'olive', name: 'Olive', description: 'Green-leaning grey', swatch: 'oklch(0.58 0.046 107.4)' },
|
|
120
|
+
{ id: 'mauve', name: 'Mauve', description: 'Pink-leaning grey', swatch: 'oklch(0.542 0.046 322.12)' },
|
|
121
|
+
{ id: 'neutral', name: 'Neutral', description: 'Pure grey, no tint at all', swatch: 'oklch(0.556 0 0)' },
|
|
122
|
+
];
|
|
123
|
+
export function isBaseId(value) {
|
|
124
|
+
return typeof value === 'string' && bases.some(item => item.id === value);
|
|
125
|
+
}
|
|
126
|
+
// `name` và `description` để tiếng Anh, cùng lý do với `palettes` ở trên.
|
|
127
|
+
export const chartPalettes = [
|
|
128
|
+
{ id: 'theme', name: 'Theme', description: 'Follow the palette — the default' },
|
|
129
|
+
{
|
|
130
|
+
id: 'blue',
|
|
131
|
+
name: 'Blue',
|
|
132
|
+
description: 'Blue through violet, the base set',
|
|
133
|
+
swatches: ['oklch(0.546 0.245 262.881)', 'oklch(0.380 0.189 293.745)', 'oklch(0.673 0.182 276.935)'],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: 'amber',
|
|
137
|
+
name: 'Amber',
|
|
138
|
+
description: 'Warm oranges and reds',
|
|
139
|
+
swatches: ['oklch(0.553 0.195 38.402)', 'oklch(0.645 0.246 16.439)', 'oklch(0.666 0.179 58.318)'],
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: 'violet',
|
|
143
|
+
name: 'Violet',
|
|
144
|
+
description: 'Purple through pink',
|
|
145
|
+
swatches: ['oklch(0.558 0.288 302.321)', 'oklch(0.673 0.182 276.935)', 'oklch(0.606 0.25 292.717)'],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: 'teal',
|
|
149
|
+
name: 'Teal',
|
|
150
|
+
description: 'Teal through green',
|
|
151
|
+
swatches: ['oklch(0.511 0.096 186.391)', 'oklch(0.627 0.194 149.214)', 'oklch(0.596 0.145 163.225)'],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: 'neutral',
|
|
155
|
+
name: 'Neutral',
|
|
156
|
+
description: 'Monochrome, survives a black-and-white print',
|
|
157
|
+
swatches: ['oklch(0.269 0 0)', 'oklch(0.439 0 0)', 'oklch(0.145 0 0)'],
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
export function isChartId(value) {
|
|
161
|
+
return typeof value === 'string' && chartPalettes.some(item => item.id === value);
|
|
162
|
+
}
|
|
163
|
+
/* -------------------------------------------------------------------------
|
|
164
|
+
Quy ước ghi lên DOM và localStorage
|
|
165
|
+
---------------------------------------------------------------------- */
|
|
166
|
+
/**
|
|
167
|
+
* Giá trị mặc định của mỗi trục. `hyperion` và `solid` KHÔNG có khối CSS nào
|
|
168
|
+
* (`[data-palette]` / `[data-surface]`), nên controller gỡ hẳn thuộc tính thay
|
|
169
|
+
* vì ghi giá trị — tránh khai một khối rỗng chỉ để không làm gì.
|
|
170
|
+
*/
|
|
171
|
+
export const defaults = {
|
|
172
|
+
colorMode: 'system',
|
|
173
|
+
palette: 'hyperion',
|
|
174
|
+
surface: 'solid',
|
|
175
|
+
style: 'vega',
|
|
176
|
+
chart: 'theme',
|
|
177
|
+
base: 'slate',
|
|
178
|
+
menuAccent: 'subtle',
|
|
179
|
+
menuColor: 'default',
|
|
180
|
+
menuAppearance: 'solid',
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Khoá localStorage. Mỗi trục một khoá riêng — đừng gộp vào một object JSON,
|
|
184
|
+
* cũng đừng bật `persist` của Pinia lên trên: hai bản ghi cùng một giá trị dưới
|
|
185
|
+
* hai khoá rồi sẽ trôi khỏi nhau và không biết bên nào đúng.
|
|
186
|
+
*/
|
|
187
|
+
export const storageKeys = {
|
|
188
|
+
colorMode: 'hyperion-color-mode',
|
|
189
|
+
palette: 'hyperion-palette',
|
|
190
|
+
surface: 'hyperion-surface',
|
|
191
|
+
style: 'hyperion-style',
|
|
192
|
+
chart: 'hyperion-chart-palette',
|
|
193
|
+
base: 'hyperion-base',
|
|
194
|
+
menuAccent: 'hyperion-menu-accent',
|
|
195
|
+
menuColor: 'hyperion-menu-color',
|
|
196
|
+
menuAppearance: 'hyperion-menu-appearance',
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Cách mỗi trục hiện diện trên `<html>`. CSS bám vào đúng những cái tên này,
|
|
200
|
+
* nên đổi ở đây là phải đổi cả trong `tokens.css` / `palettes.css` /
|
|
201
|
+
* `surfaces.css`.
|
|
202
|
+
*/
|
|
203
|
+
export const domTargets = {
|
|
204
|
+
/** Chế độ tối là CLASS, không phải `data-*`: `.dark` lồng được vào một vùng. */
|
|
205
|
+
darkClass: 'dark',
|
|
206
|
+
/** Cặp với `.dark` — dùng để ép một vùng về theme sáng (trang docs cần). */
|
|
207
|
+
lightClass: 'light',
|
|
208
|
+
paletteAttribute: 'data-palette',
|
|
209
|
+
surfaceAttribute: 'data-surface',
|
|
210
|
+
/**
|
|
211
|
+
* Trục hình khối — nay là trục THỨ TƯ đầy đủ, ngang hàng ba cái trên: có
|
|
212
|
+
* `defaults.style`, có `storageKeys.style`, nằm trong `ThemeState`, và
|
|
213
|
+
* controller ghi nó lên `<html>`. Bản trước chỉ khai mỗi tên chuỗi ở đây vì
|
|
214
|
+
* chỗ dùng duy nhất là khung xem trước cục bộ của `/create`.
|
|
215
|
+
*
|
|
216
|
+
* Vẫn dùng được ở phạm vi CỤC BỘ: đặt `data-style` lên một khối con thì khai
|
|
217
|
+
* báo trực tiếp thắng giá trị thừa kế, đúng như `.light` ép một vùng về theme
|
|
218
|
+
* sáng cho bảng Tokens. Hai cách dùng không đụng nhau.
|
|
219
|
+
*
|
|
220
|
+
* Lưu ý cho ca cục bộ đó: `tokens.css` tính năm nấc `--radius-sm…2xl` bằng
|
|
221
|
+
* `calc()` từ `--radius`, mà `calc()` giải NGAY tại phần tử mang khai báo —
|
|
222
|
+
* nên selector khai năm nấc phải bao gồm `[data-style]`, nếu không một khối
|
|
223
|
+
* lồng đổi `--radius` sẽ im lặng không có tác dụng. Xem ghi chú tại chỗ trong
|
|
224
|
+
* `tokens.css`.
|
|
225
|
+
*/
|
|
226
|
+
styleAttribute: 'data-style',
|
|
227
|
+
/** Trục màu biểu đồ. `charts.css` bám vào đúng chuỗi này. */
|
|
228
|
+
chartAttribute: 'data-chart',
|
|
229
|
+
/** Trục họ trung tính. `bases.css` bám vào đúng chuỗi này. */
|
|
230
|
+
baseAttribute: 'data-base',
|
|
231
|
+
/** Trục highlight của menu. `menus.css` bám vào đúng chuỗi này. */
|
|
232
|
+
menuAccentAttribute: 'data-menu-accent',
|
|
233
|
+
/** Trục màu mặt menu. `menus.css` bám vào đúng chuỗi này. */
|
|
234
|
+
menuColorAttribute: 'data-menu-color',
|
|
235
|
+
/** Trục vật liệu mặt menu. `menus.css` bám vào đúng chuỗi này. */
|
|
236
|
+
menuAppearanceAttribute: 'data-menu-appearance',
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|