Skip to content

Protos ​

Protos are headless UI components that compose atoms via Angular's hostDirectives. They provide complete behavior and accessibility with zero CSS. You bring the design.

Available Protos ​

ProtoPackageDescription
ProtoButton@terse-ui/protos/buttonAccessible button behavior with keyboard support, disabled states, and ARIA semantics

How Protos Work ​

Each proto declares atoms in its hostDirectives array, inheriting their behavior automatically:

ts
@Directive({
  selector: '[protoButton]',
  hostDirectives: [AtomId, AtomHover],
  // ...ARIA, keyboard, disabled state logic
})
export class ProtoButton { }

Angular 22's host directive de-duplication means there are no conflicts when multiple protos or directives share the same atoms on an element.

Styling ​

All protos expose data-* attributes for styling. No CSS is shipped — every pixel is yours:

css
[protoButton] { /* base */ }
[protoButton][data-disabled] { /* disabled */ }
[protoButton][data-hover] { /* hovered */ }

See each proto's documentation for the full list of data attributes and recommended CSS selectors.

Released under the MIT License.