Розробка кастомного компоненту вибору з множинними опціями на основі shadcn/radix-ui

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Всім привіт! Розробка інтерфейсів часто вимагає втілення складних компонентів, що задовольняють специфічні потреби користувачів. Однією з таких задач є створення компоненту для множинного вибору, що є невід’ємною частиною багатьох форм введення даних.

Зараз багато веброзробників використовують сучасні інструменти для створення своїх проєктів, такі як:

  • shadcn/ui — це сучасний інструментарій для створення динамічних тем інтерфейсу в додатках, що надає розробникам можливість легко змінювати зовнішній вигляд додатку на льоту. Використання shadcn дозволяє створити більш гнучкі та адаптивні рішення для користувачів.
  • radix-ui — це набір низькорівневих, некерованих компонентів, призначених для побудови високоякісних інтерфейсів із дизайн-системами. Вони забезпечують розробникам велику свободу у створенні кастомізованих рішень, зберігаючи при цьому доступність і контроль над всіма аспектами поведінки компонентів.

При розробці проєкту на основі бібліотек shadcn / radix-ui, я стикнувся з відсутністю готового компоненту для множинного вибору, який би відповідав усім вимогам сучасних вебзастосунків. Ці бібліотеки відомі своїми рідними компонентами, які забезпечують високу адаптивність та легкість у використанні, але, на жаль, потрібний мною компонент в їх стандартному наборі відсутній.

З метою вирішення цієї проблеми я вирішив розробити власний компонент множинного вибору. Цей компонент побудований з використанням функціональності shadcn / radix-ui для забезпечення нативної інтеграції та оптимальної продуктивності.

Цей компонент включає такі можливості:

  • Легкість налаштування: компонент легко інтегрувати в будь-який проєкт, забезпечуючи широкі можливості налаштування стилів та поведінки.
  • Відповідність сучасним стандартам UI/UX: компонент розроблено з урахуванням найновіших трендів у дизайні інтерфейсів.
  • Темна/світла тема: наявність варіантів світлої та темної тем для кращої інтеграції в проєкти з різними стилістичними вимогами.

Для того, щоб краще зрозуміти можливості нового компоненту, ви можете відвідати наступне посилання, де представлена жива демонстрація: shadcn Multi-Select Component. У цій демонстрації я особливо зосередив увагу на інтеграції компоненту в контексті реального використання:

  • Використання у формі з валідацією Zod: компонент вбудований у форму, де застосовано валідацію для перевірки, що значення не є порожнім. Це забезпечує, що дані, введені користувачем, відповідають заданим критеріям перед їх подальшою обробкою. При спробі відправити форму з порожнім значенням компонента множинного вибору, на екрані з’являється попередження.
  • Сповіщення за допомогою Sonner: коли користувач успішно заповнює форму, і дані відповідають усім вимогам валідації, виводиться спливаюче повідомлення про відсутність помилок. Це створює позитивний досвід для користувачів, підтверджуючи правильність введення даних.
  • Перемикання тем: на панелі навігації реалізовано перемикач, який дозволяє користувачам вибирати між світлою та темною темами інтерфейсу. Це демонструє гнучкість компоненту в різних стилістичних контекстах і підкреслює його адаптивність до уподобань користувача.

Ці додаткові функції ілюструють можливості налаштування, що відкривається завдяки розробці кастомних компонентів і використанню продуманих інструментів розробки. Я сподіваюсь, що моя розробка буде корисною для спільноти розробників. Буду радий отримати ваші відгуки та пропозиції щодо покращення компоненту. Можливо, ваш досвід та знання допоможуть зробити його ще кращим!

Репо

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Зазначені компоненти теж варті уваги, але вони виконані трохи в іншому стилі. В моїй реалізації додані варіанти (variants) стилізації, є загальна кнопка скидання вибраних значень, а меню, що випадає, реалізовано у вигляді таблиці, в якій є можливість кожному значенню підвантажувати іконки, також доступна фільтрація всередині списку, особливо якщо список великий. Добре, коли є вибір, тож кожен вибере для себе найкращий варіант.

Підписатись на коментарі