Getting StartedInstallation and setup guides 5
LayoutWorkflow and structural layout components 7
OverlayModal and floating layer surfaces 3
FeedbackStatus, empty, progress, and loading placeholder patterns 5
FormInput and selection components 17
UtilityGeneral-purpose interface utilities 7
NavigationMenu surfaces and hierarchical actions 7

Styling contract

Style the component wrapper through host-level semantic tokens. The internal option markup is owned by <tng-listbox>, so the supported customization surface is the host plus its CSS custom properties rather than private child selectors.

CSS contract table

Selector / tokenApplied onPurpose
tng-listboxWrapper hostWidth, margins, outer border radius, and host-level positioning.
tng-listbox[data-orientation='horizontal']Wrapper hostOptional layout tweaks for horizontal listboxes.
tng-listbox[data-disabled]Wrapper hostGlobal disabled affordance.
--tng-semantic-background-surfaceWrapper hostOption surfaces and outer listbox card background.
--tng-semantic-background-baseWrapper hostBase fill used behind option cards.
--tng-semantic-border-subtleWrapper hostBorder color for the wrapper and option rows.
--tng-semantic-accent-brandWrapper hostActive and selected state accent color.
--tng-semantic-focus-ringWrapper hostFocus ring color applied by the owned wrapper.
--tng-semantic-foreground-primaryWrapper hostPrimary option label color.
--tng-semantic-foreground-secondaryWrapper hostSecondary description and helper text color.

Plain CSS host styling

listbox.contract.css

css
.project-listbox-card {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--tng-semantic-border-subtle);
  border-radius: 1rem;
  background: var(--tng-semantic-background-surface);
  color: var(--tng-semantic-foreground-primary);
}

.project-listbox-card tng-listbox {
  width: 100%;
  max-width: none;
}

Tailwind host styling

listbox.contract.html

html
<div class="w-full max-w-none rounded-xl">
  <tng-listbox
    ariaLabel="Project queue"
    [options]="projectOptions"
    [value]="selectedProject()"
    (valueChange)="onSelectedProjectChange($event)"
  ></tng-listbox>
</div>