agentleFS
Alter-aiAlter-ai/skill-lab/skills/web-visual-design/SKILL.md

web-visual-design

Skill0 starsChanged 10 days agoMITView on GitHub

Use when choosing a website's colours or fonts, writing design tokens or a type and layout spec, setting Chinese or bilingual Chinese-English typography, deciding layout hierarchy, or reviewing a site's visual design. Triggers include 配色, 挑字體, 字型, 中文排版, 中英混排, 版面層次, palette, dark mode colours, contrast, font loading, type scale.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Put the exit code and the real ratios in the appendix.

    line 44

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Web Visual Design

Sourced knowledge and checks for web colour, type and hierarchy. The goal is a short system specific to this brief, with technical claims that hold up. It is not a template to fill in.

Boundaries

frontend-design owns aesthetic direction: the concept and what makes this page unlike others. This skill owns the knowledge and checks behind it, plus the visual rules for each object on the page. frontend-ui-engineering owns how components are implemented. For new work, set direction first, then use this.

What to read when

DoingRead
Colours, dark mode, default modereferences/color.md
Any Chinese content, or specifying or loading any fontreferences/typography-zh-en.md
Sizes, spacing, objects, memorable element, squint testreferences/layout-hierarchy.md
Checking where a claim comes fromreferences/sources.md

Those files grade each rule. Keep the limit when you repeat one: a book figure stays a book figure, and a working default is not a standard.

Output

  • tokens.json.
  • The spec. It obeys the length the brief gives. Treat one page as about 600 words unless told otherwise [working default]. State decisions and the reason specific to this brief. Do not restate the rules from the references.
  • An appendix, in a separate file or section marked as outside the length: derivation table, palette_check output, self-check, what was not verified.

A step that does not apply gets one clause or nothing. A step you could not do is noted in the appendix.

Procedure

  1. Frame. Say who reads this, on what device, for how long, what objects the content has, and which language and region. Assume where the brief is silent, and say so.
  2. Pick one memorable element, tied to the subject. Say what it is, where it appears, and what is held back for it.
  3. Derive the colours in OKLCH. Write tokens.json. Neutrals, lightness and chroma follow this audience and content. Say what in this brief makes the result differ from the examples in references/color.md. Before settling a hue, write three candidate hue families from clearly different parts of the wheel, one a truly neutral option (chroma near 0), each with a reason from this brief's content or audience, and say why the chosen one beats the others. No hue is banned; the reason must come from the brief. Warm grey and teal-green neutrals (H 160 to 200) are both observed defaults. Name tokens for this design's own roles, not the examples' names or pair order. Rebuild dark mode rather than inverting it. If the brief names a primary mode, say how that mode is implemented.
  4. Check them. Name borders and focus rings that carry meaning as tokens, because the checker sees only named colours. Declare every pair you use: text, muted and accent on every surface; button labels; borders and focus rings as ui. Empty pairs fail, but listing only some pairs still passes, so list them all. Chinese text uses body, not large. Run this, and fix until it exits 0:

    python <skill-dir>/scripts/palette_check.py tokens.json

    Put the exit code and the real ratios in the appendix. Never write estimated ratios.

  5. Set the type. Name each font and its job, with line length, line height and weights. Inter across the whole site is a reflex; keep it only for a reason from this brief.
  6. Set the Chinese, if there is any. Decide and state: region, lang and a font of that region; punctuation position and quotation marks; which font draws — and … in Chinese runs, using a path that can be built with the fonts you chose; text-autospace and text-emphasis-position set explicitly; line height and weight with reasons. With no Chinese, state the lang value only.
  7. Decide on web fonts. First weigh whether a web font earns its cost at all. For each one loaded, state the subset method and character source, the font-display value, the size budget and how it is measured, and the licence and any Reserved Font Name. For system fonts, say so.
  8. Count the hierarchy. State how many sizes and weights, and the spacing rule, chosen for this content. Anything past 3 sizes needs a reason. Say what shows first, second and third at 10px of blur, labelled predicted, not rendered unless you rendered it.
  9. Give each object its rules. List the objects this brief actually has, such as tables, code blocks, schedule rows, portraits or badges. Give each a type, colour and spacing rule. Check any width claim fits the stated column.
  10. Self-check against the table below, in the appendix. Fix what fails, or list it as not met.

Reviewing an existing site

Same checks on what is there: read computed colours into a tokens.json and run palette_check; read lang, font stacks, @font-face rules and transfer sizes; count sizes and spacing; blur the page for real. Report each finding with its selector or value and measured number.

Self-check

ItemMet when
Colourpalette_check exits 0, both modes, all pairs in use declared, meaningful borders named
Colour rationaleEvery colour has a role and a perceptual reason for its lightness; gamut, not contrast, explains its chroma limit
Memorable elementExactly one, and what is held back is named
Avoid defaultsNot Inter across the site with Tailwind slate and a glow background; any default kept has a reason from this brief
Specific to this briefNo value from the reference examples is reused without a reason; another brief would get a visibly different base
Chinese typelang and regional glyphs; punctuation and mixing handled by something buildable; the Chinese line height and each weight chosen have a stated reason
ArithmeticColumn widths, breakpoints and code widths add up; every "X is used only for Y" holds across the whole spec
Font loadingSubset, font-display, size budget and licence check for each web font
HierarchySizes and spacing are counted and follow a rule; the squint description is honestly labelled
ObjectsEvery object in the brief has type, colour and spacing rules
LengthThe spec body fits the brief; working goes in the appendix

Limits

These checks show that stated conditions are met. They do not certify quality, and attractive pages can still be hard to use (references/layout-hierarchy.md). Do not label the result's quality yourself. Say what was checked and what was not; a person makes the final call on taste.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.