mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 19:58:50 +00:00
52 блока host/переменных/кросс-поверхностных групп → src/styles/base.styles.ts; styles.ts — 19-строчный сборщик [base, plan, devices, chrome, dialogs] с задокументированным контрактом порядка каскада. Два оставшихся мутантных якоря (:host-гейт ховера устройств) переадресованы на base.styles.ts. Юниты инвариантов (test/styles-split.test.mjs): состав и порядок сборщика; непересечение (scope+селектор) между файлами — единственное именованное исключение: кросс-поверхностная группа «:host(...) .dev:hover, .dev:focus- visible» живёт в base по §1.1; выживание медиа-обёрток — 2 forced-colors и 10 prefers-reduced-motion (в ТЗ и ревью фигурировали 8 — фактический счёт по исходнику 10, юнит держит точное число). fix-test-build научился точке в имени модуля (styles/base.styles → .js). ARCHITECTURE.md — раздел Styles. Refactor-proof diff (scope-ключ) пуст; golden 129/129 без переприёмки; смоки plan_snap_overlay/preloader OK; npm test 1318/0; бандл 1 291 440 → 1 291 458 (+18 байт). Issue: #266 User-Visible: no
20 lines
827 B
TypeScript
20 lines
827 B
TypeScript
/**
|
|
* Styles of the House Plan card — assembled from the surface files (#266).
|
|
*
|
|
* The ORDER of this array is part of the cascade contract: rules of equal
|
|
* specificity resolve by position, and the golden set was accepted against
|
|
* exactly this order. Do not reorder without re-reviewing the golden set.
|
|
*/
|
|
import type { CSSResultGroup } from 'lit';
|
|
import { baseStyles } from './styles/base.styles';
|
|
import { planStyles } from './styles/plan.styles';
|
|
import { devicesStyles } from './styles/devices.styles';
|
|
import { chromeStyles } from './styles/chrome.styles';
|
|
import { dialogsStyles } from './styles/dialogs.styles';
|
|
|
|
export { baseStyles, planStyles, devicesStyles, chromeStyles, dialogsStyles };
|
|
|
|
export const cardStyles: CSSResultGroup = [
|
|
baseStyles, planStyles, devicesStyles, chromeStyles, dialogsStyles,
|
|
];
|