Переход с Bootstrap

При миграции с Bootstrap на SvelteKit UI библиотеки следует учитывать кардинальные различия в подходах к созданию интерфейсов. В то время как Bootstrap основан на готовых CSS-классах и компонентной структуре с фиксированными шаблонами, SvelteKit использует реактивность, декларативность и модульность компонентов. Это позволяет создавать гибкие интерфейсы без перегрузки HTML лишними классами и скриптами.

Структура компонентов

SvelteKit UI библиотеки предоставляют компоненты в виде отдельных файлов .svelte, которые включают в себя:

  • HTML-разметку, тесно интегрированную с логикой компонента.
  • Скриптовую часть, где определяются реактивные переменные и методы.
  • CSS, встроенный локально для компонента, что устраняет конфликты стилей.

Пример базового компонента кнопки:





В отличие от Bootstrap, где для стилизации кнопки необходимо подключать глобальные CSS-классы, здесь все стили изолированы и управляются реактивно через свойства.

Работа с сеткой и позиционированием

Bootstrap использует систему container, row, col, что требует постоянного обращения к классам. SvelteKit UI библиотеки предлагают более декларативный подход через компоненты Grid, Row и Col, которые автоматически управляют размерами и адаптивностью.

Пример сетки:


  
    
      
    
    
      
    
  
  • Grid контролирует общий отступ между колонками.
  • Row обеспечивает горизонтальное расположение элементов.
  • Col задаёт ширину колонки в пропорции к родительскому контейнеру.

Такой подход упрощает поддержку адаптивного дизайна и исключает необходимость постоянного использования медиа-классов.

Формы и управление состоянием

В Bootstrap формы строятся с помощью классов form-control, form-group и ручной валидации через JavaScript. В SvelteKit UI библиотеках формы тесно интегрированы с реактивными данными и событиями, что позволяет отслеживать изменения полей и выполнять валидацию прямо в компоненте.

Пример формы:



  • bind:value связывает поля формы с реактивными переменными.
  • handleSubmit обеспечивает обработку событий сабмита с валидацией данных.

Модальные окна и всплывающие элементы

В Bootstrap модальные окна создаются через классы и data-* атрибуты, а управление ими осуществляется через jQuery или Vanilla JS. В SvelteKit модальные окна реализуются как реактивные компоненты с возможностью управления состоянием через переменные.

Пример модального окна:





{#if isOpen}
   isOpen = false} title="Пример модала">
    

Содержимое модального окна

{/if}
  • {#if isOpen} управляет рендерингом модального окна.
  • on:close позволяет закрывать окно, изменяя состояние переменной.

Темизация и кастомизация

SvelteKit UI библиотеки позволяют изменять стили компонентов через пропсы и CSS-переменные без вмешательства в глобальные стили. В отличие от Bootstrap, где приходится либо переопределять классы, либо подключать отдельные темы, здесь все изменения локализованы и управляются через параметры компонента:

  • color задаёт тему кнопки.
  • size управляет размером и внутренними отступами.

Переход с классового подхода на компонентный

Главная задача при переходе — избавиться от прямого использования классов btn, row, col и заменить их компонентами SvelteKit. Это снижает связанность кода и повышает читаемость:

  • Вместо
    использовать .
  • Вместо
    использовать .
  • Вместо

Такой подход минимизирует дублирование стилей и упрощает поддержку проекта на долгий срок.