Skip to content
This repository has been archived by the owner on Jul 28, 2024. It is now read-only.

[FRNT-592] feat: implement level decrement #179

Merged
merged 7 commits into from
Aug 3, 2021

Conversation

rchubarkin
Copy link
Contributor

@rchubarkin rchubarkin commented Jul 21, 2021

Уменьшение уровня

Реализовано через css селекторы

API

<div {...levelDowngrade.wrapperProps()}>
  <div {...levelDowngrade.props({ diff: 2 })}>
    Level = Level - 2
  </div>
</div>

Что в итоговой верстке выглядит

<div data-woly-component-level-downgrade-wrapper>
  <div data-woly-component-level-downgrade="2">
    Level = Level - 2
  </div>
</div>

Селекторы

В скоупе с data-woly-component-level-downgrade-wrapper мы создаем временные переменные, в которых хранятся все возможные уменьшенные значения текущего уровня (level - 1, level -2, level -3). (Делается JS функциями, примеры далее - итоговый css)

[data-woly-component-level-downgrade-wrapper] {
    --woly-component-level-temp-1: max(calc(var(--woly-component-level) - 1),0);
    --woly-component-level-temp-2: max(calc(var(--woly-component-level) - 2),0);
    --woly-component-level-temp-3: max(calc(var(--woly-component-level) - 3),0);
    --woly-component-level-temp-4: max(calc(var(--woly-component-level) - 4),0);
    --woly-component-level-temp-5: max(calc(var(--woly-component-level) - 5),0);
    --woly-component-level-temp-6: max(calc(var(--woly-component-level) - 6),0);
}

Для каждого значения атрибута data-woly-component-level-downgrade пишем селектор следующего вида. Он позволяет нам записать в уровень необходимую нам временную переменную, которая инициализирована в родительском элементе

[data-woly-component-level-downgrade-wrapper] > [data-woly-component-level-downgrade='2'] {
  --woly-component-level: var(--woly-component-level-temp-2);
}

Global

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

Отсюда напрашиватеся компонент Global, который мы экспортируем наружу и расширяем при настройке woly.

import styled from 'styled-components';
import { levelDowngradeCss } from 'lib/level-downgrade';

export const WolyGlobalStyles = styled.div`
  ${levelDowngradeCss}
`;

Где-то в локальном проекте

// App.tsx
import { WolyGlobalStyles } from 'woly';

export const Global = styled(WolyGlobalStyles)`
 // local settings, palettes etc.
`

Вопрос с неймингом [РЕШЕН]

Сейчас идет дублирование переменных Global, что создает путаницу, но адекватный нейминг у меня лично придумать не вышло, может у кого есть идеи?
Варианты

  • GlobalBase
  • WolyStylesConfig
  • GlobalSetup
  • WolyGlobalStyles [ВЫБРАНО]

src/woly/atoms/box/index.ts Outdated Show resolved Hide resolved
src/woly/atoms/box/index.ts Outdated Show resolved Hide resolved
src/woly/elements/level-decrement/index.tsx Outdated Show resolved Hide resolved
@risen228
Copy link

risen228 commented Jul 21, 2021

А у нас вообще могут всякие внутренние штуки быть в atoms? Или решаем просто на уровне экспортов?

P.S. Все ок, не заметил что в elements

@rchubarkin rchubarkin requested a review from risen228 July 21, 2021 13:38
@rchubarkin rchubarkin force-pushed the feat/FRNT-592-level-decrement branch 3 times, most recently from 09b9dea to 12bc12b Compare July 22, 2021 17:40
@@ -1,9 +1,10 @@
import * as wolyGlobal from 'ui/global';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion(blocking): у тебя получается 2 файла названы одним и тем же именем, один находится в src/lib/global.ts, второй - src/woly/global.ts и стайледы названы одинаково, почему нельзя использовать разные названия? сейчас из-за этого ты вынужден переопределять название стайледа на 1 строчке. Лучше сделать разные названия, например, GlobalStylesConfig & BaseStylesConfig

Copy link

@risen228 risen228 Jul 23, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Плюс за Base

А наружу можно экспортировать как WolyGlobalStyles и WolyBaseStyles

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Irinaristova @risenforces поправил на WolyGlobalStyles

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут суть в том, что одни стили у тебя глобальные только для воли, другие стили базовые для проекта, в котором используются компоненты воли. Поэтому минимальный конфиг, который экспортиться наружу для корректной работы воли с другим проектом, не стоит называть WolyGlobalStyles, поскольку название не соответсвует назначению конфига + у воли есть свой глобальный конфиг в проекте.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не вижу почему слова после "поэтому" следуют из того что было до них. Можешь развернуть? Как стоит назвать по-твоему?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется, Женя предложил хороший вариант для нейминга

Copy link
Contributor Author

@rchubarkin rchubarkin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

11

src/woly/elements/level-decrement/index.tsx Outdated Show resolved Hide resolved
src/lib/global.ts Outdated Show resolved Hide resolved
@rchubarkin rchubarkin force-pushed the feat/FRNT-592-level-decrement branch from 93dc62a to 99e2bfe Compare July 30, 2021 11:02
ainursharaev
ainursharaev previously approved these changes Jul 30, 2021
Irinaristova
Irinaristova previously approved these changes Aug 2, 2021
@rchubarkin rchubarkin force-pushed the feat/FRNT-592-level-decrement branch from b526526 to c6a30ec Compare August 3, 2021 06:51
@rchubarkin rchubarkin merged commit e893be0 into master Aug 3, 2021
@rchubarkin rchubarkin deleted the feat/FRNT-592-level-decrement branch August 3, 2021 16:17
risen228 pushed a commit that referenced this pull request Aug 6, 2021
* feat: implement level decrement

