Design

Typography

A complete type scale from 12px to 60px with weight, alignment, and line-height utilities. Semantic HTML elements are styled automatically.

Scale

Text Sizes

text-5xl — 60px

text-4xl — 48px

text-3xl — 36px

text-2xl — 30px

text-xl — 24px

text-lg — 18px

text-base — 16px (default)

text-sm — 14px

text-xs — 12px

<p class="text-5xl font-bold">Heading</p>
<p class="text-base">Body text at 16px</p>
<p class="text-sm">Small text at 14px</p>

Headings

Heading Elements & Classes

Native heading elements are styled automatically. Use .h1 through .h6 classes to apply heading styles to any element.

Lead Text

Use lead (alias: lead-subhead) for introductory text with larger font size and relaxed line-height.

Heading Elements

Paragraph styled as H1

Paragraph styled as H3

Span styled as H5
<p class="h1">Looks like an H1 but is a paragraph</p>
<span class="h3">Span with H3 styling</span>

Weight

Font Weights

font-normal — 400

font-medium — 500

font-semibold — 600

font-bold — 700

<p class="font-bold text-xl">Bold and extra large</p>
<p class="font-normal text-sm">Normal weight, small</p>

Styles

Text Styles

Bold text

Italic text

Uppercase text

No-wrap text (stays on one line)

Alignment

Text Alignment

text-left — Aligned to the left

text-center — Centered text (alias: text-centered)

text-right — Aligned to the right

<p class="text-center">Centered paragraph</p>
<p class="text-right">Right-aligned text</p>

Line Height

Leading

leading-tight (1.25)
The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.

leading-snug (1.375)
The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.

leading-normal (1.5)
The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.

leading-relaxed (1.625)
The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.

Semantic

Native HTML Elements

These elements are styled automatically without classes.

Regular paragraph with a link, strong text, emphasized text, and inline code.

This is a blockquote. It's styled automatically with a left border and indentation.


  • Unordered list item one
  • Unordered list item two
  • Unordered list item three
  1. Ordered list item one
  2. Ordered list item two
  3. Ordered list item three
Definition Term
Definition description goes here with supporting details.
Another Term
Another description with more information.
// Preformatted code block
function hello() {
  console.log("Hello, ply!");
}

Theming

Typography Custom Properties

Override font families across your entire theme with three CSS custom properties. These work the same way as color variables — one override propagates everywhere.

Variable Default Used by
--ply-font-body System sans-serif stack Body text, form controls
--ply-font-heading System sans-serif stack h1–h6, heading classes
--ply-font-mono System monospace stack code, pre, kbd, samp
[data-theme="brand"] {
  --ply-font-body: "Palatino Linotype", Palatino, Georgia, serif;
  --ply-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ply-font-mono: "Fira Code", "Source Code Pro", monospace;
}

Interactive

Details & Summary

Styled accordion using native HTML elements.

What is ply?

ply is a ratio-based CSS framework with dark mode, accessibility, and a small footprint. It's designed to be used by both humans and AI agents.

How do I install it?

Add a single link tag to your HTML head, or install via npm with npm install plygrid.

Does it require JavaScript?

No. ply is pure CSS. Zero JavaScript required. The entire framework is one stylesheet.

Next

Next Steps

Learn the grid system for page layouts, or jump to buttons for interactive components.