Есть ли какой-то best practice создания HTML (JS) табов?
Пожалуйте: https://inclusive-components.design/tabbed-interfaces/
Есть несколько правил.


Реализация переключения табов не должна быть связана с дизайном этих табов. Ты должен иметь возможнось использовать любой html в качестве элементов интерфейса, кнопки, контент и тд.
Элементов может быть сколь угодно, причем они могут повторяться. Как элементы табов, так и сами блоки.


Из этого следует то, что ни html элементы, ни css, не способны в полной мере покрыть эти задачи. А значит придется писать реализацию на js, навешивая дата атрибуты на элементы, чтоб определить их назначение и отделить одни табы от других.