<!-- Note: this example is purely visual, it does not include interactivity and proper accessibility --><nord-button-group><nord-buttonaria-controls="popout"size="s"><nord-iconname="interface-filter"slot="start"></nord-icon> Species is <spanclass="n-color-accent-text">Amphibian +1</span></nord-button><nord-buttonsize="s"square><nord-iconname="interface-close-small"size="xxs"label="Remove filter"></nord-icon></nord-button></nord-button-group><nord-popoutid="popout"><divclass="options n-padding-s"><nord-dropdown-groupheading="Species"><nord-dropdown-item><nord-stackdirection="horizontal"gap="s"align-items="center"><divclass="multi-select-indicator"><nord-iconname="interface-checked-small"size="xs"></nord-icon></div><span>Amphibian</span></nord-stack></nord-dropdown-item><nord-dropdown-item><nord-stackdirection="horizontal"gap="s"align-items="center"><divclass="multi-select-indicator"></div><span>Canine</span></nord-stack></nord-dropdown-item><nord-dropdown-item><nord-stackdirection="horizontal"gap="s"align-items="center"><divclass="multi-select-indicator"><nord-iconname="interface-checked-small"size="xs"></nord-icon></div><span>Feline</span></nord-stack></nord-dropdown-item><nord-dropdown-item><nord-stackdirection="horizontal"gap="s"align-items="center"><divclass="multi-select-indicator"></div><span>Rodents</span></nord-stack></nord-dropdown-item></nord-dropdown-group></div><divclass="n-padding-s n-border-bs"><nord-dropdown-item>Clear selection</nord-dropdown-item></div></nord-popout><style>.options{min-inline-size: 250px;max-inline-size: 375px;max-block-size: 460px;overflow-y: auto;}@media(max-width: 35.9375em){.options{max-block-size: 70vh;max-inline-size: none;}}.multi-select-indicator{background-color:var(--n-color-active);color:var(--n-color-text);border-radius:var(--n-border-radius-s);border: 1px solid var(--n-color-border-hover);inline-size:var(--n-space-m);block-size:var(--n-space-m);display: grid;place-items: center;}.multi-select-indicator:has(nord-icon){background-color:var(--n-color-accent);color:var(--n-color-text-on-accent);border: 1px solid var(--n-color-accent);}nord-dropdown-item:hover{--n-dropdown-item-background-color:var(--n-color-active);--n-dropdown-item-color:var(--n-color-text);}</style>
<nord-buttonvariant="primary"aria-controls="example"aria-haspopup="true"> Export <nord-iconslot="end"name="interface-download"></nord-icon></nord-button><nord-popoutid="example"><nord-stackstyle="padding:var(--n-space-m)var(--n-space-m)var(--n-space-s)"direction="horizontal"align-items="center"><nord-stackdirection="horizontal"align-items="center"gap="s"><h3class="n-font-size-l n-font-weight-active">Export data</h3></nord-stack><nord-iconname="interface-help"aria-describedby="tooltip"style="cursor: help"label="Help"></nord-icon></nord-stack><nord-tab-grouplabel="Download options"padding="m"><nord-tabslot="tab">CSV</nord-tab><nord-tab-panel><nord-buttonclass="export"> Export data.csv <nord-iconslot="end"name="interface-download"></nord-icon></nord-button><pclass="n-typescale-s n-margin-b-s">Data will be downloaded directly to your device.</p></nord-tab-panel><nord-tabslot="tab">Excel</nord-tab><nord-tab-panel><nord-buttonclass="export"> Export data.xlsx <nord-iconslot="end"name="interface-download"></nord-icon></nord-button><pclass="n-typescale-s n-margin-b-s">Data will be downloaded directly to your device.</p></nord-tab-panel></nord-tab-group></nord-popout><nord-tooltipid="tooltip">Select format to export</nord-tooltip><nord-toast-group></nord-toast-group><script>const buttons = document.querySelectorAll(".export")const group = document.querySelector("nord-toast-group") group.addEventListener("dismiss",e=> e.target.remove()) buttons.forEach(button=>{ button.addEventListener("click",()=>{if(button.loading){return} group.addToast("Exporting data…",{autoDismiss:3000}) button.loading =true// Timeout exists for demo purposes to mimic server response timesetTimeout(()=>{ button.loading =false group.addToast("Data exported",{autoDismiss:3000})},2000)})})</script>
The id for the active element to reference via aria-controls.
string
""
anchor
anchor
Set an optional anchor element to align against, replacing the triggering element.
string | undefined
undefined
open
open
Controls whether the component is open or not.
boolean
false
align
align
Set the alignment in relation to the toggle (or anchor) depending on the position. start will align it to the left of the toggle (or anchor). end will align it to the right of the toggle (or anchor). Setting the position to inline-start or inline-end will switch start and end to the top and bottom respectively.
"start" | "end"
"start"
position
position
Set the position in relation to the toggle (or anchor). Options follow logical properties. block-start and block-end referring to top and bottom respectively, inline-start and inline-end referring to left and right respectively.
Show the popout. A promise that resolves to a TransitionEvent when the popout's show animation ends or is cancelled. If the popout is already open, the promise resolves immediately with undefined.
moveFocusToButton: prevent focus returning to the target button. Default is true.
Hide the popout. Returns a promise that resolves to a TransitionEvent when the popout's hide animation ends or is cancelled. If the popout is already closed, the promise resolves immediately with undefined.
If a popout contains actions, they should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):
Create user
Create User
Popout actions should always lead with a strong verb that encourages action. Use the {verb}+{noun} format except in the case of common actions like Save, Close or Cancel:
Edit row
Editing options
Avoid unnecessary words and articles in popout actions, such as “the”, “an” or “a”:
The popout component is a containing component, only providing a way to reveal and hide controls by using a single button.
Integration
For integration guidelines, please see Web Components documentation. This documentation explains how to implement and use Nord Web Components across different technologies such as Vue.js, React, or Vanilla JavaScript.
Integration Guidelines
Troubleshooting
If you experience any issues while using Nord Web Components, please head over to the Support page for more guidelines and ways to contact us.