|
|
--- layout : 'default' css : 'side'
title : 'Sidebar' description : 'A sidebar is a menu hidden beside page content' type : 'UI Module' ---
<script src="/javascript/sidebar.js"></script>
<%- @partial('header', { tabs: 'module' }) %>
<div class="ui styled sidebar"> <h3 class="ui header">You Might Like</h3> <div class="ui fluid vertical menu"> <a class="item"> <i class="chat outline icon"></i> More by this author </a> <a class="item"> <i class="text file icon"></i> Suggested Articles </a> </div> <h3 class="ui header">Contact Us</h3> <div class="ui form"> <div class="field"> <label>Name</label> <div class="ui icon input"> <i class="user icon"></i> <input type="text" data-placeholder="Name"> </div> </div> <div class="field"> <label>Message</label> <textarea></textarea> </div> <div class="ui black fluid button">Submit</div> </div> </div> <div class="ui thin styled sidebar"> <h3 class="ui header">Share</h3> <div class="ui fluid vertical labeled icon buttons"> <div class="ui facebook button"> <i class="facebook icon"></i> Facebook </div> <div class="ui twitter button"> <i class="twitter icon"></i> Twitter </div> <div class="ui google plus button"> <i class="google plus icon"></i> Google </div> </div> </div> <div class="ui very thin styled sidebar"> <div class="ui fluid vertical icon buttons"> <div class="ui facebook button"> <i class="facebook icon"></i> </div> <div class="ui twitter button"> <i class="twitter icon"></i> </div> <div class="ui google plus button"> <i class="google plus icon"></i> </div> </div> </div> <div class="ui wide styled sidebar"> <h3 class="ui header">You Might Like</h3> <div class="ui fluid vertical menu"> <a class="item"> <i class="chat outline icon"></i> More by this author </a> <a class="item"> <i class="text file icon"></i> Suggested Articles </a> </div> </div> <div class="ui very wide styled sidebar"> <h3 class="ui header">Contact Us</h3> <div class="ui form"> <div class="field"> <label>Name</label> <div class="ui icon input"> <i class="user icon"></i> <input type="text" data-placeholder="Name"> </div> </div> <div class="field"> <label>Message</label> <textarea></textarea> </div> <div class="ui black fluid button">Submit</div> </div> </div>
<div class="ui vertical overlay sidebar menu"> <a class="item"> <i class="home icon"></i> Home </a> <a class="active item"> <i class="heart icon"></i> Current Section </a> <a class="item"> <i class="facebook icon"></i> Like us on Facebook </a> <div class="item"> <b>More</b> <div class="menu"> <a class="item">About</a> <a class="item">Contact Us</a> </div> </div> </div> <div class="ui floating vertical sidebar menu"> <a class="item"> <i class="home icon"></i> Home </a> <a class="active item"> <i class="heart icon"></i> Current Section </a> <a class="item"> <i class="facebook icon"></i> Like us on Facebook </a> <div class="item"> <b>More</b> <div class="menu"> <a class="item">About</a> <a class="item">Contact Us</a> </div> </div> </div>
<div class="ui red vertical demo sidebar menu"> <a class="item"> <i class="home icon"></i> Home </a> <a class="active item"> <i class="heart icon"></i> Current Section </a> <a class="item"> <i class="facebook icon"></i> Like us on Facebook </a> <div class="item"> <b>More</b> <div class="menu"> <a class="item">About</a> <a class="item">Contact Us</a> </div> </div> </div> <div class="ui left sidebar vertical menu"> <div class="header item">Left Sidebar menu</div> <a class="item">One</a> <a class="item">Two</a> <a class="item">Three</a> </div> <div class="ui right sidebar inverted red vertical menu"> <div class="header item">Right Sidebar menu</div> <a class="item">One</a> <a class="item">Two</a> <a class="item">Three</a> </div> <div class="ui top inverted teal sidebar menu"> <div class="header item">Top Sidebar menu</div> <a class="item">One</a> <a class="item">Two</a> <a class="item">Three</a> </div> <div class="ui bottom inverted sidebar menu"> <div class="header item">Bottom Sidebar menu</div> <a class="item">One</a> <a class="item">Two</a> <a class="item">Three</a> </div>
<div class="main container">
<div class="ui active tab" data-tab="definition"> <div class="peek"> <div class="ui vertical pointing secondary menu"> <a class="active item">Types</a> <a class="item">Variations</a> </div> </div> <h2 class="ui dividing header">Types</h2>
<div class="no example"> <h4 class="ui header">Direction</h4> <p>A sidebar can appear on any side of content</p> <div class="code" data-type="html"> <div class="ui sidebar">...</div> <div class="ui top sidebar">...</div> <div class="ui right sidebar">...</div> <div class="ui bottom sidebar">...</div> </div> <div class="ui variation toggle buttons"> <div class="ui button" data-variation=".left"> Left </div> <div class="ui button" data-variation=".top"> Top </div> <div class="ui button" data-variation=".right"> Right </div> <div class="ui button" data-variation=".bottom"> Bottom </div> </div> </div>
<h2 class="ui dividing header">Variations</h2>
<div class="no styled example"> <h4 class="ui header">Styled</h4> <p>A sidebar can be formatted to include additional styling for display</p> <div class="code" data-type="html"> <div class="ui styled sidebar">...</div> </div> <div class="ui labeled icon button"> <i class="reorder icon"></i> Show </div> </div>
<div class="no size example"> <h4 class="ui header">Size</h4> <p>A sidebar can vary in width and height to allow more content</p> <div class="code" data-type="html"> <div class="ui very thin sidebar">...</div> <div class="ui thin sidebar">...</div> <div class="ui wide sidebar">...</div> <div class="ui very wide sidebar">...</div> </div> <div class="ui variation toggle buttons"> <div class="ui button" data-variation=".very.thin"> Very Thin </div> <div class="ui button" data-variation=".thin"> Thin </div> <div class="ui button" data-variation=".wide"> Wide </div> <div class="ui button" data-variation=".very.wide"> Very Wide </div> </div> </div>
<div class="no floating example"> <h4 class="ui header">Floating</h4> <p>A sidebar can appear floating above content</p> <div class="code" data-type="html"> <div class="ui floating sidebar">...</div> </div> <div class="ui labeled icon button"> <i class="reorder icon"></i> Show </div> </div>
</div>
<div class="ui tab" data-tab="usage"> <h2 class="ui dividing header">Initializing</h2> <p>Any content can be used as a sidebar by adding the class <code>ui sidebar</code> and initializing the menu in javascript.</p> <div class="ui ignored warning icon message"> <i class="info letter icon"></i> <div class="content"> <div class="header">Fixed Position</div> <p>Fixed position content may have issues changing it's position when a sidebar appears. There are two solutions</p> <ul class="ui list"> <li>Specify your fixed content without using the css left or top properties.</li> <li>Apply styles on the fixed element to adjust its position when the sidebar appears. You can do this by descending from the body tag which receives the class <code>(direction) pushed</code> when the view is moved.</li> </ul> </div> </div> <div class="code" data-label="true" data-type="html"> <div class="ui sidebar"> Any content in the world </div> </div> <div class="code" data-label="true" data-type="javascript"> $('.ui.sidebar') .sidebar() ; </div>
<h2 class="ui dividing header">Usage</h2>
<div class="no example"> <h4 class="ui header">Showing a sidebar</h4> <p>A sidebar can be shown, hidden, or toggled. In the following examples sidebar is used in conjunction with <a href="/collections/menu.html">ui menu</a> to display a vertical menu as a sidebar.</p> <div class="code" data-type="html" data-title="Example HTML"> <div class="ui red vertical demo sidebar menu"> <a class="item"> <i class="home icon"></i> Home </a> <a class="active item"> <i class="heart icon"></i> Current Section </a> <a class="item"> <i class="facebook icon"></i> Like us on Facebook </a> <div class="item"> <b>More</b> <div class="menu"> <a class="item">About</a> <a class="item">Contact Us</a> </div> </div> </div> </div> <div class="code" data-demo="true" data-type="javascript"> $('.demo.sidebar') .sidebar('toggle') ; </div> </div>
<h2 class="ui dividing header">Behavior</h2>
<p>All the following <a href="/module.html#/behavior">behaviors</a> can be called using the syntax:</p> <div class="code"> $('.your.element') .sidebar('behavior name', argumentOne, argumentTwo) ; </div>
<table class="ui definition celled sortable table segment"> <thead> <th>Behavior</th> <th>Description</th> </thead> <tbody> <tr> <td>attach events(selector, event)</td> <td>Attaches sidebar action to given selector. Default event if none specified is toggle</td> </tr> <tr> <td>show</td> <td>Shows sidebar</td> </tr> <tr> <td>hide</td> <td>Hides sidebar</td> </tr> <tr> <td>toggle</td> <td>Toggles visibility of sidebar</td> </tr> <tr> <td>is open</td> <td>Returns whether sidebar is open</td> </tr> <tr> <td>is closed</td> <td>Returns whether sidebar is closed</td> </tr> <tr> <td>push page</td> <td>Pushes page content to be visible alongside sidebar</td> </tr> <tr> <td>get direction</td> <td>Returns direction of current sidebar</td> </tr> <tr> <td>pull page</td> <td>Returns page content to original position</td> </tr> <tr> <td>add body css</td> <td>Adds stylesheet to page head to trigger sidebar animations</td> </tr> <tr> <td>remove body css</td> <td>Removes any inline stylesheets for sidebar animation</td> </tr> <tr> <td>get transition event</td> <td>Returns vendor prefixed transition end event</td> </tr> </tbody> </table>
</div>
<div class="ui tab" data-tab="examples">
<div class="no example"> <h4 class="ui header">Overlay</h4> <p>A sidebar can overlay page content instead of pushing it to the side</p> <div class="code" data-demo="true"> $('.overlay.sidebar') .sidebar({ overlay: true }) .sidebar('toggle') ; </div> </div>
<div class="no example"> <h4 class="ui header">Triggering show/hide with other content</h4> <p>For convenience calling attach events will allow you to bind events. By default this will toggle the sidebar in and out of view on click</p> <div class="code" data-demo="true"> $('.demo.sidebar').first() .sidebar('attach events', '.toggle.button') ; $('.toggle.button') .removeClass('disabled') ; </div> <div class="ui disabled secondary labeled icon toggle button"> <i class="reorder icon"></i> Trigger Sidebar </div> </div>
<div class="no example"> <h4 class="ui header">Triggering custom action with other content</h4> <p>You can also however specify what action should occur when the element is clicked</p> <div class="code" data-demo="true"> $('.demo.sidebar').first() .sidebar('attach events', '.open.button', 'show') ; $('.open.button') .removeClass('disabled') ; </div> <div class="ui disabled secondary labeled icon open button"> <i class="reorder icon"></i> Open Sidebar </div> </div>
</div>
<div class="ui tab" data-tab="settings">
<h3 class="ui header"> Sidebar Settings <div class="sub header">Form settings modify the sidebar behavior</div> </h3> <table class="ui celled sortable definition table segment"> <thead> <th>Setting</th> <th class="four wide">Default</th> <th>Description</th> </thead> <tbody> <tr> <td>overlay</td> <td>false</td> <td>Whether sidebar should overlay page instead of pushing page to the side</td> </tr> <tr> <td>exclusive</td> <td>true</td> <td>Whether multiple sidebars can be open at once</td> </tr> <tr> <td>useCSS</td> <td>true</td> <td>Whether to use css animations or fallback javascript animations</td> </tr> <tr> <td>duration</td> <td>300</td> <td>Duration of side bar transition animation</td> </tr> </tbody> </table>
<div class="ui horizontal section icon divider"><i class="icon setting"></i></div> <h4 class="ui header">Callbacks</h4> <p>Callbacks specify a function to occur after a specific behavior.</p>
<table class="ui celled sortable definition table segment"> <thead> <th class="four wide">Setting</th> <th>Context</th> <th>Description</th> </thead> <tbody> <tr> <td>onShow</td> <td>Sidebar</td> <td>Is called when a sidebar is shown.</td> </tr> <tr> <td>onHide</td> <td>Sidebar</td> <td>Is called when a sidebar is hidden.</td> </tr> <tr> <td>onChange</td> <td>Sidebar</td> <td>Is called after a sidebar changes visibility</td> </tr> </tbody> </table>
<div class="ui horizontal divider"><i class="icon setting"></i></div>
<h3 class="ui header"> DOM Settings <div class="sub header">DOM settings specify how this module should interface with the DOM</div> </h3> <table class="ui celled definition table segment"> <thead> <th>Setting</th> <th class="six wide">Default</th> <th>Description</th> </thead> <tbody> <tr> <td>namespace</td> <td>sidebar</td> <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td> </tr> <tr> <td>className</td> <td> <div class="code"> className: { active : 'active', pushed : 'pushed', top : 'top', left : 'left', right : 'right', bottom : 'bottom' } </div> </td> <td>Class names used to attach style to state</td> </tr> </tbody> </table>
<div class="ui horizontal divider"><i class="icon setting"></i></div>
<h3 class="ui header"> Debug Settings <div class="sub header">Debug settings controls debug output to the console</div> </h3>
<table class="ui celled sortable definition table segment"> <thead> <th>Setting</th> <th class="four wide">Default</th> <th>Description</th> </thead> <tbody> <tr> <td>name</td> <td>Sidebar</td> <td>Name used in debug logs</td> </tr> <tr> <td>debug</td> <td>True</td> <td>Provides standard debug output to console</td> </tr> <tr> <td>performance</td> <td>True</td> <td>Provides standard debug output to console</td> </tr> <tr> <td>verbose</td> <td>True</td> <td>Provides ancillary debug output to console</td> </tr> <tr> <td>errors</td> <td colspan="2"> <div class="code"> error : { method : 'The method you called is not defined.', notFound : 'There were no elements that matched the specified selector' } </div> </td> </tr> </tbody> </table> </div>
</div>
|