Anatomy of a React component
My vision for how every React component should look
421
8 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
421
8 min.
The SST standard defines requirements for the semantics, accessibility, and logic of tabs
62
7 min.
The SSF-U standard defines requirements for the semantics, accessibility, and logic of fullscreen
248
2 min.
The SSA standard defines requirements for the semantics, accessibility, and logic of accordion
258
2 min.
An Analysis of Critical Web Design Mistakes. Why Sliders, Autoplay, and Slow-Loading Pages Reduce Conversion Rates and Rankings on Google
232
2 min.
The SSP standard defines requirements for the semantics, accessibility, and logic of pagination
240
1 min.