Element Plus предоставляет возможность тонко настраивать стили компонентов с помощью SCSS переменных. Это позволяет унифицировать визуальное оформление проекта и облегчает поддержку тем и цветовых схем. Использование переменных обеспечивает гибкость, поскольку позволяет менять внешний вид компонентов без изменения их исходного кода.
Для работы с SCSS переменными необходимо убедиться, что проект поддерживает препроцессор SCSS. В стандартном проекте Vue 3 с использованием Vite это делается через установку пакета:
npm install -D sass
Далее SCSS файлы можно импортировать в глобальный стиль проекта:
@import 'element-plus/theme-chalk/src/index.scss';
SCSS переменные в Element Plus делятся на несколько групп:
Цветовые переменные Управляют основной палитрой компонентов:
$--color-primary: #409eff; // основной цвет
$--color-success: #67c23a; // цвет успешного действия
$--color-warning: #e6a23c; // цвет предупреждения
$--color-danger: #f56c6c; // цвет ошибки
$--color-info: #909399; // информационный цветТипографические переменные Настраивают шрифты и размеры текста:
$--font-size-base: 14px; // базовый размер шрифта
$--font-size-small: 12px; // маленький шрифт
$--font-size-large: 16px; // крупный шрифт
$--line-height-base: 1.5; // базовая высота строкиПеременные размеров компонентов Управляют размерами кнопок, полей ввода и других элементов:
$--size-small: 32px;
$--size-medium: 40px;
$--size-large: 48px;Переменные отступов и границ Позволяют контролировать внутренние и внешние отступы, толщину и радиус границ:
$--border-radius-base: 4px;
$--border-color-base: #dcdfe6;
$--padding-base: 12px;Чтобы изменить стили компонентов глобально, достаточно переопределить SCSS переменные до импорта стилей Element Plus. Например:
// custom-variables.scss
$--color-primary: #1f8ef1;
$--font-size-base: 15px;
@import 'element-plus/theme-chalk/src/index.scss';
В этом случае все компоненты Element Plus будут использовать новые значения переменных.
SCSS переменные можно применять не только глобально, но и внутри своих стилей для конкретных компонентов:
.my-button {
background-color: $--color-primary;
font-size: $--font-size-base;
border-radius: $--border-radius-base;
padding: $--padding-base $--padding-base * 2;
}
SCSS переменные позволяют создавать несколько тем для приложения. Например, можно определить светлую и тёмную темы:
// light-theme.scss
$--color-primary: #409eff;
$--color-background: #ffffff;
// dark-theme.scss
$--color-primary: #1f8ef1;
$--color-background: #303133;
Темы подключаются динамически с помощью импорта нужного SCSS файла
или с помощью CSS переменных, которые Element Plus поддерживает через
:root.
colors.scss,
sizes.scss, typography.scss), чтобы
поддерживать чистоту кода.lighten, darken,
rgba для динамической генерации оттенков.SCSS переменные являются мощным инструментом для кастомизации и управления стилями компонентов в Element Plus, обеспечивая гибкость и структурированность в больших проектах.