Tabs | Vanilla

Tabs are available in tabbed menu or tabbed sidebar formats.

Tabbed Menus

By default the first tab will be active and open. The following options are available to start with a differnt tab open:

  • Add the class "active" to the li and to the div with the class "dk-tab-content" that should be open
  • Using a query parameter in the url of: ?DATA_TAB_MENU_ID=DATA_TAB_ITEM replacing the values with the data_tab_menu_id and data_tab_item values. Example ?tabbedMenuID=2

The menu tabs will automatically move into an overflow dropdown if they don't all fit. By default this overflow panel will use the label "More" but that can be overriden with a data-overflow-text attribute on the dk-tabbed-menu div.

Tabbed Sidebar

By default the first tab will be active and open. The following options are available to start with a differnt tab open:

  • Add the attribute aria-selected="true" to the button that should be open
  • Using a query parameter in the url of: ?DATA_TAB_SIDEBAR_ID=BUTTON_ID replacing the values with the data_tab_menu_id and data_tab_item values. Example ?tabbedSidebarID=tab2

Screen widths of less than 768px will trigger the javascript to move the markup around so that it works as an accordion. It's important that the markup is setup like the desktop version. If required the breakpoint can be set to 1024 by adding data-tab-break="1024" to the dk-tabbed-sidebar div.

Javascript:

dk.tabbedMenu()
// or
dk.tabbedSidebar()
  • If you want to initialize just one or a couple you can pass a string with a query selector or a NodeList.
  • You can trigger a menu tab to open with the function dk.selectTab("DATA-TAB-MENU-ID","DATA-TAB-ITEM"); replacing the values with the data_tab_menu_id and data_tab_item values. If you want to have it automatically scroll to the tabs use dk.selectTab("DATA-TAB-MENU-ID","DATA-TAB-ITEM", true);

Code Example:

    setTimeout(function () {
    dk.tabbedMenu()
    dk.tabbedSidebar()
    }, 1000);

Code Preview:

Tabbed Menu

<div
        class="dk-tabbed-menu"
        data-tab-menu-id="tabbedMenuID01"
        style="max-width:500px">
        <ul class="dk-tab-list">
            <li
                data-tab-item="1"
                class="dk-tab-item">
                Active Section
            </li>
            <li
                data-tab-item="2"
                class="dk-tab-item active">
                Item Two
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Three
            </li>
        </ul>
        <div class="dk-tab-container">
            <div
                data-tab-item="1"
                class="dk-tab-content">
                <p>Content Goes Here</p>
            </div>
            <div
                data-tab-item="2"
                class="dk-tab-content active">
                <p>Second Content Goes Here</p>
            </div>
            <div
                data-tab-item="3"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
        </div>
    </div>

Javascript

dk => dk.tabbedMenu()

Tabbed Menu Solid Red

<div
        class="dk-tabbed-menu"
        data-tab-theme="solid-red"
        data-tab-menu-id="tabbedMenuID02">
        <ul class="dk-tab-list">
            <li
                data-tab-item="1"
                class="dk-tab-item">
                Active Section
            </li>
            <li
                data-tab-item="2"
                class="dk-tab-item active">
                Item Two
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Three
            </li>
        </ul>
        <div class="dk-tab-container">
            <div
                data-tab-item="1"
                class="dk-tab-content">
                <p>Content Goes Here</p>
            </div>
            <div
                data-tab-item="2"
                class="dk-tab-content active">
                <p>Second Content Goes Here</p>
            </div>
            <div
                data-tab-item="3"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
        </div>
    </div>

Javascript

dk => dk.tabbedMenu()

Tabbed Menu Solid Blurple

<div
        class="dk-tabbed-menu"
        data-tab-theme="solid-blurple"
        data-tab-menu-id="tabbedMenuID03">
        <ul class="dk-tab-list">
            <li
                data-tab-item="1"
                class="dk-tab-item">
                Active Section
            </li>
            <li
                data-tab-item="2"
                class="dk-tab-item active">
                Item Two
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Three
            </li>
        </ul>
        <div class="dk-tab-container">
            <div
                data-tab-item="1"
                class="dk-tab-content">
                <p>Content Goes Here</p>
            </div>
            <div
                data-tab-item="2"
                class="dk-tab-content active">
                <p>Second Content Goes Here</p>
            </div>
            <div
                data-tab-item="3"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
        </div>
    </div>

