Files
NODEDC_DESIGN_GUIDELINE/docs/GOVERNANCE.md
T

62 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Правила развития
## Единственный источник истины
Публичный компонент, его CSS, документация, registry entry и catalog example изменяются одним pull/merge request в этом репозитории.
Приложения не должны исправлять общий компонент локальным копированием. Если срочный adapter неизбежен, он должен:
- оборачивать публичный компонент;
- не копировать его внутреннюю реализацию;
- иметь ссылку на issue/design-system change;
- быть внесён в `docs/ADOPTION.md` как временный долг.
## Добавление компонента
Компонент принимается в систему, если:
1. он независим от доменной модели;
2. его API можно описать без упоминания конкретной таблицы/ноды/проекта;
3. он использует существующую тему и layer scale;
4. определены keyboard и disabled/pending states;
5. добавлен React или DOM adapter в зависимости от потребителей;
6. есть catalog example;
7. обновлён registry.
## Изменение геометрии
Геометрия меняется централизованно. Нельзя исправлять высоту/радиус в одном приложении, если изменение относится к общему контролу.
Допустимы density variants, если они имеют устойчивое назначение (`default`, `compact`) и тестируются как часть API.
## Типографика и операционные сообщения
Продуктовый интерфейс использует только типографические токены. Browser-default размеры у `h1``h6`, `p`, `strong` и form controls не являются допустимым стилем. `--nodedc-font-size-title` разрешён только для заголовка страницы или окна; названия конфигураций, статусы, ошибки, подписи полей и сообщения внутри рабочей сцены используют `md`, `sm`, `xs` или готовую типографику канонического компонента.
Ошибка сохранения или запроса не рендерится свободным текстовым блоком поверх рабочей сцены. Приложение использует семантический error-state канонического поля либо `ToastStack`, который владеет размером текста, цветом, положением и закрытием. Ошибка автосохранения modeless-инспектора не блокирует закрытие окна: draft остаётся в текущем просмотре, окно закрывается сразу, а сбой показывается неблокирующим error toast.
## Deprecated
Перед удалением export:
- он получает статус deprecated в registry;
- документация указывает replacement;
- минимум один minor release сохраняет совместимость;
- после миграции известных consumers export удаляется в major release.
## Проверки
Минимум для merge:
- typecheck всех пакетов;
- registry validation;
- production build каталога;
- ручная визуальная проверка dark/light и нескольких accent;
- keyboard smoke test для Dropdown, Select, Window и Inspector.
Следующий уровень зрелости — автоматические screenshot regression и interaction tests. Они добавляются до массовой миграции приложений.
## Владение
У дизайн-системы должен быть явный code owner. Product team может предлагать компоненты, но общий API и theme contract проходят отдельное review, потому что изменение распространяется на все будущие приложения.