---
{
  "n": 48,
  "title": "The viewer is built from its component library, and pages only compose it",
  "abstract": "",
  "refs": [],
  "seen": [
    "agent",
    "user"
  ],
  "data": {
    "keywords": [
      "component",
      "kit",
      "dialog",
      "panel",
      "inspector",
      "vue"
    ],
    "keywords_in": "everything",
    "kept": false
  },
  "created": 1790108080.2570791,
  "updated": 1790112785.575351,
  "deleted": 0.0,
  "completed": 0.0,
  "outcome": "",
  "type": "rule"
}
---
Message 4258. Every visual piece the viewer shows more than once, or that a user would recognise as the same kind of thing (a dialog, a side panel or inspector, a dropdown, a list row, a switch, a button), is one component in web/src/kit, extracted aggressively, and every page composes those components instead of building its own copy. Before writing markup or styles in a page, look for the kit component that already does it and extend it with a prop; a second hand-built version is a bug. The side panel that animated in but not out, while a separate skill panel did both, is the example.
