# Attributions

## The element package takes none

`@teasim/astra` has no external runtime dependencies, and neither does
`@teasim/aster`, whose only peer is `@teasim/astra` itself. Where a browser
primitive exists it is used directly — `details` for disclosure, `dialog` for modals,
`popover` where it is supported. Where one does not, the behaviour lives in a
small shared runtime inside the package.

This is a constraint, not an accident, and it is checked: the dependency
boundary is that the element package takes nothing and the content package may,
so where a feature needs a dependency, that need decides which package it
belongs in.

## What the site uses

**Astro** builds the site and owns the content collections, the markdown
pipeline and the view transitions.

**TeaCSS** generates the stylesheet by scanning source for whole class tokens.
Every utility on this site is a class in the markup; nothing is written by hand
except a handful of gradients that a utility cannot express.

**Shiki**, through Astro's own markdown pipeline, highlights code at build time.
The components frame the result and never tokenize it themselves.

**IBM Plex Sans** and **IBM Plex Serif**, self-hosted at build time.

## Standards

The interface targets WCAG 2.2 AA. The criteria that shaped the most decisions
here were 1.4.10 Reflow, 1.4.11 Non-text Contrast, 1.4.12 Text Spacing, 2.4.1
Bypass Blocks, and 2.5.8 Target Size.