Перейти к содержимому
v2.5.0
English
Русский
Документация

Icon

Icon — общая SVG-обёртка для иконок VegaUI и собственного SVG-содержимого.

Обзор

Стилизация Icon определяется размером, а цвет в основном задаётся через currentColor.

Публичные CSS-переменные

ПеременнаяЗначениеВлияет на
вычисленный размер из токенакорень
В этом состоянии изменений не видно

Переменные на уровне частей

Корень

Корень сопоставляет значения data-size с одной переменной --icon-size и применяет её и к ширине, и к высоте.

Взаимодействие состояний и вариантов

  • размер из токена используется, только если явные ширина и высота не заданы
  • цвет иконки следует currentColor

Примеры

Крупная смысловая иконка

Задавайте цвет иконки через CSS-свойство color (здесь через style): глиф рисуется цветом currentColor, поэтому токены темы работают напрямую. Более тонкий strokeWidth не даёт крупным глифам выглядеть тяжёлыми.

large-semantic-icon.tsx · 16 строк
import { Heading, Icon, Text } from '@vega-ui/react';
import { CircleCheckBigIcon } from '@vega-ui/icons';

export default function LargeSemanticIcon() {
  return (
    <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 'var(--spacing-8)', width: '100%', textAlign: 'center' }}>
      <Icon size='xl' strokeWidth={1.5} style={{ color: 'var(--color-green-accent-500)' }}>
        <CircleCheckBigIcon />
      </Icon>
      <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--spacing-2)' }}>
        <Heading as='h3' size={4} fontWeight={600}>Payment received</Heading>
        <Text size={3} style={{ color: 'var(--label-secondary)', textWrap: 'balance' }}>We emailed the receipt to finance@acme.com.</Text>

Что не переопределять

  • не задавайте жёсткие цвета иконок там, где результат должен определять цвет окружающего текста
  • не смешивайте непредсказуемо явные переопределения ширины и высоты в одном семействе элементов управления