Skip to content

feat(Tabs): support editable tabs — add and remove tabs (DS-5230)#406

Merged
KamilEmeleev merged 37 commits into
mainfrom
feat/ds-5230
Jul 3, 2026
Merged

feat(Tabs): support editable tabs — add and remove tabs (DS-5230)#406
KamilEmeleev merged 37 commits into
mainfrom
feat/ds-5230

Conversation

@KamilEmeleev

Copy link
Copy Markdown
Collaborator

No description provided.

@KamilEmeleev KamilEmeleev added the enhancement New feature or request label Jul 2, 2026
@KamilEmeleev KamilEmeleev requested a review from rmnturov July 2, 2026 10:35
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit 7a8d1b3):

https://react-koobiq-next--prs-406-pko8zgr4.web.app

(expires Wed, 08 Jul 2026 11:52:25 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: fc29847d4a9e5cb1adf458c76a9b681c76e2eeff

@rmnturov

rmnturov commented Jul 2, 2026

Copy link
Copy Markdown

Скроллбар бы стилизовать
image

@rmnturov

rmnturov commented Jul 2, 2026

Copy link
Copy Markdown

При ховере вертикальных вкладок возникает эффект, когда крестик уже виден, а фон еще белый. Будто крестик без анимации появляется, а фон анимируется. Надо синхронно — анимация на фон и появление крестика не нужна

kbq-react-verical-tabs-animation.mp4

@rmnturov

rmnturov commented Jul 2, 2026

Copy link
Copy Markdown

disabled-вкладки не должны быть все сразу подчеркнуты
image
https://react-koobiq-next--prs-406-pko8zgr4.web.app/?path=/story/components-tabs--editable-playground

@rmnturov

rmnturov commented Jul 2, 2026

Copy link
Copy Markdown

На выбранную вкладку не нужен ховер
image

Спека https://www.figma.com/design/wHiyNIQkBkoomLDLEJEecV/%F0%9F%9F%A5-koobiq-%C2%B7-components-20?node-id=67861-6962&t=QleNFsLT0or2J3ja-4
image

@rmnturov

rmnturov commented Jul 2, 2026

Copy link
Copy Markdown

в форме не нужны плейсхолдеры
image

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

в форме не нужны плейсхолдеры image

done

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

На выбранную вкладку не нужен ховер image

Спека https://www.figma.com/design/wHiyNIQkBkoomLDLEJEecV/%F0%9F%9F%A5-koobiq-%C2%B7-components-20?node-id=67861-6962&t=QleNFsLT0or2J3ja-4 image

done

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

disabled-вкладки не должны быть все сразу подчеркнуты image https://react-koobiq-next--prs-406-pko8zgr4.web.app/?path=/story/components-tabs--editable-playground

done

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

При ховере вертикальных вкладок возникает эффект, когда крестик уже виден, а фон еще белый. Будто крестик без анимации появляется, а фон анимируется. Надо синхронно — анимация на фон и появление крестика не нужна

kbq-react-verical-tabs-animation.mp4

done

@KamilEmeleev

KamilEmeleev commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator Author

Скроллбар бы стилизовать image

Предлагаю пока использовать только стандартные CSS-свойства для скроллбара: scrollbar-width: auto, scrollbar-gutter: stable и scrollbar-color с нашими токенами. Это нативно поддерживаемый браузерами вариант и лучше чем скрол по умолчанию.

tabs-custom-scroll

что думаешь?

@rmnturov

rmnturov commented Jul 3, 2026

Copy link
Copy Markdown

Скроллбар бы стилизовать image

Предлагаю пока использовать только стандартные CSS-свойства для скроллбара: scrollbar-width: auto, scrollbar-gutter: stable и scrollbar-color с нашими токенами. Это нативно поддерживаемый браузерами вариант и лучше чем скрол по умолчанию.

tabs-custom-scroll что думаешь?

Чет не понял, что я такого предложил, что выходит за пределы возможностей CSS? Ширина — не авто, а конкретная, цвет бегунка, скругление.

@rmnturov

rmnturov commented Jul 3, 2026

Copy link
Copy Markdown

У выбранной вкладки должна быть всегда видна кнопка действия

Сейчас это не так
image

Спека
image

@rmnturov

rmnturov commented Jul 3, 2026

Copy link
Copy Markdown

С Ангуляром есть важное отличие. Там при навигации по вкладкам не происходит автоматического переключения. В целом переключать автоматически — это нормально. Предлагаю для единства сделать переключение только при активации поведением по умолчанию. Переключение вместе с навигацией оставить опциональной возможностью. Это можно сделать отдельной задачей (вроде как эта особенность была в реакте и раньше).

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

С Ангуляром есть важное отличие. Там при навигации по вкладкам не происходит автоматического переключения. В целом переключать автоматически — это нормально. Предлагаю для единства сделать переключение только при активации поведением по умолчанию. Переключение вместе с навигацией оставить опциональной возможностью. Это можно сделать отдельной задачей (вроде как эта особенность была в реакте и раньше).

За это поведение отвечает keyboardActivation (manual | automatic). Сейчас по умолчанию стоит automatic: вкладка активируется при фокусе с клавиатуры.

Добавил story. В дальнейшем отдельной доработкой можно будет поменять default на manual.

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

У выбранной вкладки должна быть всегда видна кнопка действия

Сделал крестик видимым у выбранной вкладки, но есть нюанс: он может сразу перекрывать контент или аддон слева внутри таба.

@KamilEmeleev

Copy link
Copy Markdown
Collaborator Author

Спека
image

По WAI-ARIA APG, role="tab" сам является интерактивным элементом: он отвечает за выбор вкладки и навигацию внутри tablist. Поэтому вкладывать в него отдельное действие — не лучшая идея.

Кнопку закрытия можно оставить как визуальное исключение, но без отдельного фокуса. Действие закрытия при этом должно быть доступно с клавиатуры через Delete и Backspace.

Дополнительно посмотрел Taiga UI, Material UI, Chakra UI и Gravity UI — там тоже не закладывают отдельное фокусируемое действие внутрь tab.

@rmnturov

rmnturov commented Jul 3, 2026

Copy link
Copy Markdown

Скроллбар бы стилизовать image

Предлагаю пока использовать только стандартные CSS-свойства для скроллбара: scrollbar-width: auto, scrollbar-gutter: stable и scrollbar-color с нашими токенами. Это нативно поддерживаемый браузерами вариант и лучше чем скрол по умолчанию.

tabs-custom-scroll что думаешь?

Согласен

@KamilEmeleev KamilEmeleev merged commit e326c39 into main Jul 3, 2026
6 checks passed
@KamilEmeleev KamilEmeleev deleted the feat/ds-5230 branch July 3, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants