Progressive interactivity
Frasto starts with useful HTML and progressively adds behavior.
Native HTML ↓Astro component ↓CSS ↓Small TypeScript enhancement ↓Web Component ↓Focused dependencyDecision rule
Section titled “Decision rule”Use the lowest layer that delivers complete semantics, keyboard operation, focus behavior, announcements, and responsive interaction.
Examples
Section titled “Examples”| Need | Preferred starting point |
|---|---|
| disclosure | <details> / <summary> |
| modal foundation | <dialog> |
| static tabs appearance | links or server-rendered navigation |
| client tab switching | focused script or Web Component |
| anchored collision-aware popover | native Popover API or Floating UI if needed |
Enhancement contract
Section titled “Enhancement contract”Enhanced components should begin from understandable markup where practical. Initialization must be idempotent, local, and safe when multiple component instances exist.
Failure behavior
Section titled “Failure behavior”If JavaScript does not run, static content should remain readable and form submissions should remain possible when the product architecture supports a server fallback.

