Files
ui/docs/design-system/customization.md
2025-12-27 18:25:15 +03:00

956 B
Raw Blame History

Customization without forking

Цель: дать пользователю возможность менять дизайн не изменяя библиотеку.

Есть три уровня кастомизации:

1) Switch theme/platform/skin

<UIProvider config={{ theme: "dark", platform: "vk", skin: "ios" }} />

2) Runtime overrides (vars)

<UIProvider
  config={{
    vars: {
      "--ui-primary": "#ff2d55",
      "--btn-radius": "18px",
      "--input-h-md": "46px",
    }
  }}
/>

3) App-level CSS layer

:root[data-platform="web"]{
  --ui-primary: #8b5cf6;
}

Contract (совместимость)

Мы считаем частью публичного контракта:

  • имена токенов --ui-* и --btn-*/--input-*/…
  • data attributes data-theme, data-platform, data-skin

Изменения этих сущностей должны быть semvermajor.