Як кнопка
<Action
onClick={() => {
// your code
}}
>
Open modal
</Action>
Кнопка чи посилання? <button> чи <a>?
React-компонент, який автоматично обирає правильний HTML-елемент і забезпечує вебдоступність.
<Action
onClick={() => {
// your code
}}
>
Open modal
</Action>
<Action
onClick={() => {
// your code
}}
disabled
>
Open modal
</Action>
<Action
href="/contacts"
target="_blank"
>
Contact page
</Action>
<Action
href="/profile"
variant="button"
>
My profile
</Action>
Проблема вибору семантичного тегу постає в задачі “кнопка чи посилання в React”, коли посилання виглядає як кнопка, або кнопка виглядає як посилання. Коли використовувати <button>, а коли <a>?
Існує правило, яке допомагає обирати правильно: якщо клік на інтерактивний елемент веде на іншу сторінку чи інше місце в межах сторінки, то слід використовувати тег <a>.
Однак, незважаючи на це відоме правило, розробники мають дилему вибору семантичного тегу.
Якщо помилково обрано тег <button> тоді, коли потрібно використовувати <a> для посилання, виникають перешкоди для клавіатурної навігації, а користування сайтом за допомогою скринрідера може стати значно складнішим.
Порушення семантики HTML у кнопках і посиланнях можуть намагатись виправити за допомогою ARIA-атрибутів, однак часто це створює додаткові проблеми.
Семантика
Компонент сам обирає відповідний семантичний тег:
Зовнішній вигляд
Також окремий prop визначає зовнішній вигляд елемента. Вам не потрібно витрачати час на переписування стилів нативного HTML-елемента, а достатньо просто вказати бажаний зовнішній вигляд через один пропс. Можна отримати посилання, яке виглядає як кнопка або навпаки — кнопку, яка виглядає як посилання.
Стилі
У компоненті реалізовано базові стилі, але існує проп, який дозволяє їх не застосовувати.
Також є можливість змінити дизайн елементів через ваші кастомні класи.
Disabled
У компоненті реалізовано правильну роботу з disabled станом для кнопок і посилань з урахуванням вимог до вебдоступності.
Додаткові пропси
Через окремі пропси ви можете налаштовувати властивості посилання (як-от target чи rel), а також вказувати потрібний тип кнопки (submit чи інший).
Заповніть форму, і ми повідомимо вас, коли його можна буде придбати.