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

feat(Link): add transition on underline #3254

Merged
merged 8 commits into from
Sep 7, 2023
Merged

feat(Link): add transition on underline #3254

merged 8 commits into from
Sep 7, 2023

Conversation

SchwJ
Copy link
Member

@SchwJ SchwJ commented Aug 29, 2023

Проблема

Отсутствует transition на подчеркивании в 2022 теме.

Решение

Изначально планировалось добавить стили:
transition: border-bottom-color 1000ms cubic-bezier(0.5, 1, 0.89, 1); border-bottom-color: color-mix(in srgb, currentColor 50%, transparent);
Однако, в chrome и edge сочетание transition, color-mix и currentColor вызывает моргание при применении transition.

Чтобы избежать этого - добавила lineTextWrapper с прозрачным подчеркиванием, при hover'е меняющимся на currentColor, а у lineText оставила подчеркивание currentColor с половинной прозрачностью.
При hover'е выполняется подчеркивание из прозрачного переходит в currentColor. За счет наложения этого цвета на подчеркивание lineText (currentColor с половинной прозрачностью) достигается эффект перехода currentColor с половинной прозрачностью до currentColor.

Однако в chrome<111, edge<111, firefox<113 color-mix не поддерживается. Для поддержки старых и новых версий браузеров используется @supports not с решением через color-mix и @supports not со старым решением соответственно.

Ссылки

https://yt.skbkontur.ru/issue/IF-1376
https://yt.skbkontur.ru/issue/IF-1308

Чек-лист перед запросом ревью

  1. Добавлены тесты на все изменения
    ⬜ unit-тесты для логики
    ⬜ скриншоты для верстки и кросс-браузерности
    ✅ нерелевантно

  2. Добавлена (обновлена) документация
    ⬜ styleguidist для пропов и примеров использования компонентов
    ⬜ jsdoc для утилит и хелперов
    ✅ комментарии для неочевидных мест в коде
    ⬜ прочие инструкции (README.md, contributing.md и др.)
    ⬜ нерелевантно

  3. Изменения корректно типизированы
    ✅ без использования any (см. PR 2856)
    ⬜ нерелевантно

  4. Прочее
    ⬜ все тесты и линтеры на CI проходят
    ✅ в коде нет лишних изменений
    ✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)

Copy link
Member

@zhzz zhzz left a comment

Choose a reason for hiding this comment

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

Костыль с двумя подчеркиваниями гениален

packages/react-ui/components/Link/Link.styles.ts Outdated Show resolved Hide resolved
packages/react-ui/components/Link/Link.styles.ts Outdated Show resolved Hide resolved
packages/react-ui/components/Link/Link.styles.ts Outdated Show resolved Hide resolved
@zhzz zhzz merged commit 6b9d106 into next Sep 7, 2023
@zhzz zhzz deleted the add-transitions-link branch September 7, 2023 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants