Skip to content
Back to skills

Web Page

ASecurity

Design and build a self-contained HTML page — report, dashboard, comparison, one-pager — that looks considered and works offline as a single file.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgogitapi

Works with

  • api

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add black141312/ada --skill web-page --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Web Page?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Web Page
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/black141312-web-page/badge)](https://www.skillsdirectory.com/skills/black141312-web-page)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: web-page
description: Design and build a self-contained HTML page — report, dashboard, comparison, one-pager — that looks considered and works offline as a single file.
category: html
---

# Web Page

Use with `create_page` whenever the answer is better read than printed: a benchmark write-up, a
dashboard, a comparison, a proposal, anything the user will keep or send to someone.

## 1. Decide the treatment before writing any CSS

Most pages are **documents**: real typographic hierarchy, considered spacing, a proper palette, and
nothing else. A landing page or a tool earns an editorial treatment. Over-designing a memo is a
worse failure than under-designing one — a well-composed page is never wrong, a flashy one often is.

Name the subject, the reader, and the page's single job in one sentence. Everything below follows
from that sentence.

## 2. Sketch the tokens, then build from them

- **Colour** — 4–6 named values. Pick the neutral deliberately: a grey biased slightly toward the
  accent reads as chosen, a pure mid-grey reads as default. One accent, spent in one place.
  Semantic colours (good/warning/bad) are separate from the accent and don't count as it.
- **Type** — two roles minimum: something with character for headings, something quiet for reading.
  **System stacks only** (see below). Set a scale and stay on it.
- **Layout** — one sentence. Running text near 65–75 characters. Let flex/grid `gap` do the spacing
  rather than per-element margins that collapse and double.

If the project has its own tokens — a theme file, a CSS variables block, an existing page — use
those instead. The project's system beats your taste.

## 3. Non-negotiables

- **Self-contained.** No CDN scripts, stylesheets or webfonts; images as `data:` URIs. `create_page`
  rejects external scripts and stylesheets outright, because a page that needs the network isn't a
  file you can hand to someone. A webfont link that silently falls back is worse than a system stack
  chosen on purpose. In particular: **never link `fonts.googleapis.com`** - it is the single most common way a page stops working offline, and the failure is invisible to whoever wrote it.
- **Both themes.** Define the palette as custom properties on `:root`, redefine them under
  `@media (prefers-color-scheme: dark)`, and style components only through the tokens. Give the
  second theme the same care — don't invert and hope. A page that deliberately commits to one look
  may stay single-theme; make that a decision, not an oversight.
- **Wide content scrolls itself.** Tables, code and diagrams get their own `overflow-x: auto`
  container. The page body must never scroll sideways.
- **Digits line up.** `font-variant-numeric: tabular-nums` anywhere numbers sit in a column.
- **Floor.** Readable at 380px, visible keyboard focus, `prefers-reduced-motion` respected,
  every non-void element closed, every attribute quoted.

## 4. Structure has to mean something

Numbering, eyebrows, dividers and labels should encode something true — a real sequence, a real
grouping. `01 / 02 / 03` on three things that aren't ordered is decoration. Same for a big-number
hero: use it when one number _is_ the story, not as a default opening.

Write the copy as design material: plain verbs, active voice, specific over clever. Real content
throughout — never lorem, never invented figures.

## 5. Verify before claiming it's done

Open it (`create_page` does this) and actually look. Check the numbers on the page against their
source — a chart built by hand is the easiest place to ship a wrong bar. Check both themes and a
narrow window.

## Rules

- Don't reach for the current AI-design defaults unless the user asked: cream `#F4F1EA` with a serif
  and terracotta; near-black with one acid-green accent; purple-to-blue gradient hero; Inter for
  everything; emoji as section markers; everything centred.
- Charts drawn by hand: put every bar on a shared axis and label the absolute value. See the
  **chart** and **chart-svg** skills.
- Say where the file went. `create_page` prints the absolute path — don't paraphrase it away.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…