Getting StartedInstall and bootstrap headless foundations 4
LayoutHeadless structural primitives for expandable and container patterns 6
OverlayHeadless modal and floating layer behavior 3
FeedbackHeadless notification and status communication patterns 5
FormHeadless input and selection contracts 17
UtilityReusable action, identity, and clipboard behavior 6
NavigationHeadless trails, trees, menus, and command surfaces 7

API reference

Stepper is a headless progress primitive with registered steps, value-driven selection, roving trigger focus, list-based semantics, and reflected state attributes.

tngStepper

Attach the root directive to the element that owns the step list. The root controls the current value, orientation, focus loop, and linear activation policy.

Headless stepper usage

html
<section
  tngStepper
  ariaLabel="Checkout progress"
  defaultValue="shipping"
  linear
  (valueChange)="currentStep = $event"
>
  <ol>
    <li tngStepperItem value="cart" label="Cart" completed>
      <button tngStepperTrigger><span tngStepperLabel>Cart</span></button>
    </li>
    <li tngStepperItem value="shipping" label="Shipping">
      <button tngStepperTrigger>
        <span tngStepperLabel>Shipping</span>
        <span tngStepperDescription>Address and delivery</span>
      </button>
      <section tngStepperPanel>Shipping form</section>
    </li>
  </ol>
</section>
Input / outputTypePurpose
valuestring | number | nullControlled current step value.
defaultValuestring | number | nullInitial uncontrolled current step value.
orientation'horizontal' | 'vertical'Controls root data-orientation and arrow-key direction.
linearbooleanBlocks future incomplete step activation while allowing current and completed steps.
loopFocusbooleanAllows arrow focus to wrap between first and last enabled triggers.
ariaLabel / ariaLabelledbystringAccessible name for the progress flow root.
valueChangestring | numberEmits when an allowed activation requests a new current step.
stepChange{ value, previousValue, trigger }Detailed change event with pointer, keyboard, or programmatic source.

tngStepperItem

Register each ordered step with a unique value. Item state is reflected onto the item and trigger so styling can key off the same contract.

InputTypePurpose
valuestring | numberRequired unique step id; ordering comes from DOM order.
completedbooleanMarks the step complete and allows activation in linear mode.
optionalbooleanAdds optional announcement text and data-optional.
disabledbooleanRemoves the trigger from roving focus and activation.
errorbooleanReflects the error state and announcement text.
label / descriptionstringAccessible trigger text used with generated position and state text.

Trigger and content directives

  • tngStepperTrigger is the focusable, click and keyboard activatable part.
  • tngStepperLabel and tngStepperDescription are structural slots for your text.
  • tngStepperPanel hides inactive content and labels itself from its trigger.
  • tngStepperConnector mirrors the owning item state for presentational connector lines.

Owner responsibilities

  • Use an ordered list when visual order communicates sequence.
  • Keep each step value unique and stable across reorders.
  • Update controlled value after valueChange if you want the UI to move.
  • Render visible optional, error, and completed affordances instead of relying on color only.