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

CSS token contracts

Style <tng-autocomplete> through host-level semantic tokens. The wrapper owns the trigger markup, so the supported surface is the wrapper host plus its CSS custom properties rather than private descendant selectors.

Selector / tokenApplied onPurpose
tng-autocompleteWrapper hostWidth, margins, host-level semantic tokens, and disabled state affordance.
tng-autocomplete[data-disabled]Wrapper hostOptional wrapper-level disabled presentation for surrounding shells.
--tng-semantic-background-canvasWrapper hostTrigger input surface background.
--tng-semantic-background-surfaceWrapper hostTrigger shell fill and default neutral state.
--tng-semantic-border-subtleWrapper hostOuter border color for the owned trigger shell.
--tng-semantic-border-strongWrapper hostHover and resting border emphasis for the trigger shell.
--tng-semantic-foreground-primaryWrapper hostInput text and selected option text color.
--tng-semantic-foreground-secondaryWrapper hostSupporting copy and option helper color inside the owned theme.
--tng-semantic-accent-brandWrapper hostSelected row, active row, and icon accent color.
--tng-semantic-focus-ringWrapper hostFocus ring color around the owned trigger shell.

Portal overlay guidance

The wrapper trigger lives in your component tree, but the autocomplete panel is portaled. Use wrapper host tokens for the trigger shell, and move overlay-specific selectors into a global stylesheet when you need to restyle the panel itself.

autocomplete.portal-guidance.css

css
/* Component-scoped CSS reaches the wrapper host and trigger shell. */
tng-autocomplete.release-owner-shell {
  --tng-semantic-background-canvas: #ffffff;
  --tng-semantic-background-surface: #f8fafc;
  --tng-semantic-border-subtle: #cbd5e1;
  --tng-semantic-border-strong: #cbd5e1;
  --tng-semantic-foreground-primary: #0f172a;
  --tng-semantic-foreground-secondary: #475569;
  --tng-semantic-accent-brand: #2563eb;
  --tng-semantic-focus-ring: #2563eb;
}

/* Overlay rows are portaled. Put overlay-specific selectors in a global stylesheet. */
[data-slot='autocomplete-overlay'] {
  border-radius: 1rem;
}

[data-slot='autocomplete-option'][data-selected] {
  background: color-mix(in srgb, var(--tng-semantic-accent-brand, #2563eb) 18%, transparent);
}

User scenario style examples

The same wrapper contract can sit inside a plain CSS shell or a Tailwind shell by overriding host-level semantic tokens.

Release owner shell (Plain-CSS)

Release owner

Host-level token overrides restyle the wrapper without reaching into private child selectors.

Selected: Mina Lee