# `AshUi.Verifiers.StylesheetResolution`
[🔗](https://github.com/hyperbob-labs/ash_ui/blob/main/lib/ash_ui/verifiers/stylesheet_resolution.ex#L1)

Compile-time stylesheet resolution discipline (DESIGN.md §9).

- A document-producing (routed) resource must have effective stylesheets:
  either locally declared via `ash_ui do stylesheets [...] end`, or
  SUPPLIED by a substrate extension through the supplier seam.
- Supplied + locally declared is a conflict — one assembly channel only.
- A non-routed (embedded/component) resource must not declare stylesheets;
  it is covered by the pages that mount it.

## The supplier seam

A substrate extension's transformer supplies the effective stylesheets by
persisting `{:ash_ui, :supplied_stylesheets}` with a list of paths:

    dsl_state
    |> Spark.Dsl.Transformer.persist(
      {:ash_ui, :supplied_stylesheets},
      ["platform/tokens.css", "skins/mail.css"]
    )

When that marker is a list, it becomes the resource's effective stylesheet
set (persisted as `:ash_ui_stylesheets` and returned by
`AshUi.Info.stylesheets/1`); the resource must then declare none
locally. There are no default stylesheets and no runtime fallbacks.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
