Skip to content

Стили ComponentSFC

Отсутствующий lang и lang="endgecss" разрешены. Любой другой явно заданный язык, включая CSS, считается ошибкой. Scoped styles получают стабильный scope id из identity компонента.

vue
<template>
  <Badge id="status" class="notice" state="delayed" part="status">
    Задержан
  </Badge>
</template>

<style scoped lang="endgecss">
#status:state(delayed) { color: orange; }
::part(status) { font-weight: 700; }
</style>

state и part

state принимает строку, массив строк или boolean record в runtime. part должен быть статическим списком tokens и публикует визуальную поверхность компонента.

[part="status"] выполняет локальный attribute matching, а ::part(status) может пересечь границу encapsulation. ::slot() зарезервирован и создаёт diagnostic.

Поверхности Table

Встроенный Table публикует нейтральные части:

  • ::part(grid) — общая поверхность таблицы;
  • ::part(header) и ::part(header-cell) — шапка;
  • ::part(header-content) — содержимое заголовка;
  • ::part(body) — viewport строк;
  • ::part(row) и ::part(cell) — физические строки и ячейки;
  • ::part(cell-content) — пользовательское содержимое;
  • ::part(group-row) — строка группировки.

Эти имена не раскрывают DOM-классы конкретной grid-библиотеки. Другой renderer может опубликовать те же смысловые поверхности.

css
#control::part(header-cell) {
  background-color: #1e3a5f;
  border-bottom: 1px solid #718096;
}

#control::part(header-content) {
  color: #ffffff;
  font-weight: 600;
}

Полный пример тем можно скачать как table-themes.endgecss.