4.33.0

Form

Forms and other form-related elements

Demo

API

For additional information and demo of inputs, see Input.

Tags

Name Description
<form> Standard HTML tag, accepts content
<fieldset> Standard HTML tag, accepts all form elements.
<label> Standard HTML tag, accepts content.

Classes

Name Description
div.input-desc Optional description. Place this directly after the input or checkbox/radio group.
div.input-msg Optional validation message shown only when input or checkbox/radio group has class error, warning, success. Place this after the form element and any .input-desc text.
label.required Styles a required input's label.
label.disabled Styles a disabled input's label.

Attributes

All standard attributes apply. See MDN <form> Attributes for official docs.

Guidelines

Accessibility

The form should have a heading, either inside the form element or directly above in an <h> tag.

Use id="{{input-id}}" and for="{{input-id}}" in inputs and labels so screen readers will properly associate them with each other.

Use aria-describedby="{{description-id}}" on any input that has a description or validation message associated with it. aria-describedby can have multiple space-separated values.

Add the aria-required="true" attribute to any required inputs.

Add the aria-invalid="true" attribute to an input whose contents are found to be invalid.

Submit buttons

Do not use <input type="submit">. See Submit button Guideline on the Input page.

Label element and styling

The <label> HTML element should only be used within a form (and fieldset). To achieve the same styling outside of a form, use the text-label utility class.

Inline fields

Inline input fields should use the grid when possible. They can be grouped within a single fieldset, using the grid inside the fieldset element if they are related inputs. Otherwise use a grid row with individual inputs within each column.

Inline input fields should never have a description line. If an input field requires a description, it should have its own row.

Design

Design resources can be found on the Skylab design documentation site: skylab.avalara.com