Gavia UIv1.0.0

Зачем Gavia UI

Независимая основа для Vue: явные стили, сервисы в границах приложения и редактируемые токены.

Понятный контракт приложения

Vue — единственная обязательная peer-зависимость библиотеки. Роутинг, запросы и бизнес-состояние остаются в вашем приложении. Reset, базовые стили и тему вы подключаете явно.

Выберите язык встроенных подписей

В исходниках для 1.0 без настройки локали используется английский. Чтобы сохранить русский, подключите WlConfig с wlLocaleRu в точке входа приложения. Пропущенные поля частичной локали берутся из английского пресета: для своей русской локали сначала разверните wlLocaleRu. Витрина явно выбирает пресет при смене языка. Скопированный SFC использует настройки приложения, в которое вы его вставите. Эта миграция входит в подготовленный релиз-кандидат 1.0. Публикация выполняется отдельно.

Показать Vue-код
import { WlConfig, wlLocaleRu } from "gavia-ui";
app.use(WlConfig, { locale: wlLocaleRu });
// Русский пресет со своей подписью:
// app.use(WlConfig, { locale: { ...wlLocaleRu, accept: "Продолжить" } });

Переопределите нужную подпись

Если текстовый prop пропущен или равен undefined, компонент берёт текст из текущей локали. Явная строка, в том числе пустая, имеет приоритет. Убирая текст, сохраните понятное доступное имя. Меняйте локаль из компонента через useWlConfig().setLocale(...): смонтированные контролы обновятся, а другие Vue-приложения сохранят свои настройки. Тексты приложения, слотов и собственных props вы переводите на стороне приложения.

Показать Vue-код
import { useWlConfig, wlLocaleRu } from "gavia-ui";
const configuration = useWlConfig();
configuration.setLocale(wlLocaleRu);
configuration.setLocale(undefined); // Вернуть английский fallback в 1.0.

Один компонент, пять тем

Gavia, Gavia Dark, Classic, Classic Dark и Newspaper используют общие компоненты и поведение. Для своей темы меняйте токены и pt-атрибуты: копия компонента для этого не нужна.

Начните с рабочего примера

В репозитории есть стартовые проекты для Vite, Nuxt и своей темы. Витрина и кнопка копирования берут код из одного SFC. Проверки в браузере и ручная приёмка со скринридером учитываются отдельно от unit-тестов.

Исходники и руководство