dropdown.html 9.3 KB

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