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.

671 lines
21 KiB

11 years ago
  1. ---
  2. layout : 'default'
  3. css : 'dropdown'
  4. title : 'Dropdown'
  5. description : 'A dropdown is a hidden list of selections that a user can choose to have appear'
  6. type : 'UI Module'
  7. ---
  8. <script src="/javascript/dropdown.js"></script>
  9. <%- @partial('header', { tabs: 'module' }) %>
  10. <div class="main container">
  11. <div class="ui active tab" data-tab="definition">
  12. <div class="peek">
  13. <div class="ui vertical pointing secondary menu">
  14. <a class="active item">Types</a>
  15. <a class="item">Variations</a>
  16. <a class="item">States</a>
  17. </div>
  18. </div>
  19. <h2 class="ui dividing header">Types</h2>
  20. <div class="visible dropdown example">
  21. <h4 class="ui header">Dropdown</h4>
  22. <p>A basic dropdown has no special formatting of its own</p>
  23. <div class="ui dropdown">
  24. <div class="text">Select</div>
  25. <i class="dropdown icon"></i>
  26. <div class="menu">
  27. <div class="item">Edit</div>
  28. <div class="item">Remove</div>
  29. <div class="item">Hide</div>
  30. </div>
  31. </div>
  32. <div class="dropdown example">
  33. <h4 class="ui header">Inline</h4>
  34. <p>A dropdown can be formatted to appear inline in other content</p>
  35. <div>Show me posts trending
  36. <div class="ui inline dropdown">
  37. <div class="text">today</div>
  38. <i class="dropdown icon"></i>
  39. <div class="menu">
  40. <div class="item" data-text="today">Today</div>
  41. <div class="item" data-text="this week">This Week</div>
  42. <div class="item" data-text="this month">This Month</div>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="dropdown example">
  48. <h4 class="ui header">Selection</h4>
  49. <p>A dropdown can be formatted to allow selection of a menu choice.</p>
  50. <div class="ui selection dropdown">
  51. <input type="hidden" name="gender">
  52. <div class="default text">Gender</div>
  53. <i class="dropdown icon"></i>
  54. <div class="menu">
  55. <div class="item" data-value="male">Male</div>
  56. <div class="item" data-value="female">Female</div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="button example">
  61. <h4 class="ui header">Floating</h4>
  62. <p>A dropdown menu can appear to be floating below an element.</p>
  63. <div class="ui teal buttons">
  64. <div class="ui button">Save</div>
  65. <div class="ui teal floating dropdown icon button">
  66. <i class="dropdown icon"></i>
  67. <div class="menu">
  68. <div class="item"><i class="edit icon"></i>Edit Post</div>
  69. <div class="item"><i class="delete icon"></i>Remove Post</div>
  70. <div class="item"><i class="hide icon"></i>Hide Post</div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="hover example">
  76. <h4 class="ui header">Pointing</h4>
  77. <p>A dropdown can be formatted so that its menu is pointing</p>
  78. <div class="ui compact menu">
  79. <div class="menu">
  80. <a class="active item">
  81. <i class="home icon"></i> Home
  82. </a>
  83. <div class="ui pointing dropdown link item">
  84. <i class="icon mail"></i> Messages <i class="dropdown icon"></i>
  85. <div class="menu">
  86. <a class="item"><i class="mail icon"></i>Inbox</a>
  87. <a class="item"><i class="book icon"></i>Archive</a>
  88. </div>
  89. </div>
  90. <a class="item">
  91. <i class="user icon"></i> Browse
  92. </a>
  93. <a class="item">
  94. <i class="question icon"></i> Help
  95. </a>
  96. </div>
  97. </div>
  98. </div>
  99. <div class="another button example">
  100. <div class="ui blue labeled icon top left pointing dropdown button">
  101. <i class="settings icon"></i>
  102. <span class="text">Settings</span>
  103. <div class="menu">
  104. <div class="item"><i class="edit icon"></i>Edit</div>
  105. <div class="item"><i class="delete icon"></i>Remove</div>
  106. <div class="item"><i class="hide icon"></i>Hide</div>
  107. </div>
  108. </div>
  109. <div class="ui red labeled icon top right pointing dropdown button">
  110. <i class="settings icon"></i>
  111. <span class="text">Settings</span>
  112. <div class="menu">
  113. <div class="item"><i class="edit icon"></i>Edit</div>
  114. <div class="item"><i class="delete icon"></i>Remove</div>
  115. <div class="item"><i class="hide icon"></i>Hide</div>
  116. </div>
  117. </div>
  118. </div>
  119. <div class="another button example">
  120. <div class="ui teal right pointing dropdown icon button">
  121. <i class="settings icon"></i>
  122. <div class="menu">
  123. <div class="item"><i class="edit icon"></i>Edit</div>
  124. <div class="item"><i class="delete icon"></i>Remove</div>
  125. <div class="item"><i class="hide icon"></i>Hide</div>
  126. </div>
  127. </div>
  128. <div class="ui green left pointing dropdown icon button">
  129. <i class="settings icon"></i>
  130. <div class="menu">
  131. <div class="item"><i class="edit icon"></i>Edit</div>
  132. <div class="item"><i class="delete icon"></i>Remove</div>
  133. <div class="item"><i class="hide icon"></i>Hide</div>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="example">
  138. <h4 class="ui header">Simple</h4>
  139. <p>A simple dropdown can open without javascript</p>
  140. <div class="ui compact menu">
  141. <div class="ui simple dropdown item">
  142. Dropdown <i class="dropdown icon"></i>
  143. <div class="menu">
  144. <div class="item">Choice 1</div>
  145. <div class="item">Choice 2</div>
  146. <div class="item">Choice 3</div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <h2 class="ui dividing header">Variations</h2>
  152. <div class="dropdown example">
  153. <h4 class="ui header">Fluid</h4>
  154. <p>A dropdown can take the full width of its parent</p>
  155. <div class="ui vertical menu">
  156. <a class="item">Link 1</a>
  157. <a class="item">Link 2</a>
  158. <div class="header item">All Sections</div>
  159. <div class="ui item">
  160. <div class="ui fluid selection dropdown">
  161. <div class="text">More</div>
  162. <i class="dropdown icon"></i>
  163. <div class="menu">
  164. <div class="item">Choice 1</div>
  165. <div class="item">Choice 2</div>
  166. <div class="item">Choice 3</div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <h2 class="ui dividing header">States</h2>
  173. <div class="example">
  174. <h4 class="ui header">Active</h4>
  175. <p>An active dropdown menu has its menu open</p>
  176. <div class="ui compact menu">
  177. <div class="ui simple active dropdown item">
  178. Dropdown <i class="dropdown icon"></i>
  179. <div class="menu">
  180. <div class="item">Choice 1</div>
  181. <div class="item">Choice 2</div>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. <div class="example">
  187. <h4 class="ui header">Disabled</h4>
  188. <p>A disabled dropdown menu will not open or close</p>
  189. <div class="ui menu">
  190. <div class="ui simple disabled dropdown item">
  191. Dropdown <i class="dropdown icon"></i>
  192. <div class="menu">
  193. <div class="item">Choice 1</div>
  194. <div class="item">Choice 2</div>
  195. <div class="item">Choice 3</div>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="ui tab" data-tab="usage">
  202. <h2 class="ui dividing header">Initializing</h2>
  203. <h3 class="ui header">Initializing a dropdown</h3>
  204. <div class="code" data-label="HTML" data-type="html">
  205. <div class="ui dropdown">
  206. <div class="text">Select</div>
  207. <i class="dropdown icon"></i>
  208. <div class="menu">
  209. <div class="item" data-value="option1">Option 1</div>
  210. <div class="item" data-value="option2">Option 2</div>
  211. </div>
  212. </div>
  213. </div>
  214. <div class="code" data-label="Javascript" data-type="javascript">
  215. $('.ui.dropdown')
  216. .dropdown()
  217. ;
  218. </div>
  219. <h2 class="ui dividing header">Behavior</h2>
  220. <div class="no example">
  221. <h4 class="ui header">Show</h4>
  222. <p>A dropdown can show its menu</p>
  223. <div class="ignore code">
  224. $('.ui.dropdown')
  225. .dropdown('show')
  226. ;
  227. </div>
  228. </div>
  229. <div class="no example">
  230. <h4 class="ui header">Hide</h4>
  231. <p>A dropdown can hide its menu</p>
  232. <div class="ignore code">
  233. $('.ui.dropdown')
  234. .dropdown('hide')
  235. ;
  236. </div>
  237. </div>
  238. <div class="no example">
  239. <h4 class="ui header">Toggle</h4>
  240. <p>A dropdown can toggle between menu visibility</p>
  241. <div class="ignore code">
  242. $('.ui.dropdown')
  243. .dropdown('toggle')
  244. ;
  245. </div>
  246. </div>
  247. </div>
  248. <div class="ui tab" data-tab="examples">
  249. <h2 class="ui dividing header">Examples</h2>
  250. <div class="dropdown example">
  251. <h3 class="ui header">Re-selecting values</h3>
  252. <p>A dropdown will automatically select on page load any menu item that includes the currently value of <code>text</code> or your dropdown's hidden input value. This is used to preserve a user's selection on page navigation and will automatically remove and default text placeholder formatting.</p>
  253. Current action: <div class="ui inline dropdown">
  254. <div class="text">Hide</div>
  255. <i class="dropdown icon"></i>
  256. <div class="menu">
  257. <div class="item">Edit</div>
  258. <div class="item">Remove</div>
  259. <div class="item">Hide</div>
  260. </div>
  261. </div>
  262. </div>
  263. <div class="dropdown example">
  264. <h3 class="ui header">Button Group</h3>
  265. <p>A <a href="/elements/button.html">button group</a> can be formatted to show additional content as a dropdown</p>
  266. <div class="ui red icon buttons">
  267. <div class="ui top left pointing dropdown button">
  268. <i class="user icon"></i>
  269. <div class="menu">
  270. <div class="item"><i class="edit icon"></i>Edit User</div>
  271. <div class="item"><i class="delete icon"></i>Remove User</div>
  272. <div class="item"><i class="hide icon"></i>Make Invisible</div>
  273. </div>
  274. </div>
  275. <div class="ui top left pointing dropdown button">
  276. <i class="users icon"></i>
  277. <div class="menu">
  278. <div class="item"><i class="edit icon"></i>Edit Group</div>
  279. <div class="item"><i class="delete icon"></i>Remove Group</div>
  280. <div class="item"><i class="hide icon"></i>Hide from Group</div>
  281. </div>
  282. </div>
  283. <div class="ui top right pointing dropdown button">
  284. <i class="settings icon"></i>
  285. <div class="menu">
  286. <div class="item"><i class="edit icon"></i>Edit</div>
  287. <div class="item"><i class="delete icon"></i>Remove</div>
  288. <div class="item"><i class="hide icon"></i>Hide</div>
  289. </div>
  290. </div>
  291. </div>
  292. </div>
  293. <div class="button example">
  294. <h3 class="ui header">Combo Button</h3>
  295. <p>A <a href="/elements/button.html">button</a> can be formatted with a dropdown</p>
  296. <div class="ui teal buttons">
  297. <div class="ui button">Update Post</div>
  298. <div class="ui teal dropdown icon button">
  299. <i class="dropdown icon"></i>
  300. <div class="menu">
  301. <div class="item"><i class="edit icon"></i>Edit Post</div>
  302. <div class="item"><i class="delete icon"></i>Remove Post</div>
  303. <div class="item"><i class="hide icon"></i>Hide Post</div>
  304. </div>
  305. </div>
  306. </div>
  307. </div>
  308. <div class="dropdown example">
  309. <h3 class="ui header">Multiple Levels</h3>
  310. <p>A dropdown menu can also contain sub menus inside of it</p>
  311. My favorite animal breed is <div class="ui inline dropdown">
  312. <input type="hidden" name="gender">
  313. <div class="text">Shiba Inu</div>
  314. <i class="dropdown icon"></i>
  315. <div class="menu">
  316. <div class="item">
  317. <i class="dropdown icon"></i>
  318. Dogs
  319. <div class="menu">
  320. <div class="item">Shiba Inu</div>
  321. <div class="item">Poodle</div>
  322. <div class="item">Labrador</div>
  323. </div>
  324. </div>
  325. <div class="item">
  326. <i class="dropdown icon"></i>
  327. Cats
  328. <div class="menu">
  329. <div class="item">Aegean</div>
  330. <div class="item">Balinese</div>
  331. <div class="item">Persian</div>
  332. </div>
  333. </div>
  334. </div>
  335. </div>
  336. </div>
  337. <div class="hover example">
  338. <h3 class="ui header">Menu</h3>
  339. <p>A <a href="/collections/menu.html">menu</a> element can contain a dropdown</p>
  340. <div class="ui compact tiered purple inverted menu">
  341. <div class="menu">
  342. <a class="active item">
  343. <i class="icon home"></i> Home
  344. </a>
  345. <a class="ui dropdown item">
  346. <i class="icon mail"></i> Messages <i class="dropdown icon"></i>
  347. <div class="menu">
  348. <div class="item">
  349. <i class="mail icon"></i>Categories
  350. <div class="menu">
  351. <div class="item">Unread</div>
  352. <div class="item">Promotions</div>
  353. <div class="item">Updates</div>
  354. </div>
  355. </div>
  356. <div class="item"><i class="book icon"></i>Archive</div>
  357. </div>
  358. </a>
  359. <a class="item">
  360. <i class="user icon"></i> Browse
  361. </a>
  362. </div>
  363. <div class="sub menu">
  364. <a class="item">Activity Feed</a>
  365. <a class="item">Profile</a>
  366. <a class="item">Events</a>
  367. </div>
  368. </div>
  369. </div>
  370. <div class="dropdown example">
  371. <h3 class="ui header">Form</h3>
  372. <p>A dropdown can be formatted to allow selection inside a <a href="/collections/form.html">form</a></p>
  373. <div class="ui form segment">
  374. <p>Let's go ahead and get you signed up.</p>
  375. <div class="two fields">
  376. <div class="field">
  377. <label>First Name</label>
  378. <input placeholder="First Name" type="text">
  379. </div>
  380. <div class="field">
  381. <label>Last Name</label>
  382. <input placeholder="Last Name" type="text">
  383. </div>
  384. </div>
  385. <div class="field">
  386. <label>Gender</label>
  387. <div class="ui dropdown selection">
  388. <input type="hidden" name="gender">
  389. <i class="dropdown icon"></i>
  390. <div class="default text">...</div>
  391. <div class="menu">
  392. <div class="item" data-value="male">Male</div>
  393. <div class="item" data-value="female">Female</div>
  394. </div>
  395. </div>
  396. </div>
  397. </div>
  398. </div>
  399. <div class="transition example">
  400. <h3 class="ui header">Transitions</h3>
  401. <p>A dropdown can have different <a href="/modules/transition.html">transitions</a>.</p>
  402. <div class="ui teal buttons">
  403. <div class="ui button">Toggle</div>
  404. <div class="ui teal floating dropdown icon button">
  405. <i class="dropdown icon"></i>
  406. <div class="menu">
  407. <div class="item" data-value="horizontal flip">Horizontal Flip</div>
  408. <div class="item" data-value="fade up">Fade Up</div>
  409. <div class="item" data-value="scale">Scale</div>
  410. </div>
  411. </div>
  412. </div>
  413. </div>
  414. </div>
  415. <div class="ui tab" data-tab="settings">
  416. <h2 class="ui dividing header">Settings</h2>
  417. <div class="no example">
  418. <h4 class="ui header">Dropdown Settings</h4>
  419. <p>Dropdown settings modify the dropdown's behavior</p>
  420. <table class="ui celled sortable definition table segment">
  421. <thead>
  422. <th>Setting</th>
  423. <th class="four wide">Default</th>
  424. <th>Description</th>
  425. </thead>
  426. <tbody>
  427. <tr>
  428. <td>on</td>
  429. <td>click</td>
  430. <td>Event used to trigger dropdown (Hover, Click)</td>
  431. </tr>
  432. <tr>
  433. <td>delay</td>
  434. <td>
  435. <div class="code">
  436. delay: {
  437. show: 50,
  438. hide: 300
  439. }
  440. </div>
  441. </td>
  442. <td>Time in milliseconds to debounce show or hide behavior when <code>on: hover</code> is used.</td>
  443. </tr>
  444. <tr>
  445. <td>transition</td>
  446. <td>
  447. slide down
  448. </td>
  449. <td>Named transition to use when animating menu in and out. Fade and slide down are available without including <a href="/modules/transition.html">ui transitions</a></td>
  450. </tr>
  451. <tr>
  452. <td>duration</td>
  453. <td>
  454. 250
  455. </td>
  456. <td>Duration of animation events</td>
  457. </tr>
  458. <tr>
  459. <td>action</td>
  460. <td>auto</td>
  461. <td>Sets a default action to occur.
  462. <div class="ui vertical divided list">
  463. <div class="item">
  464. <div class="header">activate</div>
  465. <div class="description">Most likely action will be determined by type of dropdown, for example a selection dropdown will automatically use updateForm</div>
  466. </div>
  467. <div class="item">
  468. <div class="header">nothing</div>
  469. <div class="description">no action occurs</div>
  470. </div>
  471. <div class="item">
  472. <div class="header">hide</div>
  473. <div class="description">Dropdown menu is hidden</div>
  474. </div>
  475. <div class="item">
  476. <div class="header">activate</div>
  477. <div class="description">Dropdown menu is hidden, item activated and text is changed</div>
  478. </div>
  479. <div class="item">
  480. <div class="header">function(){}</div>
  481. <div class="description">custom function is executed</div>
  482. </div>
  483. </div>
  484. </tr>
  485. </tbody>
  486. </table>
  487. <div class="ui horizontal section divider"><i class="icon setting"></i></div>
  488. <h4 class="ui header">Callbacks</h4>
  489. <p>Callback settings specify a function to occur after a specific behavior.</p>
  490. <table class="ui celled sortable definition table segment">
  491. <thead>
  492. <th class="four wide">Setting</th>
  493. <th>Context</th>
  494. <th>Description</th>
  495. </thead>
  496. <tbody>
  497. <tr>
  498. <td>onChange(value, text)</td>
  499. <td>Dropdown</td>
  500. <td>Is called after a dropdown item is selected. Receieves the name and value of selection.</td>
  501. </tr>
  502. <tr>
  503. <td>onShow</td>
  504. <td>Dropdown</td>
  505. <td>Is called after a dropdown is shown.</td>
  506. </tr>
  507. <tr>
  508. <td>onHide</td>
  509. <td>Dropdown</td>
  510. <td>Is called after a dropdown is hidden.</td>
  511. </tr>
  512. </tbody>
  513. </table>
  514. </div>
  515. <div class="no example">
  516. <h4 class="ui header">DOM Settings</h4>
  517. <p>DOM settings specify how this module should interface with the DOM</p>
  518. <table class="ui celled sortable definition table segment">
  519. <thead>
  520. <th>Setting</th>
  521. <th class="four wide">Default</th>
  522. <th>Description</th>
  523. </thead>
  524. <tbody>
  525. <tr>
  526. <td>namespace</td>
  527. <td>dropdown</td>
  528. <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>
  529. </tr>
  530. <tr>
  531. <td>selector</td>
  532. <td colspan="2">
  533. <div class="code">
  534. selector : {
  535. input : '> input[type="hidden"]',
  536. item : '.menu > .item',
  537. menu : '.menu',
  538. text : '> .text'
  539. }
  540. </div>
  541. </td>
  542. </tr>
  543. <tr>
  544. <td>metadata</td>
  545. <td colspan="2">
  546. <div class="code">
  547. metadata: {
  548. text : 'text',
  549. value : 'value'
  550. }
  551. </div>
  552. </td>
  553. </tr>
  554. <tr>
  555. <td>className</td>
  556. <td colspan="2">
  557. <div class="code">
  558. className : {
  559. active : 'active',
  560. disabled : 'disabled',
  561. placeholder : 'default',
  562. visible : 'visible'
  563. }
  564. </div>
  565. </td>
  566. </tr>
  567. </tbody>
  568. </table>
  569. </div>
  570. <div class="no example">
  571. <h4 class="ui header">Debug Settings</h4>
  572. <p>Debug settings controls debug output to the console</p>
  573. <table class="ui celled sortable definition table segment">
  574. <thead>
  575. <th>Setting</th>
  576. <th class="four wide">Default</th>
  577. <th>Description</th>
  578. </thead>
  579. <tbody>
  580. <tr>
  581. <td>name</td>
  582. <td>Dropdown</td>
  583. <td>Name used in debug logs</td>
  584. </tr>
  585. <tr>
  586. <td>debug</td>
  587. <td>True</td>
  588. <td>Provides standard debug output to console</td>
  589. </tr>
  590. <tr>
  591. <td>performance</td>
  592. <td>True</td>
  593. <td>Provides standard debug output to console</td>
  594. </tr>
  595. <tr>
  596. <td>verbose</td>
  597. <td>True</td>
  598. <td>Provides ancillary debug output to console</td>
  599. </tr>
  600. <tr>
  601. <td>error</td>
  602. <td colspan="2">
  603. <div class="code">
  604. error : {
  605. action : 'You called a dropdown action that was not defined',
  606. method : 'The method you called is not defined.',
  607. transition : 'The requested transition was not found'
  608. }
  609. </div>
  610. </td>
  611. </tr>
  612. </tbody>
  613. </table>
  614. </div>
  615. </div>
  616. </div>
  617. </body>
  618. </html>