You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

725 lines
20 KiB

10 years ago
10 years ago
10 years ago
  1. ---
  2. layout : 'default'
  3. css : ''
  4. element : 'sidebar'
  5. elementType : 'element'
  6. title : 'Sidebar'
  7. description : 'A sidebar hides additional content beside a page.'
  8. type : 'UI Module'
  9. themes : ['Default']
  10. ---
  11. <script src="/javascript/sidebar.js"></script>
  12. <%- @partial('header', { tabs: 'module' }) %>
  13. <div class="main container">
  14. <div class="ui active tab" data-tab="definition">
  15. <h2 class="ui dividing header">Types</h2>
  16. <div class="no left example">
  17. <h4 class="ui header">Transitions</h4>
  18. <p>A sidebar can use different transitions to display itself</p>
  19. <div class="ui ignored message">
  20. <p>Browsers that do not support <code>translate3D</code>, like <b>IE < 10</b> will automatically fall back to javascript transitions, you can also force this behavior using <code>useLegacy: true</code>.</p>
  21. </div>
  22. <div class="code" data-label="Javascript" data-type="javascript">
  23. $('.ui.sidebar')
  24. .sidebar({
  25. transition: 'push'
  26. })
  27. ;
  28. </div>
  29. <div class="ui button" data-transition="overlay">
  30. Overlay
  31. </div>
  32. <div class="ui button" data-transition="push">
  33. Push
  34. </div>
  35. <div class="ui button" data-transition="uncover">
  36. Uncover
  37. </div>
  38. <div class="ui button" data-transition="slide along">
  39. Slide Along
  40. </div>
  41. <div class="ui button" data-transition="slide out">
  42. Slide Out
  43. </div>
  44. <div class="ui button" data-transition="scale down">
  45. Scale Down
  46. </div>
  47. <div class="ui button" data-transition="safe">
  48. Safe
  49. </div>
  50. </div>
  51. <div class="no direction example">
  52. <h4 class="ui header">Direction</h4>
  53. <div class="ui ignored warning message">Only <b>top</b> and <b>bottom</b> sidebars support dropdown menus. This is because elements with scrollbars cannot have absolutely positioned content escape the container.</div>
  54. <div class="ui ignored info message">
  55. Only <b>left</b> and <b>right</b> sidebars support all animations. Top and bottom sidebars must overlay page content.
  56. </div>
  57. <p>A sidebar can appear on different sides of the page</p>
  58. <div class="ui button" data-direction="left">
  59. Left
  60. </div>
  61. <div class="ui button" data-direction="right">
  62. Right
  63. </div>
  64. <div class="ui button" data-direction="top">
  65. Top
  66. </div>
  67. <div class="ui button" data-direction="bottom">
  68. Bottom
  69. </div>
  70. </div>
  71. <h2 class="ui dividing header">Variations</h2>
  72. <div class="no styled example">
  73. <h4 class="ui header">Styled</h4>
  74. <p>A sidebar can be formatted to include additional styling for display</p>
  75. <div class="code" data-type="html">
  76. <div class="ui styled sidebar">...</div>
  77. </div>
  78. <div class="ui labeled icon button">
  79. <i class="left arrow icon"></i>
  80. Show
  81. </div>
  82. </div>
  83. <div class="no size example">
  84. <h4 class="ui header">Size</h4>
  85. <p>A sidebar can vary in width and height to allow more content</p>
  86. <div class="code" data-type="html">
  87. <div class="ui very thin sidebar">...</div>
  88. <div class="ui thin sidebar">...</div>
  89. <div class="ui wide sidebar">...</div>
  90. <div class="ui very wide sidebar">...</div>
  91. </div>
  92. <div class="ui variation toggle buttons">
  93. <div class="ui button" data-variation=".very.thin">
  94. Very Thin
  95. </div>
  96. <div class="ui button" data-variation=".thin">
  97. Thin
  98. </div>
  99. <div class="ui button" data-variation=".wide">
  100. Wide
  101. </div>
  102. <div class="ui button" data-variation=".very.wide">
  103. Very Wide
  104. </div>
  105. </div>
  106. </div>
  107. <div class="no floating example">
  108. <h4 class="ui header">Floating</h4>
  109. <p>A sidebar can appear floating above content</p>
  110. <div class="code" data-type="html">
  111. <div class="ui floating sidebar">...</div>
  112. </div>
  113. <div class="ui labeled icon button">
  114. <i class="left arrow icon"></i>
  115. Show
  116. </div>
  117. </div>
  118. </div>
  119. <div class="ui tab" data-tab="usage">
  120. <h2 class="ui dividing header">Initializing</h2>
  121. <p>Any content can be used as a sidebar by adding the class <code>ui sidebar</code> and initializing the menu in javascript.</p>
  122. <div class="ui ignored warning icon message">
  123. <i class="info letter icon"></i>
  124. <div class="content">
  125. <div class="header">Fixed Position</div>
  126. <p>Fixed position content may have issues changing it's position when a sidebar appears. There are two solutions</p>
  127. <ul class="ui list">
  128. <li>Specify your fixed content without using the css left or top properties.</li>
  129. <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>
  130. </ul>
  131. </div>
  132. </div>
  133. <div class="code" data-label="true" data-type="html">
  134. <div class="ui sidebar">
  135. Any content in the world
  136. </div>
  137. </div>
  138. <div class="code" data-label="true" data-type="javascript">
  139. $('.ui.sidebar')
  140. .sidebar()
  141. ;
  142. </div>
  143. <h2 class="ui dividing header">Usage</h2>
  144. <div class="ui ignored info message">
  145. A safe transition does not use <code>translate3D</code>, this means it will not modify <code>position: fixed</code> inside your document, and you can use fixed elements inside your <code>.pusher .page</code>
  146. </div>
  147. <div class="no example">
  148. <h4 class="ui header">Showing a sidebar</h4>
  149. <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>
  150. <div class="code" data-type="html" data-title="Example HTML">
  151. <div class="ui red vertical demo sidebar menu">
  152. <a class="item">
  153. <i class="home icon"></i>
  154. Home
  155. </a>
  156. <a class="active item">
  157. <i class="heart icon"></i>
  158. Current Section
  159. </a>
  160. <a class="item">
  161. <i class="facebook icon"></i>
  162. Like us on Facebook
  163. </a>
  164. <div class="item">
  165. <b>More</b>
  166. <div class="menu">
  167. <a class="item">About</a>
  168. <a class="item">Contact Us</a>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <div class="code" data-demo="true" data-type="javascript">
  174. $('.demo.sidebar')
  175. .sidebar('toggle')
  176. ;
  177. </div>
  178. </div>
  179. <h2 class="ui dividing header">Behavior</h2>
  180. <p>All the following <a href="/module.html#/behavior">behaviors</a> can be called using the syntax:</p>
  181. <div class="code">
  182. $('.your.element')
  183. .sidebar('behavior name', argumentOne, argumentTwo)
  184. ;
  185. </div>
  186. <table class="ui definition celled sortable table segment">
  187. <thead>
  188. <tr>
  189. <th>Behavior</th>
  190. <th>Description</th>
  191. </tr>
  192. </thead>
  193. <tbody>
  194. <tr>
  195. <td>attach events(selector, event)</td>
  196. <td>Attaches sidebar action to given selector. Default event if none specified is toggle</td>
  197. </tr>
  198. <tr>
  199. <td>show</td>
  200. <td>Shows sidebar</td>
  201. </tr>
  202. <tr>
  203. <td>hide</td>
  204. <td>Hides sidebar</td>
  205. </tr>
  206. <tr>
  207. <td>toggle</td>
  208. <td>Toggles visibility of sidebar</td>
  209. </tr>
  210. <tr>
  211. <td>is open</td>
  212. <td>Returns whether sidebar is open</td>
  213. </tr>
  214. <tr>
  215. <td>is closed</td>
  216. <td>Returns whether sidebar is closed</td>
  217. </tr>
  218. <tr>
  219. <td>push page</td>
  220. <td>Pushes page content to be visible alongside sidebar</td>
  221. </tr>
  222. <tr>
  223. <td>get direction</td>
  224. <td>Returns direction of current sidebar</td>
  225. </tr>
  226. <tr>
  227. <td>pull page</td>
  228. <td>Returns page content to original position</td>
  229. </tr>
  230. <tr>
  231. <td>add body css</td>
  232. <td>Adds stylesheet to page head to trigger sidebar animations</td>
  233. </tr>
  234. <tr>
  235. <td>remove body css</td>
  236. <td>Removes any inline stylesheets for sidebar animation</td>
  237. </tr>
  238. <tr>
  239. <td>get transition event</td>
  240. <td>Returns vendor prefixed transition end event</td>
  241. </tr>
  242. </tbody>
  243. </table>
  244. </div>
  245. <div class="ui tab" data-tab="examples">
  246. <div class="no example">
  247. <h4 class="ui header">Triggering show/hide with other content</h4>
  248. <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>
  249. <div class="code" data-demo="true">
  250. $('.demo.sidebar').first()
  251. .sidebar('attach events', '.toggle.button')
  252. ;
  253. $('.toggle.button')
  254. .removeClass('disabled')
  255. ;
  256. </div>
  257. <div class="ui disabled secondary labeled icon toggle button">
  258. <i class="left arrow icon"></i>
  259. Trigger Sidebar
  260. </div>
  261. </div>
  262. <div class="no example">
  263. <h4 class="ui header">Triggering custom action with other content</h4>
  264. <p>You can also however specify what action should occur when the element is clicked</p>
  265. <div class="code" data-demo="true">
  266. $('.demo.sidebar').first()
  267. .sidebar('attach events', '.open.button', 'show')
  268. ;
  269. $('.open.button')
  270. .removeClass('disabled')
  271. ;
  272. </div>
  273. <div class="ui disabled secondary labeled icon open button">
  274. <i class="left arrow icon"></i>
  275. Open Sidebar
  276. </div>
  277. </div>
  278. </div>
  279. <div class="ui tab" data-tab="settings">
  280. <h3 class="ui header">
  281. Sidebar Settings
  282. <div class="sub header">Form settings modify the sidebar behavior</div>
  283. </h3>
  284. <table class="ui celled sortable definition table segment">
  285. <thead>
  286. <tr>
  287. <th>Setting</th>
  288. <th class="four wide">Default</th>
  289. <th>Description</th>
  290. </tr>
  291. </thead>
  292. <tbody>
  293. <tr>
  294. <td>overlay</td>
  295. <td>false</td>
  296. <td>Whether sidebar should overlay page instead of pushing page to the side</td>
  297. </tr>
  298. <tr>
  299. <td>exclusive</td>
  300. <td>true</td>
  301. <td>Whether multiple sidebars can be open at once</td>
  302. </tr>
  303. <tr>
  304. <td>useCSS</td>
  305. <td>true</td>
  306. <td>Whether to use css animations or fallback javascript animations</td>
  307. </tr>
  308. <tr>
  309. <td>duration</td>
  310. <td>300</td>
  311. <td>Duration of side bar transition animation</td>
  312. </tr>
  313. </tbody>
  314. </table>
  315. <div class="ui horizontal section icon divider"><i class="icon setting"></i></div>
  316. <h4 class="ui header">Callbacks</h4>
  317. <p>Callbacks specify a function to occur after a specific behavior.</p>
  318. <table class="ui celled sortable definition table segment">
  319. <thead>
  320. <tr>
  321. <th class="four wide">Setting</th>
  322. <th>Context</th>
  323. <th>Description</th>
  324. </tr>
  325. </thead>
  326. <tbody>
  327. <tr>
  328. <td>onShow</td>
  329. <td>Sidebar</td>
  330. <td>Is called when a sidebar is shown.</td>
  331. </tr>
  332. <tr>
  333. <td>onHide</td>
  334. <td>Sidebar</td>
  335. <td>Is called when a sidebar is hidden.</td>
  336. </tr>
  337. <tr>
  338. <td>onChange</td>
  339. <td>Sidebar</td>
  340. <td>Is called after a sidebar changes visibility</td>
  341. </tr>
  342. </tbody>
  343. </table>
  344. <div class="ui horizontal divider"><i class="icon setting"></i></div>
  345. <h3 class="ui header">
  346. DOM Settings
  347. <div class="sub header">DOM settings specify how this module should interface with the DOM</div>
  348. </h3>
  349. <table class="ui celled definition table segment">
  350. <thead>
  351. <tr>
  352. <th>Setting</th>
  353. <th class="six wide">Default</th>
  354. <th>Description</th>
  355. </tr>
  356. </thead>
  357. <tbody>
  358. <tr>
  359. <td>namespace</td>
  360. <td>sidebar</td>
  361. <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>
  362. </tr>
  363. <tr>
  364. <td>className</td>
  365. <td>
  366. <div class="code">
  367. className: {
  368. active : 'active',
  369. pushed : 'pushed',
  370. top : 'top',
  371. left : 'left',
  372. right : 'right',
  373. bottom : 'bottom'
  374. }
  375. </div>
  376. </td>
  377. <td>Class names used to attach style to state</td>
  378. </tr>
  379. </tbody>
  380. </table>
  381. <div class="ui horizontal divider"><i class="icon setting"></i></div>
  382. <h3 class="ui header">
  383. Debug Settings
  384. <div class="sub header">Debug settings controls debug output to the console</div>
  385. </h3>
  386. <table class="ui celled sortable definition table segment">
  387. <thead>
  388. <tr>
  389. <th>Setting</th>
  390. <th class="four wide">Default</th>
  391. <th>Description</th>
  392. </tr>
  393. </thead>
  394. <tbody>
  395. <tr>
  396. <td>name</td>
  397. <td>Sidebar</td>
  398. <td>Name used in debug logs</td>
  399. </tr>
  400. <tr>
  401. <td>debug</td>
  402. <td>True</td>
  403. <td>Provides standard debug output to console</td>
  404. </tr>
  405. <tr>
  406. <td>performance</td>
  407. <td>True</td>
  408. <td>Provides standard debug output to console</td>
  409. </tr>
  410. <tr>
  411. <td>verbose</td>
  412. <td>True</td>
  413. <td>Provides ancillary debug output to console</td>
  414. </tr>
  415. <tr>
  416. <td>errors</td>
  417. <td colspan="2">
  418. <div class="code">
  419. error : {
  420. method : 'The method you called is not defined.',
  421. notFound : 'There were no elements that matched the specified selector'
  422. }
  423. </div>
  424. </td>
  425. </tr>
  426. </tbody>
  427. </table>
  428. </div>
  429. </div>
  430. <div class="ui styled sidebar">
  431. <h3 class="ui header">You Might Like</h3>
  432. <div class="ui fluid vertical menu">
  433. <a class="item">
  434. <i class="chat outline icon"></i>
  435. More by this author
  436. </a>
  437. <a class="item">
  438. <i class="text file icon"></i>
  439. Suggested Articles
  440. </a>
  441. </div>
  442. <h3 class="ui header">Contact Us</h3>
  443. <div class="ui form">
  444. <div class="field">
  445. <label>Name</label>
  446. <div class="ui icon input">
  447. <i class="user icon"></i>
  448. <input type="text" data-placeholder="Name">
  449. </div>
  450. </div>
  451. <div class="field">
  452. <label>Message</label>
  453. <textarea></textarea>
  454. </div>
  455. <div class="ui black fluid button">Submit</div>
  456. </div>
  457. </div>
  458. <div class="ui thin styled sidebar">
  459. <h3 class="ui header">Share</h3>
  460. <div class="ui fluid vertical labeled icon buttons">
  461. <div class="ui facebook button">
  462. <i class="facebook icon"></i>
  463. Facebook
  464. </div>
  465. <div class="ui twitter button">
  466. <i class="twitter icon"></i>
  467. Twitter
  468. </div>
  469. <div class="ui google plus button">
  470. <i class="google plus icon"></i>
  471. Google
  472. </div>
  473. </div>
  474. </div>
  475. <div class="ui very thin styled sidebar">
  476. <div class="ui fluid vertical icon buttons">
  477. <div class="ui facebook button">
  478. <i class="facebook icon"></i>
  479. </div>
  480. <div class="ui twitter button">
  481. <i class="twitter icon"></i>
  482. </div>
  483. <div class="ui google plus button">
  484. <i class="google plus icon"></i>
  485. </div>
  486. </div>
  487. </div>
  488. <div class="ui wide styled sidebar">
  489. <h3 class="ui header">You Might Like</h3>
  490. <div class="ui fluid vertical menu">
  491. <a class="item">
  492. <i class="chat outline icon"></i>
  493. More by this author
  494. </a>
  495. <a class="item">
  496. <i class="text file icon"></i>
  497. Suggested Articles
  498. </a>
  499. </div>
  500. </div>
  501. <div class="ui very wide styled sidebar">
  502. <h3 class="ui header">Contact Us</h3>
  503. <div class="ui form">
  504. <div class="field">
  505. <label>Name</label>
  506. <div class="ui icon input">
  507. <i class="user icon"></i>
  508. <input type="text" data-placeholder="Name">
  509. </div>
  510. </div>
  511. <div class="field">
  512. <label>Message</label>
  513. <textarea></textarea>
  514. </div>
  515. <div class="ui black fluid button">Submit</div>
  516. </div>
  517. </div>
  518. <div class="ui vertical overlay sidebar menu">
  519. <a class="item">
  520. <i class="home icon"></i>
  521. Home
  522. </a>
  523. <a class="active item">
  524. <i class="heart icon"></i>
  525. Current Section
  526. </a>
  527. <a class="item">
  528. <i class="facebook icon"></i>
  529. Like us on Facebook
  530. </a>
  531. <div class="item">
  532. <b>More</b>
  533. <div class="menu">
  534. <a class="item">About</a>
  535. <a class="item">Contact Us</a>
  536. </div>
  537. </div>
  538. </div>
  539. <div class="ui floating vertical sidebar menu">
  540. <a class="item">
  541. <i class="home icon"></i>
  542. Home
  543. </a>
  544. <a class="active item">
  545. <i class="heart icon"></i>
  546. Current Section
  547. </a>
  548. <a class="item">
  549. <i class="facebook icon"></i>
  550. Like us on Facebook
  551. </a>
  552. <div class="item">
  553. <b>More</b>
  554. <div class="menu">
  555. <a class="item">About</a>
  556. <a class="item">Contact Us</a>
  557. </div>
  558. </div>
  559. </div>
  560. <div class="ui red vertical demo sidebar menu">
  561. <a class="item">
  562. <i class="home icon"></i>
  563. Home
  564. </a>
  565. <a class="active item">
  566. <i class="heart icon"></i>
  567. Current Section
  568. </a>
  569. <a class="item">
  570. <i class="facebook icon"></i>
  571. Like us on Facebook
  572. </a>
  573. <div class="item">
  574. <b>More</b>
  575. <div class="menu">
  576. <a class="item">About</a>
  577. <a class="item">Contact Us</a>
  578. </div>
  579. </div>
  580. </div>
  581. <div class="ui left sidebar vertical inverted menu">
  582. <a class="header item">Categories</a>
  583. <a class="item">World</a>
  584. <a class="item">U.S.</a>
  585. <a class="item">Business</a>
  586. <a class="item">Opinion</a>
  587. <a class="item">Technology</a>
  588. <a class="item">Health</a>
  589. <a class="item">Sports</a>
  590. </div>
  591. <div class="ui right vertical inverted sidebar menu">
  592. <a class="header item">File Permissions</a>
  593. <a class="item">Share on Social</a>
  594. <a class="item">Share by E-mail</a>
  595. <a class="item">Edit Permissions</a>
  596. <a class="item">Delete Permanently</a>
  597. </div>
  598. <div class="ui top inverted sidebar menu">
  599. <div class="menu">
  600. <a class="item">
  601. Home
  602. </a>
  603. <div class="ui pointing dropdown link item">
  604. <i class="dropdown icon"></i>
  605. Shopping
  606. <div class="menu">
  607. <div class="header">Categories</div>
  608. <div class="item">
  609. <i class="dropdown icon"></i>
  610. Clothing
  611. <div class="menu">
  612. <div class="header">Mens</div>
  613. <div class="item">Shirts</div>
  614. <div class="item">Pants</div>
  615. <div class="item">Jeans</div>
  616. <div class="item">Shoes</div>
  617. <div class="divider"></div>
  618. <div class="header">Womens</div>
  619. <div class="item">Dresses</div>
  620. <div class="item">Shoes</div>
  621. <div class="item">Bags</div>
  622. </div>
  623. </div>
  624. <div class="item">Home Goods</div>
  625. <div class="item">Bedroom</div>
  626. <div class="divider"></div>
  627. <div class="header">Order</div>
  628. <div class="item">Status</div>
  629. <div class="item">Cancellations</div>
  630. </div>
  631. </div>
  632. <a class="item">
  633. Forums
  634. </a>
  635. <a class="item">
  636. Contact Us
  637. </a>
  638. </div>
  639. </div><div class="ui bottom inverted sidebar menu">
  640. <div class="menu">
  641. <a class="item">
  642. Home
  643. </a>
  644. <div class="ui bottom pointing dropdown link item">
  645. <i class="dropdown icon"></i>
  646. Shopping
  647. <div class="menu">
  648. <div class="header">Categories</div>
  649. <div class="item">
  650. <i class="dropdown icon"></i>
  651. Clothing
  652. <div class="menu">
  653. <div class="header">Mens</div>
  654. <div class="item">Shirts</div>
  655. <div class="item">Pants</div>
  656. <div class="item">Jeans</div>
  657. <div class="item">Shoes</div>
  658. <div class="divider"></div>
  659. <div class="header">Womens</div>
  660. <div class="item">Dresses</div>
  661. <div class="item">Shoes</div>
  662. <div class="item">Bags</div>
  663. </div>
  664. </div>
  665. <div class="item">Home Goods</div>
  666. <div class="item">Bedroom</div>
  667. <div class="divider"></div>
  668. <div class="header">Order</div>
  669. <div class="item">Status</div>
  670. <div class="item">Cancellations</div>
  671. </div>
  672. </div>
  673. <a class="item">
  674. Forums
  675. </a>
  676. <a class="item">
  677. Contact Us
  678. </a>
  679. </div>
  680. </div>