Skip to content
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

[Feature] PrizmSplitterComponent - кастомизация splitter-gutter #70

Closed
1 of 4 tasks
digital-plant-guard opened this issue Mar 6, 2023 · 8 comments
Closed
1 of 4 tasks
Assignees
Labels
source:idp issue from IDP type:question "Tag: type:question — Indicates the content is seeking information, clarification, or an answer to a
Milestone

Comments

@digital-plant-guard
Copy link
Contributor

Библиотека

  • @prizm-ui/components
  • @prizm-ui/install
  • @prizm-ui/icons
  • @prizm-ui/theme

Компонент

PrizmSplitterComponent

Предложение

Сейчас prizm-splitter-gutter имеет фиксированную ширину. Зачастую в приложениях требуется такой слайдер, где ширина gutter'а нулевая и есть только "слайдер" (класс .slider) за который можно тянуть для изменения ширины панелей. Пробовали переопределять стили через ::ng-deep но это приводит к образованию пустой зоны в контейнере, тк ширина панелей контролируется через flex-basis а при вычислении учитывается ширина gutter'a.

Хотелось бы иметь возможность более гибко стилизовать gutter'ы PrizmSplitterComponent и чтобы их ширина корректно учитывалась при формировании панелей.

image

Пустая зона при модификации стилей вручную:

image

image

@digital-plant-guard
Copy link
Contributor Author

Возможно тут помогут CSS переменные --custom-properties - их удобно использовать и для стилизации и в геттерах для вычислений

@skkonstantin skkonstantin self-assigned this Mar 6, 2023
@AleksandrSibiakov
Copy link
Contributor

AleksandrSibiakov commented Mar 15, 2023

А что если сделать и заэкспортить директиву, которая будет рисовать в определенном месте элемент, за который можно потянуть? По сути гаттер сплиттера станет частным применением этой директивы (т.е. взять и вынести реализацию оттуда).
Тогда можно будет просто эту директиву применить к меню (или его контейнеру, зависит от разработчика), и тем самым управлять его шириной (т.е. не использовать непосредственно сплиттер). Это, кстати, поможет не решать проблему с расчетами ширины, и не надо убирать border который по умолчанию splitter так же провайдит.
@skkonstantin @digital-plant-guard

@skkonstantin skkonstantin added the state:in_progress We work on this issue label Mar 23, 2023
@ZurabDev ZurabDev added the type:question "Tag: type:question — Indicates the content is seeking information, clarification, or an answer to a label Apr 10, 2023
@AleksandrSibiakov
Copy link
Contributor

@ZurabDev @skkonstantin Подскажите статус по задаче? Нужна ли помощь? (in_progress стоит давно)

Есть еще идея пофиксить эту задачу через использование flex: 1 1 auto для последней панели (или более генерализованное решение - поддержка auto для размера). Применили такое решение локально на уровне CSS - полет нормальный. Правая панель (у нас их 2) занимает все доступное пространство, ей по сути не нужен calc и не надо учитывать вручную ширину border & gutter.
Если интересно, могу сделать PR.

@skkonstantin
Copy link
Contributor

После обсуждения с дизайнерами было принято решение, что splitter-gutter не кастомизируется

@skkonstantin
Copy link
Contributor

Если это прям сильно нужно, можно провести встречу и обсудить

@AleksandrSibiakov
Copy link
Contributor

AleksandrSibiakov commented Apr 25, 2023

Тогда нужна рекомендация как реализовать поведение, описанное в дизайн документе
image

Сплиттер, выходит, в данном случае не применим - он имеет бордер и гаттер, которые не кастомизируются.

@skkonstantin
Copy link
Contributor

border у сплитера можно убрать, он на хосте. по поводу кастомизации поговорю с дизайнерами еще раз, но также надо понять почему у вас на проекте сделано не по дизайн системе

@AleksandrSibiakov
Copy link
Contributor

AleksandrSibiakov commented Apr 25, 2023

Вот я скриншот скинул - это из Figma дизайн-системы. И у нас в приложении так же. Просто видимо тут не надо использовать сплиттер, а какой то свой drag-n-drop механизм. К сожалению в Prizm на текущий момент кроме splitter ничего похожего нет.

@ZurabDev ZurabDev removed the state:in_progress We work on this issue label Apr 28, 2023
@irustm irustm added the source:idp issue from IDP label May 2, 2023
@ZurabDev ZurabDev added this to the 1.0.0-rc.1 milestone May 11, 2023
@ZurabDev ZurabDev modified the milestones: 1.0.0-rc.1, 1.0.0-rc.2 May 11, 2023
@ZurabDev ZurabDev modified the milestones: 1.0.0-rc.2, 1.0.0-rc.1 May 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
source:idp issue from IDP type:question "Tag: type:question — Indicates the content is seeking information, clarification, or an answer to a
Projects
Archived in project
Development

No branches or pull requests

5 participants