{
  "id": "glossary/publication/site/theme",
  "mentions": [
    {
      "context": "… look of its site without forking the theme, presented from a deck of six slides…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… concordance gallery writes so that a theme is styled and checked without buildi…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… the contract between the build and a theme: Shell, Header and Footer around eve…",
      "file": {
        "href": "../slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../slot/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 5,
      "surface": "theme",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… files itself under the assets of its theme and binds them with @font-face rules…",
      "file": {
        "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html",
        "label": "decisions/publication/self-hosted-fonts.md"
      },
      "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 4,
      "surface": "theme",
      "title": "Self-hosted fonts",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…have a page of its own: a component a theme or the type's module provides for it…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 4,
      "surface": "theme",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… stylesheet, whatever decided it, the theme's default, the system preference or …",
      "file": {
        "href": "../../../../specs/screens/panels/colour-scheme/index.html",
        "label": "screens/panels/colour-scheme.md"
      },
      "href": "../../../../specs/screens/panels/colour-scheme/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 4,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… contract between the generator and a theme. A theme that replaces a component k…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… between the generator and a theme. A theme that replaces a component keeps the …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…un on the rendered pages whatever the theme, and the page budget is measured on …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…n the fourth cascade layer, so that nothing in the default theme can outrank it.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.md"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… look of its site without forking the theme.  Six slides for the working session…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pdf"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L1",
      "kind": "recognised",
      "line": 1,
      "location": "page 1",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "2 · WHAT EXISTS  theme.yaml  Name, logo, favicon, font families, corner radius. …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pdf"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L3",
      "kind": "recognised",
      "line": 3,
      "location": "page 3",
      "passages": 21,
      "surface": "theme.yaml",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… contract between the generator and a theme.  A theme that replaces a component …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pdf"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…between the generator and a theme.  A theme that replaces a component keeps the …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pdf"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "page 4",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… look of its site without forking the theme.  Six slides for the working session…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pptx"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L1",
      "kind": "recognised",
      "line": 1,
      "location": "slide 1",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "2 · WHAT EXISTS  theme.yaml  Name, logo, favicon, font families, corner radius. …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pptx"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L3",
      "kind": "recognised",
      "line": 3,
      "location": "slide 3",
      "passages": 21,
      "surface": "theme.yaml",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… contract between the generator and a theme.  A theme that replaces a component …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pptx"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…between the generator and a theme.  A theme that replaces a component keeps the …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.pptx"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "slide 4",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…lides on how a project overrides the look of its site without forking the theme.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L1",
      "kind": "recognised",
      "line": 1,
      "location": "00:01:00",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "Slide two is what exists: theme.yaml. Name, logo, favicon, the font families, th…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L3",
      "kind": "recognised",
      "line": 3,
      "location": "00:10:15",
      "passages": 21,
      "surface": "theme.yaml",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ed view model. The view model is the contract between the generator and a theme.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L4",
      "kind": "recognised",
      "line": 4,
      "location": "00:15:00",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "A theme that replaces a component has to keep the view model, then. What stops a…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L5",
      "kind": "recognised",
      "line": 5,
      "location": "00:20:30",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ep the view model, then. What stops a theme from dropping the mentions or the le…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L5",
      "kind": "recognised",
      "line": 5,
      "location": "00:20:30",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…un on the rendered pages whatever the theme, and the page budget is measured on …",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "location": "00:24:30",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ject. The project layer is last, so nothing in the default theme can outrank it.",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "location": "00:34:30",
      "passages": 21,
      "surface": "theme",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…y message of the catalogue through theme.yaml, in the same syntax as the message…",
      "file": {
        "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html",
        "label": "meetings/2026/2026-08-27-theme-override-model/theme-override-model.vtt"
      },
      "href": "../../../../briefs/meetings/2026/2026-08-27-theme-override-model/theme-override-model/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "location": "00:39:05",
      "passages": 21,
      "surface": "theme.yaml",
      "title": "Theme override model",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…th, who renders its slot, the default theme or the plugin and theme that overrid…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…, the default theme or the plugin and theme that override it, and the page frame…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…gh the generic entity page or, when a theme or the type's module provides one, t…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…palette and the labels of the default theme; the stylesheet follows the system c…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "The theme comes from the registry the build uses: --theme names a plugin package…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…on apply, and without any the default theme renders alone. The theme.yaml of the…",
      "file": {
        "href": "../../../../specs/screens/pages/gallery-index/index.html",
        "label": "screens/pages/gallery-index.md"
      },
      "href": "../../../../specs/screens/pages/gallery-index/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 7,
      "surface": "theme",
      "title": "Gallery index",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… the contract between the build and a theme: Shell, Header and Footer around eve…",
      "file": {
        "href": "../slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../slot/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 5,
      "surface": "theme",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…panels of an entity page. The default theme implements every slot; a plugin them…",
      "file": {
        "href": "../slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../slot/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 5,
      "surface": "theme",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…theme implements every slot; a plugin theme replaces any of them with a componen…",
      "file": {
        "href": "../slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../slot/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 5,
      "surface": "theme",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…very slot with fixture data so that a theme is styled without building a corpus.",
      "file": {
        "href": "../slot/index.html",
        "label": "publication/site/slot.md"
      },
      "href": "../slot/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 5,
      "surface": "theme",
      "title": "Slot",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…es in its stylesheet, and the default theme emits no request to any other host. …",
      "file": {
        "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html",
        "label": "decisions/publication/self-hosted-fonts.md"
      },
      "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 4,
      "surface": "theme",
      "title": "Self-hosted fonts",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…host. The two families of the default theme, Instrument Sans for the text and IB…",
      "file": {
        "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html",
        "label": "decisions/publication/self-hosted-fonts.md"
      },
      "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 4,
      "surface": "theme",
      "title": "Self-hosted fonts",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… licence, so that a project without a theme of its own reads in them from the di…",
      "file": {
        "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html",
        "label": "decisions/publication/self-hosted-fonts.md"
      },
      "href": "../../../../specs/decisions/publication/self-hosted-fonts/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "passages": 4,
      "surface": "theme",
      "title": "Self-hosted fonts",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…omponent named EntityPage@<type> by a theme, or the EntityPage a type module shi…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L25",
      "kind": "recognised",
      "line": 25,
      "passages": 4,
      "surface": "theme",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…e. The priority is fixed: the project theme, then the type module, then the defa…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L25",
      "kind": "recognised",
      "line": 25,
      "passages": 4,
      "surface": "theme",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…hen the type module, then the default theme; the build summary lists every resol…",
      "file": {
        "href": "../../../../specs/screens/pages/entity-page/index.html",
        "label": "screens/pages/entity-page.md"
      },
      "href": "../../../../specs/screens/pages/entity-page/index.html#L25",
      "kind": "recognised",
      "line": 25,
      "passages": 4,
      "surface": "theme",
      "title": "Entity page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ice is stored. Without JavaScript the theme's default and the system preference …",
      "file": {
        "href": "../../../../specs/screens/panels/colour-scheme/index.html",
        "label": "screens/panels/colour-scheme.md"
      },
      "href": "../../../../specs/screens/panels/colour-scheme/index.html#L13",
      "kind": "recognised",
      "line": 13,
      "passages": 4,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…oice before the first paint. When the theme's default and the system preference …",
      "file": {
        "href": "../../../../specs/screens/panels/colour-scheme/index.html",
        "label": "screens/panels/colour-scheme.md"
      },
      "href": "../../../../specs/screens/panels/colour-scheme/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 4,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Reads: nothing of the corpus; the theme of the site",
      "file": {
        "href": "../../../../specs/screens/panels/colour-scheme/index.html",
        "label": "screens/panels/colour-scheme.md"
      },
      "href": "../../../../specs/screens/panels/colour-scheme/index.html#L23",
      "kind": "recognised",
      "line": 23,
      "passages": 4,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…he default locale of the sources; its theme, the theme file relative to the conf…",
      "file": {
        "href": "../../../ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "../../../ingestion/configuration/project/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…locale of the sources; its theme, the theme file relative to the configuration, …",
      "file": {
        "href": "../../../ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "../../../ingestion/configuration/project/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… the project stylesheet are the ones this block, the profile and the theme name.",
      "file": {
        "href": "../../../ingestion/configuration/project/index.html",
        "label": "ingestion/configuration/project.md"
      },
      "href": "../../../ingestion/configuration/project/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Project",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… the accessibility points the default theme settled, so that the site stays conf…",
      "file": {
        "href": "../accessibility-audit/index.html",
        "label": "publication/site/accessibility-audit.md"
      },
      "href": "../accessibility-audit/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Accessibility audit",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… the accessibility points the default theme settled, so that the site stays conf…",
      "file": {
        "href": "../accessibility-audit/index.html",
        "label": "publication/site/accessibility-audit.md"
      },
      "href": "../accessibility-audit/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Accessibility audit",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…stallation inherits the guarantees as long as its theme keeps what they rest on.",
      "file": {
        "href": "../accessibility-audit/index.html",
        "label": "publication/site/accessibility-audit.md"
      },
      "href": "../accessibility-audit/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 3,
      "surface": "theme",
      "title": "Accessibility audit",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "broader",
      "file": {
        "href": "../colour-scheme/index.html",
        "label": "publication/site/colour-scheme.md"
      },
      "href": "../colour-scheme/index.html#L1",
      "kind": "written",
      "line": 1,
      "passages": 3,
      "title": "Colour scheme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "One of the two palettes of a theme, light or dark, in force on a page of the sit…",
      "file": {
        "href": "../colour-scheme/index.html",
        "label": "publication/site/colour-scheme.md"
      },
      "href": "../colour-scheme/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 3,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "One of the two palettes of a theme, light or dark, in force on a page of the sit…",
      "file": {
        "href": "../colour-scheme/index.html",
        "label": "publication/site/colour-scheme.md"
      },
      "href": "../colour-scheme/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 3,
      "surface": "theme",
      "title": "Colour scheme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ome from theme.yaml, validated by the theme schema; a faulty key is reported by …",
      "file": {
        "href": "../../../../specs/decisions/publication/white-label-by-default/index.html",
        "label": "decisions/publication/white-label-by-default.md"
      },
      "href": "../../../../specs/decisions/publication/white-label-by-default/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "theme",
      "title": "White label by default",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…is remembered; without JavaScript the theme's default applies. The accent colour…",
      "file": {
        "href": "../../../../specs/decisions/publication/white-label-by-default/index.html",
        "label": "decisions/publication/white-label-by-default.md"
      },
      "href": "../../../../specs/decisions/publication/white-label-by-default/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "theme",
      "title": "White label by default",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…tion on its own: wherever the default theme uses it, an underline, an outline, a…",
      "file": {
        "href": "../../../../specs/decisions/publication/white-label-by-default/index.html",
        "label": "decisions/publication/white-label-by-default.md"
      },
      "href": "../../../../specs/decisions/publication/white-label-by-default/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "theme",
      "title": "White label by default",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…ng the glyph of its type, a shape the theme maps to the glyph name the profile d…",
      "file": {
        "href": "../../../../specs/screens/panels/neighbourhood-map/index.html",
        "label": "screens/panels/neighbourhood-map.md"
      },
      "href": "../../../../specs/screens/panels/neighbourhood-map/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 3,
      "surface": "theme",
      "title": "Neighbourhood map",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…he initial of the glyph name when the theme has no shape for it. A keyword page,…",
      "file": {
        "href": "../../../../specs/screens/panels/neighbourhood-map/index.html",
        "label": "screens/panels/neighbourhood-map.md"
      },
      "href": "../../../../specs/screens/panels/neighbourhood-map/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 3,
      "surface": "theme",
      "title": "Neighbourhood map",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ds to it is dashed too. Colour follows the theme and carries nothing on its own.",
      "file": {
        "href": "../../../../specs/screens/panels/neighbourhood-map/index.html",
        "label": "screens/panels/neighbourhood-map.md"
      },
      "href": "../../../../specs/screens/panels/neighbourhood-map/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 3,
      "surface": "theme",
      "title": "Neighbourhood map",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…figuration, the profile override, the theme, the stopword files, the lock and th…",
      "file": {
        "href": "../../../ingestion/configuration/configuration-repository/index.html",
        "label": "ingestion/configuration/configuration-repository.md"
      },
      "href": "../../../ingestion/configuration/configuration-repository/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Configuration repository",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…figuration, the profile override, the theme, the stopword files, the lock and th…",
      "file": {
        "href": "../../../ingestion/configuration/configuration-repository/index.html",
        "label": "ingestion/configuration/configuration-repository.md"
      },
      "href": "../../../ingestion/configuration/configuration-repository/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Configuration repository",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…: the configuration, the profile, the theme and the lock each name the version o…",
      "file": {
        "href": "../../../ingestion/sources/version/index.html",
        "label": "ingestion/sources/version.md"
      },
      "href": "../../../ingestion/sources/version/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Version",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…: the configuration, the profile, the theme and the lock each name the version o…",
      "file": {
        "href": "../../../ingestion/sources/version/index.html",
        "label": "ingestion/sources/version.md"
      },
      "href": "../../../ingestion/sources/version/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Version",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… not there: the served HTML carries every page in full, as the theme renders it.",
      "file": {
        "href": "../pinned-page/index.html",
        "label": "publication/site/pinned-page.md"
      },
      "href": "../pinned-page/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 2,
      "surface": "theme",
      "title": "Pinned page",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… not there: the served HTML carries every page in full, as the theme renders it.",
      "file": {
        "href": "../pinned-page/index.html",
        "label": "publication/site/pinned-page.md"
      },
      "href": "../pinned-page/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 2,
      "surface": "theme",
      "title": "Pinned page",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…erything a reader sees comes from the theme; the credit of the tool in the foote…",
      "file": {
        "href": "../white-label/index.html",
        "label": "publication/site/white-label.md"
      },
      "href": "../white-label/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 2,
      "surface": "theme",
      "title": "White label",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…erything a reader sees comes from the theme; the credit of the tool in the foote…",
      "file": {
        "href": "../white-label/index.html",
        "label": "publication/site/white-label.md"
      },
      "href": "../white-label/index.html#L7",
      "kind": "written",
      "line": 7,
      "passages": 2,
      "surface": "theme",
      "title": "White label",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…le a slot loads on demand), themes (a theme with components by slot) and types (…",
      "file": {
        "href": "../../../quality/plugins/contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../../../quality/plugins/contribution-point/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ts (a bundle a slot loads on demand), themes (a theme with components by slot) a…",
      "file": {
        "href": "../../../quality/plugins/contribution-point/index.html",
        "label": "quality/plugins/contribution-point.md"
      },
      "href": "../../../quality/plugins/contribution-point/index.html#L6",
      "kind": "written",
      "line": 6,
      "passages": 2,
      "surface": "theme",
      "title": "Contribution point",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "Resolve the theme: the components the plugins contribute and the project's theme…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L29",
      "kind": "recognised",
      "line": 29,
      "passages": 2,
      "surface": "theme",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…l, the fragments, the profile and the theme, as concordance render does alone: t…",
      "file": {
        "href": "../../../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../../../specs/processes/ingestion/build-pipeline/index.html#L30",
      "kind": "recognised",
      "line": 30,
      "passages": 2,
      "surface": "theme",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…ources, checks, writing of the model, theme, rendering, measurement. Every step …",
      "file": {
        "href": "../../../ingestion/pipeline/pipeline/index.html",
        "label": "ingestion/pipeline/pipeline.md"
      },
      "href": "../../../ingestion/pipeline/pipeline/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "theme",
      "title": "Pipeline",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…jections, user interface components, themes and types, each type a module folder…",
      "file": {
        "href": "../../../../specs/api/plugin-api/index.html",
        "label": "api/plugin-api.md"
      },
      "href": "../../../../specs/api/plugin-api/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "surface": "themes",
      "title": "Plugin API",
      "type": "api",
      "typeLabel": "API"
    },
    {
      "context": "…tion is resolved by name, the project theme first, then the module, then the gen…",
      "file": {
        "href": "../../../../specs/decisions/inference/types-as-modules/index.html",
        "label": "decisions/inference/types-as-modules.md"
      },
      "href": "../../../../specs/decisions/inference/types-as-modules/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "theme",
      "title": "Types as modules",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "The first draft of the theme named its font families by loading them from a publ…",
      "file": {
        "href": "../../../../specs/decisions/publication/fonts-from-a-third-party-host/index.html",
        "label": "decisions/publication/fonts-from-a-third-party-host.md"
      },
      "href": "../../../../specs/decisions/publication/fonts-from-a-third-party-host/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "surface": "theme",
      "title": "Fonts from a third-party host",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "The default theme looks like a wiki its readers already know, from the analyst t…",
      "file": {
        "href": "../../../../specs/decisions/publication/one-familiar-chrome/index.html",
        "label": "decisions/publication/one-familiar-chrome.md"
      },
      "href": "../../../../specs/decisions/publication/one-familiar-chrome/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "theme",
      "title": "One familiar chrome",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…he viewer is an island of the default theme, the first user interface component …",
      "file": {
        "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html",
        "label": "decisions/publication/purpose-built-contract-viewer.md"
      },
      "href": "../../../../specs/decisions/publication/purpose-built-contract-viewer/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "surface": "theme",
      "title": "Purpose-built contract viewer",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "… contract between the generator and a theme; the published HTML carries the full…",
      "file": {
        "href": "../../../../specs/decisions/publication/slots-islands-and-layers/index.html",
        "label": "decisions/publication/slots-islands-and-layers.md"
      },
      "href": "../../../../specs/decisions/publication/slots-islands-and-layers/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "theme",
      "title": "Slots, islands and layers",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…pository holds the configuration, the theme and the stopwords, never the content…",
      "file": {
        "href": "../../../../specs/processes/ingestion/onboarding-a-repository/index.html",
        "label": "processes/ingestion/onboarding-a-repository.md"
      },
      "href": "../../../../specs/processes/ingestion/onboarding-a-repository/index.html#L12",
      "kind": "recognised",
      "line": 12,
      "surface": "theme",
      "title": "Onboarding a repository",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…s a slot with a component of a plugin theme, and checks the result in the galler…",
      "file": {
        "href": "../../../../specs/roles/publication/theme-author/index.html",
        "label": "roles/publication/theme-author.md"
      },
      "href": "../../../../specs/roles/publication/theme-author/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "theme",
      "title": "Theme author",
      "type": "role",
      "typeLabel": "Role"
    }
  ]
}
