# press v0.1.0 - Table of Contents

> A dependency-free Elixir library for rendering HTML+CSS into PDF

## Pages

- [Press](readme.md)
- [LICENSE](license.md)

## Modules

- [Press](Press.md): `Press` is a dependency-free, pure-Elixir HTML+CSS to PDF engine.

- [Press.CSS.PageRule](Press.CSS.PageRule.md): A parsed `@page { ... }` rule, as produced by `Press.CSS.Parser.parse/1`.
- [Press.CSS.Parser](Press.CSS.Parser.md): Parses a CSS string into `{page_rules, style_rules}`.
- [Press.CSS.Rule](Press.CSS.Rule.md): A parsed CSS style rule (`selector { declarations }`), as produced by
`Press.CSS.Parser.parse/1`.
- [Press.HTML.Element](Press.HTML.Element.md): An HTML element node in the DOM produced by `Press.HTML.Parser`.
- [Press.HTML.Parser](Press.HTML.Parser.md): Parses an HTML string into a list of top-level DOM nodes
(`Press.HTML.Element` / `Press.HTML.Text`).
- [Press.HTML.Text](Press.HTML.Text.md): A text node in the DOM produced by `Press.HTML.Parser`.
- [Press.Image](Press.Image.md): Represents an image decoded and prepared for PDF embedding.

- [Press.Layout](Press.Layout.md): Transforms a styled tree into a positioned geometric box tree.

- [Press.Layout.Box](Press.Layout.Box.md): A positioned geometric box in the layout tree.

- [Press.Layout.Page](Press.Layout.Page.md): A paginated page containing dimensions, margins, and positioned layout boxes.

- [Press.Style.Cascade](Press.Style.Cascade.md): Builds the styled tree: matches CSS rules against the DOM, resolves
the cascade (per property, ordered by origin + specificity + source
index), applies inheritance, and resolves units to points — except
`%`, which stays symbolic (`{:percent, n}`) for Layout to resolve
against the actual containing block width it computes. See
`docs/superpowers/specs/2026-07-24-css-parser-cascade-design.md` for
the full algorithm.

- [Press.Style.Node](Press.Style.Node.md): A styled element node, as produced by `Press.Style.Cascade.build/3`.
- [Press.Style.Text](Press.Style.Text.md): A styled text node, as produced by `Press.Style.Cascade.build/3`.

