Установка
Добавляем Startup UI в свой проект и подключаем первый компонент.
Добавляем в проект
Startup UI доступен в репозитории npm.
# Если используете npm
npm install startup-ui
# Если используете yarn
yarn add startup-uiПодключаем стили
// app.js
import 'startup-ui/dist/index.css';Подключаем палитру
Начиная с мажорной версии библиотека не включает значения CSS-переменных --s-* в свой CSS — она их только использует (var(--s-primary) и т.п.). Это убирает конфликт «несколько источников одной переменной» в инструментах и даёт проекту полный контроль над палитрой.
Выберите один вариант:
// Вариант А: подключить готовую палитру по умолчанию
import 'startup-ui/defaults.css';/* Вариант Б: задать свою палитру (resources/css/variables.scss) */
:root {
--s-primary: #2563eb;
--s-primary-dark: #1e40af;
/* ...остальные --s-* (полный список — на странице «Цвета и настройки») */
}Регистрация плагина и локализация
Можно импортировать компоненты по отдельности (как ниже), либо зарегистрировать плагин глобально. При регистрации задаётся локаль (по умолчанию — английская):
// app.js
import StartupUI from 'startup-ui';
app.use(StartupUI, {
locale: 'ru', // 'en' по умолчанию; 'ru' включает русскую локализацию
// messages: { ru: { confirm: { accept: 'Подтвердить' } } } // точечное переопределение строк
});Подробнее — на странице «Локализация».
Подключение с InertiaJS
Startup UI не требует InertiaJS. Без него ссылки в меню и пагинации работают как обычные <a> (с перезагрузкой страницы), а формы отправляйте через событие @submit.
Если же проект на Inertia, передайте при регистрации плагина две вещи из @inertiajs/vue3 — роутер router и компонент ссылок Link. После этого компоненты с навигацией начнут работать «по-Inertia», без перезагрузки страницы:
// app.js
import StartupUI from 'startup-ui';
import { router, Link } from '@inertiajs/vue3';
app.use(StartupUI, {
locale: 'ru',
router, // отправка SForm, пагинация SPagination, фильтры SFilterGroup (bind-to-query)
link: Link, // ссылки в меню (SMenu / SVerticalMenu) и пагинации
});Что это включает:
- SForm — отправку формы по
method/action(Inertia-визит с подстановкой ошибок валидации); - SPagination и SFilterGroup (
bind-to-query) — переключение страниц и фильтров без перезагрузки; - меню и пагинацию — SPA-ссылки вместо обычных
<a>.
@inertiajs/core 3.x включите в config/inertia.php опцию use_script_element_for_initial_page — иначе начальная страница не прочитается и вы получите пустой экран без ошибок. Подключение иконок
Иконки в SActionIcon, SNote, SStatus (и опционально в STooltip, SDatePicker) рендерятся через FontAwesome — она опциональна и подключается отдельно. Как установить FA и зарегистрировать рендерер (глобально или инъекцией при подключении плагина) — на странице «Иконки».
Добавляем первый компонент
Чтобы убедиться, что всё работает, добавляем любой компонент в SFC-шаблон:
// Index.vue
<template>
<SButton>Все работает!</SButton>
</template>
<script setup>
import { SButton } from 'startup-ui';
</script>Должна появиться кнопка: