Typography

Foundations in type

Modular Scale

Pollen provides a robust modular typography scale to encourage consistent typography sizing across an interface. Sizes are set in rem units to support proper font scaling, and assume a 16px root font-size.

Property groupApplies to

--scale-*

font-size

.heading {
  font-size: var(--scale-4);
}
PropertyValueEquivalent to

--scale-000

0.75rem

12px

--scale-00

0.875rem

14px

--scale-0

1rem

16px

--scale-1

1.125rem

18px

--scale-2

1.25rem

20px

--scale-3

1.5rem

24px

--scale-4

1.875rem

30px

--scale-5

2.25rem

36px

--scale-6

3rem

48px

--scale-7

3.75rem

60px

--scale-8

4.5rem

72px

--scale-9

6rem

96px

--scale-10

8rem

128px

Fluid Modular Scale

In addition to the standard modular typographic scale above, Pollen also comes with a fluid scale that tweens between steps on the scale as screen width changes. Its built with Pollen's own fluid utility, which generates complex CSS clamp() functions based on screen width bounds.

Each fluid font size resizes between a min and max size, starting at mobile screen sizes (480px) and ending at normal desktop screen sizes (1280px).

Property groupApplies to

--scale-fluid-*

font-size

.heading {
  font-size: var(--scale-fluid-5);
}
PropertyValueRange

--scale-fluid-000

clamp(0.625rem, 0.55rem + 0.25vw, 0.75rem)

0.625rem -> 0.75rem

--scale-fluid-00

clamp(0.75rem, 0.675rem + 0.25vw, 0.875rem)

0.75rem -> 0.875rem

--scale-fluid-0

clamp(0.875rem, 0.8rem + 0.25vw, 1rem)

0.875rem -> 1rem

--scale-fluid-1

clamp(1rem, 0.925rem + 0.25vw, 1.125rem)

1rem -> 1.125rem

--scale-fluid-2

clamp(1.125rem, 1.05rem + 0.25vw, 1.25rem)

1.125rem -> 1.25rem

--scale-fluid-3

clamp(1.8125rem, 2rem + -0.625vw, 1.5rem)

1.8125rem -> 1.5rem

--scale-fluid-4

clamp(1.5rem, 1.275rem + 0.75vw, 1.875rem)

1.5rem -> 1.875rem

--scale-fluid-5

clamp(1.875rem, 1.65rem + 0.75vw, 2.25rem)

1.875rem -> 2.25rem

--scale-fluid-6

clamp(2.25rem, 1.8rem + 1.5vw, 3rem)

2.25rem -> 3rem

--scale-fluid-7

clamp(3rem, 2.55rem + 1.5vw, 3.75rem)

3rem -> 3.75rem

--scale-fluid-8

clamp(3.75rem, 3.3rem + 1.5vw, 4.5rem)

3.75rem -> 4.5rem

--scale-fluid-9

clamp(4.5rem, 3.6rem + 3vw, 6rem)

4.5rem -> 6rem

--scale-fluid-10

clamp(6rem, 4.8rem + 4vw, 8rem)

6rem -> 8rem

Font Families

Base font stacks as better alternatives to browser defaults, designed for rapid prototyping and to be overridden as your project grows.

Property groupApplies to

--font-*

font-family

body {
  font-family: var(--font-sans);
}
PropertyValue

--font-sans

system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue

--font-serif

Georgia, Cambria, "Times New Roman", Times, serif

--font-mono

Consolas, Menlo, Monaco, "Liberation Mono", monospace

Font Weights

Consistent font weights across an interface

.heading {
  font-weight: var(--weight-bold)
}
Property groupApplies to

--weight-*

font-weight

PropertyValue

--weight-light

300

--weight-regular

400

--weight-medium

500

--weight-semibold

600

--weight-bold

700

--weight-extrabold

800

--weight-black

900

Line Height

Encourage consistent line heights across an interface, applied as unitless values to scale with font size.

Property groupApplies to

--line-*

line-height

body {
  line-height: var(--line-md);
}
PropertyValue

--line-none

1

--line-xs

1.25

--line-sm

1.275

--line-md

1.5

--line-lg

1.625

--line-xl

2

Letter Spacing

Encourage consistent letter spacing across an interface, applied as em units relative to the text's size

Property groupApplies to

--letter-*

letter-spacing

.uppercase {
  letter-spacing: var(--letter-xs);
}
PropertyValue

--letter-xs

-0.05em

--letter-sm

-0.025em

--letter-none

0

--letter-lg

0.025em

--letter-xl

0.05em

Prose Width

Max-widths optimised for legibility of large blocks of text, based on the font and font-size of content.

Property groupApplies to

--prose-*

max-width

article {
  max-width: var(--prose-normal);
  margin: 0 auto;
}
PropertyValueMeasure

--prose-xs

45ch

45 letters

--prose-sm

55ch

55 letters

--prose-md

65ch

65 letters

--prose-lg

75ch

75 letters

--prose-xl

85ch

85 letters

Last updated