Paper — это базовый компонент для создания визуальных поверхностей в интерфейсе. Он моделирует физическую бумагу или карточку и служит контейнером для других элементов, позволяя задавать тени, отступы и скругления. В SvelteKit UI libs Paper играет ключевую роль в построении модульного дизайна с использованием концепции material design.
elevation — определяет уровень тени
и глубину «подъёма» поверхности. Обычно принимает целые значения от
0 до 24.
0 — отсутствие тени, плоская поверхность.1–3 — легкая тень, подходит для карточек в
списках.4–8 — средний уровень тени, выделяет блок на фоне.9–24 — сильная тень, для модальных окон и всплывающих
элементов. Пример использования:<Paper elevation={4}>
<p>Содержимое карточки с умеренной тенью</p>
</Paper>square — логическое значение,
указывающее, нужно ли отключить скругления углов.
<Paper square>
<p>Карточка с прямыми углами</p>
</Paper>variant — задает визуальный
стиль:
"elevation" — стандартная тень по уровню
elevation."outlined" — только рамка, без тени. Пример:<Paper variant="outlined">
<p>Карточка с обводкой вместо тени</p>
</Paper>Уровень elevation автоматически управляет интенсивностью
тени и цветом фона. В SvelteKit UI libs используется концепция
динамических теней, что позволяет адаптировать
интерфейс под светлую и темную темы. Тень создается через комбинацию
box-shadow, где высота смещения и размытие
пропорциональны значению elevation.
Примеры визуального эффекта:
elevation={1}: легкая тень, почти незаметная, хорошо
подходит для элементов списка.elevation={8}: тень заметна, объект визуально
«приподнят», создается акцент на элементе.elevation={16}: используется для модальных окон и
всплывающих панелей, требует внимания к контрасту с фоном.Paper часто комбинируется с Grid, Stack и Typography для создания комплексных интерфейсных блоков. Например, карточка продукта может состоять из Paper с elevation={6}, внутри которой расположены изображение, заголовок и кнопки действия.
<Paper elevation={6} class="p-4">
<img src="product.jpg" alt="Продукт" class="w-full"/>
<h3 class="mt-2 font-bold">Название продукта</h3>
<button class="mt-4 btn-primary">Купить</button>
</Paper>
Для светлой темы Paper по умолчанию имеет белый фон, а тени сероватые. В темной теме фон меняется на оттенок серого или темного, а тени становятся более мягкими и светлыми. SvelteKit UI libs поддерживает автоматическую подстройку:
<Paper elevation={4} class="dark:bg-gray-800 dark:shadow-lg">
<p>Карточка с адаптацией под темную тему</p>
</Paper>
Эффективное использование Paper и elevation позволяет создавать иерархию элементов, улучшать восприятие интерфейса и управлять вниманием пользователя без сложных кастомных CSS.