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
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
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
- Ordered list item one
- Ordered list item two
- 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.