task: FRNT-592

* fix(LevelDecrement): style inner component instead of wrapper

* fix(LevelDecrement): naming

* feat: implement level downgrade

* fix: more specific exported global styles name

* fix(lib): level downgrade better naming
risen228 pushed a commit that referenced this pull request Aug 9, 2021
* feat: implement data-table

* feat(data-table): add head renderer

* feat(data-table): add rowKey

* refactor(data-table): split up things

* fix(data-table/filter): checkboxes behavior

* refactor(data-table): small changes

* fix(data-table): types

* fix(data-table): import

* feat(data-table): add an export for DataTableColumn type

* fix(data-table): usage and types

* refactor(data-table): imports

Co-authored-by: Ainur <33234903+purplecandle@users.noreply.github.com>

* style(data-table): format

* refactor(data-table): remove unnecessary variable for placeholder

* fix(data-table): replace variant with priority

* [FRNT-548] Add documentation configurator (#170)

* feat(docs): add configurators (+ color configurator)

* style(docs): fix spaces

* style(icons): format

* style: lint styles

* chore: add lint:style:fix command

* perf(configurators): replace heavy libraries

* [FRNT-562] add icon component (#163)

* add icon component

* fix

* fix naming

* fix usage

* fix usage

* [FRNT-559] add toast weight (#165)

* add toast weight

* fix chip and button usage

* fix toast styles

* [FRNT-564] Implement color palette fabrics (#162)

* feat: implement color palette fabrucs

* refactor: remame variable

Co-authored-by: Шараев Айнур Раильевич <mr.sharaevainur@yandex.ru>

* [FRNT-568] add font stacks (#153)

* feat: add system-ui as a fallback font, add a font-weight vars

* feat: move font-stacks to a separate file

* refactor: remove font-weight, rename system font-stack

* refactor: rebase and format

* [FRNT-560] add weight to button-icon (#164)

* add weight to button-icon

* add goast styles

* fix icon-button styles

* [FRNT-396] Rewrite data selectors (#150)

* fix: rewrite data-selector, fix grammar

* feat: write styleguide for data-attribute

* update Styleguide

Co-authored-by: Ira <i.aristova@opends.tech>

* [FRNT-520] Rewrite tooltip (#129)

* chore: bump version (#169)

* feat(docs): add configurators (+ color configurator)

* style(docs): fix spaces

* feat(docs): add white priority to configurators

* refactor(configurators): change layout and color

* chore(deps): update lock

* fix(configurators): hardcoded configurator name

* refactor(configurators): remove unused data-attribute

* refactor(configurators): replace transparency parrent with svg

* refactor(configurators): styling

* style(configurators): remove unnecessary xmlns attribute

* refactor(configurators): styling

* style(configurators): remove unnecessary variables

* style(configurators): remove useless code

* refactor(configurator): stylesheets, simplify and add some comments

* fix(configurators): add viewbox for svg

* refactor(configurators): remove unused refs

* feat(configurators): add scope colors

* feat(configurators): limit the height of configurator's tab

* refactor(configurators): remove unused forwardRef

* fix(configurators): typo

Co-authored-by: Ainur <33234903+purplecandle@users.noreply.github.com>

* refactor(configurators): simplify toggle state

* chore(deps): sync lock

* refactor(configurators): size units

* fix(configurators): remove tertiary priority, add success priority

Co-authored-by: Irina Aristova <38761239+Irinaristova@users.noreply.github.com>
Co-authored-by: tatinacher <tatinacher@gmail.com>
Co-authored-by: Шараев Айнур Раильевич <mr.sharaevainur@yandex.ru>
Co-authored-by: Ainur <33234903+purplecandle@users.noreply.github.com>
Co-authored-by: Ira <i.aristova@opends.tech>
Co-authored-by: rchubarkin <dasasd31@gmail.com>

* [FRNT-603] Refactor data-attributes (#181)

* style: change styling data-attributes

* docs(styleguide): update information about data-attributes

* feat: move all dev stuff from lib to dev dir (#182)

* feat(docs): upgrade gatsby theme version (#183)

* [FRNT-592] feat: implement level decrement (#179)

* feat: implement level decrement

task: FRNT-592

* fix(LevelDecrement): style inner component instead of wrapper

* fix(LevelDecrement): naming

* feat: implement level downgrade

* fix: more specific exported global styles name

* fix(lib): level downgrade better naming

* [FRNT-543] create tab and tabbar component (#123)

* create tab ana tabbar component

* fix lint styles

* fix tabs styles

* fix tab styles

* fix shadow

* fix styles

* rewtire styles

* update tabs styles

* fix styles

* update styles

* add weight to tab

* update tab styles

* fix styles

* fix styles

* [DS-40] Fix refactored data-icon in box components (#186)

* feat(data-table): improve usage

* fix(table): text color

* fix(data-table): typo

Co-authored-by: Ainur <33234903+purplecandle@users.noreply.github.com>

* fix(table): add comment

Co-authored-by: risenforces <risenforces@gmail.com>
Co-authored-by: Ainur <33234903+purplecandle@users.noreply.github.com>
Co-authored-by: Irina Aristova <38761239+Irinaristova@users.noreply.github.com>
Co-authored-by: Шараев Айнур Раильевич <mr.sharaevainur@yandex.ru>
Co-authored-by: Ira <i.aristova@opends.tech>
Co-authored-by: rchubarkin <dasasd31@gmail.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
@atoms Changes inside atoms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants