utopia-fluid-scales

This project's fluid typography and spacing system

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "utopia-fluid-scales" with this command: npx skills add matthewharwood/fantasy-phonics/matthewharwood-fantasy-phonics-utopia-fluid-scales

Utopia Fluid Scales

This project's fluid typography and spacing system

Configuration

Generated from: https://utopia.fyi/space/calculator?c=360,18,1.2,1240,20,1.25,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12

Parameter Value

Min viewport 360px

Max viewport 1240px

Min base size 18px

Max base size 20px

Min scale ratio 1.2 (Minor Third)

Max scale ratio 1.25 (Major Third)

Unit: cqi (container query inline) - requires a container context to function.

Type Scale

Location: css/styles/typography.css

:root { --step--2: clamp(0.7813rem, 0.7736rem + 0.0341cqi, 0.8rem); --step--1: clamp(0.9375rem, 0.9119rem + 0.1136cqi, 1rem); --step-0: clamp(1.125rem, 1.0739rem + 0.2273cqi, 1.25rem); --step-1: clamp(1.35rem, 1.2631rem + 0.3864cqi, 1.5625rem); --step-2: clamp(1.62rem, 1.4837rem + 0.6057cqi, 1.9531rem); --step-3: clamp(1.944rem, 1.7405rem + 0.9044cqi, 2.4414rem); --step-4: clamp(2.3328rem, 2.0387rem + 1.3072cqi, 3.0518rem); --step-5: clamp(2.7994rem, 2.384rem + 1.8461cqi, 3.8147rem); }

Type Step Reference

Token Min (360px) Max (1240px) Use Case

--step--2

12.5px 12.8px Captions, fine print

--step--1

15px 16px Small text, metadata

--step-0

18px 20px Body text (base)

--step-1

21.6px 25px Large body, lead text

--step-2

25.9px 31.3px H4 equivalent

--step-3

31.1px 39.1px H3 equivalent

--step-4

37.3px 48.8px H2 equivalent

--step-5

44.8px 61px H1 equivalent

Applied Styles

body { font-family: var(--font-base); font-size: var(--step-0); line-height: 1.5; }

Note: No heading styles (h1-h6) are currently applied. Add as needed:

h1 { font-size: var(--step-5); } h2 { font-size: var(--step-4); } h3 { font-size: var(--step-3); } h4 { font-size: var(--step-2); } h5 { font-size: var(--step-1); } h6 { font-size: var(--step-0); }

Space Scale

Location: css/styles/space.css

Individual Space Tokens

:root { --space-3xs: clamp(0.3125rem, 0.3125rem + 0cqi, 0.3125rem); --space-2xs: clamp(0.5625rem, 0.5369rem + 0.1136cqi, 0.625rem); --space-xs: clamp(0.875rem, 0.8494rem + 0.1136cqi, 0.9375rem); --space-s: clamp(1.125rem, 1.0739rem + 0.2273cqi, 1.25rem); --space-m: clamp(1.6875rem, 1.6108rem + 0.3409cqi, 1.875rem); --space-l: clamp(2.25rem, 2.1477rem + 0.4545cqi, 2.5rem); --space-xl: clamp(3.375rem, 3.2216rem + 0.6818cqi, 3.75rem); --space-2xl: clamp(4.5rem, 4.2955rem + 0.9091cqi, 5rem); --space-3xl: clamp(6.75rem, 6.4432rem + 1.3636cqi, 7.5rem); }

Space Token Reference

Token Min (360px) Max (1240px)

--space-3xs

5px 5px

--space-2xs

9px 10px

--space-xs

14px 15px

--space-s

18px 20px

--space-m

27px 30px

--space-l

36px 40px

--space-xl

54px 60px

--space-2xl

72px 80px

--space-3xl

108px 120px

One-Up Space Pairs

Fluid transitions between adjacent sizes:

:root { --space-3xs-2xs: clamp(0.3125rem, 0.1847rem + 0.5682cqi, 0.625rem); --space-2xs-xs: clamp(0.5625rem, 0.4091rem + 0.6818cqi, 0.9375rem); --space-xs-s: clamp(0.875rem, 0.7216rem + 0.6818cqi, 1.25rem); --space-s-m: clamp(1.125rem, 0.8182rem + 1.3636cqi, 1.875rem); --space-m-l: clamp(1.6875rem, 1.3551rem + 1.4773cqi, 2.5rem); --space-l-xl: clamp(2.25rem, 1.6364rem + 2.7273cqi, 3.75rem); --space-xl-2xl: clamp(3.375rem, 2.7102rem + 2.9545cqi, 5rem); --space-2xl-3xl: clamp(4.5rem, 3.2727rem + 5.4545cqi, 7.5rem); }

Custom Space Pair

:root { --space-s-l: clamp(1.125rem, 0.5625rem + 2.5cqi, 2.5rem); }

Token Min Max Scaling

--space-s-l

18px 40px Dramatic (2.2x)

Usage Examples

/* Padding with space tokens */ .card { padding: var(--space-m); }

/* Fluid gap */ .stack { display: flex; flex-direction: column; gap: var(--space-s-m); }

/* Typography */ .title { font-size: var(--step-3); }

/* Section spacing */ .section { padding-block: var(--space-l-xl); }

Container Requirement

These scales use cqi units which require a container context. Without a parent with container-type: inline-size , the fluid calculation may not work as expected.

/* Required for cqi units to function */ .parent { container-type: inline-size; }

Files

  • css/styles/typography.css

  • Type scale and body styles

  • css/styles/space.css

  • Space tokens and pairs

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ux-spacing-layout

No summary provided by upstream source.

Repository SourceNeeds Review
General

animejs-v4

No summary provided by upstream source.

Repository SourceNeeds Review
General

webgpu-canvas

No summary provided by upstream source.

Repository SourceNeeds Review
General

web-components-architecture

No summary provided by upstream source.

Repository SourceNeeds Review