-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DON'T MERGE] feat(ViewContainer): mvp of ViewContainer #1221
Conversation
Theme Builder app deployed! https://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-1221/ |
Documentation preview deployed! website:https://plasma.sberdevices.ru/pr/pr-1221/ |
⚡ Component performance testingResult: 🟢 OK |
packages/plasma-b2c/src/components/ViewContainer/ViewContainer.stories.tsx
Show resolved
Hide resolved
packages/plasma-b2c/src/components/ViewContainer/ViewContainer.tsx
Outdated
Show resolved
Hide resolved
packages/plasma-b2c/src/components/ViewContainer/ViewContainer.tsx
Outdated
Show resolved
Hide resolved
packages/plasma-b2c/src/components/ViewContainer/ViewContainer.tsx
Outdated
Show resolved
Hide resolved
packages/plasma-b2c/src/components/ViewContainer/ViewContainer.tsx
Outdated
Show resolved
Hide resolved
--text-paragraph-active: var(--inverse-text-paragraph-active); | ||
--text-paragraph: var(--inverse-text-paragraph); | ||
|
||
/* TODO: Вот это будет работать только если inverse / ondark / onlight / default имеют соотвтетствие */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
кажется, что эта ответственность пользователя (дизайнера), который создаёт цветовую схему. Но он должен как-то знать об этих требованиях
--inverse-text-paragraph: var(--on-dark-text-paragraph); | ||
`, | ||
inverse: css` | ||
/* А где токен inverse background ?? */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
для plasma_b2c они выключены, по этому в итоговую тему не попали. Надо обговорить этот момент с дизайнерами
⚡ Component performance testingResult: 🟢 OK |
33d1790
to
b9d5448
Compare
⚡ Component performance testingResult: 💀 WASTED Performance tests are broken. |
b9d5448
to
75b3da1
Compare
⚡ Component performance testingResult: 🟢 OK |
ViewContainer
Добавлен компонент
ViewContainer
, который позволяет пользователю явно указать, какой бэкграунд имеет контейнер, в котором лежат компоненты:onDark
илиonLight
(если значение не передано, то по умолчанию токены переопределяться не будут).Примеры
Код:
Приведет к такому результату в светлой и темной теме
Примеры в живую лучше смотреть в new-hope-storybook
Объяснение работы
Достигается это за счёт переопределение токенов темы. Т.е. на
ViewContainer
в зависимости от пропса view применяется либо--text-primary: var(--on-dark-text-primary)
, либо--text-primary: var(--on-light-text-primary)
.Такие мапинги планируется генерировать автоматически и поставлять вместе с темой (plasma_b2c, sdds_serv, и т.д.).
Текущие ограничения
Пока пары токенов заданы в ручную, но отдельной задачей нужно будет доработать генератор тем, чтобы эти объекты (
tokens = { onDark: '...', onLight: '...' }
формировались автоамтическиВ библиотеках plasma-b2c и plasma-web в некоторых компонентах используются старые токены (с префиксом
--plasma-colors-...
, из-за чего механизм адаптации токенов не будет работать (ибо просто нет таких токенов как ---on-dark-plasma-colors). Поэтому отдельной задачей нужно будет перевести все компоненты в конифигах этих библиотек со старых - на новыеПока не понятно на сколько необходим
inverse
режим, по этому на первых итерациях предлагается это не поддерживать. В том числе то связано с тем, что inverse токены не всегда заданы в теме.What/why changed
📦 Published PR as canary version:
Canary Versions
✨ Test out this PR locally via: