Web Design
drewnekota/cetus
A skill your agent uses when building any web page, HTML artifact, landing page, dashboard, slide deck, report, email, or UI component the user will look at.
Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.
$ npx skills add display-dev/visualize --skill visualize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install display-dev/visualize visualize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .claude/skills && cp -r skills-src/visualize .claude/skills/visualize && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .claude/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/display-dev/visualize/tree/main/visualizeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add display-dev/visualize --skill visualize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install display-dev/visualize visualize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .agents/skills && cp -r skills-src/visualize .agents/skills/visualize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .agents/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add display-dev/visualize --skill visualize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install display-dev/visualize visualize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/visualize .cursor/skills/visualize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .cursor/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/display-dev/visualize.git --path visualize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add display-dev/visualize --skill visualize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install display-dev/visualize visualize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/visualize .gemini/skills/visualize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .gemini/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install display-dev/visualize visualizeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add display-dev/visualize --skill visualize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .github/skills && cp -r skills-src/visualize .github/skills/visualize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .github/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add display-dev/visualize --skill visualize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install display-dev/visualize visualize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/display-dev/visualize.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/visualize .opencode/skills/visualize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "visualize" agent skill from https://github.com/display-dev/visualize/tree/main/visualize into .opencode/skills/visualize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visualize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
visualizeGenerate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.
Visualize is an agent skill from display-dev/visualize. Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards. Loads on creation intents ("create a plan", "make me an implementation plan", "generate a diagram", "build a slide deck", "draft a recap", "visualize this", "render this as HTML", "make me a status update") and exploration intents ("show me three layouts", "explore document shapes", "compare visual treatments", "explore a new design system", "compare replacement brand directions") and iteration…
Its SKILL.md is about 7.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 956 other files, including scripts (for example `AUTHORING.md`, `NOTICES.md` and `design-systems/AUTHORING-FLOW.md`).
It sits in Frontend & Design, covering Slides and decks, HTML artifacts and Diagrams. The repository describes itself as: Generate beautiful, on-brand HTML artifacts with AI coding agents. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7b5d95d. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(node $SKILL_DIR/scripts/detect.mjs*)Bash(node $SKILL_DIR/scripts/browser-contrast.mjs*)Bash(node $SKILL_DIR/scripts/browser-diagram.mjs*)Bash(node $SKILL_DIR/scripts/render-mermaid.mjs*)Bash(node $SKILL_DIR/scripts/palette.mjs*)Bash(node $SKILL_DIR/scripts/teach.mjs*)Bash(node $SKILL_DIR/scripts/generate-image.mjs*)Bash(node $SKILL_DIR/scripts/record-image.mjs*)Bash(bash $SKILL_DIR/scripts/publish.sh*)Bash($SKILL_DIR/scripts/publish.sh*)…and 10 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Visualize loads about 7.4k tokens when it runs. Until then it costs about 232 tokens; SKILL.md has 3,317 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from display-dev/visualize at commit 7b5d95d, republished under its MIT licence (© display-dev). 3,317 words, ~7,377 tokens.
.claude/skills/visualize/SKILL.md (or your agent's skills folder). This skill also uses 952 other files; get the full folder from GitHub.Generate self-contained HTML artifacts composed from templates/*/template.md contracts against the resolved visual context. The project's DESIGN.md, PRODUCT.md, and sidecar tokens.css provide the default; artifact themes below allow reference systems within the user's approved scope. Shared pattern recipes live in patterns/ and are read only when the selected template and user ask make them relevant; shell mechanics are loaded automatically only when a template declares shell: <slug>.
Find the artifact's organizing idea before choosing its visual treatment. Look for a relationship, contrast, sequence, decision, or object in the source that the composition itself can make easier to understand. Use that idea to shape the opening, section rhythm, and any explanatory primitive. When the source has no useful spatial or structural idea, prefer a restrained reading experience over manufacturing one.
Artifact mode describes how the reader consumes the information, not the aesthetic family it must use. A document can use product-native, application-like, spatial, editorial, or technical-drawing grammar when that grammar serves the source, reader, and brand. Do not equate document with editorial publishing, or canvas with diagram chrome.
Visual conviction can come from composition, typography, density, spatial rhythm, imagery, interaction, or color. Do not add hues, decoration, or components merely to make an artifact feel designed. A restrained palette can carry a strong point of view when another dimension does the expressive work.
Before responding to feedback, compare the observation with the artifact's reader, purpose, source, and approved brief where one exists. Distinguish an implementation defect, a design that fails its existing requirements, and evidence that a requirement or assumption has changed. The current composition is a solution, not a constraint.
Make authorized corrections within the existing brief directly. If feedback implies a change to established requirements that the user has not already approved, explain the proposed change and obtain agreement before editing. When several structural or visual directions remain plausible, recommend explore artifact within its supported scope. When the direction is established, use the ordinary creation or refinement workflow. Follow that workflow's approval requirements; a small correction does not need a new exploration.
Evaluate proposed fixes together against the reader's task. Do not turn every critique finding into an addition or treat a small diff as evidence that the direction is sound. Preserve decision-relevant deferred observations in existing review or task notes.
{{command_prefix}}visualize invokes the skill. The argument tells the agent what to do.
Default (no command, or the first argument is a topic): {{command_prefix}}visualize <topic-or-path> creates a new artifact. The agent picks a template from intent across all of templates/, composes against the resolved project or artifact-theme context, writes self-contained HTML. The flow is gated: preflight checklist + shape-gate before code, no self-authored briefs. See reference/create.md.
Named commands:
| Category | Command | Argument | What it does | Reference |
|---|---|---|---|---|
| Build | teach | none | Bootstrap (or refresh) the brand profile. Writes DESIGN.md + PRODUCT.md at the project root. | reference/teach.md |
| Build | explore | artifact|system <topic-or-path> | Compare one artifact's treatment or a new/replacement project system; review before applying. | reference/explore.md |
| Refine | simplify | <path> | Strip decoration that isn't earning its pixel. Hands off to polish. | reference/simplify.md |
| Refine | bolder | <path> | Amplify visual punch on safe / generic artifacts. Hands off to polish. | reference/bolder.md |
| Refine | quieter | <path> | Tone down over-decoration without going generic. Hands off to polish. | reference/quieter.md |
| Refine | animate | <path> | Purposeful motion, prefers-reduced-motion compliant. Hands off to polish. | reference/animate.md |
| Refine | polish | <path> | Terminal quality pass — walks every dimension and reports per-dimension findings. The other Refine verbs hand off to this one. | reference/polish.md |
| Evaluate | review | <path> | Deterministic detector findings + LLM judgment. Reports; doesn't modify the file. | reference/review.md |
| Publish | publish | <path> | Push the artifact to display.dev via MCP / CLI / HTTP cascade. | reference/publish.md |
Invocation forms: {{command_prefix}}visualize teach, {{command_prefix}}visualize explore artifact ./report.html, {{command_prefix}}visualize polish ./report.html, {{command_prefix}}visualize publish ./diagram.html. On hosts without a slash-command form, the skill loads on intent-match from the description above; natural-language is the primary entry there.
reference/explore.md; capturing or reconciling project identity loads reference/teach.md. Otherwise load reference/create.md for creation or an explicitly requested restyling of an existing artifact. A named theme follows Artifact themes below; it does not require an exploration round.reference/diagram.md and the one tentative non-spatial type reference needed for that figure before presenting the shape gate. For multi-figure artifacts, load one reference for each distinct tentative family: reference/diagram-flow.md, reference/diagram-system.md, reference/diagram-sequence.md, reference/diagram-state.md, or reference/diagram-hierarchy.md. Spatial figures use reference/diagram.md alone. If approval changes a figure's type, load the replacement reference before authoring; do not load unrelated families.reference/image-generation.md before selecting or invoking a route. Use only the active callable inventory or an explicitly selected API adapter. Never infer a route from a key, executable, mount, or model claim, and never retry or fall back after an ambiguous attempt.explore always loads reference/explore.md, which distinguishes artifact treatment from project-system creation or explicit replacement. Comparing treatments for one artifact does not require creating a project design system first. System Explore uses its opt-in authority classification instead of applying the render fallback as an incumbent identity.After a refine verb (simplify / bolder / quieter / animate) finishes its run, summarise to the user in plain markdown. Don't render the summary as a fenced code block — it's conversational output, not machine-readable. Vary phrasing across runs; pick wording per context (engineer reading detector output vs. designer iterating on a brand brief). polish has its own output shape — see reference/polish.md.
Every refine run's summary covers four facts:
Variant rules (behaviour, not surface text):
DESIGN.md / PRODUCT.md, mention once which fallback source anchored the work: project instructions, README/docs, generated seed, or Clean defaults. Also nudge the user to run {{command_prefix}}visualize teach so that fallback can become a real brand profile. Clean defaults are the last resort after the Brand profile rules below find no usable project guidance.<verb> is the right verb (and when it isn't)" section enumerates the verb's specific refusal conditions.Tone is conversational. Lead with what changed, not with a banner. Don't capitalise words for emphasis. Don't print a <Verb> pass complete · header — the summary's content is the proof of completion.
For animate specifically: when the brand declares motion: none, a fifth variant applies — see reference/animate.md.
Match-and-refuse. Apply on every command and the default creation flow. These ban specific patterns — not aesthetics, not registers. A brand can declare a font, a hue, or a layout that looks unusual; it cannot redeem any of these patterns by declaring them as identity. An explicit .visualize-detect.json skip can waive only a detector-backed ban with a concrete rule ID; it is project policy, not runtime brand suppression, and cannot waive a Layer-2 ban.
BAN 1 — Gradient text on metrics or headings
PATTERN: background-clip: text + gradient background on <h*>, [class*="metric"], [class*="kpi"]
INCLUDES: -webkit-background-clip: text; CSS `background-image: linear-gradient(…)` + `color: transparent`
WHY: AI-essay register tell; reads as 2023-template "make the number pop"
REWRITE: Solid `--primary` (or `--foreground`) at one weight up; emphasis through weight + size, not gradient
BAN 2 — Side-stripe callout (border-left as accent)
PATTERN: `.callout`, `.tldr`, `.note`, `.tip` with border-left ≥ 3px in --primary / --warning / --destructive
INCLUDES: border-inline-start, border-l-4 utility class, ::before pseudo with positioned bar
WHY: Notion / Confluence template tell; reads as productivity-app default
REWRITE: Full thin border (1px var(--border)), background tint at 4–8% chroma, or no chrome — just a label heading
BAN 3 — Triple-feature-card grid
PATTERN: 3-column grid of <h3>adjective + noun</h3> + one paragraph + one icon each
INCLUDES: 4-column variants, "Why us" sections with identical card-icon-heading-blurb shape
WHY: AI-landing canonical pattern; the surest "AI generated this" tell on the visualize corpus
REWRITE: Asymmetric — one hero claim with two supporting facts, OR a numbered list with body prose, OR a single comparison table
BAN 4 — Hero-metric template
PATTERN: Centered <h1 class="…huge…">N×</h1> + <p class="…small…">supporting label</p> + 3 stat tiles below
INCLUDES: "10× faster", "99.9% uptime", "1M requests/day" hero blocks with the same shape
WHY: SaaS-landing cliché; the most-copied AI-marketing-page shape in 2024-2026
REWRITE: Specific claim in body prose with the number inline; data tiles only when the artifact is actually a dashboard
BAN 5 — Icon-tile section markers
PATTERN: Every <h2> preceded by a rounded-square tile carrying a Lucide / Heroicons / Phosphor glyph
INCLUDES: Circle-icon variants, icon-on-coloured-pill variants, gradient-icon-tile variants
WHY: AI section-marker tell; reads as "every section needs visual chrome"
REWRITE: Heading alone, or heading + small accent rule above, or numbered sections — no per-heading iconography
BAN 6 — Imperative tricolon
PATTERN: Three short imperative sentences ending in periods, in the same paragraph or hero
INCLUDES: "Ship faster. Build smarter. Scale forever." / "Move fast. Stay safe. Be bold." (any topic)
WHY: AI-copywriting cliché — the structure is identical across thousands of generated landing pages
REWRITE: One specific claim with the verb in the right tense, OR a sentence that names the actor and the action
BAN 7 — Sycophant / AI-attribution footer
PATTERN: "I hope you find this useful", "Let me know if you have questions", "Best, Claude", "Generated by AI", "As an AI…"
INCLUDES: Footer-line variants, comment-line variants in the HTML source
WHY: The artifact is the work; the model is invisible. Sycophant footers contaminate the artifact register
REWRITE: No footer of this shape. A real footer carries metadata (date, version, source-of-truth link) or is absentIf you're about to author one of these patterns, stop and rewrite the element with the alternative. The list is shared across creation, every Refine verb, and polish.
These are not brand aesthetics; they are observed model reflexes with required corrective behavior. Apply them after the universal bans, especially during no-brand greenfield creation.
Codex-specific rules:
repeating-linear-gradient(...) as body or section filler. Use an intentional texture/rule system, or leave the background plain.reference/color.md to assess character, relationships, roles, distribution, and actual pairings. No hue, hue combination, neutral tint, or accent count is a universal taste gate. Preserve approved identity and explicit artifact exceptions.Gemini-specific guard:
<img> elements on hover. If a card needs hover feedback, animate the card's border, background, or action affordance instead.Metadata / TOC guard: static document context needs explicit labels, not anonymous rounded chips. In document mode, keep metadata close to the title/thesis inside the reading flow; a right rail, split-cover facts column, or standalone metadata panel usually turns context into competing chrome. TOC rails are allowed for genuinely long documents, but they should support navigation rather than dominate the opening. Mobile TOCs must remain navigable lists or deliberate grids, never free-wrapping word clouds. Read patterns/metadata.md or patterns/toc.md when those structures are part of creation.
Table guard: tables are reading instruments, not hero sections. Keep caption, header, body, row-key, and numeric roles distinct; scope monospace to fixed-width values. Read patterns/table.md when the artifact carries dense comparison or evidence.
Interactive-state route: when creation includes functional controls or changes state in place, read patterns/interactive-states.md.
Run both. The second catches what the first misses.
First-order: if someone could guess the template + palette from the topic alone, you've hit the first training-data reflex. Topic stereotypes are prompts to inspect the brief, not color prohibitions: red, purple gradients, or navy-and-gold can fit a specific artifact. Rework unsupported defaults, not approved identity.
Second-order: if someone could guess the aesthetic family from topic-plus-anti-references ("AI workflow tool that's not SaaS-cream → editorial-typographic," "fintech that's not navy-and-gold → terminal-native dark mode"), the second-tier reflex isn't avoided. Currently-saturated families to watch for: editorial-Tufte clone (cream + Georgia + side-margin notes when the topic isn't editorial), brutalist-terminal clone (mono + grid + heavy borders when the topic isn't dev-tool), Swiss-poster clone (uppercase + grotesk + grid when the topic isn't presentation). Rework until both altitudes return "no, you couldn't have guessed."
Every render reads available DESIGN.md (visual identity + design tokens) and PRODUCT.md (voice, audience, tone) at the project root. teach derives custom design tokens for the brand and writes them in DESIGN.md as YAML frontmatter (the Google Stitch canonical format: machine-readable tokens) plus a six-section markdown body (Overview / Colors / Typography / Elevation / Components / Do's and Don'ts), with a sidecar tokens.css at the project root carrying the CSS-form tokens templates read at render time. Project profiles retain concrete tokens, not a theme: <name> pointer.
Brand authority is identity-scoped. If the request fixes a named identity but the resolved project profile clearly belongs to another product, do not substitute, relabel, or approximate it. Stop before the shape gate or any artifact edit and request matching authority or explicit permission for an artifact-only override.
The design systems under design-systems/ are reference packages with design guidance, tokens, and previews. teach and System Explore read them when deriving project identities; artifact creation and exploration can use them as themes under the shared contract below.
Fallback when no DESIGN.md exists: an approved artifact reference supplies the visual baseline where project guidance is absent; do not replace it with a seed or Clean defaults. Otherwise, first read available project instructions (AGENTS.md, CLAUDE.md, README, docs) for product positioning, visual direction, anti-references, and design principles. If those files contain usable brand/design guidance, treat it as binding brand context while using Clean's token surface as the structural floor. Explicit cues in repo guidance override Clean values: named fonts become the artifact font stack, named palette roles become the artifact color tokens, and named anti-references rule out the corresponding fallback register. If the guidance points at concrete token files, stylesheet files, logo components, or design guidelines, read those referenced files and use their values before approximating from prose. Using Clean's token surface means keeping the semantic variable shape, not copying Clean's fonts, monochrome values, or warm/cream defaults. Only run node {{scripts_path}}/palette.mjs --from "<topic-or-project-name>" when the project has no usable visual direction at all. When a seed is used, compose the temporary --primary, --background, --foreground, --accent, chart, and state tokens from the seed + artifact brief; do not copy Clean's monochrome palette unchanged. Use the script's derived block (real contrast numbers, per-hue chroma budgets, light + dark lightness ladders) instead of estimating those values; if the seed's register fights the brief, re-run with --not <zone,...> or --vary <n> and note the veto in the shape gate. After composing, validate with node {{scripts_path}}/palette.mjs --check <tokens-or-html> --strict and fix error findings (exit 2) before render. Nudge {{command_prefix}}visualize teach once per session so repo guidance or the temporary seed can become a real brand profile.
Refine verbs on missing persisted brand files: simplify / bolder / quieter / animate / polish use the same fallback hierarchy as creation. Project instructions, README/docs, or other already-loaded context can be a valid qualitative brand anchor. Clean defaults are only the anchor when no usable project guidance exists. Whenever a fallback source is used, mention that source once and nudge {{command_prefix}}visualize teach so the fallback can become a real brand profile.
Refine verbs on artifacts that carry ≥3 Absolute bans: bolder / quieter / animate / polish refuse and route. State in the run summary: "REFUSED — N Absolute bans present (listed). The artifact needs structural cleanup before <verb> applies. Recommend {{command_prefix}}visualize simplify <path> first (removes the ban patterns), then re-evaluate." Simplify accepts ban-carrying input as its core case; the other Refine verbs assume a clean baseline and must not run on ban-heavy artifacts.
A theme is a reference design system applied to one artifact, not a new stored object or a project-wide adoption. Use the current project system by default. Resolve binding project choices, approved artifact exceptions, and open design dimensions before borrowing from a reference. A named reference or a request to make an artifact more expressive does not silently override binding project choices; clarify conflicts that the request leaves unresolved. Explicit permission to replace visual styling applies only to the named artifact and dimensions. Do not invent constraints where the project is silent.
Read the selected design-systems/<slug>/README.md when present, then its DESIGN.md and tokens.css. README is the package entry point; DESIGN owns suitability, identity, and adaptation guidance. Use previews to understand the treatment, not as required layouts. If the user wants alternatives, propose a small relevant shortlist rather than loading the entire catalog. A missing README does not make a package unavailable.
Apply a named treatment through ordinary creation or revision; compare unresolved treatments through explore artifact. Neither requires a new layout or a project profile first. For new content, derive structure from the reader's task and source. For existing artifacts, preserve content, order, assets, and behavior unless those changes were requested. A broad restyling uses reference/create.md with that preservation scope, not a narrow refine verb forced past its diff guard. Existing approval gates still apply; an explicit request already covering the proposed changes does not need reconfirmation.
Translate the reference's hierarchy, spacing, surfaces, and component treatment as well as its palette and type. Keep non-overridden project choices. Embed the resolved tokens, including designed light/dark and OS-dark behavior, in the artifact; do not replace the project's token source. Verify against the resolved artifact context, not the overridden project values. Describe partial borrowing and retained constraints rather than claiming an unchanged reference application. Keep the approved exception and its scope in existing task notes or a short artifact comment so later refinement can preserve it; unexplained styling drift alone is not approval.
For project-wide capture or direct derivation, use teach. To compare new or explicitly requested replacement systems, use explore system. Neither route is a prerequisite for artifact themes.
Apply on every command, every template, every prompt. These override contextual taste findings, not non-contextual correctness constraints:
info rule can ship-block in aggregate; an error rule can be a taste-call only when it is context-sensitive and the brand whitelists it. The non-contextual constraints in law 1 do not demote.detect.mjs result is not proof the artifact is strong — it's proof the mechanical floor passes. The detector catches what regex can identify; verb work covers everything else. Don't declare done on a clean detector reading.display.dev strategy or Updated May 29, 2026 force the reader to infer the field. Prefer explicit labels: Memo type / display.dev strategy, Updated / May 29, 2026, Input / method, vision, competitor refresh. For document artifacts, those labels belong near the opening argument, not in a side rail that competes with the body.© display-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 952 other files (scripts) in visualize of display-dev/visualize.
Open the folder on GitHubat commit 7b5d95d
Visualize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Visualize this skilldisplay-dev/visualize | 131 | — | ~7.4k | Automated safety check: Pass | MIT | |
| Web Designdrewnekota/cetus | 146 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Web Design EngineerConardLi/garden-skills | 13k | — | ~8.8k | Automated safety check: Pass | MIT | |
| Opendesignmanalkaff/opendesign | 261 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Single-File HTML Composeroaustegard/claude-skills | 150 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Generative UIhimself65/finance-skills | 3.4k | — | ~3.1k | Automated safety check: Pass | MIT |
drewnekota/cetus
A skill your agent uses when building any web page, HTML artifact, landing page, dashboard, slide deck, report, email, or UI component the user will look at.
ConardLi/garden-skills
Builds polished browser-rendered HTML, CSS, JavaScript and React pages, dashboards, prototypes and slide decks, aiming for a stunning rather than merely functional result.
manalkaff/opendesign
A skill your agent uses when starting any design task — HTML pages, slide decks, interactive prototypes, UI kits, brand systems.
oaustegard/claude-skills
Builds self-contained single-file HTML pages such as reports, decks, postmortems, flowcharts and prototypes from a small spec using a bundled Python composer and templates.
himself65/finance-skills
Design system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations.
thatrebeccarae/claude-marketing
Generate technical architecture diagrams, pipeline flows, layer/stack diagrams, and system illustrations as standalone HTML files.
Categories
Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards. Visualize is an agent skill from display-dev/visualize. Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.
Visualize fits situations like: tasks that involve Slides and decks; tasks that involve HTML artifacts; tasks that involve Diagrams.
Run `npx skills add display-dev/visualize --skill visualize -a claude-code`. Or copy the skill folder (visualize in display-dev/visualize) into .claude/skills/visualize in your project. Claude Code loads it when a task matches its description.
Run `npx skills add display-dev/visualize --skill visualize -a codex`. Or copy the skill folder (visualize in display-dev/visualize) into .agents/skills/visualize in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add display-dev/visualize --skill visualize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visualize, .gemini/skills/visualize, .github/skills/visualize and .opencode/skills/visualize in your project.
Going by SKILL.md and its folder, Visualize needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash(node $SKILL_DIR/scripts/detect.mjs*), Bash(node $SKILL_DIR/scripts/browser-contrast.mjs*), Bash(node $SKILL_DIR/scripts/browser-diagram.mjs*), Bash(node $SKILL_DIR/scripts/render-mermaid.mjs*), Bash(node $SKILL_DIR/scripts/palette.mjs*), Bash(node $SKILL_DIR/scripts/teach.mjs*), Bash(node $SKILL_DIR/scripts/generate-image.mjs*), Bash(node $SKILL_DIR/scripts/record-image.mjs*), Bash(bash $SKILL_DIR/scripts/publish.sh*), Bash($SKILL_DIR/scripts/publish.sh*), Bash(node */visualize/scripts/detect.mjs*), Bash(node */visualize/scripts/browser-contrast.mjs*), Bash(node */visualize/scripts/browser-diagram.mjs*), Bash(node */visualize/scripts/render-mermaid.mjs*), Bash(node */visualize/scripts/palette.mjs*), Bash(node */visualize/scripts/teach.mjs*), Bash(node */visualize/scripts/generate-image.mjs*), Bash(node */visualize/scripts/record-image.mjs*), Bash(bash */visualize/scripts/publish.sh*), Bash(*/visualize/scripts/publish.sh*).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Visualize is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.4k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Visualize: Web Design (drewnekota/cetus, 146 stars), Web Design Engineer (ConardLi/garden-skills, 13k stars), Opendesign (manalkaff/opendesign, 261 stars) and Single-File HTML Composer (oaustegard/claude-skills, 150 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
display-dev (a GitHub organization) maintains it in display-dev/visualize, which has 131 GitHub stars. The repository was last updated on September 16, 2026.
Source: display-dev/visualize on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.