Javascript

dk => dk.tabbedMenu()

Tabbed Sidebar

<div
        data-tab-sidebar-id="tabbedSidebarID01"
        class="dk-tabbed-sidebar">
        <div
            class="dk-tab__list"
            role="tablist"
            aria-label="tabbedMenuID05">
            <button
                class="dk-tab__item"
                role="tab"
                aria-selected="true"
                aria-controls="tab1-panel"
                id="tab1">
                Active Section
            </button>
            <button
                class="dk-tab__item"
                role="tab"
                aria-controls="tab2-panel"
                id="tab2">
                Second Tab
            </button>
            <button
                class="dk-tab__item"
                role="tab"
                aria-controls="tab3-panel"
                id="tab3">
                Third Tab
            </button>
        </div>
        <div
            id="tab1-panel"
            class="dk-tab__panel"
            role="tabpanel"
            aria-labelledby="tab1">
            <p>Tab 2 content</p>
            <p>
                Lorem ipsum dolor sit amet
                consectetur adipisicing elit.
                Officia similique quod vitae fuga
                inventore facilis eum delectus
                dicta aliquid sunt! Et quasi
                voluptates atque iure eveniet
                ipsam reiciendis sint officia,
                quis laborecorrupti eaque
                accusamus quaerat, sed ab,
                repellendus praesentium.
            </p>
        </div>
        <div
            id="tab2-panel"
            class="dk-tab__panel"
            role="tabpanel"
            aria-labelledby="tab2">
            <p>Content Goes Here 2</p>
            <p>
                Lorem ipsum dolor sit amet
                consectetur adipisicing elit.
                Temporibus, sapiente. Lorem ipsum,
                dolor sit amet consectetur
                adipisicing elit. Non repellendus
                reprehenderit in rem neque
                explicabo, recusandae quibusdam
                illo ullam quam labore. Dolor
                accusamus voluptatem reiciendis
                ducimus facilis aut repellat
                deleniti.
            </p>
        </div>
        <div
            id="tab3-panel"
            class="dk-tab__panel"
            role="tabpanel"
            aria-labelledby="tab3">
            <p>
                Content for tab 3 Goes Here Lorem
                ipsum dolor, sit amet consectetur
                adipisicing elit. Ut quibusdam a
                nemo, et amet deserunt dolore
                maiores saepe doloremque vitae. Ea
                similique illo blanditiis, id
                consequatur molestiae totam
                doloribus dignissimos ad illum
                consectetur assumenda quod labore
                iusto sint enim numquam. Dolor
                unde eaque, quasi distinctio ut
                voluptatem ipsam sapiente optio.
                Lorem amet voluptatem recusandae
                consectetur, aliquam sequi vero
                molestias provident iste vel
                delectus quae beatae, numquam
                distinctio illum voluptates, unde
                facere tempora sunt? Nam nostrum,
                illum accusamus sint dolorem earum
                tempore esse sunt quidem?
            </p>
        </div>
    </div>

Javascript

dk => dk.tabbedSidebar()

Tabbed Menu With More

<div
        class="dk-tabbed-menu"
        data-tab-menu-id="tabbedMenuID04"
        style="max-width:500px">
        <ul class="dk-tab-list">
            <li
                data-tab-item="1"
                class="dk-tab-item">
                Active Section
            </li>
            <li
                data-tab-item="2"
                class="dk-tab-item">
                Item Two
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Three
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Four
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Five
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item">
                Item Six
            </li>
            <li
                data-tab-item="3"
                class="dk-tab-item active">
                Item Seven
            </li>
        </ul>
        <div class="dk-tab-container">
            <div
                data-tab-item="1"
                class="dk-tab-content">
                <p>Content Goes Here</p>
            </div>
            <div
                data-tab-item="2"
                class="dk-tab-content">
                <p>Second Content Goes Here</p>
            </div>
            <div
                data-tab-item="3"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
            <div
                data-tab-item="4"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
            <div
                data-tab-item="5"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
            <div
                data-tab-item="6"
                class="dk-tab-content">
                <p>Third Content Goes Here</p>
            </div>
            <div
                data-tab-item="7"
                class="dk-tab-content active">
                <p>Third Content Goes Here</p>
            </div>
        </div>
    </div>

Javascript

dk => dk.tabbedMenu()