dropdown.html 10 KB

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