@krometra/ui-kit 0.6.1 → 0.7.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 +21 -6
- package/dist/ui-kit.js +60 -10
- package/dist/ui-kit.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/theme.js +46 -5
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ UI-kit на Vue 3 со сменными темами оформления, св
|
|
|
7
7
|
|
|
8
8
|
**Витрина и конструктор темы: <https://krometra.github.io/ui-kit/>**
|
|
9
9
|
|
|
10
|
-
37 компонентов, 88 иконок,
|
|
10
|
+
37 компонентов, 88 иконок, десять готовых тем, две цветовые схемы и конструктор
|
|
11
11
|
своей темы. Разметка и поведение компонентов одни и те же, а стилистика
|
|
12
12
|
подбирается под проект: цвет, нейтрали, скругления, плотность, тени и шрифт
|
|
13
13
|
задаются CSS-переменными.
|
|
@@ -17,7 +17,7 @@ UI-kit на Vue 3 со сменными темами оформления, св
|
|
|
17
17
|
```bash
|
|
18
18
|
npm install @krometra/ui-kit
|
|
19
19
|
# или из репозитория (скрипт `prepare` собирает `dist/`)
|
|
20
|
-
npm install github:krometra/ui-kit#v0.
|
|
20
|
+
npm install github:krometra/ui-kit#v0.7.0
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Публикация в npm происходит по тегу `v*`, если задан секрет `NPM_TOKEN`.
|
|
@@ -71,15 +71,19 @@ const stop = applyTheme({ scheme: 'system' }) // следовать з
|
|
|
71
71
|
|
|
72
72
|
| Ось | Значения |
|
|
73
73
|
|---|---|
|
|
74
|
-
| `preset` | `default`, `scanflow`, `slate`, `ocean`, `forest`, `violet`, `amber`, `rose`, `mono` |
|
|
74
|
+
| `preset` | `default`, `scanflow`, `slate`, `ocean`, `forest`, `violet`, `amber`, `rose`, `mono`, `blocky` |
|
|
75
75
|
| `scheme` | `light`, `dark`, `system` |
|
|
76
76
|
| `neutral` | `cool`, `warm`, `plain` |
|
|
77
|
-
| `radius` | `sharp`, `subtle`, `default`, `soft`, `pill` |
|
|
77
|
+
| `radius` | `square`, `sharp`, `subtle`, `default`, `soft`, `pill` |
|
|
78
78
|
| `density` | `compact`, `default`, `comfortable` |
|
|
79
|
-
| `elevation` | `flat`, `default`, `lifted` |
|
|
80
|
-
| `font` | `system`, `grotesk`, `serif`, `mono` или своя строка |
|
|
79
|
+
| `elevation` | `flat`, `default`, `lifted`, `hard` |
|
|
80
|
+
| `font` | `system`, `grotesk`, `serif`, `mono`, `rounded` или своя строка |
|
|
81
81
|
| `bg`, `surface`, `text`, `textMuted`, `textFaint` | свой цвет фона, поверхности и текста поверх нейтральной палитры (hex) |
|
|
82
82
|
|
|
83
|
+
Пресет может принести свои скругления, плотность, тени и шрифт: `blocky` сразу
|
|
84
|
+
включает `radius: 'square'`, `elevation: 'hard'` и `font: 'rounded'`. Ось,
|
|
85
|
+
заданная в теме явно, важнее пресета.
|
|
86
|
+
|
|
83
87
|
Не заданные оси наследуются из `tokens.css`, поэтому частичная тема — обычный
|
|
84
88
|
способ настройки. `applyTheme` выставляет `data-k-scheme` и `color-scheme` на
|
|
85
89
|
`<html>` и возвращает функцию отката; при `scheme: 'system'` она же снимает
|
|
@@ -187,6 +191,17 @@ yarn tokens # перегенерировать src/tokens.css из theme.j
|
|
|
187
191
|
Витрина живёт в `demo/Showcase.vue` и служит и документацией, и площадкой для
|
|
188
192
|
визуальной проверки при изменении токенов.
|
|
189
193
|
|
|
194
|
+
## Что изменилось в 0.7.0
|
|
195
|
+
|
|
196
|
+
- Тема `blocky` - мультяшная «блочная»: травяной акцент, земляные нейтрали,
|
|
197
|
+
прямые углы и жёсткие тени без размытия, в светлой и тёмной схеме.
|
|
198
|
+
- Новые значения осей: `radius: 'square'` (без скруглений), `elevation: 'hard'`
|
|
199
|
+
(тень-ступенька), `font: 'rounded'` (скруглённый шрифт; в Chromium нужен
|
|
200
|
+
подключённый Nunito, `ui-rounded` понимает только Safari).
|
|
201
|
+
- Пресет может задавать `radius`, `density`, `elevation` и `font`; ось, заданная
|
|
202
|
+
в теме явно, важнее. Существующие пресеты эти оси не задают и не изменились.
|
|
203
|
+
- Витрина: выбор пресета подтягивает его оси в конструктор.
|
|
204
|
+
|
|
190
205
|
## Что изменилось в 0.6.1
|
|
191
206
|
|
|
192
207
|
- `KInput`: `size="sm"` - компактное поле внутри строки текста или таблицы,
|
package/dist/ui-kit.js
CHANGED
|
@@ -14993,6 +14993,38 @@ var Uy = /*#__PURE__*/ M({
|
|
|
14993
14993
|
accentHover: "#000000",
|
|
14994
14994
|
accentSoft: "#f4f4f5",
|
|
14995
14995
|
neutral: "plain"
|
|
14996
|
+
},
|
|
14997
|
+
blocky: {
|
|
14998
|
+
label: "Blocky",
|
|
14999
|
+
accent: "#4f8a25",
|
|
15000
|
+
accentHover: "#3f711c",
|
|
15001
|
+
accentSoft: "#e8f3dc",
|
|
15002
|
+
neutral: "warm",
|
|
15003
|
+
radius: "square",
|
|
15004
|
+
elevation: "hard",
|
|
15005
|
+
font: "rounded",
|
|
15006
|
+
neutralOverrides: {
|
|
15007
|
+
light: {
|
|
15008
|
+
bg: "#e7e1d3",
|
|
15009
|
+
surface: "#fbf8f1",
|
|
15010
|
+
surfaceMuted: "#f1ebdf",
|
|
15011
|
+
border: "#cdc3ae",
|
|
15012
|
+
borderStrong: "#8a7a5c",
|
|
15013
|
+
text: "#2b2418",
|
|
15014
|
+
textMuted: "#675a43",
|
|
15015
|
+
textFaint: "#9a8c72"
|
|
15016
|
+
},
|
|
15017
|
+
dark: {
|
|
15018
|
+
bg: "#1b1814",
|
|
15019
|
+
surface: "#27231d",
|
|
15020
|
+
surfaceMuted: "#302b24",
|
|
15021
|
+
border: "#443d32",
|
|
15022
|
+
borderStrong: "#6b5f4c",
|
|
15023
|
+
text: "#efe8da",
|
|
15024
|
+
textMuted: "#b2a58c",
|
|
15025
|
+
textFaint: "#7c715f"
|
|
15026
|
+
}
|
|
15027
|
+
}
|
|
14996
15028
|
}
|
|
14997
15029
|
}, Ky = {
|
|
14998
15030
|
cool: {
|
|
@@ -15135,6 +15167,11 @@ var Uy = /*#__PURE__*/ M({
|
|
|
15135
15167
|
sm: "12px",
|
|
15136
15168
|
md: "16px",
|
|
15137
15169
|
lg: "28px"
|
|
15170
|
+
},
|
|
15171
|
+
square: {
|
|
15172
|
+
sm: "0px",
|
|
15173
|
+
md: "0px",
|
|
15174
|
+
lg: "0px"
|
|
15138
15175
|
}
|
|
15139
15176
|
}, Yy = {
|
|
15140
15177
|
compact: {
|
|
@@ -15188,12 +15225,25 @@ var Uy = /*#__PURE__*/ M({
|
|
|
15188
15225
|
md: "0 8px 24px rgba(0, 0, 0, 0.55)",
|
|
15189
15226
|
lg: "0 24px 60px rgba(0, 0, 0, 0.7)"
|
|
15190
15227
|
}
|
|
15228
|
+
},
|
|
15229
|
+
hard: {
|
|
15230
|
+
light: {
|
|
15231
|
+
sm: "0 3px 0 rgba(43, 36, 24, 0.28)",
|
|
15232
|
+
md: "0 4px 0 rgba(43, 36, 24, 0.16)",
|
|
15233
|
+
lg: "0 8px 0 rgba(43, 36, 24, 0.22)"
|
|
15234
|
+
},
|
|
15235
|
+
dark: {
|
|
15236
|
+
sm: "0 3px 0 rgba(0, 0, 0, 0.55)",
|
|
15237
|
+
md: "0 4px 0 rgba(0, 0, 0, 0.45)",
|
|
15238
|
+
lg: "0 8px 0 rgba(0, 0, 0, 0.6)"
|
|
15239
|
+
}
|
|
15191
15240
|
}
|
|
15192
15241
|
}, Zy = {
|
|
15193
15242
|
system: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
|
|
15194
15243
|
grotesk: "'Inter', 'Segoe UI', system-ui, sans-serif",
|
|
15195
15244
|
serif: "'Georgia', 'Times New Roman', serif",
|
|
15196
|
-
mono: "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace"
|
|
15245
|
+
mono: "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace",
|
|
15246
|
+
rounded: "ui-rounded, 'SF Pro Rounded', 'Nunito', 'Varela Round', 'Segoe UI', system-ui, sans-serif"
|
|
15197
15247
|
};
|
|
15198
15248
|
function Qy(e = "light") {
|
|
15199
15249
|
return e === "system" ? typeof window > "u" || !window.matchMedia ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : e === "dark" ? "dark" : "light";
|
|
@@ -15207,11 +15257,11 @@ function $y(e = {}) {
|
|
|
15207
15257
|
...t.text ? { text: t.text } : {},
|
|
15208
15258
|
...t.textMuted ? { textMuted: t.textMuted } : {},
|
|
15209
15259
|
...t.textFaint ? { textFaint: t.textFaint } : {}
|
|
15210
|
-
}, o = Jy[t.radius] ?? Jy.default, s = Yy[t.density] ?? Yy.default, c = (Xy[t.elevation] ?? Xy.default)[n], l =
|
|
15211
|
-
"--k-primary":
|
|
15212
|
-
"--k-primary-hover": t.accentHover ?? (r ? ob(
|
|
15213
|
-
"--k-primary-soft": t.accentSoft ?? (r ? sb(
|
|
15214
|
-
"--k-on-primary": cb(
|
|
15260
|
+
}, o = Jy[t.radius ?? i.radius] ?? Jy.default, s = Yy[t.density ?? i.density] ?? Yy.default, c = (Xy[t.elevation ?? i.elevation] ?? Xy.default)[n], l = t.font ?? i.font, u = Zy[l] ?? l ?? Zy.system, d = t.accent ?? i.accent, f = r ? ob(d, .12) : d, p = {
|
|
15261
|
+
"--k-primary": f,
|
|
15262
|
+
"--k-primary-hover": t.accentHover ?? (r ? ob(f, .14) : t.accent ? ab(f, -.12) : i.accentHover),
|
|
15263
|
+
"--k-primary-soft": t.accentSoft ?? (r ? sb(f, a.surface, .22) : t.accent ? ob(f, .92) : i.accentSoft),
|
|
15264
|
+
"--k-on-primary": cb(f),
|
|
15215
15265
|
"--k-bg": a.bg,
|
|
15216
15266
|
"--k-surface": a.surface,
|
|
15217
15267
|
"--k-surface-muted": a.surfaceMuted,
|
|
@@ -15223,7 +15273,7 @@ function $y(e = {}) {
|
|
|
15223
15273
|
"--k-overlay": r ? "rgba(0, 0, 0, 0.6)" : "rgba(15, 23, 42, 0.35)",
|
|
15224
15274
|
"--k-tooltip-bg": r ? a.text : "#172033",
|
|
15225
15275
|
"--k-tooltip-text": r ? a.bg : "#ffffff",
|
|
15226
|
-
"--k-selection": sb(
|
|
15276
|
+
"--k-selection": sb(f, a.surface, r ? .4 : .2),
|
|
15227
15277
|
"--k-radius-sm": o.sm,
|
|
15228
15278
|
"--k-radius": o.md,
|
|
15229
15279
|
"--k-radius-lg": o.lg,
|
|
@@ -15233,10 +15283,10 @@ function $y(e = {}) {
|
|
|
15233
15283
|
"--k-shadow-sm": c.sm,
|
|
15234
15284
|
"--k-shadow-md": c.md,
|
|
15235
15285
|
"--k-shadow-lg": c.lg,
|
|
15236
|
-
"--k-font":
|
|
15286
|
+
"--k-font": u
|
|
15237
15287
|
};
|
|
15238
|
-
for (let [e, t] of Object.entries(qy[n]))
|
|
15239
|
-
return
|
|
15288
|
+
for (let [e, t] of Object.entries(qy[n])) p[`--k-${e}`] = t.base, p[`--k-${e}-hover`] = t.hover, p[`--k-${e}-soft`] = t.soft ?? sb(t.base, a.surface, .18), p[`--k-${e}-strong`] = t.strong, p[`--k-on-${e}`] = cb(t.base);
|
|
15289
|
+
return p;
|
|
15240
15290
|
}
|
|
15241
15291
|
function eb(e = {}, t = null) {
|
|
15242
15292
|
let n = t ?? (typeof document < "u" ? document.documentElement : null);
|