Basic Form

Form elements carry some very simple styles just to make them feel consistent, all input and select elements by default are the same height as buttons. This way they can be placed next to each other without looking odd.

    <div class="row">
        <div class="col-md-6">
            <label>Your name</label>
            <input class="full-width" type="text" placeholder="Bilbo Baggins">
        <div class="col-md-6">
            <label>Date of birth</label>
            <input class="full-width" type="date">
    <div class="row">
        <div class="col-md-6">
            <label>Your email</label>
            <input class="full-width" type="email" placeholder="[email protected]">
        <div class="col-md-6">
            <label>Reason for contacting</label>
            <select class="full-width">
                <option value="">--------</option>
                <option value="Option 1">Questions</option>
                <option value="Option 2">Admiration</option>
                <option value="Option 3">Can I get your number?</option>
    <textarea class="full-width" placeholder="Hi Dave …"></textarea>
    <label class="pull-right">
        <input type="checkbox">Send a copy to yourself
    <input class="button button-primary" type="submit" value="Submit">


Every style we impose on a form input, select and textarea can be changed within the variables, this allows you to highly customise the end result without a single line of css:

// forms
$input-use-full-width:          false !default; // false = max-width:100%, true = width:100%
$input-background:              rgb(255, 255, 255) !default;
$input-border-radius:           $global-radius !default;
$input-border-width:            $border-width !default;
$input-border-color:            $border-color !default;
$input-font-size:               1.5rem !default;
$input-font-color:              $font-color !default;
$input-line-height:             1.5 !default;
$input-padding-y:               .8rem !default;
$input-padding-x:               1rem !default;
$input-placeholder-color:       rgb(185, 185, 185) !default;
$input-margin-bottom:           1.5rem !default;
$input-transition:              background linear $animation-speed-fast,
                                border-color linear $animation-speed-fast !default;

$input-height-border:           $input-border-width * 2 !default;
$input-height-inner:            ($input-padding-y * 2) + ($input-font-size * $input-line-height) !default;
$input-height:                  calc(#{$input-height-inner} + #{$input-height-border}) !default;

$input-background-focus:        $input-background !default;
$input-border-color-focus:      map-get($colors, primary) !default;

// labels
$label-font-weight:             600 !default;