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.

654 lines
18 KiB

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