> ## Documentation Index
> Fetch the complete documentation index at: https://invoca-5bd45748-mintlify-6c3474a6.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Layout & grid

> Divergences, open decisions, and undocumented gaps for Layout & grid.

See [Layout & grid](/invoca-design-system/foundations/layout-and-grid) for the decided part of this page.

## Known issues

Divergences are where code and design intent disagree; open decisions are where nothing
has been decided yet. Neither is resolvable by inference.

| ID                                                                                | Kind          | What                                                      |
| --------------------------------------------------------------------------------- | ------------- | --------------------------------------------------------- |
| [**TITAN-DIV-08**](/invoca-design-system/foundations/divergences#titan-div-08)    | Divergence    | no grid specification                                     |
| [**TITAN-DIV-09**](/invoca-design-system/foundations/divergences#titan-div-09)    | Divergence    | the naming specification and shipped tokens have diverged |
| [**TITAN-GAP-12**](/invoca-design-system/foundations/open-decisions#titan-gap-12) | Open decision | no layout tokens exist                                    |
| [**TITAN-GAP-15**](/invoca-design-system/foundations/open-decisions#titan-gap-15) | Open decision | no page-region model exists                               |

## Gaps in the current rules

Layout is the least specified foundation in Titan. Do not infer answers to any of these.

* **The specification's breakpoint vocabulary doesn't correspond to what ships.** It names
  `breakpoint-tablet-min`, `breakpoint-desktop-min`, and `breakpoint-desktop-max` — three
  bands — as tokens; none ship. The code has five unnamed numeric breakpoints and no
  breakpoint tokens at all. See
  [TITAN-DIV-09](/invoca-design-system/foundations/divergences#titan-div-09) and
  [TITAN-GAP-12](/invoca-design-system/foundations/open-decisions#titan-gap-12).
* **No layout tokens exist at all.** No container max-width, no page gutter, no column
  count, no sidebar width. Every one of those is currently a per-view decision with nothing
  to check it against.
* **The breakpoint values are unvalidated.** No evidence they were checked against Invoca's
  viewport distribution, and no decision is recorded for them.
* **No maximum content width is defined.** On a 2560px monitor a full-width text region
  produces line lengths far beyond the \~75-character readable maximum. Nothing prevents
  it.
* **`Grid`'s off-scale `spacing` prop is not documented as a hazard** anywhere in Titan.
  See [TITAN-LAY-03](#constraints-titan-should-enforce) below.
* **No guidance exists on breakpoints vs. container queries.** Both are available; nothing
  says which to reach for.
* **No published page-region model.** [Views](/invoca-design-system/views/overview) is the tier meant to answer this and
  is entirely stubs. Until it is written, page structure is undocumented.

## Constraints Titan should enforce

These are real, currently-true rules. Nothing in code stops a builder from violating them today — each is a placeholder for a guardrail Titan hasn't built, not a decision still being made.

| ID               | Constraint                                                                                        | Would be enforced by                                                                           |
| ---------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| **TITAN-LAY-01** | Layout responds only at the defined breakpoints, never a hardcoded media query.                   | A lint rule banning raw `@media (min-width:` literals in favor of the theme's breakpoints API. |
| **TITAN-LAY-02** | No custom intermediate breakpoint values.                                                         | The same lint, validating the breakpoint argument against the 5 defined names only.            |
| **TITAN-LAY-03** | Grid gaps come from a `spacing-*` token via `gap`, never the Grid component's own `spacing` prop. | An ESLint rule flagging `<Grid spacing={...}>` usage.                                          |
