Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dylantarre avatar

Radius Scale

  • 10 installs
  • 37 repo stars
  • Updated December 30, 2025
  • dylantarre/design-system-skills

Generates border-radius tokens from sharp to pill shapes for buttons, cards, and inputs, output as CSS, Tailwind, or JSON.

About

This skill generates border-radius tokens ranging from sharp to pill shapes. A developer uses it to create corner rounding systems for buttons, cards, or inputs.

  • Border-radius token scale
  • Outputs CSS, Tailwind, or JSON

Radius Scale by the numbers

  • 10 all-time installs (skills.sh)
  • Ranked #1,450 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/design-system-skills --skill radius-scale

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs10
repo stars37
Last updatedDecember 30, 2025
Repositorydylantarre/design-system-skills

What it does

Generates border-radius tokens from sharp to pill shapes for buttons, cards, and inputs, output as CSS, Tailwind, or JSON.

Files

SKILL.mdMarkdownGitHub ↗

Radius Scale Generator

Overview

Generate consistent border-radius scales from sharp to pill-shaped. Creates harmonious rounding that scales appropriately with element size for visual consistency.

When to Use

  • Setting up radius tokens for a new project
  • Standardizing corner rounding across components
  • Creating button/card/input styling consistency
  • Building component-size-aware radius systems

Quick Reference

LevelTypical ValueUse Case
none0Sharp corners, tables
sm2-4pxSubtle rounding, inputs
md6-8pxButtons, cards
lg12-16pxModals, large cards
xl20-24pxPanels, containers
2xl32px+Feature sections
full9999pxPills, avatars, badges

The Process

1. Get base radius: Default 8px (balanced starting point) 2. Get ratio: How much each step grows (1.5-2 typical) 3. Ask steps: How many radius values (5-7 typical) 4. Ask unit: px or rem? 5. Ask format: CSS, Tailwind, or JSON? 6. Include full?: Add "full" (9999px) for pills? (default: yes) 7. Generate: Create scale centered on base

Common Scales

CharacterBaseRatioResult
Subtle4px1.52, 3, 4, 6, 9, 13
Balanced8px22, 4, 8, 16, 32
Rounded12px1.55, 8, 12, 18, 27, 40
Soft16px1.57, 11, 16, 24, 36, 54

Output Formats

CSS Custom Properties:

:root {
  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 32px;
  --radius-full: 9999px;
}

Tailwind Config:

module.exports = {
  theme: {
    borderRadius: {
      'none': '0',
      'sm': '4px',
      'md': '8px',
      'lg': '16px',
      'xl': '24px',
      '2xl': '32px',
      'full': '9999px',
    }
  }
}

JSON Tokens:

{
  "radius": {
    "none": { "value": "0" },
    "sm": { "value": "4px" },
    "md": { "value": "8px" },
    "lg": { "value": "16px" },
    "xl": { "value": "24px" },
    "2xl": { "value": "32px" },
    "full": { "value": "9999px" }
  }
}

Contextual Radius

Larger elements often need proportionally larger radius. Consider semantic tokens:

CSS with contextual tokens:

:root {
  /* Base scale */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;

  /* Semantic/contextual */
  --radius-button: var(--radius-md);
  --radius-input: var(--radius-sm);
  --radius-card: var(--radius-lg);
  --radius-modal: var(--radius-xl);
  --radius-badge: var(--radius-full);
  --radius-avatar: var(--radius-full);
}

Algorithm

The scale uses exponential growth from a base:

value = baseValue * (ratio ^ (step - midpoint))

For a 7-step scale with base 8px and ratio 2:

  • Step 0 (3 below): 8 * 2^-3 = 1px
  • Step 3 (mid): 8 * 2^0 = 8px
  • Step 6 (3 above): 8 * 2^3 = 64px

Values are typically rounded to clean numbers.

Design Considerations

Consistency rule: Inner radius = outer radius - border/padding

/* Card with nested element */
.card {
  border-radius: var(--radius-lg); /* 16px */
  padding: 8px;
}
.card-inner {
  border-radius: calc(var(--radius-lg) - 8px); /* 8px */
}

Squircle alternative: For iOS-style continuous curves, consider mask-image with SVG or libraries like squircle.js.

Common Patterns

ComponentRecommended Radius
Icon buttonssm or md
Text buttonsmd
Input fieldssm or md
Cardslg
Modals/dialogslg or xl
Tooltipsmd
Badges/tagsfull (pill)
Avatarsfull (circle)
Containersxl or 2xl

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.