Skip to content

Директивы

ECSS добавляет к обычному CSS набор директив (at-правил). Ниже — краткая сводка и то, где каждая директива допустима; подробности — на странице соответствующей директивы.

ДирективаНазначениеГде допустима
@importимпорт объявлений из другого .ecss-файлаверхний уровень
@enumперечисление допустимых строковых значенийверхний уровень
@constименованная константаверхний уровень и внутри @block
@blockблок стилей (становится компонентом)верхний уровень
@paramпараметр блокав начале тела @block
@elementвложенный элемент блокавнутри @block
@if / @elseif / @elseусловные стили по значениям параметроввнутри @block
@externalстили чужого блока в контексте текущеговнутри @block
@debugотладочный выводвнутри @block

Объявления верхнего уровня

С них начинается файл: @import, @enum, @const, @block. Имена блоков и перечислений пишутся в PascalCase (Button, Theme), имена параметров и констант — это CSS-переменные с префиксом -- (--variant, --gap).

Внутри блока

Тело @block начинается с объявлений @param, дальше идут CSS-правила и директивы @element, @if/@elseif/@else, @external, @const, @debug. Многие из них можно вкладывать друг в друга и в обычные CSS-правила:

ecss
@block Card {
  @param --active boolean;

  &:hover {
    @if (--active) {
      box-shadow: 0 0 0 2px currentColor;
    }
  }
}

Комментарии

Поддерживаются строчные // и блочные /* … */ комментарии. Комментарий в стиле JSDoc (/** … */) перед @block, @enum или @param становится подсказкой при наведении в редакторе:

ecss
/** Базовая кнопка. */
@block Button {
  /** Цветовая схема. */
  @param --variant Variant;
}