# macaw_component v0.1.3 - Table of Contents > Macaw's component contract: declarations, kinds, the context, rendering modes, drawn states and the component conformance kit. ## Pages - [README](readme.md) - [Changelog](changelog.md) ## Modules - [Macaw.Component](Macaw.Component.md): The component contract (spec/01): the behavior every Macaw component implements, and the dispatch functions a host reaches a component through. - [Macaw.Component.Announcement](Macaw.Component.Announcement.md): An announcement request (spec/01 §1.6): `%{name, text, politeness}`, for a name the component declares in `announces`. Components never render a live region; the announcer is the host's. - [Macaw.Component.Assigns](Macaw.Component.Assigns.md): The assigns a component renders with (spec/02 §1): `context`, `settings`, `declarations`, `drawn`, `deliveries` and `value`, and nothing else. Nothing else reaches a component: not the viewer, not another component, not the page. - [Macaw.Component.Client](Macaw.Component.Client.md): The fixed names of the client protocols every adopter shares (spec/02 §8): the announcer's two regions, the announce event, and the client bus. Each is found, not created per component, so components share one announcer and one bus on any page. - [Macaw.Component.Conformance](Macaw.Component.Conformance.md): The component conformance kit (spec/04): the contract and the rendering rules as checks, so a component author proves conformance by running it. - [Macaw.Component.Context](Macaw.Component.Context.md): The context a component renders in (spec/02 §2): its mode, instance, size, root font size, heading level, theme, the viewer's preferences, and the holder's now. - [Macaw.Component.Declarations](Macaw.Component.Declarations.md): A component's configured declarations (spec/01 §1.2), built by `new/2` from its `declarations/1` answer, every key checked, every fault at once. - [Macaw.Component.Drawn](Macaw.Component.Drawn.md): Drawn states (spec/02 §6): every component is always in exactly one, in this precedence, each but `live` with a theme role, a glyph and words, and never blank. - [Macaw.Component.Mode](Macaw.Component.Mode.md): The rendering modes and what each allows (spec/02 §3). - [Macaw.Component.Package](Macaw.Component.Package.md): The package side of the registry (spec/03): what a package provides, read the same way by every host. A package is a module with `__members__/0`; its components are the members that use `Macaw.Component`, each registering through its static declarations. - [Macaw.Component.Proxy](Macaw.Component.Proxy.md): Proxy routes (spec/01 §1.8): media a component needs from another origin, fetched by the host's one same-origin proxy, so a page holds same-origin URLs only. - [Macaw.Component.Slot](Macaw.Component.Slot.md): A slot: a typed input, `%{requires: %{role => requirement}, doc: "…"}` (spec/01 §1.3). - [Macaw.Component.State](Macaw.Component.State.md): The state vocabulary a component and every host agree on (spec/01 §1.5): the standard state sources a component may write, and the value and domain types. - [Macaw.Component.Stylesheet](Macaw.Component.Stylesheet.md): Generated stylesheets (spec/01 §1.8): CSS a document defines at runtime, served from `'self'` at a path addressed by its content, so the same document always yields the same file and base renders capture it.