# Noizu.Tessera v0.2.0 - Table of Contents > Write a web component once as an Elixir spec: it compiles to a custom element whose events arrive in your Hologram actions as plain params, with no glue code. Includes compile-time contract and Custom Elements Manifest codegen and the @noizu/tessera-core JS runtime. ## Pages - [tessera](readme.md) - [Tessera extension contract (draft v0.1)](extension-contract.md) - Guides - [Authoring tessera components (Elixir side)](authoring.md) - [Consuming noizu_tessera in a Hologram app](consuming.md) - [Extending Tessera on the JS side](extending.md) - Reference - [Tessera wire contract (v1)](contract.md) ## Modules - [Noizu.Tessera.Codegen](Noizu.Tessera.Codegen.md): Code generators over a `Noizu.Tessera.Spec` - [Noizu.Tessera.Component](Noizu.Tessera.Component.md): `use Noizu.Tessera.Component, tag: "persona-card", js: "persona_card.mjs"` - [Noizu.Tessera.Component.Expr](Noizu.Tessera.Component.Expr.md): SPIKE (`spike/elixir-to-lit`): translator for the restricted Elixir subset accepted inside tessera element `action/2` bodies and `~TSR` template expressions (see docs/notes/spike-elixir-to-lit.md §subset). - [Noizu.Tessera.Component.Extension](Noizu.Tessera.Component.Extension.md): The shared Elixir derivation layer behind `use Vendor.Element, tag: …` (EXTENSION-CONTRACT.md §5). Runtime-agnostic on purpose: Tier 1 (compiled to Lit) uses it now, and Tier 2 (Hologram-in-element, brief 3f) reuses the same merge + dispatcher generation — the spec is the single interface between definition and runtime (§9). - [Noizu.Tessera.Component.LitCodegen](Noizu.Tessera.Component.LitCodegen.md): SPIKE (`spike/elixir-to-lit`): emits the Lit element module for a spec that declared `state` / `template ~TSR` / `action` (docs/notes/spike-elixir-to-lit.md §codegen). - [Noizu.Tessera.Component.Styles](Noizu.Tessera.Component.Styles.md): CSS helpers for the `styles` DSL (EXTENSION-CONTRACT.md §7 theming). - [Noizu.Tessera.Component.Template](Noizu.Tessera.Component.Template.md): SPIKE (`spike/elixir-to-lit`): `~TSR` element-template parsing and lit-html emission (docs/notes/spike-elixir-to-lit.md §template-parser). - [Noizu.Tessera.FromLit.Extractor](Noizu.Tessera.FromLit.Extractor.md): Mechanical shape extraction from a Lit 3 component source (`.js`/`.ts`). - [Noizu.Tessera.FromLit.Generator](Noizu.Tessera.FromLit.Generator.md): Turns a `Noizu.Tessera.FromLit.Extractor` shape descriptor into a tessera component stub: the spec module (attr/prop/event/slot/cy DSL), a colocated Lit-based `.mjs` element template, and the WTR test skeleton. - [Noizu.Tessera.Hologram.Adapter](Noizu.Tessera.Hologram.Adapter.md): Generates the Hologram component (the "adapter", CONTRACT.md §3/§5) inside a module that did `use Noizu.Tessera.Component`. - [Noizu.Tessera.Hologram.Standalone](Noizu.Tessera.Hologram.Standalone.md): Tier 2 spike: compiles ORDINARY Hologram components into standalone, host-agnostic bundles by driving Hologram's own compiler pipeline. - [Noizu.Tessera.Naming](Noizu.Tessera.Naming.md): Naming conversions of the tessera wire contract (CONTRACT.md §1). - [Noizu.Tessera.Package](Noizu.Tessera.Package.md): `use Noizu.Tessera.Package, components: [MyApp.PersonaCard, ...]` - [Noizu.Tessera.Spec](Noizu.Tessera.Spec.md): The compiled spec of a tessera component (CONTRACT.md is authoritative). ## Mix Tasks - [mix tessera.cem](Mix.Tasks.Tessera.Cem.md): Writes the Custom Elements Manifest (`Noizu.Tessera.Codegen.cem/1`, schemaVersion "1.0.0") for a tessera component package - [mix tessera.compile_component](Mix.Tasks.Tessera.CompileComponent.md): Compiles one or more ORDINARY Hologram components into standalone, host-agnostic bundles using Hologram's own compiler (Tier 2 spike). - [mix tessera.from_lit](Mix.Tasks.Tessera.FromLit.md): Converts an existing Lit 3 component (`.js`/`.ts`) into a tessera component stub in the current Mix project - [mix tessera.gen.component](Mix.Tasks.Tessera.Gen.Component.md): Scaffolds a tessera web component in the current Mix project - [mix tessera.gen.gallery](Mix.Tasks.Tessera.Gen.Gallery.md): Scaffolds the tessera component gallery for a package in the current Mix project - [mix tessera.golden](Mix.Tasks.Tessera.Golden.md): Rewrites the checked-in goldens under `test/fixtures/` from the CURRENT generators - [mix tessera.install](Mix.Tasks.Tessera.Install.md): Prepares a Hologram host app's `assets/` for tessera components - [mix tessera.manifest](Mix.Tasks.Tessera.Manifest.md): Aggregates `__tessera_manifest__/0` across every tessera component in the current Mix project and its loaded deps, then writes