---
name: core
description: Design language for Claude artifacts and standalone HTML pages (reports, market research, explainers, dashboards, explorables, 3D). Use before building or editing any artifact or HTML page. Loads with the carbon or apple look.
---
# polished-artifacts: core
Pages are for a person reading them, not an agent parsing them. Every rule serves one test: a reader states the main point after ten seconds.
## Load order
1. If the `artifact-design` skill is not loaded in this conversation, load it now. It owns the page contract (title, theme tokens, CDN allowlist, phone width, no skeleton tags in artifacts). Follow it on those.
2. This plugin overrides `artifact-design` on style, and replaces `artifact-diagramming`: never write SVG coordinates by hand. Diagrams come from Mermaid, React Flow or D3 (see Libraries).
3. Pick the look. If this conversation already chose Carbon or Apple, reuse it unless the user names the other. Otherwise ask once: "Carbon or Apple look?" Then load `polished-artifacts:carbon` or `polished-artifacts:apple`. Both define the same `--pa-*` tokens; use only those for colour, type and space.
## Reading
- Open with the answer in one sentence (the `h1`) and one visual that shows it, both inside the first screen.
- Each section opens with its takeaway as a headline sentence. The figure below proves it.
- Order: answer, evidence, detail, sources.
- Lists show the top 5–7 items. The rest go in `Show all N…` or an appendix table. Never render dozens of names as badges or chips.
- Body text uses the look's size (Carbon 16px, Apple 17px). Lines run 60–75 characters (`max-width: 68ch`).
- Labels are 12px or larger, sentence case, in the body face. No uppercase eyebrows. Monospace is for code only; numbers use `font-variant-numeric: tabular-nums`.
- Every figure sits in a `` with a one-line `` saying what to notice.
- Sources are numbered footnotes at the end. Nothing depends on hover.
- No raw filesystem paths (`~/…`, `/home/…`, `./notes/x.md`) in the page text. Link a copy published with the page (`[name](./file)`), show a preview of it, or leave it out.
- Hierarchy comes from type size, weight and space, not boxes: no card inside a card, no bordered box around every section.
## Encoding
- Colour encodes a data category, a state, or the one focal point. Nothing else: no tinted section backgrounds, no coloured side or top borders, no colour used to separate blocks.
- An HTML element that carries encoded colour (a bar built from a `div`, a status dot) gets `data-encodes=""`, so readers of the code and `lint.js` know it means something.
- At most five categorical colours (`--pa-cat-1`…`--pa-cat-5`). More categories become small multiples or an "Other" group.
- Pick encodings by accuracy: position, then length, then angle or area. No pie beyond three slices. No 3D charts of 2D data.
- Label data directly. A legend only when labels don't fit, placed above the chart in series order.
- Diagrams: one accent colour, at most two focal elements, spacing in multiples of 8 (Mermaid `nodeSpacing`, `rankSpacing`, `padding`; ELK spacing).
- Diagram colours come from `mermaid.css` (this folder), pasted into the page's `