Anatomy of a React component
My vision for how every React component should look
107
8 min.
26
2 min.
The SSB-C standard defines requirements for the semantics, accessibility, and logic of breadcrumbs.
Breadcrumbs should use <nav> to denote the navigation block, <ol> for an ordered list, and <li> for each breadcrumb item:
<nav class="breadcrumbs"> <ol class="breadcrumbs__list"> <li class="breadcrumbs__item"> <a href="/" class="breadcrumbs__link">Home</a> </li> <li class="breadcrumbs__item"> <a href="/category" class="breadcrumbs__link">Category</a> </li> <li class="breadcrumbs__item breadcrumbs__item--current"> Current page title </li> </ol> </nav>
The last item in the list indicates the current page, it should not be a link, and aria-current="page" should be added to improve accessibility:
<li class="breadcrumbs__item breadcrumbs__item--current" aria-current="page"> Current page title </li>
The <li> elements contain basic styles that are inherited by the <a> links, and white-space: nowrap; is used to prevent text wrapping:
.breadcrumbs__item { font-size: 14px; color: #6c757d; white-space: nowrap; } .breadcrumbs__link { color: #007bff; text-decoration: none; } .breadcrumbs__item--current { font-weight: bold; color: #343a40; }
For convenience on mobile devices, it’s a good idea to add a horizontal scrollbar:
.breadcrumbs { overflow-inline: auto; overflow-block: hidden; } .breadcrumbs__list { display: flex; }
Schema.org microdata helps search engines correctly identify the content on the page:
<nav class="breadcrumbs"> <ol class="breadcrumbs__list" itemscope itemtype="https://schema.org/BreadcrumbList"> <li class="breadcrumbs__item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/"> <span itemprop="name">Home</span> </a> <meta itemprop="position" content="1" /> </li> <li class="breadcrumbs__item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/category"> <span itemprop="name">Category</span> </a> <meta itemprop="position" content="2" /> </li> <li class="breadcrumbs__item breadcrumbs__item--current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" aria-current="page"> <span itemprop="name">Current page title</span> <meta itemprop="position" content="3" /> </li> </ol> </nav>
My vision for how every React component should look
107
8 min.
The SSF-U standard defines requirements for the semantics, accessibility, and logic of fullscreen
38
2 min.
The SSA standard defines requirements for the semantics, accessibility, and logic of accordion
54
2 min.
An Analysis of Critical Web Design Mistakes. Why Sliders, Autoplay, and Slow-Loading Pages Reduce Conversion Rates and Rankings on Google and Yandex
50
2 min.
The SSP standard defines requirements for the semantics, accessibility, and logic of pagination
59
1 min.
The SSPS standard defines requirements for the structure and naming of files and folders in a project
169
2 min.