ferris-ds 🎡

Design system for WBEZ.org

Version: 6.0.2

GitHub data updated: Jan 29, 2020

Form

Our form controls.

These can be implemented via classnames, or with Sass modules using @use.

Using as a Sass module:

@use "@wbez/ferris-ds/assets/scss/9-form" as ds with ($includeStyles: false);

input[type="checkbox"] { @include ds.checkbox; }

@TODO: Document forwarded variables/themes

Form > Checkbox

Checkbox

The checkbox input. Wrap around the <input type="checkbox"> HTML element.

Implement:

  • Via classname: <div class="wbz-checkbox">
  • Via @use: input[type="checkbox"] { @include ds.checkbox; }

Optionally animate the checkmark:

  • Via classname modifier: <div class="wbz-checkbox is-animated">
  • Via @use: input[type="checkbox"] { @include ds.checkbox($animate: true); }
.wbz-checkbox
HTML Example
<div class="ds-control-group wbz-checkbox {{ className }}">
  <input
    type="checkbox"
    id="ds-checkbox-{{ index }}"
    name="ds_checkbox[Y]"
    value="Y"
  />
  <label for="ds-checkbox-{{ index }}">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

{% if not className %}
<div class="ds-control-group wbz-checkbox {{ className }}">
  <input
    type="checkbox"
    id="ds-checkbox-{{ index }}--checked"
    name="ds_checkbox[Y]"
    value="Y"
    checked
  />
  <label for="ds-checkbox-{{ index }}--checked">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-checkbox {{ className }}">
  <input
    type="checkbox"
    id="ds-checkbox-{{ index }}--disabled"
    name="ds_checkbox[Y]"
    value="Y"
    disabled
  />
  <label for="ds-checkbox-{{ index }}--disabled">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-checkbox {{ className }}">
  <input
    type="checkbox"
    id="ds-checkbox-{{ index }}--disabled-checked"
    name="ds_checkbox[Y]"
    value="Y"
    checked
    disabled
  />
  <label for="ds-checkbox-{{ index }}--disabled-checked">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-checkbox {{ className }}">
  <input
    type="checkbox"
    id="ds-checkbox-{{ index }}--long"
    name="ds_checkbox[Y]"
    value="Y"
  />
  <label for="ds-checkbox-{{ index }}--long">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie, mi
    in efficitur euismod, lorem neque fermentum elit, pharetra elementum. This
    gift is in honor of <a href="#">someone</a>.
  </label>
</div>
{% endif %}
.is-animated

Animate the checkmark entrance.

Form > Input

Input

Text-like inputs. Wrap around the <input> HTML element.

By default, applies to inputs of type email, number, password, search, tel, text, and url.

Implement:

  • Via classname: <div class="wbz-input">
  • Via @use: #{ds.$inputSelectors} { @include ds.input; }

