1.11.0 • Published 2 weeks ago
@shtabapp/ui-kit-primitives
Licence
MIT
Version
1.11.0
Deps
0
Size
1.1 MB
Vulns
0
Weekly
0
@shtabapp/ui-kit-primitives
Низкоуровневые визуальные примитивы Shtab UI Kit (Vue 3)
Обычно этот пакет не ставят напрямую: он входит в
@shtabapp/ui-kitи полностью реэкспортируется оттуда.
Состав
SIcon— иконка из встроенного набора SVG, с поддержкой биллингового градиентаSSpinner— индикатор загрузки с поддержкойprefers-reduced-motionSProgressBar— горизонтальная полоса прогрессаSSkeleton— скелетон-заглушка для состояний загрузки
Установка
pnpm add @shtabapp/ui-kit-primitives @shtabapp/ui-kit-tokensИспользование
import '@shtabapp/ui-kit-tokens/styles.css'
import '@shtabapp/ui-kit-primitives/styles.css'Полный импорт
import { SIcon, SSpinner, SProgressBar, SSkeleton } from '@shtabapp/ui-kit-primitives'Subpath-импорт (tree-shaking)
import { SIcon } from '@shtabapp/ui-kit-primitives/icon'
import { SSpinner } from '@shtabapp/ui-kit-primitives/spinner'
import { SProgressBar } from '@shtabapp/ui-kit-primitives/progress-bar'
import { SSkeleton } from '@shtabapp/ui-kit-primitives/skeleton'Пример
<template>
<div>
<Suspense>
<SIcon name="alertCircle" :size="24" />
<template #fallback>
<SSpinner :size="20" aria-label="Загрузка" />
</template>
</Suspense>
</div>
</template>
<script setup lang="ts">
import { SIcon, SSpinner } from '@shtabapp/ui-kit-primitives'
</script>Важно:
SIcon— это асинхронный компонент (SVG подгружается лениво по имени). Поэтому он должен находиться внутри границы<Suspense>— родительской или локальной. Это даёт корректный SSR/hydration без визуального «всплытия» иконки и позволяет показать fallback (напримерSSpinner) во время загрузки.
Peer dependencies
vue^3.5.0@vueuse/core^14.0.0@shtabapp/ui-kit-tokens(как peer-зависимость)
Экосистема
| Пакет | Назначение |
|---|---|
| @shtabapp/ui-kit | Составные компоненты — основной пакет |
| @shtabapp/ui-kit-tokens | Design tokens, темы, CSS layers |
| @shtabapp/ui-kit-mcp | MCP-сервер для AI-ассистентов |