Слои

  1. Theme: tokens (colors, spaces, animations), settings

    Константы пробрасываются в react-контекст и css-переменные чтобы при изменении темы всё динамически обновлялось. Все стандартные настройки можно поменять.

    classes, propses, renderers: 1) конструктивные, 2) визуальные, 3) контентные (slot aimed). См. так же Style customising: Visual/Frame segregation.

    Тут же прописываются breakpoints

    На этом уровне так же фиксируются внутренние переиспользуемые наборы стилей

    1rem забивается на 1unit

    Настройка высокоуровневых композиций может включать: пути для обращения к серверу или кастомный api-слой,

  2. Components:

    Aspects:

    Elements:

  3. Patterns: state-keepers, compositions, semantic markup

    <aside> 🚧 С паттернами пока всё сложно

    </aside>

    E.g.: Login, Index-Show, AppShell, AppState, DataGrid+Pagination,,,

    Доменная модель в UI

    UX By Default

    Паттерны — в код

    Relearn CSS layout

    Box, Center, Grid, Cluster,,, Там и немного кода есть.

    Patterns

    DS Gov.UK. Patterns often use one or more components and explain how to adapt them to the context. Есть немного кода

    kdeldycke/awesome-falsehood

    Как валидировать формы, как правильно работать со временем и тд.

    Levels:

    1. Principles/Conceptions: no code solution exist
      • Ask users for… address, bank card,,,
      • Help users to… create account,,,
      • Inform user about... no access, service problems,,,
    2. Markup, Semantic
      • Micro data (e.g. vCard, vEvent,,,)
    3. Visual, Motion
    4. State management
    5. Server aware, Full stack

    Elements (take all appropriate levels):

  4. Develop time helpers

    IDE AS ECOSYSTEM GUIDELINES PROVIDER

Бонусы

Story

Во всех дизайн системах разумно реализуют только базовые кирпичики

А в гайдах могут дополнительно описывать разные правила и показывать композитные примеры использования базовых компонентов вместе для типовых задач.

Мне же кажется, что стоило бы выносить в реализацию как можно больше разных паттернов.

Например, список с поиском, Автосаджест с правильной работой с сервером, Карточка сущности с CRUD провязкой и тд.

Чтобы почти любая ситуация решалась набором чуть более высокоуровневых композитов.

Такие паттерны должны быть ui agnostic. Это не всегда что-то про управление состояним и работу с сервером, это может быть и что-то про правильные анимации или какие-то статичные визуальные фишечки типа простановки висящей пунктуации и переносов, визуальной компенсации смещений.

Чтобы написание такого с нуля было чем-то фриковым. Так разные хорошие практики будут отлиты в коде.

Такая семантичность на максималках

В качетсве бонуса, эта провязка Доменной Модели в UI, кажется может дать хороший скринридер и набор команд, что им и обычные люди смогут пользоваться через продвинутый Spotlight, соединённый с опциональным голосовым интерфейсом.