Для работы с любыми UI-библиотеками в SvelteKit необходимо иметь корректно настроенный проект. Создание нового проекта выполняется через официальную команду:
npm create svelte@latest my-app
cd my-app
npm install
Во время инициализации будет предложено выбрать тип проекта: Skeleton Project или Demo App. Для учебных целей рекомендуется начинать с Skeleton, чтобы не было лишнего кода, мешающего изучению UI-библиотек.
После установки базового проекта важно проверить версию Node.js. SvelteKit требует Node.js версии 16.8 и выше. Проверка выполняется командой:
node -v
Если версия ниже рекомендуемой, необходимо обновить Node.js через официальный сайт или менеджеры версий (например, nvm).
В экосистеме Svelte существует несколько популярных UI-библиотек, таких как:
Установка каждой библиотеки выполняется через npm. Например, для Svelte Material UI:
npm install --save-dev @smui/button @smui/card
Для Skeleton UI достаточно установить основной пакет:
npm install @skeletonlabs/skeleton
Некоторые библиотеки требуют дополнительных зависимостей или настроек
TailwindCSS. Skeleton, например, использует TailwindCSS и требует
конфигурации tailwind.config.cjs и
svelte.config.js.
Большинство современных Svelte UI-библиотек интегрируются с TailwindCSS. Настройка Tailwind в SvelteKit выполняется следующим образом:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init tailwind.config.cjs -p
// tailwind.config.cjs
module.exports = {
content: ['./src/**/*.{html,js,svelte,ts}'],
theme: {
extend: {},
},
plugins: [],
};
/* src/app.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
// src/routes/+layout.svelte
<script>
import "../app.css";
</script>
<slot />
После этого можно использовать компоненты UI-библиотеки, опираясь на Tailwind-классы.
Некоторые UI-библиотеки требуют включения адаптеров или модификаций в
svelte.config.js. Например, Skeleton UI рекомендует:
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/kit/vite';
import { skeleton } from '@skeletonlabs/skeleton/vite-plugin';
export default {
preprocess: vitePreprocess(),
kit: {
adapter: adapter(),
vite: {
plugins: [skeleton()]
}
}
};
Включение плагина Skeleton обеспечивает автоматическое подключение стилей, компонентов и оптимизацию для разработки и сборки.
Для других библиотек (SMUI, Flowbite-Svelte) специфические плагины не требуются, достаточно корректного подключения стилей и компонентов в проект.
Для поддержания читаемости проекта рекомендуется разделять UI-компоненты и страницы:
src/
├─ lib/
│ └─ components/ # кастомные компоненты
├─ routes/
│ └─ +page.svelte # страницы приложения
└─ app.css # глобальные стили
Подключение компонентов UI:
<script>
import Button from '@smui/button';
</script>
<Button variant="raised">Нажми меня</Button>
Для Tailwind-библиотек компонентов:
<div class="btn btn-primary">
Кнопка
</div>
Это обеспечивает единообразие кода и позволяет легко масштабировать проект при добавлении новых UI-библиотек.
Некоторые UI-библиотеки требуют:
svelte.config.js.@smui/icon-button или svelte-icons.Пример включения темизации Skeleton:
// svelte.config.js
import { skeleton } from '@skeletonlabs/skeleton/vite-plugin';
export default {
kit: {
vite: {
plugins: [skeleton({ theme: 'dark' })]
}
}
};
После установки и конфигурации UI-библиотеки важно протестировать её работу. Для этого достаточно создать тестовую страницу:
<script>
import Button from '@smui/button';
</script>
<h1>Тест кнопки</h1>
<Button variant="raised">Проверка</Button>
Запуск проекта выполняется командой:
npm run dev -- --open
Если компонент отображается корректно и стили применяются, настройка завершена. В противном случае следует проверить:
svelte.config.js и TailwindCSSЭти шаги обеспечивают стабильную основу для дальнейшего использования любых UI-библиотек в SvelteKit.