dropdown.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  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 is-info" 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 is-primary" 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 is-info" 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 is-info" 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 is-info" 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. {% include subnav-components.html %}
  189. <section class="section">
  190. <div class="container">
  191. <h1 class="title">Dropdown</h1>
  192. <h2 class="subtitle">
  193. An interactive <strong>dropdown menu</strong> for discoverable content
  194. </h2>
  195. {%
  196. include meta.html
  197. new=true
  198. since="0.4.4"
  199. colors=false
  200. sizes=false
  201. variables=true
  202. %}
  203. <hr>
  204. <div class="content">
  205. <p>
  206. The <code>dropdown</code> component is a container for a dropdown button and a dropdown menu.
  207. </p>
  208. <ul>
  209. <li>
  210. <code>dropdown</code> the <strong>main</strong> container
  211. <ul>
  212. <li>
  213. <code>dropdown-trigger</code> the container for a <code>button</code>
  214. </li>
  215. <li>
  216. <code>dropdown-menu</code> the toggable menu, <strong>hidden</strong> by default
  217. <ul>
  218. <li>
  219. <code>dropdown-content</code> the dropdown <strong>box</strong>, with a white background and a shadow
  220. <ul>
  221. <li>
  222. <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>
  223. </li>
  224. <li>
  225. <code>dropdown-divider</code> a <strong>horizontal line</strong> to separate dropdown items
  226. </li>
  227. </ul>
  228. </li>
  229. </ul>
  230. </li>
  231. </ul>
  232. </li>
  233. </ul>
  234. </div>
  235. <div class="columns">
  236. <div class="column is-half">
  237. {{dropdown_example}}
  238. </div>
  239. <div class="column is-half highlight-full">
  240. {% highlight html %}{{dropdown_example}}{% endhighlight %}
  241. </div>
  242. </div>
  243. {% include anchor.html name="Dropdown content" %}
  244. <div class="content">
  245. <p>
  246. 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>.
  247. </p>
  248. </div>
  249. <div class="columns">
  250. <div class="column is-half">
  251. {{dropdown_content_example}}
  252. </div>
  253. <div class="column is-half">
  254. {% highlight html %}{{dropdown_content_example}}{% endhighlight %}
  255. </div>
  256. </div>
  257. {% include anchor.html name="Hoverable or Toggable" %}
  258. <div class="content">
  259. <p>
  260. The <code>dropdown</code> component has <strong>2 additional modifiers</strong>
  261. </p>
  262. <ul>
  263. <li>
  264. <code>is-hoverable</code>: the dropdown will show up when <strong>hovering</strong> the <code>dropdown-trigger</code>
  265. </li>
  266. <li>
  267. <code>is-active</code>: the dropdown will show up <strong>all the time</strong>
  268. </li>
  269. </ul>
  270. </div>
  271. <div class="message is-success">
  272. <p class="message-body">
  273. 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>.
  274. </p>
  275. </div>
  276. <div class="columns">
  277. <div class="column is-half">
  278. {{dropdown_click_example}}{{dropdown_info_example}}
  279. </div>
  280. <div class="column is-half">
  281. {% highlight html %}{{dropdown_click_example}}{{dropdown_info_example}}{% endhighlight %}
  282. </div>
  283. </div>
  284. {% include anchor.html name="Right aligned" %}
  285. <div class="content">
  286. <p>
  287. You can add the <code>is-right</code> modifier to have a <strong>right-aligned</strong> dropdown.
  288. </p>
  289. </div>
  290. <div class="columns">
  291. <div class="column is-half">
  292. <div class="level is-mobile">
  293. <div class="level-left">
  294. <div class="level-item">
  295. {{dropdown_left_example}}
  296. </div>
  297. </div>
  298. <div class="level-right">
  299. <div class="level-item">
  300. {{dropdown_right_example}}
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. <div class="column is-half">
  306. {% highlight html %}{{dropdown_right_example}}{% endhighlight %}
  307. </div>
  308. </div>
  309. {% include variables.html %}
  310. </div>
  311. </section>