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.

619 lines
17 KiB

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