
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@spectrum-web-components/breadcrumbs
Advanced tools
Web component implementation of a Spectrum design Breadcrumbs
An <sp-breadcrumbs> shows hierarchy and navigational context for a user's location within an app. The <sp-breadcrumbs> component defines its list of items using child <sp-breadcrumb-item> elements placed in its default slot.
View the design documentation for this component.
yarn add @spectrum-web-components/breadcrumbs
Import the side effectful registration of <sp-breadcrumbs> and <sp-breadcrumb-item> via:
import '@spectrum-web-components/breadcrumbs/sp-breadcrumbs.js';
import '@spectrum-web-components/breadcrumbs/sp-breadcrumb-item.js';
When looking to leverage the Breadcrumbs or BreadcrumbItem base class as a type and/or for extension purposes, do so via:
import {
Breadcrumbs,
BreadcrumbItem,
} from '@spectrum-web-components/breadcrumbs';
Breadcrumbs consist of several key parts:
<sp-breadcrumbs>
<sp-breadcrumb-item value="home">Home</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">March 2019 Assets</sp-breadcrumb-item>
</sp-breadcrumbs>
When needing to optimize for functional space of <sp-breadcrumbs>, the compact property can be used to reduce the height of the breadcrumbs while still maintaining the proper user context.
<sp-breadcrumbs compact>
<sp-breadcrumb-item value="1">Home</sp-breadcrumb-item>
<sp-breadcrumb-item value="2">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="3">March 2019 Assets</sp-breadcrumb-item>
</sp-breadcrumbs>
When space becomes limited or the maximum visible items are reached, the component automatically moves the first breadcrumbs into an action menu, adjusting dynamically as the window is resized.
By default, the maximum number of visible breadcrumbs is 4, as recommended by Spectrum Design. You can override this by using the max-visible-items attribute. The <sp-breadcrumbs> component will always display the action menu and the breadcrumbs title, so the minimum number of visible items is 1.
<sp-breadcrumbs>
<sp-breadcrumb-item value="your_stuff">Your stuff</sp-breadcrumb-item>
<sp-breadcrumb-item value="team">Team</sp-breadcrumb-item>
<sp-breadcrumb-item value="in_progress">In progress</sp-breadcrumb-item>
<sp-breadcrumb-item value="files">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
<sp-breadcrumb-item value="18x24">18x24</sp-breadcrumb-item>
</sp-breadcrumbs>
One maximum visible item
<sp-breadcrumbs max-visible-items="1">
<sp-breadcrumb-item value="your_stuff">Your stuff</sp-breadcrumb-item>
<sp-breadcrumb-item value="team">Team</sp-breadcrumb-item>
<sp-breadcrumb-item value="in_progress">In progress</sp-breadcrumb-item>
<sp-breadcrumb-item value="files">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
<sp-breadcrumb-item value="18x24">18x24</sp-breadcrumb-item>
</sp-breadcrumbs>
Three maximum visible items
<sp-breadcrumbs max-visible-items="3">
<sp-breadcrumb-item value="your_stuff">Your stuff</sp-breadcrumb-item>
<sp-breadcrumb-item value="team">Team</sp-breadcrumb-item>
<sp-breadcrumb-item value="in_progress">In progress</sp-breadcrumb-item>
<sp-breadcrumb-item value="files">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
<sp-breadcrumb-item value="18x24">18x24</sp-breadcrumb-item>
</sp-breadcrumbs>
Resizable
These breadcrumbs are in a resizable container. Reduce the size of the container to see how the maximum number of visible items changes.
<div style="border: 2px solid; padding: 20px; resize: both; overflow: auto;">
<sp-breadcrumbs max-visible-items="8">
<sp-breadcrumb-item value="your_stuff">Your stuff</sp-breadcrumb-item>
<sp-breadcrumb-item value="team">Team</sp-breadcrumb-item>
<sp-breadcrumb-item value="in_progress">In progress</sp-breadcrumb-item>
<sp-breadcrumb-item value="files">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
<sp-breadcrumb-item value="18x24">18x24</sp-breadcrumb-item>
</sp-breadcrumbs>
</div>
Use the root slot on the first breadcrumb item to always render the first breadcrumb item, even if the breadcrumbs are overflowing. The root will always show in addition to the number of items specified with max-visible-items.
<sp-breadcrumbs>
<sp-breadcrumb-item slot="root" value="your_stuff">
Your stuff
</sp-breadcrumb-item>
<sp-breadcrumb-item value="team">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
<sp-breadcrumb-item value="18x24">18x24</sp-breadcrumb-item>
</sp-breadcrumbs>
Not overflowing
<sp-breadcrumbs>
<sp-breadcrumb-item slot="root" value="your_stuff">
Your stuff
</sp-breadcrumb-item>
<sp-breadcrumb-item value="files">Files</sp-breadcrumb-item>
<sp-breadcrumb-item value="trend">Trend</sp-breadcrumb-item>
<sp-breadcrumb-item value="winter">Winter</sp-breadcrumb-item>
<sp-breadcrumb-item value="assets">Assets</sp-breadcrumb-item>
</sp-breadcrumbs>
By default, sp-breadcrumbs emits a change event when clicking on one of its children.
However, there may be cases in which clicking should redirect to another page. This can be achieved by using the href attribute instead of value.
Please note that the change event will no longer be triggered in this case.
<sp-breadcrumbs>
<sp-breadcrumb-item href="https://opensource.adobe.com/">
Home
</sp-breadcrumb-item>
<sp-breadcrumb-item href="https://opensource.adobe.com/trend">
Trend
</sp-breadcrumb-item>
<sp-breadcrumb-item href="https://opensource.adobe.com/assets">
March 2019 Assets
</sp-breadcrumb-item>
</sp-breadcrumbs>
The component offers the possibility to replace the action menu's icon with a custom one using the icon slot. Moreover, for accessibility purposes you can provide an internationalized string for the menu label using the menu-label attribute.
<sp-breadcrumbs menu-label="Settings">
<sp-icon-settings slot="icon"></sp-icon-settings>
<sp-breadcrumb-item value="displays">Displays</sp-breadcrumb-item>
<sp-breadcrumb-item value="main">Main display</sp-breadcrumb-item>
<sp-breadcrumb-item value="brightness">Brightness</sp-breadcrumb-item>
<sp-breadcrumb-item value="presets">Presets</sp-breadcrumb-item>
<sp-breadcrumb-item value="1">Preset #1</sp-breadcrumb-item>
</sp-breadcrumbs>
The <sp-breadcrumbs> component provides the following accessibility features:
role="navigation" to ensure proper semantic meaning for assistive technologies<ul> with each <sp-breadcrumb-item> assigned role="listitem"aria-current="page" to indicate the current locationaria-label based on the label property, defaulting to "Breadcrumbs" if none is providedtabindex="0"max-visible-items property to control truncation behaviormenu-label attribute to describe the overflow menu purposeFAQs
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.