mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
docs: spec #266 revision 4 — post-merge numbers per CODE-REVIEW-266-r2
Medium жёлтого r2 (случайно перезапущенное ревью на смерженной задаче):
AC6a приведён к факту — 12 reduced-motion обёрток (10 исходных, две
смешанные разрезаны фиксом каскада 0b782ee по зонам), сохранность обёртки
каждого правила держит scope-ключ styles-diff; AC2 — принятые wc -l числа.
Issue: #266
User-Visible: no
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# ТЗ #266 — Расщепить styles.ts на файлы поверхностей
|
||||
|
||||
Issue: https://github.com/Matysh/houseplan-card/issues/266
|
||||
Статус: ревизия 3 (после SPEC-REVIEW-266-r2: AC2 сведён с арифметикой финального прототипа, счёт reduced-motion блоков исправлен на фактические 10).
|
||||
Статус: ревизия 4 (пост-мерж, по Medium CODE-REVIEW-266-r2: числа AC2/AC6a приведены к принятому коду — фикс каскада 0b782ee разрезал две смешанные reduced-motion обёртки на по-зонные копии).
|
||||
База: #34 (зонтик декомпозиции, этап 5), #241 (соразмерный выбор проверок), прецедент `editor-secondary.styles.ts`.
|
||||
|
||||
## 0. Сценарий
|
||||
@@ -74,12 +74,12 @@ CHANGELOG не трогается (User-Visible: no, пиксели не мен
|
||||
## 6. AC
|
||||
|
||||
1. `src/styles.ts` ≤ 40 строк: только импорты, комментарий о порядке каскада и `export const cardStyles`. Доказательство: ревью кода + юнит §1.3.3.
|
||||
2. Пять файлов `src/styles/*.styles.ts`; замер r1-прототипа (4 431 суммарно) не проходил собственный порог — источником роста были пустые строки-разделители генератора; после уплотнения (блоки стык в стык, как в исходнике) фактический замер: base 248, chrome 381, devices 540, dialogs 1 180, plan 1 359, сборщик 19 — сумма 3 727 ≤ 3 690 + 5 % (3 874). Порог: каждый файл ≤ 1 650, сумма ≤ исходник + 5 %. Доказательство: ревью кода (`wc -l`).
|
||||
2. Пять файлов `src/styles/*.styles.ts`; замер r1-прототипа (4 431 суммарно) не проходил собственный порог — источником роста были пустые строки-разделители генератора; после уплотнения и фикса каскада принятые числа: base 165, chrome 391, devices 559, dialogs 1 201, plan 1 396, сборщик 19 (числа сдвинулись фиксом 0b782ee — реклассификация :host-гейтнутых групп и разрезка смешанных обёрток). Порог держится: каждый файл ≤ 1 650, сумма 3 731 ≤ исходник + 5 % (3 874). Доказательство: ревью кода (`wc -l`).
|
||||
3. Golden: 129/129 зелёные, эталоны байтово не менялись (`git status` чист по `demo/golden/baselines/`). Доказательство: `golden`-прогон CI + ревью диффа.
|
||||
4. Юнит непересечения селекторов пяти файлов — зелёный, список исключений пуст (или обоснован построчно). Доказательство: `unit`.
|
||||
5. Юнит порядка склейки §1.3.3 — зелёный. Доказательство: `unit`.
|
||||
6. Нормализованное множество правил до/после идентично — ключ включает полный путь вложенности (§1.3.5); отчёт (`diff` двух JSON — пустой) в хендоффе, перепроверяется ревьюером. Доказательство: ревью кода по отчёту.
|
||||
6a. Юнит присутствия медиа-обёрток: оба блока `@media (forced-colors: active)` и все **10** блоков `@media (prefers-reduced-motion: reduce)` присутствуют в итоговой склейке с исходными правилами (фактический счёт по `grep -n` исходника: строки 72, 255, 399, 691, 875, 988, 1995, 2000, 2768, 3537 — в r1/r2 фигурировали «8», это была неточность обоих раундов). Доказательство: `unit`.
|
||||
6a. Юнит присутствия медиа-обёрток: оба блока `@media (forced-colors: active)` и **12** обёрток `@media (prefers-reduced-motion: reduce)` в итоговой склейке — 10 исходных (строки 72…3537 исходника; в r1/r2 фигурировали «8» — неточность обоих раундов), из которых две смешанные по зонам разрезаны фиксом каскада на по-зонные копии; сохранность обёртки КАЖДОГО правила доказывает сверка scope-ключом (`styles-diff.mjs`, пустой diff). Доказательство: `unit` (`test/styles-split.test.mjs`, якорь 12 с комментарием).
|
||||
7. Дельта размера бандла ≤ 1 КБ. Доказательство: числа в хендоффе, перепроверяются ревьюером.
|
||||
8. `npm test`, `build` + сверка трёх бандлов, `check-docs` — зелёные. Доказательство: CI.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user