Skip to content

feat(input-otp): скорректировано поведение компонента - #78

Merged
fabulous-unicorn merged 7 commits into
release/2.0.0from
feature/DS-762-input-otp
Sep 4, 2026
Merged

feat(input-otp): скорректировано поведение компонента#78
fabulous-unicorn merged 7 commits into
release/2.0.0from
feature/DS-762-input-otp

Conversation

@fabulous-unicorn

@fabulous-unicorn fabulous-unicorn commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Figma - https://www.figma.com/design/Q1BWgZ7zoV5UzlBOnjW0cM/UI-Kit--DS--v2.1?node-id=484-6034&t=6VbUoPFB63RFGMZB-4
Дальше будет описание от дизайна, но что касается конкретных значений, то приоритет в использовании у токенов на макете.

InputOtp — состояния и сценарии

Состояния ячейки (state)

state Рамка 1px Фон Тень Цифра Когда
default #cecfd2 #ffffff #181a1f Ячейка пустая или заполненная, фокуса нет
hover #1dc831 #ffffff #181a1f Курсор над ячейкой
focus #1dc831 #ffffff 0 0 0 3.5 #d4fedc #181a1f + каретка Активная ячейка ввода — всегда ровно одна
danger #db3424 #ffffff 0 0 0 3.5 #fff0f0 (в фокусе) #181a1f Код неверный или истёк — красными становятся все ячейки
disabled #cecfd2 #e2e2e4, opacity 50% приглушена Отправка кода, лимит попыток, ожидание нового кода

Поведение

Действие Поведение
Клик по любой ячейке Фокус уходит в первую незаполненную ячейку, не в ту, по которой кликнули
Ввод цифры Символ ставится, фокус автоматически на следующую ячейку
Ввод в последнюю ячейку Фокус остаётся, код отправляется на проверку автоматически — без кнопки
Ввод буквы/символа Игнорируется, ячейка не мигает ошибкой (inputmode=numeric)
Backspace в заполненной Очищает текущую ячейку, фокус остаётся
Backspace в пустой Фокус на предыдущую ячейку и очищает её
Вставка кода (Ctrl+V) Раскладывается по ячейкам целиком, лишние символы отбрасываются, фокус в конец
Автозаполнение из SMS Работает как вставка (autocomplete=one-time-code)
Проверка кода Все ячейки disabled на время запроса
Неверный код Все ячейки danger, фокус в первую, значения не стираются автоматически
Ввод после ошибки danger снимается с первого же введённого символа
Истёк таймер Все ячейки disabled, активна ссылка «Отправить код повторно»
Исчерпаны попытки disabled + сообщение с указанием, когда можно повторить

Сценарии

Сценарий Конфигурация Особенность
Подтверждение входа по SMS 4 ячейки Автосабмит после последней цифры, таймер повторной отправки под полем
Подтверждение операции 4 ячейки Ошибка не стирает введённое — пользователь правит одну цифру
Код из письма 4 ячейки Вставка из буфера — основной способ ввода, не ручной набор
Ввод на мобильном 4 ячейки inputmode=numeric, высота ≥ 44px под касание, автозаполнение из SMS

@fabulous-unicorn
fabulous-unicorn requested a review from a team as a code owner August 26, 2026 09:54
@fabulous-unicorn
fabulous-unicorn requested review from isokolovskii and removed request for a team August 26, 2026 09:54
@Shoshanyaka Shoshanyaka added the release:v2.0.0 Release version v2.0.0 label Aug 26, 2026
@fabulous-unicorn
fabulous-unicorn requested review from grevtsovna and removed request for isokolovskii August 26, 2026 10:52
@fabulous-unicorn
fabulous-unicorn merged commit 65dd7dd into release/2.0.0 Sep 4, 2026
4 checks passed
@fabulous-unicorn
fabulous-unicorn deleted the feature/DS-762-input-otp branch September 4, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:v2.0.0 Release version v2.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants