component-sizing
SUPERSEDED by `component-sizing-principles` (L0) + `udts-component-sizing-ladders` (L2, incubating) — see the design-catalog section of the README; kept…
Skill by thrillmade
Chalk Labs
Need help deploying component-sizing?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/thrillmade-component-sizing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/component-sizing
What's inside
- Skill name
component-sizing- Description
- SUPERSEDED by `component-sizing-principles` (L0) + `udts-component-sizing-ladders` (L2, incubating) — see the design-catalog section of the README; kept unchanged during the tokenomics migration window, new work should load the successors. Use when picking a button / input / chip / badge height, or proposing a component-height ladder for a density mode. Names UDTS's curated 5-rung height ladders per density — balanced (4/8 grid) at 24, 32, 40, 48, 56; dense (2/4 grid) at 24, 28, 36, 44, 52; spacious (4/16 grid) at 32, 48, 64, 80, 96. Also names the curated icon-size ladder (12, 16, 24, 32, 40, 48), the font-size pairing per rung, the rule for which rungs are interactive (≥ 24 CSS px WCAG 2.5.8 floor — but interactive rungs start at the `sm` 32 px tier; `xs` 24 px is non-interactive only), and why heights and icon sizes are curated, not formula-derived.
- License
- MIT
- Instructions
- 114 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Component sizing Component heights and icon sizes are **curated** in UDTS, not formula-derived. The rungs are picked so each height pairs cleanly with a font from the type scale, an icon from the icon ladder, and tap-target requirements — and so each rung distinguishes visually from its neighbors at every density. ## When to use - Picking a height for a button, input, chip, badge, dropdown, or any other rectangular interactive control. - Proposing a control-height ladder for a new density mode. - Auditing one-off heights (`h-7`, `h-9`, `h-11`) drifting across a codebase. - Code review: flag heights outside the curated ladder; propose the nearest curated rung with rationale. ## When NOT to use - One-off marketing CTAs designed for a specific page (e.g. hero buttons at 72 px). The ladder doesn't apply to single-surface designs. - Non-rectangular controls (circular avatars, range thumbs) where the size is governed by the icon or asset, not a height token. ## The curated ladders UDTS ships three default density modes. Each is a 5-rung ladder labeled `xs` / `sm` / `md` / `lg` / `xl` — interactive rungs start at `sm` per the WCAG 2.5.8 floor (see [spacing-system](#cross-references)). ### Balanced (UDTS default, 4/8 grid) | Rung | Height | Font-size | Icon-size | Interactive? | |---|---|---|---|---| | `xs` | 24 px | 12 px | 12 | **No** — badges, read-only chips | | `sm` | 32 px | 14 px | 16 | yes | | `md` | 40 px | 14 px | 16 | yes (default) | | `lg` | 48 px | 16 px | 24 | yes | | `xl` | 56 px | 16 px | 24 | yes (CTA) | ### Dense (2/4 grid) | Rung | Height | Font-size | Icon-size | Interactive? | |---|---|---|---|---| | `xs` | 24 px | 12 px | 12 | No | | `sm` | 28 px | 12 px | 12 | yes | | `md` | 36 px | 14 px | 16 | yes (default) | | `lg` | 44 px | 14 px | 16 | yes | | `xl` | 52 px | 16 px | 24 | yes (CTA) | ### Spacious (4/16 grid) | Rung | Height | Font-size | Icon-size | Interactive? | |---|---|---|---|---| | `xs` | 32 px | 14 px | 16 | yes (xs floor lifts in spacious) | | `sm` | 48 px | 16 px | 24 | yes | | `md` | 64 px | 18 px | 24 | yes (default) | | `lg` | 80 px | 20 px | 32 | yes | | `xl` | 96 px | 24 px | 40 | yes (CTA) | ## The curated icon-size ladder UDTS's canonical icon sizes: **12, 16, 24, 32, 40, 48**. Picked because: - These are the sizes at which Material Icons, Lucide, Heroicons, and Phosphor families render cleanly without hairline glitches. - They pair with the font-sizes from [type-scale](../type-scale/SKILL.md) naturally (icon ≥ font-size at every rung; never undersized). - They subdivide into 4 px steps at the small end (where it matters for inline alignment) and 8 px steps at the large end (where it doesn't). **Don't formula-derive icon sizes.** A height-to-icon ratio (e.g. `icon = height / 2`) produces sizes like 14, 18, 22, 28 — every one of which renders worse than the curated neighbor. ## Why curated, not formula-derived A formula `(height) → font-size → icon-size` produces *mathematically clean* values that *render poorly*: - Heights at every 4 px (24, 28, 32, 36, 40, ...) create visually indistinct rungs — `28` and `32` are hard to tell apart in a stack. - Font sizes outside the type-scale (e.g. 13, 15, 17) clash with the rest of the typography system. - Icon sizes outside the curated set glitch at common zoom levels. The curated 5-rung ladders give visual distinguishability at each rung, predictable font and icon pairing, and tap-target safety. The trade-off is less flexibility — but design systems benefit from less flexibility at this layer. ## The WCAG 2.5.8 floor Interactive control heights start at **24 CSS px** per WCAG 2.5.8 AA Target Size (added in WCAG 2.2). In practice: - **Balanced and dense:** `xs` (24 / 24 px) is **non-interactive only**. Interactive rungs start at `sm` (32 / 28 px). The 24 px rung exists for badges, read-only chips, density tags. - **Spacious:** `xs` lifts to 32 px, so the entire ladder is interactive-safe. Fails of this rule are one of the most common WCAG 2.2 audit misses. ## Picking a rung Default heuristic: - **Default button / input:** `md`. Use the same rung for buttons and their associated inputs so they align horizontally in a form. - **Compact density toggle (dense table cell):** `sm`. - **Primary CTA / hero button:** `lg` or `xl` depending on prominence. - **Density tag, badge, breadcrumb separator (non-interactive):** `xs`. Sibling controls in the same UI surface should share a rung — mixing `sm` and `md` buttons next to each other reads as a typo, not a hierarchy. ## Cross-references - **REQUIRED BACKGROUND:** [spacing-system](../spacing-system/SKILL.md) — the unit primitives (minor + major) drive which density mode applies, and the WCAG 2.5.8 floor lives there. - **For the font sizes paired with each rung:** [type-scale](../type-scale/SKILL.md) — the per-rung font is taken from the canonical scale, not free-picked. - **For line-heights inside each rung:** [line-height-grid](../line-height-grid/SKILL.md) — interactive controls use `lh-ui` (1.20), not `lh-prose`. ## Verification After picking a rung: 1. **Density match:** the rung is from the density mode declared in the current foundation theme. Mixing balanced and spacious ladders in the same surface is a bug. 2. **Interactive floor:** the height is ≥ 24 CSS px for interactive controls. `xs` rungs in balanced and dense are reserved for non-interactive. 3. **Font pairing:** the inner font-size matches the rung's pairing (not a one-off). 4. **Icon pairing:** the leading or trailing icon size matches the rung's pairing. 5. **Sibling consistency:** sibling controls in the same surface share a rung. ## Sources - [WCAG 2.5.8 — Target Size (AA, added in 2.2)](https://www.w3.org/TR/WCAG22/#target-size-minimum). - Material Design 3 — Component sizing guidance. - Apple Human Interface Guidelines — touch targets (44 pt mobile; relaxed to 24 CSS px desktop per WCAG). - The UDTS / token.design spacing-and-sizing foundations spec.
From thrillmade/agent-skills, MIT.
More from thrillmade/agent-skills
- 0.557score
design-token-naming
thrillmade
SUPERSEDED by `token-naming-conventions` (L0) + `udts-naming-convention` (L2, incubating) — see the design-catalog section of the README; kept unchanged…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
api-contract-enforcement
thrillmade
Flag PRs that change the shape, semantics, or error behavior of a public API without versioning, deprecation, or migration notes.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
brand-voice-review
thrillmade
Review user-facing strings for brand-voice consistency.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
chroma-harmonization
thrillmade
Use when constructing or auditing a multi-hue palette where all hues should appear equally saturated at each contrast stop.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
component-sizing-principles
thrillmade
Use when picking a control height (button / input / chip / badge), proposing a component-height or icon-size ladder for a density mode, or auditing one-off…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
consuming-a-design-system
thrillmade
Entry-point dispatcher for CONSUMING a design system in a product — installing its tokens, wiring CSS variables, theming, upgrading across token releases, or…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
design-system-consistency
thrillmade
Use when judging whether a RENDERED surface obeys its own design system — screenshots or a live page plus the computed styles behind them — as the drift lens…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
designing-a-design-system
thrillmade
Entry-point dispatcher for BUILDING or EXTENDING a design system — creating a token architecture, color system, type scale, spacing system, or…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
skill-frontmatter-quality
thrillmade
Review SKILL.md frontmatter for trigger surface, specificity, voice, and completeness.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
apca-contrast
thrillmade
Use when picking text-on-surface contrast, auditing an accessibility budget, or generating a color against a specific contrast target.
SkillBFreshness: B★ 2Claude Code +9 - 0.554score
conventions-template
thrillmade
Template for a "review like me" skill - captures one maintainer's review conventions (formatting, what to flag, what to ignore).
SkillBFreshness: B★ 2Claude Code +9 - 0.553score
curating-a-skill-catalog
thrillmade
Use when judging whether a skill earns its place — running or reviewing a skill census cycle, triaging…
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 40
- Last commit (this folder)
- Aug 23, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/thrillmade/agent-skills
- Website
- logmind.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from thrillmade
- 0.557score
api-contract-enforcement
thrillmade
Flag PRs that change the shape, semantics, or error behavior of a public API without versioning, deprecation, or migration notes.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
brand-voice-review
thrillmade
Review user-facing strings for brand-voice consistency.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
design-token-naming
thrillmade
SUPERSEDED by `token-naming-conventions` (L0) + `udts-naming-convention` (L2, incubating) — see the design-catalog section of the README; kept unchanged…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
skill-frontmatter-quality
thrillmade
Review SKILL.md frontmatter for trigger surface, specificity, voice, and completeness.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
apca-contrast
thrillmade
Use when picking text-on-surface contrast, auditing an accessibility budget, or generating a color against a specific contrast target.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
chroma-harmonization
thrillmade
Use when constructing or auditing a multi-hue palette where all hues should appear equally saturated at each contrast stop.
SkillBFreshness: B★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get component-sizing running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
component-sizing skill. Agent Mart. https://agentmart.dev/skills/thrillmade-component-sizing (last updated 2026-10-24)