7.8 KiB
П51 · 2022-05 · Маленькая дизайн-система — три прохода саморевью
Рамка пакета
- Slug:
editorial-2022-05-practice-design-system,editorial-2022-05-mechanism-design-system,editorial-2022-05-field-design-system. - Голос: М5, системный практик 2022 года. Тема продолжает доступный control: внешняя форма, состояния и семантика должны иметь явный контракт, но не раздуваются до выдуманной универсальной платформы.
- Граница компетентности: в текстах нет существующей библиотеки, команды, production-дефекта, пользовательского исследования, скриншота, visual-regression запуска или результата accessibility-проверки.
- Fixture: детерминированные локальные объекты и массивы.
visualPayload— объявленные входы будущей проверки, не screenshot, score или тестовый результат. DOM, браузер, Playwright, screen reader, CSS compilation, HTTP и реальные visual tests не запускаются.
Проход 1 — факты и техника
- Историческая рамка сверена по датированным W3C-снимкам: CSS Custom Properties Level 1, Candidate Recommendation Draft, 11.11.2021, WAI-ARIA 1.2, Candidate Recommendation Draft, 08.12.2021 и неизменяемой WCAG 2.1 Recommendation, 05.06.2018. Ссылки существуют до мая 2022 года; современные mutable docs не используются как доказательство прошлого состояния.
- Уточнена граница CSS Custom Properties: спецификация задаёт
--*иvar(), но не taxonomy дизайн-токенов. WAI-ARIA/WCAG не выданы за правила конкретного token API, инвентаря или visual pipeline. - Fixture проверяет named tokens, пять required states, name/role/state, три именованных usage, declared payload с каждым required state, два invalid configuration и безопасную пару correction/rollback. В ней нет симуляции CSS, пикселей, accessibility tree или browser behavior.
- После финальной правки успешно выполнены
node --check web/scripts/upgrade-2022-05.mjs,node web/scripts/upgrade-2022-05.mjs --verify-fixture(13/13) иnpm run audit:draft -- scripts/upgrade-2022-05.mjs.
Проход 2 — редактура и голос
- В первых двух абзацах каждой статьи есть конкретный симптом и цена: рассинхрон кнопок, разрыв владельцев contract или опасная общая правка token.
- Речь построена как «симптом → причина → проверка → действие». М5 проявляется в разделении слоёв, явном радиусе изменения, тестовой границе и обратимой правке, без роли автора как владельца большой дизайн-платформы.
- Во всех трёх статьях есть таблица, рисунок с содержательным
altи caption, исполнимый JS-пример, нумерованный маршрут, ограничение и следующий проверяемый шаг. - Основной текст без источников проверен редакционным аудитом: 6 862 / 8 576 / 8 495 знаков — внутри диапазона 5 000–15 000.
Проход 3 — визуал и выпуск
- SVG разделены по задаче: token flow, четыре слоя component contract и diagnosis с обратимой правкой. Каждый открыт после Sharp-рендера на ширине 375 px: заголовки, ключевые ветки, подписи и границы модели читаемы.
- XML-проверка прошла для всех трёх SVG. Safety scan подтвердил отсутствие
script,foreignObject, внешних URL иdata:image; изображения содержат только встроенную vector-разметку. - Sidecar содержит ровно пять новых файлов. Registry, README,
articles.json, QUALITY_STANDARD, очередь,docs/, Git и чужие sidecar-файлы не менялись. Интеграция и публикация намеренно не выполнялись.
Независимый редакторский приём
Проход 1 — фактчек и модель
Проверка исторических ссылок обнаружила неверный URL WAI-ARIA: вариант с
суффиксом 20211209 возвращал 300, хотя текст правильно называл документ
от 8 декабря. Ссылка заменена на
CRD-wai-aria-1.2-20211208; она, как и датированные CSS Custom Properties
CR Draft и WCAG 2.1 Recommendation, отвечает 200. Статус WAI-ARIA не
повышен до будущей Recommendation.
В code review обнаружен второй разрыв: requiredStates содержал пять
значений, а declared visual payload не включал hover. Payload дополнен
пятым state, fixture получила отдельный assertion о покрытии каждого
required state. Это по-прежнему только вход будущего visual test, а не
screenshot, diff или результат browser run. Fixture завершилась с 13/13
assertions.
Проход 2 — текст и полнота
Повторно проверены problem/cost, таблицы, исполнимые примеры, ordered route,
rollback и ограничения трёх статей. Тексты не выдают CSS custom properties за
taxonomy токенов, а visual payload — за факт visual regression. Draft audit
подтверждает 6 862 / 8 576 / 8 495 знаков в требуемом диапазоне; import-safe
проверка вернула три revision-объекта без date и author.
Проход 3 — визуал и выпуск
xmllint прошёл; safety scan не нашёл script, foreignObject, внешних URL
или data:image. Sharp-рендеры на 375 px просмотрены: token flow, четыре
слоя contract и correction/rollback отвечают на разные вопросы и явно
отделяют declared payload от реального результата. После подключения мая
registry содержит 148 ревизий. Строгий slug-audit прошёл с одной figure,
таблицей и code example на статью; production build успешно сгенерировал 374
страницы. Материалы июня и позже не затрагиваются.
Финальный вердикт
П51 принята и интегрирована после трёх независимых проходов. В коммит войдут только пять файлов мая и два точечных файла интеграции.