@dskripchenko/ui 1.2.1 → 1.3.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 +2 -2
- package/dist/components/Drawer/UidDrawer.vue.d.ts +5 -2
- package/dist/components/Modal/UidModal.vue.d.ts +5 -2
- package/dist/components/Stepper/UidStepper.vue.d.ts +11 -1
- package/dist/components/Table/UidTable.vue.d.ts +3 -3
- package/dist/components/TreeView/UidTreeView.vue.d.ts +4 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +656 -620
- package/dist/styles/all.css +1 -1
- package/dist/styles/index.css +1 -1
- package/package.json +15 -16
- package/README.de.md +0 -145
- package/README.ru.md +0 -143
- package/README.zh.md +0 -145
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dskripchenko/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Vue 3 component, token, and theme library on CSS custom properties",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=20"
|
|
33
33
|
},
|
|
34
|
-
"packageManager": "pnpm@10.28.0",
|
|
35
34
|
"publishConfig": {
|
|
36
35
|
"access": "public"
|
|
37
36
|
},
|
|
@@ -63,19 +62,6 @@
|
|
|
63
62
|
"files": [
|
|
64
63
|
"dist"
|
|
65
64
|
],
|
|
66
|
-
"scripts": {
|
|
67
|
-
"dev": "storybook dev -p 6006",
|
|
68
|
-
"build-storybook": "storybook build",
|
|
69
|
-
"build": "vue-tsc --noEmit -p tsconfig.build.json && vite build && node scripts/build-styles.mjs",
|
|
70
|
-
"build:lib": "vite build && node scripts/build-styles.mjs",
|
|
71
|
-
"build:analyze": "ANALYZE=true vite build && node scripts/build-styles.mjs",
|
|
72
|
-
"test": "vitest run",
|
|
73
|
-
"test:watch": "vitest",
|
|
74
|
-
"lint": "eslint src",
|
|
75
|
-
"typecheck": "vue-tsc --noEmit",
|
|
76
|
-
"changeset": "changeset",
|
|
77
|
-
"release": "pnpm build && changeset publish"
|
|
78
|
-
},
|
|
79
65
|
"peerDependencies": {
|
|
80
66
|
"vue": "^3.4.0"
|
|
81
67
|
},
|
|
@@ -105,5 +91,18 @@
|
|
|
105
91
|
"vitest": "^4.1.5",
|
|
106
92
|
"vue": "^3.5.33",
|
|
107
93
|
"vue-tsc": "^3.2.7"
|
|
94
|
+
},
|
|
95
|
+
"scripts": {
|
|
96
|
+
"dev": "storybook dev -p 6006",
|
|
97
|
+
"build-storybook": "storybook build",
|
|
98
|
+
"build": "vue-tsc --noEmit -p tsconfig.build.json && vite build && node scripts/build-styles.mjs",
|
|
99
|
+
"build:lib": "vite build && node scripts/build-styles.mjs",
|
|
100
|
+
"build:analyze": "ANALYZE=true vite build && node scripts/build-styles.mjs",
|
|
101
|
+
"test": "vitest run",
|
|
102
|
+
"test:watch": "vitest",
|
|
103
|
+
"lint": "eslint src",
|
|
104
|
+
"typecheck": "vue-tsc --noEmit",
|
|
105
|
+
"changeset": "changeset",
|
|
106
|
+
"release": "pnpm build && changeset publish"
|
|
108
107
|
}
|
|
109
|
-
}
|
|
108
|
+
}
|
package/README.de.md
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# @dskripchenko/ui
|
|
2
|
-
|
|
3
|
-
Eine Bibliothek aus Vue-3-Komponenten, Tokens und Themes auf Basis von CSS Custom Properties.
|
|
4
|
-
|
|
5
|
-
[English](./README.md) · [Русский](./README.ru.md) · [**Deutsch**](./README.de.md) · [中文](./README.zh.md)
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/@dskripchenko/ui)
|
|
8
|
-
[](https://bundlephobia.com/package/@dskripchenko/ui)
|
|
9
|
-
[](./LICENSE)
|
|
10
|
-
|
|
11
|
-
> **Status:** stabil. SemVer-Garantien gelten — Breaking Changes nur in Major-Versionen.
|
|
12
|
-
|
|
13
|
-
📖 **Storybook:** [dskripchenko.github.io/ui](https://dskripchenko.github.io/ui/)
|
|
14
|
-
|
|
15
|
-
## Highlights
|
|
16
|
-
|
|
17
|
-
- **70+ Komponenten** — Formulare, Navigation, Overlays, Datenanzeige, Charts, Patterns, Layouts
|
|
18
|
-
- **Vue 3 + TypeScript** — Composition API, `<script setup>`, vollständig typisiert
|
|
19
|
-
- **CSS Custom Properties** — kein CSS-in-JS, kein Tailwind, keine Präprozessoren; alles über Variablen
|
|
20
|
-
- **Light / Dark Themes** — Umschalten über `data-theme` auf `:root`, einfach zu überschreiben
|
|
21
|
-
- **Tree-shakable** — Import pro Komponente, ESM + CJS Builds
|
|
22
|
-
- **A11y** — `:focus-visible`, ARIA-Attribute, Tastatur-Navigation in allen interaktiven Komponenten
|
|
23
|
-
- **i18n** — eingebaute `ru` + `en` Locales, `UidLocaleProvider` für partielle Überschreibungen und eigene Locales
|
|
24
|
-
- **~1500 Icons** — `lucide-vue-next` unter der Haube + Sub-Export `@dskripchenko/ui/icons`
|
|
25
|
-
- **Keine Runtime-Chart-Deps** — eingebaute SVG-Primitive (Sparkline, ProgressRing, Gauge, Heatmap)
|
|
26
|
-
|
|
27
|
-
## Installation
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
pnpm add @dskripchenko/ui
|
|
31
|
-
# oder
|
|
32
|
-
npm install @dskripchenko/ui
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Schnellstart
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
// main.ts
|
|
39
|
-
import { createApp } from 'vue'
|
|
40
|
-
import App from './App.vue'
|
|
41
|
-
|
|
42
|
-
import '@dskripchenko/ui/styles/tokens.css'
|
|
43
|
-
import '@dskripchenko/ui/styles/themes.css'
|
|
44
|
-
|
|
45
|
-
createApp(App).mount('#app')
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
```vue
|
|
49
|
-
<!-- App.vue -->
|
|
50
|
-
<script setup lang="ts">
|
|
51
|
-
import { UidButton, UidIcon, UidLocaleProvider, en } from '@dskripchenko/ui'
|
|
52
|
-
import { Check } from '@dskripchenko/ui/icons'
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
|
-
<template>
|
|
56
|
-
<UidLocaleProvider :locale="en">
|
|
57
|
-
<UidButton variant="primary">
|
|
58
|
-
<UidIcon :icon="Check" /> Speichern
|
|
59
|
-
</UidButton>
|
|
60
|
-
</UidLocaleProvider>
|
|
61
|
-
</template>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Theme über Attribut auf `<html>` umschalten:
|
|
65
|
-
|
|
66
|
-
```html
|
|
67
|
-
<html data-theme="dark">
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Inhalt
|
|
71
|
-
|
|
72
|
-
Kurze Auswahl — vollständiger Katalog im [Storybook](https://dskripchenko.github.io/ui/).
|
|
73
|
-
|
|
74
|
-
**Formulare & Eingabe:** Button, Input, Textarea, NumberInput, Checkbox, Radio, Switch, Label, FormField, Select, Combobox, TagsInput, DatePicker, DateRangePicker, TimePicker, ColorPicker, Slider, Rating, FileUpload, Mention, TreeSelect, Cascader
|
|
75
|
-
|
|
76
|
-
**Feedback:** Spinner, Skeleton, Badge, Alert, Progress, Toast, Tour
|
|
77
|
-
|
|
78
|
-
**Overlays:** Modal, Drawer, Tooltip, Popover, Menu, Command
|
|
79
|
-
|
|
80
|
-
**Navigation:** Tabs, Breadcrumb, Link, Pagination (+ Cursor / LoadMore / InfiniteScroll / PageSize), BackTop, Affix, Anchor
|
|
81
|
-
|
|
82
|
-
**Datenanzeige:** Card, Avatar, AvatarGroup, Tag, Divider, Accordion, Table, VirtualList, Stat, DescriptionList, Timeline, TreeView, Code, Watermark, Carousel, Calendar, NotificationBadge
|
|
83
|
-
|
|
84
|
-
**Layout-Helfer:** Stack, Grid, Container, Splitter
|
|
85
|
-
|
|
86
|
-
**Charts:** Sparkline, ProgressRing, Gauge, Heatmap
|
|
87
|
-
|
|
88
|
-
**Wizards:** Stepper, Wizard, WizardStep
|
|
89
|
-
|
|
90
|
-
**Patterns:** Header, Footer, Sidebar, PageHeader, EmptyState, ErrorState, Result
|
|
91
|
-
|
|
92
|
-
**Layouts:** SimpleLayout, SidebarLayout, AuthLayout, WizardLayout
|
|
93
|
-
|
|
94
|
-
**Composables:** useTheme, useLocale, useField, useToast, useWizard, useSidebar, useCommandPalette, useFocusTrap, useScrollLock, usePopover
|
|
95
|
-
|
|
96
|
-
## Dokumentation
|
|
97
|
-
|
|
98
|
-
Anwender-Dokumentation in vier Sprachen — wähle deine:
|
|
99
|
-
|
|
100
|
-
- 🇬🇧 **English** (default): [docs/en/](./docs/en/)
|
|
101
|
-
- 🇷🇺 **Русский**: [docs/ru/](./docs/ru/)
|
|
102
|
-
- 🇩🇪 **Deutsch**: [Erste Schritte](./docs/de/getting-started.md), [Theming](./docs/de/theming.md), [Tokens](./docs/de/tokens.md), [Icons](./docs/de/icons.md), [Patterns](./docs/de/patterns.md), [Validation](./docs/de/validation.md), [Charts](./docs/de/charts.md), [i18n](./docs/de/i18n.md)
|
|
103
|
-
- 🇨🇳 **中文**: [docs/zh/](./docs/zh/)
|
|
104
|
-
|
|
105
|
-
Mitwirkenden-Dokumentation (nur Englisch): [Architecture](./docs/ARCHITECTURE.md), [Component guidelines](./docs/COMPONENT_GUIDELINES.md), [Contributing](./docs/CONTRIBUTING.md), [Roadmap](./docs/ROADMAP.md).
|
|
106
|
-
|
|
107
|
-
## Theming
|
|
108
|
-
|
|
109
|
-
Alle Farben, Abstände und Schriften sind CSS-Variablen. Theme überschreiben — Tokens auf `:root` oder einem Container setzen:
|
|
110
|
-
|
|
111
|
-
```css
|
|
112
|
-
:root[data-theme='dark'] {
|
|
113
|
-
--uid-color-primary: #8b5cf6;
|
|
114
|
-
--uid-color-bg: #0a0a0a;
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Mehr in [Theming](./docs/de/theming.md) und [Tokens](./docs/de/tokens.md).
|
|
119
|
-
|
|
120
|
-
## Icons
|
|
121
|
-
|
|
122
|
-
Sub-Export `@dskripchenko/ui/icons` re-exportiert alle ~1500 Lucide-Icons:
|
|
123
|
-
|
|
124
|
-
```ts
|
|
125
|
-
import { UidIcon } from '@dskripchenko/ui'
|
|
126
|
-
import { Heart, Star } from '@dskripchenko/ui/icons'
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Mehr in [Icons](./docs/de/icons.md).
|
|
130
|
-
|
|
131
|
-
## Entwicklung
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
pnpm install
|
|
135
|
-
pnpm dev # Storybook auf :6006
|
|
136
|
-
pnpm test # Vitest
|
|
137
|
-
pnpm build # Library-Build
|
|
138
|
-
pnpm build-storybook # Storybook → storybook-static
|
|
139
|
-
pnpm build:analyze # Bundle-Visualizer
|
|
140
|
-
pnpm changeset # Änderung fürs nächste Release beschreiben
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Lizenz
|
|
144
|
-
|
|
145
|
-
MIT
|
package/README.ru.md
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
# @dskripchenko/ui
|
|
2
|
-
|
|
3
|
-
Набор Vue 3 компонентов, токенов и тем на CSS custom properties.
|
|
4
|
-
|
|
5
|
-
[English](./README.md) · [**Русский**](./README.ru.md) · [Deutsch](./README.de.md) · [中文](./README.zh.md)
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/@dskripchenko/ui)
|
|
8
|
-
[](https://bundlephobia.com/package/@dskripchenko/ui)
|
|
9
|
-
[](./LICENSE)
|
|
10
|
-
|
|
11
|
-
> **Статус:** стабильно. Действуют гарантии SemVer — ломающие изменения только в major-версиях.
|
|
12
|
-
|
|
13
|
-
📖 **Storybook:** [dskripchenko.github.io/ui](https://dskripchenko.github.io/ui/)
|
|
14
|
-
|
|
15
|
-
## Особенности
|
|
16
|
-
|
|
17
|
-
- **70+ компонентов** — формы, навигация, оверлеи, отображение данных, графики, паттерны, лейауты
|
|
18
|
-
- **Vue 3 + TypeScript** — Composition API, `<script setup>`, полная типизация
|
|
19
|
-
- **CSS custom properties** — никакого CSS-in-JS, Tailwind или препроцессоров; всё через переменные
|
|
20
|
-
- **Light / Dark темы** — через `data-theme` на `:root`, легко переопределяются
|
|
21
|
-
- **Tree-shakeable** — импорт по компонентам, ESM + CJS сборки
|
|
22
|
-
- **A11y** — `:focus-visible`, ARIA-атрибуты, keyboard-навигация во всех интерактивных компонентах
|
|
23
|
-
- **i18n** — встроенные `ru` + `en` локали, `UidLocaleProvider` для частичных переопределений и кастомных локалей
|
|
24
|
-
- **~1500 иконок** — `lucide-vue-next` под капотом + sub-export `@dskripchenko/ui/icons`
|
|
25
|
-
- **Zero runtime chart deps** — встроенные SVG-примитивы (Sparkline, ProgressRing, Gauge, Heatmap)
|
|
26
|
-
|
|
27
|
-
## Установка
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
pnpm add @dskripchenko/ui
|
|
31
|
-
# или
|
|
32
|
-
npm install @dskripchenko/ui
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Быстрый старт
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
// main.ts
|
|
39
|
-
import { createApp } from 'vue'
|
|
40
|
-
import App from './App.vue'
|
|
41
|
-
|
|
42
|
-
import '@dskripchenko/ui/styles/tokens.css'
|
|
43
|
-
import '@dskripchenko/ui/styles/themes.css'
|
|
44
|
-
|
|
45
|
-
createApp(App).mount('#app')
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
```vue
|
|
49
|
-
<!-- App.vue -->
|
|
50
|
-
<script setup lang="ts">
|
|
51
|
-
import { UidButton, UidIcon } from '@dskripchenko/ui'
|
|
52
|
-
import { Check } from '@dskripchenko/ui/icons'
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
|
-
<template>
|
|
56
|
-
<UidButton variant="primary">
|
|
57
|
-
<UidIcon :icon="Check" /> Сохранить
|
|
58
|
-
</UidButton>
|
|
59
|
-
</template>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Переключение темы — атрибут на `<html>`:
|
|
63
|
-
|
|
64
|
-
```html
|
|
65
|
-
<html data-theme="dark">
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Что внутри
|
|
69
|
-
|
|
70
|
-
Краткий список — полный каталог в [Storybook](https://dskripchenko.github.io/ui/).
|
|
71
|
-
|
|
72
|
-
**Формы и ввод:** Button, Input, Textarea, NumberInput, Checkbox, Radio, Switch, Label, FormField, Select, Combobox, TagsInput, DatePicker, DateRangePicker, TimePicker, ColorPicker, Slider, Rating, FileUpload, Mention, TreeSelect, Cascader
|
|
73
|
-
|
|
74
|
-
**Обратная связь:** Spinner, Skeleton, Badge, Alert, Progress, Toast, Tour
|
|
75
|
-
|
|
76
|
-
**Оверлеи:** Modal, Drawer, Tooltip, Popover, Menu, Command
|
|
77
|
-
|
|
78
|
-
**Навигация:** Tabs, Breadcrumb, Link, Pagination (+ Cursor / LoadMore / InfiniteScroll / PageSize), BackTop, Affix, Anchor
|
|
79
|
-
|
|
80
|
-
**Отображение данных:** Card, Avatar, AvatarGroup, Tag, Divider, Accordion, Table, VirtualList, Stat, DescriptionList, Timeline, TreeView, Code, Watermark, Carousel, Calendar, NotificationBadge
|
|
81
|
-
|
|
82
|
-
**Layout-помощники:** Stack, Grid, Container, Splitter
|
|
83
|
-
|
|
84
|
-
**Графики:** Sparkline, ProgressRing, Gauge, Heatmap
|
|
85
|
-
|
|
86
|
-
**Wizards:** Stepper, Wizard, WizardStep
|
|
87
|
-
|
|
88
|
-
**Patterns:** Header, Footer, Sidebar, PageHeader, EmptyState, ErrorState, Result
|
|
89
|
-
|
|
90
|
-
**Layouts:** SimpleLayout, SidebarLayout, AuthLayout, WizardLayout
|
|
91
|
-
|
|
92
|
-
**Composables:** useTheme, useLocale, useField, useToast, useWizard, useSidebar, useCommandPalette, useFocusTrap, useScrollLock, usePopover
|
|
93
|
-
|
|
94
|
-
## Документация
|
|
95
|
-
|
|
96
|
-
Пользовательская документация переведена на 4 языка — выбери свой:
|
|
97
|
-
|
|
98
|
-
- 🇬🇧 **English** (default): [docs/en/](./docs/en/)
|
|
99
|
-
- 🇷🇺 **Русский**: [getting-started](./docs/ru/getting-started.md), [тема](./docs/ru/theming.md), [токены](./docs/ru/tokens.md), [иконки](./docs/ru/icons.md), [патерны](./docs/ru/patterns.md), [валидация](./docs/ru/validation.md), [графики](./docs/ru/charts.md), [i18n](./docs/ru/i18n.md)
|
|
100
|
-
- 🇩🇪 **Deutsch**: [docs/de/](./docs/de/)
|
|
101
|
-
- 🇨🇳 **中文**: [docs/zh/](./docs/zh/)
|
|
102
|
-
|
|
103
|
-
Документация для контрибьюторов (только английская): [Architecture](./docs/ARCHITECTURE.md), [Component guidelines](./docs/COMPONENT_GUIDELINES.md), [Contributing](./docs/CONTRIBUTING.md), [Roadmap](./docs/ROADMAP.md).
|
|
104
|
-
|
|
105
|
-
## Темизация
|
|
106
|
-
|
|
107
|
-
Все цвета, отступы, шрифты — CSS-переменные. Переопределить тему — задать токены на `:root` или контейнере:
|
|
108
|
-
|
|
109
|
-
```css
|
|
110
|
-
:root[data-theme='dark'] {
|
|
111
|
-
--uid-color-primary: #8b5cf6;
|
|
112
|
-
--uid-color-bg: #0a0a0a;
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Подробнее — [темизация](./docs/ru/theming.md) и [токены](./docs/ru/tokens.md).
|
|
117
|
-
|
|
118
|
-
## Иконки
|
|
119
|
-
|
|
120
|
-
Sub-export `@dskripchenko/ui/icons` реэкспортирует все ~1500 иконок Lucide:
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
import { UidIcon } from '@dskripchenko/ui'
|
|
124
|
-
import { Heart, Star } from '@dskripchenko/ui/icons'
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Подробнее — [иконки](./docs/ru/icons.md).
|
|
128
|
-
|
|
129
|
-
## Разработка
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
pnpm install
|
|
133
|
-
pnpm dev # Storybook на :6006
|
|
134
|
-
pnpm test # Vitest
|
|
135
|
-
pnpm build # Сборка библиотеки
|
|
136
|
-
pnpm build-storybook # Сборка Storybook → storybook-static
|
|
137
|
-
pnpm build:analyze # Bundle visualizer
|
|
138
|
-
pnpm changeset # Описать изменения для следующего релиза
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Лицензия
|
|
142
|
-
|
|
143
|
-
MIT
|
package/README.zh.md
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# @dskripchenko/ui
|
|
2
|
-
|
|
3
|
-
基于 CSS Custom Properties 的 Vue 3 组件、token 与主题库。
|
|
4
|
-
|
|
5
|
-
[English](./README.md) · [Русский](./README.ru.md) · [Deutsch](./README.de.md) · [**中文**](./README.zh.md)
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/@dskripchenko/ui)
|
|
8
|
-
[](https://bundlephobia.com/package/@dskripchenko/ui)
|
|
9
|
-
[](./LICENSE)
|
|
10
|
-
|
|
11
|
-
> **状态:** 稳定。遵循 SemVer 保障——破坏性变更仅在主版本中发布。
|
|
12
|
-
|
|
13
|
-
📖 **Storybook:**[dskripchenko.github.io/ui](https://dskripchenko.github.io/ui/)
|
|
14
|
-
|
|
15
|
-
## 亮点
|
|
16
|
-
|
|
17
|
-
- **70+ 组件** — 表单、导航、浮层、数据展示、图表、Patterns、Layouts
|
|
18
|
-
- **Vue 3 + TypeScript** — Composition API、`<script setup>`、完整类型
|
|
19
|
-
- **CSS 自定义属性** — 不用 CSS-in-JS、Tailwind 或预处理器;一切都是变量
|
|
20
|
-
- **Light / Dark 主题** — 通过 `:root` 上的 `data-theme` 切换,便于覆盖
|
|
21
|
-
- **可 tree-shake** — 按组件导入,ESM + CJS 构建
|
|
22
|
-
- **无障碍** — `:focus-visible`、ARIA 属性、所有交互组件支持键盘
|
|
23
|
-
- **i18n** — 内置 `ru` + `en` locale,`UidLocaleProvider` 支持部分覆盖与自定义 locale
|
|
24
|
-
- **~1500 图标** — 底层使用 `lucide-vue-next` + 子导出 `@dskripchenko/ui/icons`
|
|
25
|
-
- **零图表运行时依赖** — 内置 SVG 原语(Sparkline、ProgressRing、Gauge、Heatmap)
|
|
26
|
-
|
|
27
|
-
## 安装
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
pnpm add @dskripchenko/ui
|
|
31
|
-
# 或
|
|
32
|
-
npm install @dskripchenko/ui
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## 快速开始
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
// main.ts
|
|
39
|
-
import { createApp } from 'vue'
|
|
40
|
-
import App from './App.vue'
|
|
41
|
-
|
|
42
|
-
import '@dskripchenko/ui/styles/tokens.css'
|
|
43
|
-
import '@dskripchenko/ui/styles/themes.css'
|
|
44
|
-
|
|
45
|
-
createApp(App).mount('#app')
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
```vue
|
|
49
|
-
<!-- App.vue -->
|
|
50
|
-
<script setup lang="ts">
|
|
51
|
-
import { UidButton, UidIcon, UidLocaleProvider, en } from '@dskripchenko/ui'
|
|
52
|
-
import { Check } from '@dskripchenko/ui/icons'
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
|
-
<template>
|
|
56
|
-
<UidLocaleProvider :locale="en">
|
|
57
|
-
<UidButton variant="primary">
|
|
58
|
-
<UidIcon :icon="Check" /> 保存
|
|
59
|
-
</UidButton>
|
|
60
|
-
</UidLocaleProvider>
|
|
61
|
-
</template>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
通过 `<html>` 上的属性切换主题:
|
|
65
|
-
|
|
66
|
-
```html
|
|
67
|
-
<html data-theme="dark">
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## 内容速览
|
|
71
|
-
|
|
72
|
-
精简列表 — 完整目录在 [Storybook](https://dskripchenko.github.io/ui/)。
|
|
73
|
-
|
|
74
|
-
**表单与输入:** Button、Input、Textarea、NumberInput、Checkbox、Radio、Switch、Label、FormField、Select、Combobox、TagsInput、DatePicker、DateRangePicker、TimePicker、ColorPicker、Slider、Rating、FileUpload、Mention、TreeSelect、Cascader
|
|
75
|
-
|
|
76
|
-
**反馈:** Spinner、Skeleton、Badge、Alert、Progress、Toast、Tour
|
|
77
|
-
|
|
78
|
-
**浮层:** Modal、Drawer、Tooltip、Popover、Menu、Command
|
|
79
|
-
|
|
80
|
-
**导航:** Tabs、Breadcrumb、Link、Pagination(+ Cursor / LoadMore / InfiniteScroll / PageSize)、BackTop、Affix、Anchor
|
|
81
|
-
|
|
82
|
-
**数据展示:** Card、Avatar、AvatarGroup、Tag、Divider、Accordion、Table、VirtualList、Stat、DescriptionList、Timeline、TreeView、Code、Watermark、Carousel、Calendar、NotificationBadge
|
|
83
|
-
|
|
84
|
-
**布局辅助:** Stack、Grid、Container、Splitter
|
|
85
|
-
|
|
86
|
-
**图表:** Sparkline、ProgressRing、Gauge、Heatmap
|
|
87
|
-
|
|
88
|
-
**Wizards:** Stepper、Wizard、WizardStep
|
|
89
|
-
|
|
90
|
-
**Patterns:** Header、Footer、Sidebar、PageHeader、EmptyState、ErrorState、Result
|
|
91
|
-
|
|
92
|
-
**Layouts:** SimpleLayout、SidebarLayout、AuthLayout、WizardLayout
|
|
93
|
-
|
|
94
|
-
**Composables:** useTheme、useLocale、useField、useToast、useWizard、useSidebar、useCommandPalette、useFocusTrap、useScrollLock、usePopover
|
|
95
|
-
|
|
96
|
-
## 文档
|
|
97
|
-
|
|
98
|
-
用户文档已译为四种语言 — 选择你的:
|
|
99
|
-
|
|
100
|
-
- 🇬🇧 **English**(default):[docs/en/](./docs/en/)
|
|
101
|
-
- 🇷🇺 **Русский**:[docs/ru/](./docs/ru/)
|
|
102
|
-
- 🇩🇪 **Deutsch**:[docs/de/](./docs/de/)
|
|
103
|
-
- 🇨🇳 **中文**:[快速开始](./docs/zh/getting-started.md)、[主题](./docs/zh/theming.md)、[Tokens](./docs/zh/tokens.md)、[图标](./docs/zh/icons.md)、[Patterns](./docs/zh/patterns.md)、[表单校验](./docs/zh/validation.md)、[图表](./docs/zh/charts.md)、[i18n](./docs/zh/i18n.md)
|
|
104
|
-
|
|
105
|
-
贡献者文档(仅英文):[Architecture](./docs/ARCHITECTURE.md)、[Component guidelines](./docs/COMPONENT_GUIDELINES.md)、[Contributing](./docs/CONTRIBUTING.md)、[Roadmap](./docs/ROADMAP.md)。
|
|
106
|
-
|
|
107
|
-
## 主题
|
|
108
|
-
|
|
109
|
-
所有颜色、间距、字体都是 CSS 变量。覆盖主题——在 `:root` 或容器上设置 token:
|
|
110
|
-
|
|
111
|
-
```css
|
|
112
|
-
:root[data-theme='dark'] {
|
|
113
|
-
--uid-color-primary: #8b5cf6;
|
|
114
|
-
--uid-color-bg: #0a0a0a;
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
详见 [主题](./docs/zh/theming.md) 与 [Tokens](./docs/zh/tokens.md)。
|
|
119
|
-
|
|
120
|
-
## 图标
|
|
121
|
-
|
|
122
|
-
子导出 `@dskripchenko/ui/icons` re-export 了全部 ~1500 个 Lucide 图标:
|
|
123
|
-
|
|
124
|
-
```ts
|
|
125
|
-
import { UidIcon } from '@dskripchenko/ui'
|
|
126
|
-
import { Heart, Star } from '@dskripchenko/ui/icons'
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
详见 [图标](./docs/zh/icons.md)。
|
|
130
|
-
|
|
131
|
-
## 开发
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
pnpm install
|
|
135
|
-
pnpm dev # Storybook,端口 6006
|
|
136
|
-
pnpm test # Vitest
|
|
137
|
-
pnpm build # 库构建
|
|
138
|
-
pnpm build-storybook # Storybook → storybook-static
|
|
139
|
-
pnpm build:analyze # Bundle visualizer
|
|
140
|
-
pnpm changeset # 描述下一次发布的变更
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## 许可证
|
|
144
|
-
|
|
145
|
-
MIT
|