### New features
+* 🎉 [List of buttons](https://bulma.io/documentation/elements/button/#list-of-buttons)
* #1287 New `.is-invisible` helper
## 0.6.0
### New features
-* 🎉 #280 [File upload element](http://bulma.io/documentation/form/file/)
+* 🎉 #280 [File upload element](https://bulma.io/documentation/form/file/)
* `$container-offset` variable to determine the `.container` breakpoints
* #1001 Text case helpers
### New features
-* 🎉 [List of tags](http://bulma.io/documentation/elements/tag/#list-of-tags)
+* 🎉 [List of tags](https://bulma.io/documentation/elements/tag/#list-of-tags)
* New **variable naming system**: `component`-`subcomponent`-`state`-`property`
* Improved **customization** thanks to new set of variables
* #934 New `.is-shadowless` helper
### Improved documentation
-* [Starter template](http://bulma.io/documentation/overview/start/#starter-template)
-* [Colors page](http://bulma.io/documentation/overview/colors/)
-* [Typography helpers](http://bulma.io/documentation/modifiers/typography-helpers/)
+* [Starter template](https://bulma.io/documentation/overview/start/#starter-template)
+* [Colors page](https://bulma.io/documentation/overview/colors/)
+* [Typography helpers](https://bulma.io/documentation/modifiers/typography-helpers/)
* **Meta** information for all elements and components
* **Variables** information for most elements and components
### New features
-* New [dropdown button](http://bulma.io/documentation/components/dropdown/)!
+* New [dropdown button](https://bulma.io/documentation/components/dropdown/)!
* The breakpoints and `.container` **gap** can be customized with the new `$gap` variable
* The `.container` has 2 new modifiers: `.is-widescreen` and `.is-fullhd`
pointer-events: none;
}
+.buttons {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+}
+
+.buttons .button {
+ margin-bottom: 0.5rem;
+}
+
+.buttons .button:not(:last-child) {
+ margin-right: 0.5rem;
+}
+
+.buttons:last-child {
+ margin-bottom: -0.5rem;
+}
+
+.buttons:not(:last-child) {
+ margin-bottom: 1rem;
+}
+
+.buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px;
+}
+
+.buttons.has-addons .button:last-child {
+ margin-right: 0;
+}
+
+.buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2;
+}
+
+.buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3;
+}
+
+.buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4;
+}
+
+.buttons.is-centered {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.buttons.is-right {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+}
+
.container {
margin: 0 auto;
position: relative;
@-webkit-keyframes rainbow {
0% {
- background-position: 0% 80%;
+ background-position: 1% 80%;
}
50% {
- background-position: 100% 20%;
+ background-position: 99% 20%;
}
100% {
- background-position: 0% 80%;
+ background-position: 1% 80%;
}
}
@keyframes rainbow {
0% {
- background-position: 0% 80%;
+ background-position: 1% 80%;
}
50% {
- background-position: 100% 20%;
+ background-position: 99% 20%;
}
100% {
- background-position: 0% 80%;
+ background-position: 1% 80%;
}
}
</div>
{% endcapture %}
+{% capture buttons %}
+<div class="buttons">
+ <span class="button is-success">Save changes</span>
+ <span class="button is-info">Save and continue</span>
+ <span class="button is-danger">Cancel</span>
+</div>
+{% endcapture %}
+
+{% capture buttons_multiple %}
+<div class="buttons">
+ <span class="button">One</span>
+ <span class="button">Two</span>
+ <span class="button">Three</span>
+ <span class="button">Four</span>
+ <span class="button">Five</span>
+ <span class="button">Six</span>
+ <span class="button">Seven</span>
+ <span class="button">Eight</span>
+ <span class="button">Nine</span>
+ <span class="button">Ten</span>
+ <span class="button">Eleven</span>
+ <span class="button">Twelve</span>
+ <span class="button">Thirteen</span>
+ <span class="button">Fourteen</span>
+ <span class="button">Fifteen</span>
+ <span class="button">Sixteen</span>
+ <span class="button">Seventeen</span>
+ <span class="button">Eighteen</span>
+ <span class="button">Nineteen</span>
+ <span class="button">Twenty</span>
+</div>
+{% endcapture %}
+
+{% capture buttons_addons %}
+<div class="buttons has-addons">
+ <span class="button">Yes</span>
+ <span class="button">Maybe</span>
+ <span class="button">No</span>
+</div>
+{% endcapture %}
+
+{% capture buttons_addons_centered %}
+<div class="buttons has-addons is-centered">
+ <span class="button">Yes</span>
+ <span class="button">Maybe</span>
+ <span class="button">No</span>
+</div>
+{% endcapture %}
+
+{% capture buttons_addons_right %}
+<div class="buttons has-addons is-right">
+ <span class="button">Yes</span>
+ <span class="button">Maybe</span>
+ <span class="button">No</span>
+</div>
+{% endcapture %}
+
+{% capture buttons_addons_selected %}
+<div class="buttons has-addons">
+ <span class="button is-success is-selected">Yes</span>
+ <span class="button">Maybe</span>
+ <span class="button">No</span>
+</div>
+
+<div class="buttons has-addons">
+ <span class="button">Yes</span>
+ <span class="button is-info is-selected">Maybe</span>
+ <span class="button">No</span>
+</div>
+
+<div class="buttons has-addons">
+ <span class="button">Yes</span>
+ <span class="button">Maybe</span>
+ <span class="button is-danger is-selected">No</span>
+</div>
+{% endcapture %}
+
{% include subnav-elements.html %}
<section class="section">
{% include snippet.html content=button_group_addons_example %}
+ {% include anchor.html name="List of buttons" %}
+
+ {% include elements/new-tag.html version="0.6.1" %}
+
+ <div class="columns">
+ <div class="column">
+ <div class="content">
+ <p>
+ You can now create a <strong>list of buttons</strong> with the <code>.buttons</code> container.
+ </p>
+ </div>
+ <div class="bd-example">
+ {{ buttons }}
+ </div>
+ </div>
+ <div class="column">
+ {% highlight html %}{{ buttons }}{% endhighlight %}
+ </div>
+ </div>
+
+ <div class="columns">
+ <div class="column">
+ <div class="content">
+ <p>
+ If the list is <strong>very long</strong>, it will automatically wrap on <strong>multiple lines</strong>, while keeping all buttons <strong>evenly spaced</strong>.
+ </p>
+ </div>
+ <div class="bd-example">
+ {{ buttons_multiple }}
+ </div>
+ </div>
+ <div class="column highlight-full">
+ {% highlight html %}{{ buttons_multiple }}{% endhighlight %}
+ </div>
+ </div>
+
+ <div class="columns">
+ <div class="column">
+ <div class="content">
+ <p>
+ You can <strong>attach buttons together</strong> with the <code>.has-addons</code> modifier.
+ </p>
+ </div>
+ <div class="bd-example">
+ {{ buttons_addons }}
+ </div>
+ </div>
+ <div class="column highlight-full">
+ {% highlight html %}{{ buttons_addons }}{% endhighlight %}
+ </div>
+ </div>
+
+ <div class="columns">
+ <div class="column">
+ <div class="content">
+ <p>
+ Use the <code>is-centered</code> or the <code>is-right</code> modifiers to alter the <strong>alignment</strong>.
+ </p>
+ </div>
+ <div class="bd-example">
+ {{ buttons_addons_centered }}
+ {{ buttons_addons_right }}
+ </div>
+ </div>
+ <div class="column highlight-full">
+ {% highlight html %}{{ buttons_addons_centered }}{{ buttons_addons_right }}{% endhighlight %}
+ </div>
+ </div>
+
+ <div class="columns">
+ <div class="column">
+ <div class="content">
+ <p>
+ You can use any <strong>modifier</strong> class on each button to differentiate them. Make sure to add the <code>is-selected</code> modifier as well to make sure the selected button is <em>above</em> its siblings.
+ </p>
+ </div>
+ <div class="bd-example">
+ {{ buttons_addons_selected }}
+ </div>
+ </div>
+ <div class="column highlight-full">
+ {% highlight html %}{{ buttons_addons_selected }}{% endhighlight %}
+ </div>
+ </div>
+
+ <div class="message is-info">
+ <div class="message-header">
+ <p>Difference between <a href="{{ site.url }}/documentation/form/general/#form-group">form groups</a> and <strong>list of buttons</strong></p>
+ </div>
+ <div class="message-body">
+ <div class="content">
+ <p>
+ While this list of buttons style can be achieved with either <code>field is-grouped</code> or the new <code>buttons</code> class, there are a few differences:
+ </p>
+ <ul>
+ <li>
+ <code>buttons</code> has a <strong>simpler markup</strong>
+ </li>
+ <li>
+ <code>buttons</code> can only contain <code>button</code> elements
+ </li>
+ <li>
+ <code>field is-grouped</code> can contain <em>any</em> type of <code>control</code> inputs
+ </li>
+ <li>
+ <code>field is-grouped</code> can be forced to fit all controls on a <strong>single line</strong>
+ </li>
+ <li>
+ with <code>field is-grouped</code> you can <strong>expand</strong> one of the controls
+ </li>
+ </ul>
+ <p>
+ Basically, if you only want a list of <em>buttons</em>, using <code>buttons</code> is recommended. If you need more control on the styling and the elements, use a <a href="{{ site.url }}/documentation/form/general/#form-group">form group</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+
{% include variables.html type='element' %}
</div>