Slideout Ready Slideout is component to be used to create slideouts.
Examples # Select an example Default slideout Default slideout opened with script Default slideout with sticky-header slot _ < duet-menu-bar-button icon = " navigation-menu" id = " main-navigation-opener" > </ duet-menu-bar-button> < duet-slideout opener = " main-navigation-opener" > < duet-slideout-panel active label-size = " large" > < span slot = " label" > Vakuutukset</ span> < duet-slideout-panel-dropdown icon = " category-car" > < span slot = " label" > Ajoneuvot</ span> < duet-slideout-link> Auto</ duet-slideout-link> < duet-slideout-link> Pakettiauto</ duet-slideout-link> < duet-slideout-link> Moottoripyörä</ duet-slideout-link> < duet-slideout-link> Mopo</ duet-slideout-link> < duet-slideout-link> Kaikki ajoneuvot</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-panel-dropdown icon = " category-personal" > < span slot = " label" > Koti</ span> < duet-slideout-link> Kotivakuutus</ duet-slideout-link> < duet-slideout-link> Mökkivakuutus</ duet-slideout-link> < duet-slideout-link> Vuokralaisen kotivakuutus</ duet-slideout-link> < duet-slideout-link> Vuokranantajan vakuutus</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-panel-dropdown icon = " category-personal" > < span slot = " label" > Terveys</ span> < duet-slideout-link active > Tapaturmavakuutus</ duet-slideout-link> < duet-slideout-link> Sairaskuluvakuutus</ duet-slideout-link> < duet-slideout-link> Urheiluvakuutus</ duet-slideout-link> < duet-slideout-link> Vauvavakuutus</ duet-slideout-link> < duet-slideout-link> Lapsivakuutus</ duet-slideout-link> < duet-slideout-link> Työkyvyttömyysvakuutus</ duet-slideout-link> < duet-slideout-link> Kaikki henkilövakuutukset</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-link active icon = " category-travel" > Matka</ duet-slideout-link> < duet-slideout-link icon = " category-life-insurance" > Henki</ duet-slideout-link> < duet-slideout-panel-dropdown icon = " category-pet" > < span slot = " label" > Eläin</ span> < duet-slideout-link> Koiravakuutus</ duet-slideout-link> < duet-slideout-link> Kissavakuutus</ duet-slideout-link> < duet-slideout-link> Hevosvakuutus</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-link icon = " category-forest" > Metsä</ duet-slideout-link> </ duet-slideout-panel> < duet-slideout-link size = " large" > Sijoittaminen</ duet-slideout-link> < duet-slideout-link size = " large" > Rahoitus</ duet-slideout-link> < duet-slideout-link size = " large" > Asiakkaalle</ duet-slideout-link> < duet-spacer size = " large" > </ duet-spacer> < duet-slideout-link size = " medium" icon = " category-block" active > Kirjautuneen palvelut</ duet-slideout-link> < duet-slideout-link size = " medium" icon = " form-search" > Hae sivustolta</ duet-slideout-link> < duet-divider> </ duet-divider> < duet-slideout-link size = " small" active > Henkilöasiakkaat</ duet-slideout-link> < duet-slideout-link size = " small" > Yritysasiakkaat</ duet-slideout-link> < duet-slideout-link size = " small" > Maa- ja metsätilat</ duet-slideout-link> < duet-slideout-link size = " small" > Yhtiöryhmä</ duet-slideout-link> < duet-spacer size = " medium" > </ duet-spacer> < duet-slideout-lang> < duet-slideout-link size = " small" active > Suomi</ duet-slideout-link> < duet-slideout-link size = " small" > Svenska</ duet-slideout-link> < duet-slideout-link size = " small" > English</ duet-slideout-link> </ duet-slideout-lang> </ duet-slideout> < duet-menu-bar-button accessible-label = " Avaa valikko" icon = " navigation-menu" id = " main-navigation-opener" accessible-popup = " true" accessible-expanded = " false" > </ duet-menu-bar-button> < duet-slideout> < duet-slideout-panel active label-size = " large" > < span slot = " label" > Vakuutukset</ span> < duet-slideout-panel-dropdown icon = " category-car" > < span slot = " label" > Ajoneuvot</ span> < duet-slideout-link> Auto</ duet-slideout-link> < duet-slideout-link> Pakettiauto</ duet-slideout-link> < duet-slideout-link> Moottoripyörä</ duet-slideout-link> < duet-slideout-link> Mopo</ duet-slideout-link> < duet-slideout-link> Kaikki ajoneuvot</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-panel-dropdown icon = " category-personal" > < span slot = " label" > Koti</ span> < duet-slideout-link> Kotivakuutus</ duet-slideout-link> < duet-slideout-link> Mökkivakuutus</ duet-slideout-link> < duet-slideout-link> Vuokralaisen kotivakuutus</ duet-slideout-link> < duet-slideout-link> Vuokranantajan vakuutus</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-panel-dropdown icon = " category-personal" > < span slot = " label" > Terveys</ span> < duet-slideout-link active > Tapaturmavakuutus</ duet-slideout-link> < duet-slideout-link> Sairaskuluvakuutus</ duet-slideout-link> < duet-slideout-link> Urheiluvakuutus</ duet-slideout-link> < duet-slideout-link> Vauvavakuutus</ duet-slideout-link> < duet-slideout-link> Lapsivakuutus</ duet-slideout-link> < duet-slideout-link> Työkyvyttömyysvakuutus</ duet-slideout-link> < duet-slideout-link> Kaikki henkilövakuutukset</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-link active icon = " category-travel" > Matka</ duet-slideout-link> < duet-slideout-link icon = " category-life-insurance" > Henki</ duet-slideout-link> < duet-slideout-panel-dropdown icon = " category-pet" > < span slot = " label" > Eläin</ span> < duet-slideout-link> Koiravakuutus</ duet-slideout-link> < duet-slideout-link> Kissavakuutus</ duet-slideout-link> < duet-slideout-link> Hevosvakuutus</ duet-slideout-link> </ duet-slideout-panel-dropdown> < duet-slideout-link icon = " category-forest" > Metsä</ duet-slideout-link> </ duet-slideout-panel> < duet-slideout-link size = " large" > Sijoittaminen</ duet-slideout-link> < duet-slideout-link size = " large" > Rahoitus</ duet-slideout-link> < duet-slideout-link size = " large" > Asiakkaalle</ duet-slideout-link> < duet-spacer size = " large" > </ duet-spacer> < duet-slideout-link size = " medium" icon = " category-block" active > Kirjautuneen palvelut</ duet-slideout-link> < duet-slideout-link size = " medium" icon = " form-search" > Hae sivustolta</ duet-slideout-link> < duet-divider> </ duet-divider> < duet-slideout-link size = " small" active > Henkilöasiakkaat</ duet-slideout-link> < duet-slideout-link size = " small" > Yritysasiakkaat</ duet-slideout-link> < duet-slideout-link size = " small" > Maa- ja metsätilat</ duet-slideout-link> < duet-slideout-link size = " small" > Yhtiöryhmä</ duet-slideout-link> < duet-spacer size = " medium" > </ duet-spacer> < duet-slideout-lang> < duet-slideout-link size = " small" active > Suomi</ duet-slideout-link> < duet-slideout-link size = " small" > Svenska</ duet-slideout-link> < duet-slideout-link size = " small" > English</ duet-slideout-link> </ duet-slideout-lang> </ duet-slideout> < script> var loginSlideout = document. querySelector ( "duet-slideout" ) var loginNavigationOpener = document. querySelector ( "#main-navigation-opener" ) loginNavigationOpener. addEventListener ( "click" , function ( e ) { e. preventDefault ( ) loginSlideout. show ( ) } ) </ script> Properties # Property Attribute Description Type Default accessibleRole accessible-role Role of the slot's container. By default this is menubar and the slideout should by default contain menuitems. string "menubar" backgroundColor background-color Background color. Use one of the color tokens. string "gray-lightest" controller controller Alias for property opener. HTMLElement | HTMLElement & FocusableComponent & OpenerComponent | string undefined modal modal Whether the slideout behaves as a modal, i.e. with an overlay and preventing scrolling of the page content. Note that even when false, we still use focus guards to contain keyboard navigation within, as moving focus out could result in unexpected behavior. boolean true open open Open boolean false opener opener DuetMenuBarButton or DuetButton element, or id of an element, that opens the slideout. If id is given, the component automatically sets the click event listener to open the slideout. HTMLElement | HTMLElement & FocusableComponent & OpenerComponent | string undefined theme theme Theme. "" | "default" | "turva" ""
Events # Event Description Type duetSlideoutEvent Event raised when the menu has been opened. You can prevent the default browser functionality by calling event.detail.originalEvent.preventDefault() inside your listener. Additionally, the passed data is available via event.detail.data . CustomEvent<{ originalEvent: Event; data: { element: HTMLElement; open: boolean; }; component: "duet-slideout"; }>
Methods # hide() => Promise<void> # Hides the slideout dialog and puts focus back to the original element that triggered the slideout (if we’re still in the same view).
Returns # Type: Promise<void>
setFocus(options?: FocusOptions) => Promise<void> # Sets focus. Use this method instead of the global focus().
Parameters # Name Type Description options FocusOptions
Returns # Type: Promise<void>
show() => Promise<void> # Shows the slideout. Additionally saves the element (DuetButton or DuetMenuBarButton) that triggered the slideout so that focus can be moved back to this specific element when the slideout dialog is closed.
Returns # Type: Promise<void>
toggle() => Promise<void> # Toggles the slideout.
Returns # Type: Promise<void>
Slots # Slot Description "sticky-header" Content will be fixed to the top of the modal when scrolling.
Usage # This section includes guidelines for designers and developers about the usage of this component in different contexts.
When to use # When you are using Nav and want to fill its slots with a slideout menu. When not to use # If you are not using Nav. Accessibility # This component has been validated to meet the WCAG 2.1 AA accessibility guidelines. You can find additional information regarding accessibility of this component below.
Underlying component has menu role which marks the component as a menu for screen readers. It can be navigated with arrow keys. Integration For integration, event and theming guidelines, please see Using Components . This
documentation explains how to implement and use Duet’s components across different technologies like Angular, React or Vanilla
JavaScript.
Tutorials Follow these practical tutorials to learn how to build simple page layouts using Duet’s CSS Framework, Web Components and other features:
Troubleshooting If you experience any issues while using a component, please head over to the Support page for
more guidelines and help.