
Foundation
Dropdown Buttons
We've simplified our dropdown buttons by getting rid of the dedicated dropdown associated with them. Instead, you'll use our new dropdown plugin to attach a dropdown to the button style of your choice.
Dropdown Button
Dropdown Button
Dropdown Button
Dropdown Button
Build With Predefined HTML Classes
There are two ways to build buttons in Foundation 4: with our predefined HTML classes or with our structure and mixins. Building buttons using our predefined classes is simple, you'll need an <a>
, <button>
or <input>
with a class of .button.dropdown
. This will create a default medium button. You can also use size, color and radius classes to control more of the style.
The classes options:
- The size classes include:
.tiny, .small, .medium
or.large
- The color classes include:
.secondary, .alert
or.success
- The radius classes include:
.radius
or.round
.
<!-- Size Classes -->
<a href="#" class="button dropdown">Default Button</a>
<a href="#" class="tiny button dropdown">Tiny Button</a>
<a href="#" class="small button dropdown">Small Button</a>
<a href="#" class="large button dropdown">Large Button</a>
<!-- Color Classes -->
<a href="#" class="button dropdown secondary">Secondary Button</a>
<a href="#" class="button dropdown success">Success Button</a>
<a href="#" class="button dropdown alert">Alert Button</a>
<!-- Radius Classes -->
<a href="#" class="button dropdown radius">Radius Button</a>
<a href="#" class="button dropdown round">Round Button</a>
You may chain one class from each group to build up desired default styles. For these styles to take effect, make sure you have the default Foundation CSS package or that you've selected dropdown buttons from a custom package. These should be linked up following our default HTML page structure.
Build with Mixins
We've included SCSS mixins used to style buttons. To use these mixins, you'll need to have the extension installed or grab _variables.scss, _buttons.scss, _global.scss and _dropdown-buttons.scss from Github and throw them into a Foundation folder in your project directory. From there, you can import the files at the top of your own SCSS stylesheet, like so:
@import "foundation/variables";
@import "foundation/components/global";
@import "foundation/components/buttons";
@import "foundation/components/dropdown-buttons";
If you are using the mixins, you may include the styles on whatever class or ID you'd like, just make sure you follow our markup structure:
<a href="#" class="your-class-name">Button Text</a>
Quick Mixin
You can quickly build entire dropdown buttons using our global mixin by including it on your custom class or ID in your stylesheet. The global mixin will create the necessary style for the button. The global mixin looks like this:
/* Using the default styles */
.your-class-name {
@include button;
@include dropdown-button;
}
There are also three options you can customize on the fly when writing this mixin. These control things like: background color, pip color and base styles. Setting any of these options to false will not include the styles.
/* Using the available options */
.your-class-name {
@include button;
@include dropdown-button($padding, $pip-color, $base-style);
}
/* This controls padding around the dropdown buttons. Use tiny, small, medium, or large */
$padding: $button-med
/* This controls the dropdown pip color. Set to one of our variables or a custom hex value */
$pip-color: #fff
/* This controls whether or not base styles come through. Set to false to negate */
/* Handy when you want to have many different styles */
$base-style: true
Inset Shadow, Border Radius & Transition Mixin
Sometimes you want to add a nice fancy shine to the edge of your button. And sometimes you want to make that shine look like it gets depressed upon tap or click. We've got you covered with our quick inset shadow mixin. You can use our radius mixin to quickly apply rounded corners or a transition mixin to give the button a nice zero-fade.
.your-class-name {
@include button;
@include dropdown-button;
@include radius;
@include single-transition;
@include inset-shadow;
}
Default SCSS Variables
$include-html-button-classes: $include-html-classes;
/* We use these to set the color of the pip in dropdown buttons */
$dropdown-button-pip-color: #fff;
$dropdown-button-pip-color-alt: #333;
/* We use these to style tiny dropdown buttons */
$dropdown-button-padding-tny: $button-tny * 5;
$dropdown-button-pip-size-tny: $button-tny;
$dropdown-button-pip-opposite-tny: $button-tny * 2;
$dropdown-button-pip-top-tny: -$button-tny / 2 + em-calc(1);
/* We use these to style small dropdown buttons */
$dropdown-button-padding-sml: $button-sml * 5;
$dropdown-button-pip-size-sml: $button-sml;
$dropdown-button-pip-opposite-sml: $button-sml * 2;
$dropdown-button-pip-top-sml: -$button-sml / 2 + em-calc(1);
/* We use these to style medium dropdown buttons */
$dropdown-button-padding-med: $button-med * 4 + em-calc(3);
$dropdown-button-pip-size-med: $button-med - em-calc(3);
$dropdown-button-pip-opposite-med: $button-med * 2;
$dropdown-button-pip-top-med: -$button-med / 2 + em-calc(2);
/* We use these to style large dropdown buttons */
$dropdown-button-padding-lrg: $button-lrg * 4;
$dropdown-button-pip-size-lrg: $button-lrg - em-calc(6);
$dropdown-button-pip-opposite-lrg: $button-lrg + em-calc(12);
$dropdown-button-pip-top-lrg: -$button-lrg / 2 + em-calc(3);
Note: em-calc();
is a function we wrote to convert px
to em
. It is included in _variables.scss.
Using the JavaScript
You don't need ths JS to create dropdown button styles with Foundation. The only reason you'll need to include foundation.dropdown.js
is if you want to add one of our dropdown to the button.
foundation.js
are available on your page. You can refer to the javascript documentation on setting that up.
Just add foundation.dropdown.js
AFTER the foundation.js
file. Your markup should look something like this:
<body>
...
<script>
document.write('<script src=/js/vendor/'
+ ('__proto__' in {} ? 'zepto' : 'jquery')
+ '.js><\/script>');
</script>
<script src="js/foundation/foundation.js"></script>
<script src="js/foundation/foundation.dropdown.js"></script>
<!-- Other JS plugins can be included here -->
<script>
$(document).foundation();
</script>
</body>
Required Foundation Library: foundation.dropdown.js
Creating the Dropdown
To create the dropdown, you'll need to attach a data-attribute to whatever element you want the dropdown attached to (in this case a button). From there you'll create a list that holds the links or content and add another data-attribute that associates with the element it belongs to. Here's an example of that markup:
<a href="#" data-dropdown="drop1" class="button dropdown">Dropdown Button</a><br>
<ul id="drop1" class="f-dropdown">
<li><a href="#">This is a link</a></li>
<li><a href="#">This is another</a></li>
<li><a href="#">Yet another</a></li>
</ul>
Required Foundation Library: foundation.dropdown.js
You'll notice that data-dropdown="drop1"
and id="drop1"
have similar values. This is what tells the dropdown plugin where to look to find the position to attach the dropdown element to.
Optional JavaScript Configuration
Dropdown options can only be passed in during initialization at this time.
{
activeClass: 'open'
}