dropdown.html 9.4 KB

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