dropdown.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. ---
  2. layout: documentation
  3. doc-tab: components
  4. doc-subtab: dropdown
  5. variables:
  6. - name: $dropdown-content-background-color
  7. value: $white
  8. - name: $dropdown-content-arrow
  9. value: $link
  10. - name: $dropdown-content-offset
  11. value: 4px
  12. - name: $dropdown-content-radius
  13. value: $radius
  14. - name: $dropdown-content-shadow
  15. value: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1)
  16. - name: $dropdown-content-z
  17. value: 20
  18. - name: $dropdown-item-color
  19. value: $grey-dark
  20. - name: $dropdown-item-hover-color
  21. value: $black
  22. - name: $dropdown-item-hover-background-color
  23. value: $background
  24. - name: $dropdown-item-active-color
  25. value: $primary-invert
  26. - name: $dropdown-item-active-background-color
  27. value: $primary
  28. - name: $dropdown-divider-background-color
  29. value: $border
  30. ---
  31. {% capture dropdown_example %}
  32. <div class="dropdown is-active">
  33. <div class="dropdown-trigger">
  34. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu">
  35. <span>Dropdown button</span>
  36. <span class="icon is-small">
  37. <i class="fa fa-angle-down" aria-hidden="true"></i>
  38. </span>
  39. </button>
  40. </div>
  41. <div class="dropdown-menu" id="dropdown-menu" role="menu">
  42. <div class="dropdown-content">
  43. <a href="#" class="dropdown-item">
  44. Dropdown item
  45. </a>
  46. <a class="dropdown-item">
  47. Other dropdown item
  48. </a>
  49. <a href="#" class="dropdown-item is-active">
  50. Active dropdown item
  51. </a>
  52. <a href="#" class="dropdown-item">
  53. Other dropdown item
  54. </a>
  55. <hr class="dropdown-divider">
  56. <a href="#" class="dropdown-item">
  57. With a divider
  58. </a>
  59. </div>
  60. </div>
  61. </div>
  62. {% endcapture %}
  63. {% capture dropdown_content_example %}
  64. <div class="dropdown is-active">
  65. <div class="dropdown-trigger">
  66. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu2">
  67. <span>Content</span>
  68. <span class="icon is-small">
  69. <i class="fa fa-angle-down" aria-hidden="true"></i>
  70. </span>
  71. </button>
  72. </div>
  73. <div class="dropdown-menu" id="dropdown-menu2" role="menu">
  74. <div class="dropdown-content">
  75. <div class="dropdown-item">
  76. <p>You can insert <strong>any type of content</strong> within the dropdown menu.</p>
  77. </div>
  78. <hr class="dropdown-divider">
  79. <div class="dropdown-item">
  80. <p>You simply need to use a <code>&lt;div&gt;</code> instead.</p>
  81. </div>
  82. <hr class="dropdown-divider">
  83. <a href="#" class="dropdown-item">
  84. This is a link
  85. </a>
  86. </div>
  87. </div>
  88. </div>
  89. {% endcapture %}
  90. {% capture dropdown_click_example %}
  91. <div class="dropdown">
  92. <div class="dropdown-trigger">
  93. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu3">
  94. <span>Click me</span>
  95. <span class="icon is-small">
  96. <i class="fa fa-angle-down" aria-hidden="true"></i>
  97. </span>
  98. </button>
  99. </div>
  100. <div class="dropdown-menu" id="dropdown-menu3" role="menu">
  101. <div class="dropdown-content">
  102. <a href="#" class="dropdown-item">
  103. Overview
  104. </a>
  105. <a href="#" class="dropdown-item">
  106. Modifiers
  107. </a>
  108. <a href="#" class="dropdown-item">
  109. Grid
  110. </a>
  111. <a href="#" class="dropdown-item">
  112. Form
  113. </a>
  114. <a href="#" class="dropdown-item">
  115. Elements
  116. </a>
  117. <a href="#" class="dropdown-item">
  118. Components
  119. </a>
  120. <a href="#" class="dropdown-item">
  121. Layout
  122. </a>
  123. <hr class="dropdown-divider">
  124. <a href="#" class="dropdown-item">
  125. More
  126. </a>
  127. </div>
  128. </div>
  129. </div>
  130. {% endcapture %}
  131. {% capture dropdown_info_example %}
  132. <div class="dropdown is-hoverable">
  133. <div class="dropdown-trigger">
  134. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu4">
  135. <span>Hover me</span>
  136. <span class="icon is-small">
  137. <i class="fa fa-angle-down" aria-hidden="true"></i>
  138. </span>
  139. </button>
  140. </div>
  141. <div class="dropdown-menu" id="dropdown-menu4" role="menu">
  142. <div class="dropdown-content">
  143. <div class="dropdown-item">
  144. <p>You can insert <strong>any type of content</strong> within the dropdown menu.</p>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. {% endcapture %}
  150. {% capture dropdown_left_example %}
  151. <div class="dropdown is-active">
  152. <div class="dropdown-trigger">
  153. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu5">
  154. <span>Left aligned</span>
  155. <span class="icon is-small">
  156. <i class="fa fa-angle-down" aria-hidden="true"></i>
  157. </span>
  158. </button>
  159. </div>
  160. <div class="dropdown-menu" id="dropdown-menu5" role="menu">
  161. <div class="dropdown-content">
  162. <div class="dropdown-item">
  163. <p>The dropdown is <strong>left-aligned</strong> by default.</p>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. {% endcapture %}
  169. {% capture dropdown_right_example %}
  170. <div class="dropdown is-right is-active">
  171. <div class="dropdown-trigger">
  172. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu6">
  173. <span>Right aligned</span>
  174. <span class="icon is-small">
  175. <i class="fa fa-angle-down" aria-hidden="true"></i>
  176. </span>
  177. </button>
  178. </div>
  179. <div class="dropdown-menu" id="dropdown-menu6" role="menu">
  180. <div class="dropdown-content">
  181. <div class="dropdown-item">
  182. <p>Add the <code>is-right</code> modifier for a <strong>right-aligned</strong> dropdown.</p>
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. {% endcapture %}
  188. {% capture dropdown_up_example %}
  189. <div class="dropdown is-up">
  190. <div class="dropdown-trigger">
  191. <button class="button" aria-haspopup="true" aria-controls="dropdown-menu7">
  192. <span>Dropup button</span>
  193. <span class="icon is-small">
  194. <i class="fa fa-angle-up" aria-hidden="true"></i>
  195. </span>
  196. </button>
  197. </div>
  198. <div class="dropdown-menu" id="dropdown-menu7" role="menu">
  199. <div class="dropdown-content">
  200. <div class="dropdown-item">
  201. <p>You can add the <code>is-up</code> modifier to have a dropdown menu that appears above the dropdown button.</p>
  202. </div>
  203. </div>
  204. </div>
  205. </div>
  206. {% endcapture %}
  207. {% include subnav-components.html %}
  208. <section class="section">
  209. <div class="container">
  210. <h1 class="title">Dropdown</h1>
  211. <h2 class="subtitle">
  212. An interactive <strong>dropdown menu</strong> for discoverable content
  213. </h2>
  214. {%
  215. include meta.html
  216. new=true
  217. since="0.4.4"
  218. colors=false
  219. sizes=false
  220. variables=true
  221. %}
  222. <hr>
  223. <div class="content">
  224. <p>
  225. The <code>dropdown</code> component is a container for a dropdown button and a dropdown menu.
  226. </p>
  227. <ul>
  228. <li>
  229. <code>dropdown</code> the <strong>main</strong> container
  230. <ul>
  231. <li>
  232. <code>dropdown-trigger</code> the container for a <code>button</code>
  233. </li>
  234. <li>
  235. <code>dropdown-menu</code> the toggable menu, <strong>hidden</strong> by default
  236. <ul>
  237. <li>
  238. <code>dropdown-content</code> the dropdown <strong>box</strong>, with a white background and a shadow
  239. <ul>
  240. <li>
  241. <code>dropdown-item</code> each <strong>single item</strong> of the dropdown, which can either be a <code>a</code> or a <code>div</code>
  242. </li>
  243. <li>
  244. <code>dropdown-divider</code> a <strong>horizontal line</strong> to separate dropdown items
  245. </li>
  246. </ul>
  247. </li>
  248. </ul>
  249. </li>
  250. </ul>
  251. </li>
  252. </ul>
  253. </div>
  254. <div class="columns">
  255. <div class="column is-half">
  256. {{dropdown_example}}
  257. </div>
  258. <div class="column is-half highlight-full">
  259. {% highlight html %}{{dropdown_example}}{% endhighlight %}
  260. </div>
  261. </div>
  262. {% include anchor.html name="Dropdown content" %}
  263. <div class="content">
  264. <p>
  265. While the <code>dropdown-item</code> can be used as an anchor link <code>&lt;a&gt;</code>, you can also use a <code>&lt;div&gt;</code> and insert almost <strong>any type of content</strong>.
  266. </p>
  267. </div>
  268. <div class="columns">
  269. <div class="column is-half">
  270. {{dropdown_content_example}}
  271. </div>
  272. <div class="column is-half">
  273. {% highlight html %}{{dropdown_content_example}}{% endhighlight %}
  274. </div>
  275. </div>
  276. {% include anchor.html name="Hoverable or Toggable" %}
  277. <div class="content">
  278. <p>
  279. The <code>dropdown</code> component has <strong>2 additional modifiers</strong>
  280. </p>
  281. <ul>
  282. <li>
  283. <code>is-hoverable</code>: the dropdown will show up when <strong>hovering</strong> the <code>dropdown-trigger</code>
  284. </li>
  285. <li>
  286. <code>is-active</code>: the dropdown will show up <strong>all the time</strong>
  287. </li>
  288. </ul>
  289. </div>
  290. <div class="message is-success">
  291. <p class="message-body">
  292. While the CSS <code>:hover</code> implementation works perfectly, the <code>is-active</code> class is available for users who want to control the display of the dropdown with <strong>JavaScript</strong>.
  293. </p>
  294. </div>
  295. <div class="columns">
  296. <div class="column is-half">
  297. {{dropdown_click_example}}{{dropdown_info_example}}
  298. </div>
  299. <div class="column is-half">
  300. {% highlight html %}{{dropdown_click_example}}{{dropdown_info_example}}{% endhighlight %}
  301. </div>
  302. </div>
  303. {% include anchor.html name="Right aligned" %}
  304. <div class="content">
  305. <p>
  306. You can add the <code>is-right</code> modifier to have a <strong>right-aligned</strong> dropdown.
  307. </p>
  308. </div>
  309. <div class="columns">
  310. <div class="column is-half">
  311. <div class="level is-mobile">
  312. <div class="level-left">
  313. <div class="level-item">
  314. {{dropdown_left_example}}
  315. </div>
  316. </div>
  317. <div class="level-right">
  318. <div class="level-item">
  319. {{dropdown_right_example}}
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. <div class="column is-half">
  325. {% highlight html %}{{dropdown_right_example}}{% endhighlight %}
  326. </div>
  327. </div>
  328. {% include anchor.html name="Dropup" %}
  329. {% include elements/new-tag.html version="0.5.4" %}
  330. <div class="content">
  331. <p>
  332. You can add the <code>is-up</code> modifier to have a dropdown menu that appears above the dropdown button.
  333. </p>
  334. </div>
  335. <div class="columns">
  336. <div class="column is-half">
  337. {{ dropdown_up_example }}
  338. </div>
  339. <div class="column is-half">
  340. {% highlight html %}{{dropdown_up_example}}{% endhighlight %}
  341. </div>
  342. </div>
  343. {% include variables.html %}
  344. </div>
  345. </section>