Карточка (Card) — это универсальный контейнер для визуального выделения информации. В SvelteKit UI библиотеках карточки обычно предоставляются как готовые компоненты с гибкой кастомизацией. Основные свойства, на которые стоит обращать внимание:
padding,
margin, width, height. В
большинстве библиотек предусмотрены предустановленные размеры
(small, medium, large), которые
можно комбинировать с кастомными стилями.shadow
определяет глубину тени, а borderRadius — скругление углов.
Правильное использование создаёт визуальную иерархию элементов.background
может принимать как цветовую строку, так и ссылку на тему
(light, dark), что обеспечивает единообразный
стиль приложения.Пример базовой карточки в SvelteKit UI:
<Card padding="medium" shadow="md" borderRadius="lg">
<h3>Заголовок карточки</h3>
<p>Описание или содержимое карточки.</p>
</Card>
Карточки часто включают вложенные элементы:
<Card padding="large" shadow="lg" borderRadius="xl">
<CardHeader>
<h4>Продукт недели</h4>
</CardHeader>
<CardMedia src="/images/product.png" alt="Продукт" />
<CardContent>
<p>Краткое описание продукта и его особенностей.</p>
</CardContent>
<CardActions>
<Button variant="primary">Купить</Button>
<Button variant="secondary">Подробнее</Button>
</CardActions>
</Card>
SvelteKit UI библиотеки предоставляют гибкие инструменты для построения layout, обычно на основе Flexbox или CSS Grid. Основные концепции:
Container) задают
максимальную ширину и центрируют содержимое.Grid компоненты
помогают выстраивать элементы в строки и колонки.Пример сетки карточек с использованием Grid:
<Grid columns="3" gap="large">
<Card>Карточка 1</Card>
<Card>Карточка 2</Card>
<Card>Карточка 3</Card>
<Card>Карточка 4</Card>
</Grid>
Адаптивность достигается с помощью медиазапросов или встроенных
параметров responsive:
<Grid columns={{ sm: 1, md: 2, lg: 3 }} gap="medium">
<Card>Карточка A</Card>
<Card>Карточка B</Card>
<Card>Карточка C</Card>
</Grid>
Для сложных интерфейсов карточки объединяются в панели, секции или галереи. Основные практики:
each блоки
SvelteKit:<Grid columns="3" gap="medium">
{#each products as product}
<Card>
<CardHeader>
<h5>{product.name}</h5>
</CardHeader>
<CardMedia src={product.image} alt={product.name} />
<CardContent>
<p>{product.description}</p>
</CardContent>
<CardActions>
<Button variant="primary">Купить</Button>
</CardActions>
</Card>
{/each}
</Grid>
Карточки и layout в SvelteKit UI поддерживают темы и интерактивные состояния:
hoverShadow, hoverScale) улучшает UX.themeColor) позволяют менять фон, текст и тени без
изменения компонентов вручную.fade, slide) можно применять к карточкам при
появлении или смене контента.<Card class="transition-transform hover:scale-105" shadow="md">
<CardContent>
<p>Карточка с анимацией при наведении</p>
</CardContent>
</Card>
Карточки и layout в SvelteKit UI создают основу визуальной структуры приложения, позволяя быстро собирать интерфейсы с аккуратной и гибкой визуальной организацией элементов.