Handle errors:

  • Via classname modifier: <div class="wbz-input is-error">
  • Via @use: .error { #{ds.$inputSelectors} { @include ds.input("error"); } }
.wbz-input
HTML Example
{% if not className %}
<div class="ds-control-group wbz-input">
  <label for="ds-input-text">
    First Name
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text"
    >
      text
    </a>
  </label>
  <input type="text" id="ds-input-text" />
</div>

<div class="ds-control-group wbz-input" id="ds-input-text--disabled">
  <label for="ds-input-text--disabled">
    First Name
  </label>
  <input type="text" id="ds-input-text--disabled" disabled />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-email">
    Email
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email"
    >
      email
    </a>
  </label>
  <input type="email" id="ds-input-email" />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-number">
    Number
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number"
    >
      number
    </a>
  </label>
  <input type="number" id="ds-input-number" />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-password">
    Password
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password"
    >
      password
    </a>
  </label>
  <input type="password" id="ds-input-password" />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-search">
    Search
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search"
    >
      search
    </a>
  </label>
  <input type="search" id="ds-input-search" />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-tel">
    Telephone
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/tel"
    >
      tel
    </a>
  </label>
  <input type="tel" id="ds-input-tel" />
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-input-url">
    URL
    <a
      class="ds-pull-right t-weight-normal"
      href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/url"
    >
      url
    </a>
  </label>
  <input type="url" id="ds-input-url" />
</div>
{% endif %} {% if className == "is-error" %}
<div class="ds-control-group wbz-input is-error">
  <label for="ds-input-text--error">First Name</label>
  <input type="text" id="ds-input-text--error" />
  <label for="ds-input-text--error" generated="true" class="error">
    This field is required
  </label>
</div>
{% endif %}
.is-error

Handle invalid value

Form > Label

Label

The various text labels associated with a form control.

  • <label>
  • <div class="field-prefix">
  • <div class="field-suffix">
  • <div class="description">
  • <label class="error">

Implementation:

  • Via classnames: The selectors are scoped by default for use with .wbz-input, .wbz-select, and .wbz-textarea.
  • Via @use: @TODO
$
/mo
Minimum payment $1.00.
$
/mo
Minimum payment $1.00.
$
/mo
Minimum payment $1.00.
$
/mo
Minimum payment $1.00.
$
/mo
Minimum payment $1.00.
$
/mo
Minimum payment $1.00.
HTML Example
<div class="ds-control-group wbz-input">
  <label for="ds-label-a">Custom amount</label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-a" placeholder="Or, enter amount" />
  <div class="description">Minimum payment $1.00.</div>
</div>

<div class="ds-control-group wbz-input is-error">
  <label for="ds-label-b">Custom amount</label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-b" placeholder="Or, enter amount" />
  <div class="description">Minimum payment $1.00.</div>
  <label for="ds-label-b" generated="true" class="error">
    This field is required
  </label>
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-label-c">Custom amount</label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-c" placeholder="Or, enter amount" disabled />
  <div class="description">Minimum payment $1.00.</div>
</div>

<div class="ds-control-group wbz-input t-size-xs">
  <label for="ds-label-d">Custom amount</label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-d" placeholder="Or, enter amount" />
  <div class="description">Minimum payment $1.00.</div>
</div>

<div class="ds-control-group wbz-input t-size-s">
  <label for="ds-label-e">Custom amount</label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-e" placeholder="Or, enter amount" />
  <div class="description">Minimum payment $1.00.</div>
</div>

<div class="ds-control-group wbz-input">
  <label for="ds-label-f">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie, mi
    in efficitur euismod, lorem neque fermentum elit, pharetra elementum.
  </label>
  <div class="field-prefix" aria-hidden>$</div>
  <div class="field-suffix" aria-hidden>/mo</div>
  <input type="text" id="ds-label-f" placeholder="Or, enter amount" />
  <div class="description">Minimum payment $1.00.</div>
</div>
Form > Radio circle

Radio circle

Radio circle inputs. Wrap around the <input type="radio"> HTML element.

Implement:

  • Via classname: <div class="wbz-radio-circle">
  • Via @use: input[type="radio"] { @include ds.radio-circle; }
.wbz-radio-circle
HTML Example
<div class="ds-control-group wbz-radio-circle">
  <input
    type="radio"
    id="ds-radio-circle-a"
    name="selected-premium-id"
    value="a"
  />
  <label class="option" for="ds-radio-circle-a">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-radio-circle">
  <input
    type="radio"
    id="ds-radio-circle-b"
    name="selected-premium-id"
    value="b"
    checked
  />
  <label class="option" for="ds-radio-circle-b">
    This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-radio-circle">
  <input
    type="radio"
    id="ds-radio-circle-c"
    name="selected-premium-id"
    value="c"
  />
  <label class="option" for="ds-radio-circle-c"
    >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie, mi
    in efficitur euismod, lorem neque fermentum elit, pharetra elementum. This
    gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-radio-circle">
  <input
    type="radio"
    id="ds-radio-circle--disabled-a"
    name="selected-premium-id--disabled"
    disabled
  />
  <label class="option" for="ds-radio-circle--disabled-a"
    >This gift is in honor of <a href="#">someone</a>.
  </label>
</div>

<div class="ds-control-group wbz-radio-circle">
  <input
    type="radio"
    id="ds-radio-circle--disabled-b"
    name="selected-premium-id--disabled"
    checked
    disabled
  />
  <label class="option" for="ds-radio-circle--disabled-b"
    >This gift is in honor of <a href="#">someone</a>.
  </label>
</div>
Form > Radio tab

Radio tab

Button-like radio inputs. Wrap around the <input type="radio"> HTML element.

Implement:

  • Via classname: <div class="wbz-radio-tab">
  • Via @use: input[type="radio"] { @include ds.radio-tab; }

Optionally use in a column layout:

  • Via classname modifier: <div class="wbz-radio-tab is-column">
  • Via @use: @TODO
.wbz-radio-tab
HTML Example
{% if not className %}
<div id="edit-submitted-donation-recurs-monthly">
  <div class="ds-control-group wbz-radio-tab">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-1"
      name="submitted[donation][recurs_monthly]"
      value="recurs"
      checked="checked"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-1"
      >Monthly Contribution
    </label>
  </div>
  <div class="ds-control-group wbz-radio-tab">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-2"
      name="submitted[donation][recurs_monthly]"
      value="NO_RECURR"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-2"
      >One-time Donation
    </label>
  </div>
  <div class="ds-control-group wbz-radio-tab">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-3"
      name="submitted[donation][recurs_monthly]"
      value="NO_RECURR"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-3"
      >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie,
      mi in efficitur euismod, lorem neque fermentum elit, pharetra elementum.
      This gift is in honor of <a href="#">someone</a>.
    </label>
  </div>
</div>
{% endif %} {% if className == "is-column" %}
<div
  id="edit-submitted-donation-recurs-monthly--grid"
  style="display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 1em;"
>
  <div class="ds-control-group wbz-radio-tab is-column">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-grid-1"
      name="submitted[donation][recurs_monthly_grid]"
      value="recurs"
      checked="checked"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-grid-1"
      >Monthly Contribution
    </label>
  </div>
  <div class="ds-control-group wbz-radio-tab is-column">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-grid-2"
      name="submitted[donation][recurs_monthly_grid]"
      value="NO_RECURR"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-grid-2"
      >One-time Donation
    </label>
  </div>
  <div class="ds-control-group wbz-radio-tab is-column">
    <input
      type="radio"
      id="edit-submitted-donation-recurs-monthly-grid-3"
      name="submitted[donation][recurs_monthly_grid]"
      value="NO_RECURR"
    />
    <label class="option" for="edit-submitted-donation-recurs-monthly-grid-3"
      >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie,
      mi in efficitur euismod, lorem neque fermentum elit, pharetra elementum.
      This gift is in honor of <a href="#">someone</a>.
    </label>
  </div>
</div>
{% endif %}
.is-column

Stretch box and vertically center label for use as a column

Form > Select

Select

Dropdown selects. Wrap around the <select> HTML element.

Implement:

  • Via classname: <div class="wbz-select">
  • Via @use: select { @include ds.select; }

Handle errors:

  • Via classname modifier: <div class="wbz-select is-error">
  • Via @use: .error { select { @include ds.select("error"); } }
.wbz-select
HTML Example
{% if not className %}
<div
  class="ds-control-group wbz-select"
  id="webform-component-donor-information--state"
>
  <label for="edit-submitted-donor-information-state">State/Province</label>
  <select
    id="edit-submitted-donor-information-state"
    name="submitted[donor_information][state]"
    class="form-select required key-validate"
    ><option value="" selected="selected" disabled="disabled">- Select -</option
    ><option value="AL">Alabama</option
    ><option value="AK">Alaska</option
    ><option value="AZ">Arizona</option
    ><option value="AR">Arkansas</option
    ><option value="CA">California</option
    ><option value="CO">Colorado</option
    ><option value="CT">Connecticut</option
    ><option value="DE">Delaware</option
    ><option value="DC">District of Columbia</option
    ><option value="FL">Florida</option
    ><option value="GA">Georgia</option
    ><option value="HI">Hawaii</option
    ><option value="ID">Idaho</option
    ><option value="IL">Illinois</option
    ><option value="IN">Indiana</option
    ><option value="IA">Iowa</option
    ><option value="KS">Kansas</option
    ><option value="KY">Kentucky</option
    ><option value="LA">Louisiana</option
    ><option value="ME">Maine</option
    ><option value="MD">Maryland</option
    ><option value="MA">Massachusetts</option
    ><option value="MI">Michigan</option
    ><option value="MN">Minnesota</option
    ><option value="MS">Mississippi</option
    ><option value="MO">Missouri</option
    ><option value="MT">Montana</option
    ><option value="NE">Nebraska</option
    ><option value="NV">Nevada</option
    ><option value="NH">New Hampshire</option
    ><option value="NJ">New Jersey</option
    ><option value="NM">New Mexico</option
    ><option value="NY">New York</option
    ><option value="NC">North Carolina</option
    ><option value="ND">North Dakota</option
    ><option value="OH">Ohio</option
    ><option value="OK">Oklahoma</option
    ><option value="OR">Oregon</option
    ><option value="PA">Pennsylvania</option
    ><option value="RI">Rhode Island</option
    ><option value="SC">South Carolina</option
    ><option value="SD">South Dakota</option
    ><option value="TN">Tennessee</option
    ><option value="TX">Texas</option
    ><option value="UT">Utah</option
    ><option value="VT">Vermont</option
    ><option value="VA">Virginia</option
    ><option value="WA">Washington</option
    ><option value="WV">West Virginia</option
    ><option value="WI">Wisconsin</option
    ><option value="WY">Wyoming</option
    ><option value=" ">--</option
    ><option value="AA">Armed Forces (Americas)</option
    ><option value="AE"
      >Armed Forces (Europe, Canada, Middle East, Africa)</option
    ><option value="AP">Armed Forces (Pacific)</option
    ><option value="AS">American Samoa</option
    ><option value="FM">Federated States of Micronesia</option
    ><option value="GU">Guam</option
    ><option value="MH">Marshall Islands</option
    ><option value="MP">Northern Mariana Islands</option
    ><option value="PW">Palau</option
    ><option value="PR">Puerto Rico</option
    ><option value="VI">Virgin Islands</option></select
  >
</div>

<div
  class="ds-control-group wbz-select"
  id="webform-component-donor-information--state"
>
  <label for="edit-submitted-donor-information-state--disabled"
    >State/Province</label
  >
  <select
    id="edit-submitted-donor-information-state--disabled"
    name="submitted[donor_information][state]"
    class="form-select required key-validate"
    disabled
    ><option value="" selected="selected" disabled="disabled">- Select -</option
    ><option value="AL">Alabama</option
    ><option value="AK">Alaska</option
    ><option value="AZ">Arizona</option
    ><option value="AR">Arkansas</option
    ><option value="CA">California</option
    ><option value="CO">Colorado</option
    ><option value="CT">Connecticut</option
    ><option value="DE">Delaware</option
    ><option value="DC">District of Columbia</option
    ><option value="FL">Florida</option
    ><option value="GA">Georgia</option
    ><option value="HI">Hawaii</option
    ><option value="ID">Idaho</option
    ><option value="IL">Illinois</option
    ><option value="IN">Indiana</option
    ><option value="IA">Iowa</option
    ><option value="KS">Kansas</option
    ><option value="KY">Kentucky</option
    ><option value="LA">Louisiana</option
    ><option value="ME">Maine</option
    ><option value="MD">Maryland</option
    ><option value="MA">Massachusetts</option
    ><option value="MI">Michigan</option
    ><option value="MN">Minnesota</option
    ><option value="MS">Mississippi</option
    ><option value="MO">Missouri</option
    ><option value="MT">Montana</option
    ><option value="NE">Nebraska</option
    ><option value="NV">Nevada</option
    ><option value="NH">New Hampshire</option
    ><option value="NJ">New Jersey</option
    ><option value="NM">New Mexico</option
    ><option value="NY">New York</option
    ><option value="NC">North Carolina</option
    ><option value="ND">North Dakota</option
    ><option value="OH">Ohio</option
    ><option value="OK">Oklahoma</option
    ><option value="OR">Oregon</option
    ><option value="PA">Pennsylvania</option
    ><option value="RI">Rhode Island</option
    ><option value="SC">South Carolina</option
    ><option value="SD">South Dakota</option
    ><option value="TN">Tennessee</option
    ><option value="TX">Texas</option
    ><option value="UT">Utah</option
    ><option value="VT">Vermont</option
    ><option value="VA">Virginia</option
    ><option value="WA">Washington</option
    ><option value="WV">West Virginia</option
    ><option value="WI">Wisconsin</option
    ><option value="WY">Wyoming</option
    ><option value=" ">--</option
    ><option value="AA">Armed Forces (Americas)</option
    ><option value="AE"
      >Armed Forces (Europe, Canada, Middle East, Africa)</option
    ><option value="AP">Armed Forces (Pacific)</option
    ><option value="AS">American Samoa</option
    ><option value="FM">Federated States of Micronesia</option
    ><option value="GU">Guam</option
    ><option value="MH">Marshall Islands</option
    ><option value="MP">Northern Mariana Islands</option
    ><option value="PW">Palau</option
    ><option value="PR">Puerto Rico</option
    ><option value="VI">Virgin Islands</option></select
  >
</div>

<div
  class="ds-control-group wbz-select t-size-xs"
  id="webform-component-donor-information--state"
>
  <label for="edit-submitted-donor-information-state--xs">State/Province</label>
  <select
    id="edit-submitted-donor-information-state--xs"
    name="submitted[donor_information][state]"
    class="form-select required key-validate"
    ><option value="" selected="selected" disabled="disabled">- Select -</option
    ><option value="AL">Alabama</option
    ><option value="AK">Alaska</option
    ><option value="AZ">Arizona</option
    ><option value="AR">Arkansas</option
    ><option value="CA">California</option
    ><option value="CO">Colorado</option
    ><option value="CT">Connecticut</option
    ><option value="DE">Delaware</option
    ><option value="DC">District of Columbia</option
    ><option value="FL">Florida</option
    ><option value="GA">Georgia</option
    ><option value="HI">Hawaii</option
    ><option value="ID">Idaho</option
    ><option value="IL">Illinois</option
    ><option value="IN">Indiana</option
    ><option value="IA">Iowa</option
    ><option value="KS">Kansas</option
    ><option value="KY">Kentucky</option
    ><option value="LA">Louisiana</option
    ><option value="ME">Maine</option
    ><option value="MD">Maryland</option
    ><option value="MA">Massachusetts</option
    ><option value="MI">Michigan</option
    ><option value="MN">Minnesota</option
    ><option value="MS">Mississippi</option
    ><option value="MO">Missouri</option
    ><option value="MT">Montana</option
    ><option value="NE">Nebraska</option
    ><option value="NV">Nevada</option
    ><option value="NH">New Hampshire</option
    ><option value="NJ">New Jersey</option
    ><option value="NM">New Mexico</option
    ><option value="NY">New York</option
    ><option value="NC">North Carolina</option
    ><option value="ND">North Dakota</option
    ><option value="OH">Ohio</option
    ><option value="OK">Oklahoma</option
    ><option value="OR">Oregon</option
    ><option value="PA">Pennsylvania</option
    ><option value="RI">Rhode Island</option
    ><option value="SC">South Carolina</option
    ><option value="SD">South Dakota</option
    ><option value="TN">Tennessee</option
    ><option value="TX">Texas</option
    ><option value="UT">Utah</option
    ><option value="VT">Vermont</option
    ><option value="VA">Virginia</option
    ><option value="WA">Washington</option
    ><option value="WV">West Virginia</option
    ><option value="WI">Wisconsin</option
    ><option value="WY">Wyoming</option
    ><option value=" ">--</option
    ><option value="AA">Armed Forces (Americas)</option
    ><option value="AE"
      >Armed Forces (Europe, Canada, Middle East, Africa)</option
    ><option value="AP">Armed Forces (Pacific)</option
    ><option value="AS">American Samoa</option
    ><option value="FM">Federated States of Micronesia</option
    ><option value="GU">Guam</option
    ><option value="MH">Marshall Islands</option
    ><option value="MP">Northern Mariana Islands</option
    ><option value="PW">Palau</option
    ><option value="PR">Puerto Rico</option
    ><option value="VI">Virgin Islands</option></select
  >
</div>
{% endif %} {% if className == "is-error" %}
<div
  class="ds-control-group wbz-select is-error"
  id="webform-component-donor-information--state"
>
  <label for="edit-submitted-donor-information-state--error"
    >State/Province</label
  >
  <select
    id="edit-submitted-donor-information-state--error"
    name="submitted[donor_information][state]"
    class="form-select required key-validate"
    ><option value="" selected="selected" disabled="disabled">- Select -</option
    ><option value="AL">Alabama</option
    ><option value="AK">Alaska</option
    ><option value="AZ">Arizona</option
    ><option value="AR">Arkansas</option
    ><option value="CA">California</option
    ><option value="CO">Colorado</option
    ><option value="CT">Connecticut</option
    ><option value="DE">Delaware</option
    ><option value="DC">District of Columbia</option
    ><option value="FL">Florida</option
    ><option value="GA">Georgia</option
    ><option value="HI">Hawaii</option
    ><option value="ID">Idaho</option
    ><option value="IL">Illinois</option
    ><option value="IN">Indiana</option
    ><option value="IA">Iowa</option
    ><option value="KS">Kansas</option
    ><option value="KY">Kentucky</option
    ><option value="LA">Louisiana</option
    ><option value="ME">Maine</option
    ><option value="MD">Maryland</option
    ><option value="MA">Massachusetts</option
    ><option value="MI">Michigan</option
    ><option value="MN">Minnesota</option
    ><option value="MS">Mississippi</option
    ><option value="MO">Missouri</option
    ><option value="MT">Montana</option
    ><option value="NE">Nebraska</option
    ><option value="NV">Nevada</option
    ><option value="NH">New Hampshire</option
    ><option value="NJ">New Jersey</option
    ><option value="NM">New Mexico</option
    ><option value="NY">New York</option
    ><option value="NC">North Carolina</option
    ><option value="ND">North Dakota</option
    ><option value="OH">Ohio</option
    ><option value="OK">Oklahoma</option
    ><option value="OR">Oregon</option
    ><option value="PA">Pennsylvania</option
    ><option value="RI">Rhode Island</option
    ><option value="SC">South Carolina</option
    ><option value="SD">South Dakota</option
    ><option value="TN">Tennessee</option
    ><option value="TX">Texas</option
    ><option value="UT">Utah</option
    ><option value="VT">Vermont</option
    ><option value="VA">Virginia</option
    ><option value="WA">Washington</option
    ><option value="WV">West Virginia</option
    ><option value="WI">Wisconsin</option
    ><option value="WY">Wyoming</option
    ><option value=" ">--</option
    ><option value="AA">Armed Forces (Americas)</option
    ><option value="AE"
      >Armed Forces (Europe, Canada, Middle East, Africa)</option
    ><option value="AP">Armed Forces (Pacific)</option
    ><option value="AS">American Samoa</option
    ><option value="FM">Federated States of Micronesia</option
    ><option value="GU">Guam</option
    ><option value="MH">Marshall Islands</option
    ><option value="MP">Northern Mariana Islands</option
    ><option value="PW">Palau</option
    ><option value="PR">Puerto Rico</option
    ><option value="VI">Virgin Islands</option></select
  ><label
    for="edit-submitted-donor-information-state--error"
    generated="true"
    class="error"
    >This field is required</label
  >
</div>
{% endif %}
.is-error

Handle invalid value

Form > Text area

Text area

Wrap around the <textarea> HTML element.

Implement:

  • Via classname: <div class="wbz-textarea">
  • Via @use: textarea { @include ds.textarea; }

Handle errors:

  • Via classname modifier: <div class="wbz-textarea is-error">
  • Via @use: .error { textarea { @include ds.textarea("error"); } }
.wbz-textarea
Responses will be kept confidential.
Responses will be kept confidential.
HTML Example
{% if not className %}
<div
  class="ds-control-group wbz-textarea"
  id="webform-component-tell-us-what-inspired-you-to-donate-today"
>
  <label for="edit-submitted-tell-us-what-inspired-you-to-donate-today"
    >Tell us what inspired you to donate today:
  </label>
  <textarea
    id="edit-submitted-tell-us-what-inspired-you-to-donate-today"
    name="submitted[tell_us_what_inspired_you_to_donate_today]"
    cols="60"
    rows="5"
    class="form-textarea"
  ></textarea>
  <div class="description">Responses will be kept confidential.</div>
</div>

<div
  class="ds-control-group wbz-textarea"
  id="webform-component-tell-us-what-inspired-you-to-donate-today--disabled"
>
  <label
    for="edit-submitted-tell-us-what-inspired-you-to-donate-today--disabled"
    >Tell us what inspired you to donate today:
  </label>
  <textarea
    id="edit-submitted-tell-us-what-inspired-you-to-donate-today"
    name="submitted[tell_us_what_inspired_you_to_donate_today]"
    cols="60"
    rows="5"
    class="form-textarea"
    disabled
  ></textarea>
  <div class="description">Responses will be kept confidential.</div>
</div>
{% endif %} {% if className == "is-error" %}
<div
  class="ds-control-group wbz-textarea is-error"
  id="webform-component-tell-us-what-inspired-you-to-donate-today--error"
>
  <label for="edit-submitted-tell-us-what-inspired-you-to-donate-today--error"
    >Tell us what inspired you to donate today:
  </label>
  <textarea
    id="edit-submitted-tell-us-what-inspired-you-to-donate-today"
    name="submitted[tell_us_what_inspired_you_to_donate_today]"
    cols="60"
    rows="5"
    class="form-textarea"
  ></textarea>
  <div class="description">Responses will be kept confidential.</div>
  <label
    for="webform-component-tell-us-what-inspired-you-to-donate-today--error"
    generated="true"
    class="error"
    >This field is required</label
  >
</div>
{% endif %}
.is-error
Responses will be kept confidential.

Handle invalid value