diff --git a/assets/scss/shared-ui/_sidenav.scss b/assets/scss/shared-ui/_sidenav.scss index 810ea952..8aca19ee 100644 --- a/assets/scss/shared-ui/_sidenav.scss +++ b/assets/scss/shared-ui/_sidenav.scss @@ -25,13 +25,10 @@ line-height: 1.5em; list-style: none; - &.current { + &.active { background-color: $sidenav-tab-active-bg-color; border-radius: 20px; - - a { - color: $sidenav-tab-active-color; - } + color: $sidenav-tab-active-color; } .sui-tag, @@ -54,10 +51,20 @@ } } - a { + button { + font-family: $font; + font-size: 15px; + line-height: 1.5em; + font-weight: 500; + text-align: left; + width: 100%; + cursor: pointer; + border: 0; + padding: 0; + background: 0 0; + outline: 0; display: block; color: $sidenav-tab-color; - font-weight: 500; transition: 0.3s ease; &:hover, @@ -74,12 +81,12 @@ background-color: transparent; line-height: auto; - a { + button { padding: 5px 15px; border-radius: 20px; background-color: transparent; - &.current { + &.active { background-color: $sidenav-tab-active-bg-color; color: $sidenav-tab-active-color; } @@ -164,6 +171,15 @@ } } + // sui tab content css + [role="tabpanel"] { + display: none; + + &.active { + display: block; + } + } + .sui-sidenav-sticky { @include media(min-width, lg) { diff --git a/page-sidenav.html b/page-sidenav.html index 903e9b6b..4df6fd77 100644 --- a/page-sidenav.html +++ b/page-sidenav.html @@ -11,24 +11,11 @@
- -Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec sed odio dui. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Maecenas sed diam eget risus varius blandit sit amet non magna. Cras mattis consectetur purus sit amet fermentum. Nulla vitae elit libero, a pharetra augue.
+Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec sed odio dui. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Maecenas sed diam eget risus varius blandit sit amet non magna. Cras mattis consectetur purus sit amet fermentum. Nulla vitae elit libero, a pharetra augue.
+ +<section class="sui-row-with-sidenav"> @@ -107,23 +112,43 @@+Section 3
<!-- Navigation --> <div role="navigation" class="sui-sidenav"> - <ul class="sui-vertical-tabs sui-sidenav-hide-md"> - - <li class="sui-vertical-tab current"> - <a href="#" role="button">Tab 1</a> - </li> - - <li class="sui-vertical-tab"> - <a href="#" role="button">Tab 2</a> - <span class="sui-tag sui-tag-warning">4</span> - </li> - - <li class="sui-vertical-tab"> - <a href="#" role="button">Tab 3</a> - <span class="sui-icon-check-tick" aria-hidden="true"></span> - </li> + <div class="sui-vertical-tabs sui-sidenav-hide-md" role="tablist"> + + <button + id="tab-1" + class="sui-vertical-tab active" + role="tab" + aria-selected="true" + aria-controls="tab-1-controls" + > + Section 1 + </button> + + <button + id="tab-2" + class="sui-vertical-tab" + role="tab" + aria-selected="false" + tabindex="-1" + aria-controls="tab-2-controls" + > + Section 2 + <span class="sui-tag sui-tag-warning">4</span> + </button> + + <button + id="tab-3" + class="sui-vertical-tab" + role="tab" + aria-selected="false" + tabindex="-1" + aria-controls="tab-3-controls" + > + Section 3 + <span class="sui-icon-check-tick" aria-hidden="true"></span> + </button> - </ul> + </div> <div class="sui-sidenav-hide-lg"> @@ -138,17 +163,96 @@Section 3
</div> <!-- SECTION: Tab 1 (Current) --> - <div class="sui-box">...</div> + <div + id="tab-1-controls" + class="sui-box active" + role="tabpanel" + tabindex="0" + aria-labelledby="tab-1" + > + ... + </div> <!-- SECTION: Tab 2 --> - <div class="sui-box" style="display: none;">...</div> + <div + id="tab-2-controls" + class="sui-box" + role="tabpanel" + tabindex="0" + aria-labelledby="tab-2" + > + ... + </div> <!-- SECTION: Tab 3 --> - <div class="sui-box" style="display: none;">...</div> + <div + id="tab-3-controls" + class="sui-box" + role="tabpanel" + tabindex="0" + aria-labelledby="tab-3" + > + ... + </div> </section>
+SUI.tabs({
+ callback: function( tab, panel ) {
+ console.log( tab );
+ console.log( panel );
+ }
+});
+
+
+ callback
It's an anonymous function that will run when you click a tab. You will have access to the clicked tab and the respective panel (tab content).
To get all tabs within the group you can do this inside the anonymous function:
+ ++var wrapper = tab.closest( '.sui-row-with-sidenav' ), +tablist = tab.closest( '[role="tablist"]' ), +tabs = tablist.find( '> .sui-tab-item' ), +panels = wrapper.find( '> .sui-tabs-content > [role="tabpanel"]' ) +; + +console.log( tabs ); +console.log( panels ); ++ +