Skip to main content
Normal UI

Molecules

A few atoms working together as one unit with one job: a quantity stepper, a menu button, a breadcrumb trail.

Actions

Button group
Buttons joined edge to edge into one control: neighbours share a single control-border line and only the outer corners keep radius-control.
Hint popover
A tooltip-like hint built from two new platform features: popover="hint" (a popover that does not close other open popovers) and interestfor (shows it when the button is hovered or focused, and hides it when interest moves away).
Menu button
The APG Menu Button: a button with aria-haspopup="menu" and aria-expanded that opens a role="menu" of role="menuitem" actions.
Tooltip
A short hint that appears above its trigger on hover and on keyboard focus, and hides again on Esc (WCAG 1.4.13).

Navigation

Breadcrumb
A <nav aria-label="Breadcrumb"> holding an <ol> of links, separated by a › that screen readers skip.
Stepper
An ordered list of steps: <ol class="pd-steps" aria-label>, with data-done on finished steps and aria-current="step" on the current one.

Forms

Combobox
An editable combobox with list autocomplete: a text <input role="combobox"> controlling a role="listbox" popup of suggestions.
Fieldset
A <fieldset> with a 1px solid control-border (in place of the low-contrast 2px groove) and a <legend> set into the top border.
File upload
A native <input type="file"> inside a large dashed drop zone (label.pd-drop), with one progress bar per file.
Input group
A <label> above a row of joined members on field, bordered in control-border, typed text in field-text at 16px: inputs and selects that grow, addons in their own bordered boxes, and buttons.
Listbox
A single-select list where every option stays visible: <ul role="listbox" tabindex="0"> of role="option"s, using aria-activedescendant for the highlighted option.
Range slider
The APG multi-thumb slider, built from two native range inputs in a <fieldset>: one for the minimum, one for the maximum.
Spinbutton
A native <input type="number"> (role spinbutton) with large − and + buttons, joined into one control with ButtonGroup.
Tri-state checkbox
A parent checkbox that shows whether all, none or some of its children are checked.

Status

Loading
Loading at three levels, each saying what is happening in words first: a button whose action is under way, a component waiting for its content, and a region or page waiting for data.
Toast
A brief confirmation in the corner, placed in the top layer with popover="manual" and announced through role="status".

Content

Review comments
Tracked changes and comments in a text, using the review roles from the WAI-ARIA 1.3 draft: role="suggestion" around a <del>/<ins> pair, role="mark" on commented text, role="comment" for the note, and aria-details linking the two.