Для начала необходимо убедиться, что на системе установлены Node.js версии 18 или выше и npm (или yarn/pnpm). Создание нового проекта SvelteKit выполняется с помощью официального шаблона:
npm create svelte@latest my-app
cd my-app
npm install
Во время создания проекта предоставляется выбор типа проекта (TypeScript или JavaScript) и фреймворка для тестирования. После установки можно запустить локальный сервер разработки:
npm run dev -- --open
Это создаёт минимальную рабочую среду для последующей интеграции UI-библиотек.
SvelteKit поддерживает множество UI-библиотек, каждая из которых имеет свои особенности:
Выбор зависит от стиля проекта, необходимости TypeScript-поддержки и используемой системы стилей (Tailwind, SCSS, CSS Modules).
Пример установки Skeleton UI через npm:
npm install @skeletonlabs/skeleton
Для Svelte Material UI используется:
npm install --save-dev @smui/button @smui/textfield
После установки необходимо убедиться, что стили подключены корректно.
Для Skeleton UI достаточно импортировать глобальный CSS в
src/app.css или src/routes/+layout.svelte:
import '@skeletonlabs/skeleton/styles/skeleton.css';
Для SMUI стили компонентов импортируются отдельно в каждом модуле:
<script>
import Button from '@smui/button';
import '@smui/button/style.css';
</script>
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init tailwind.config.cjs -p
В tailwind.config.cjs указывается путь к
SvelteKit-файлам:
module.exports = {
content: ['./src/**/*.{html,js,svelte,ts}'],
theme: { extend: {} },
plugins: [],
};
Импорт CSS в src/app.css:
@tailwind base;
@tailwind components;
@tailwind utilities;
Skeleton и SMUI поддерживают кастомные темы через CSS-переменные или SCSS. Пример определения цвета темы:
:root {
--primary-color: #4f46e5;
--secondary-color: #10b981;
}
Все UI-компоненты обычно импортируются в +layout.svelte
или отдельные страницы +page.svelte. Для обеспечения
единообразного стиля рекомендуется создать базовый layout:
<script>
import Header from './Header.svelte';
import Footer from './Footer.svelte';
</script>
<Header />
<slot />
<Footer />
После установки библиотеки компоненты можно использовать как обычные Svelte-компоненты. Пример использования кнопки Skeleton:
<script>
import { Button } from '@skeletonlabs/skeleton';
</script>
<Button variant="primary" on:click={() => alert('Нажато!')}>
Нажми меня
</Button>
Для SMUI:
<script>
import Button from '@smui/button';
</script>
<Button raised on:click={() => console.log('SMUI Button')}>
Кнопка SMUI
</Button>
Большинство UI-библиотек предоставляют полную TypeScript-поддержку.
Для корректного автокомплита необходимо убедиться, что в проекте
подключён svelte-check и tsconfig.json
включает все пути компонентов:
{
"extends": "@tsconfig/svelte/tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules/*", "__sapper__/*", "public/*"]
}
await import() для
ускорения первого рендера.Эти шаги создают прочную основу для работы с SvelteKit и любой UI-библиотекой, позволяя строить современный, быстрый и модульный фронтенд без лишнего конфигурационного шума.