DDEV / Starter theme

A shared language.
Built from the basics.

The foundations and reusable components for your next project. Simple, consistent, and ready to make your own.

01 / Foundations

A small set of decisions.

Semantic colors, a consistent spacing scale, and shared corner radii.

Primary--color-primary
Text--color-text
Muted--color-muted
Border--color-border
Surface--color-surface
Background--color-background
Success--color-success
Danger--color-danger

Room to breathe

Spacing follows one shared scale. Use the same steps for gaps, padding, and component rhythm.

space-2
space-3
space-4
space-5
space-6
space-7
space-8
space-9
02 / Typography

Clear hierarchy. Comfortable reading.

Six heading levels, body copy, supporting text, and links.

H1 / .heading--h1

Make an impression.

H2 / .heading--h2

Tell your story.

H3 / .heading--h3

Keep it simple.

H4 / .heading--h4

The finer details.

H5 / .heading--h5

Small but important.

H6 / .heading--h6

A final thought.

Lead / .text--lead

Good design starts with the everyday details. Give every word a little room to do its job.

Body / paragraph

This is a regular paragraph with strong emphasis, italic emphasis, and an inline link to the form examples. Its line height stays comfortable in both short descriptions and longer content.

A second paragraph shows how content flows. Use a clear heading, a focused message, and consistent spacing to guide the reader.

Supporting / .text--small .text--muted

Supporting information should remain easy to read, even when it takes a quieter role.

Small print using the native small element.

03 / Buttons

One component. A few clear roles.

Hover, press, or tab through the examples to inspect interactive states.

Primary / secondary / ghost
Small / default / large
Disabled / link styled as a button
Explore forms
04 / Forms

Make the next step obvious.

Labels, hints, and validation states. This demonstration does not send or save data.

Use the name you prefer to be called.

Enter a complete email address, such as alex@example.com.

Local preview only; no file is uploaded.

Radio buttons
Checkboxes
05 / Lists

A little structure goes a long way.

Native lists inside .prose or .entry-content.

Unordered list

  • Start with a clear purpose.
  • Build with reusable parts.
    • Consistent spacing.
    • Shared colors and typography.
  • Refine the details.

Ordered list

  1. Define the foundations.
  2. Create the components.
  3. Bring the pages together.

Definition list

Design token
A shared value for a color, space, or type size.
Component
A reusable part of the interface with a clear purpose.
Modifier
A variation of a component, such as a secondary button.
06 / Tables

Details, at a glance.

Striped rows, clear headings, and horizontal scrolling when needed.

Component reference
ComponentBase classAvailable variations
ButtonbuttonSecondary, ghost, small, large, full width
Form fieldform-fieldDefault, invalid, disabled, read-only
NoticenoticeInformation, success, warning, danger
Tabledata-tableDefault, striped
07 / Rich text

The details in between.

Quotes, code, abbreviations, and the small things that make content complete.

Use highlighted text sparingly. Show removed content and its replacement, reference a published work, or explain HTML. Chemical formulas like H2O and measurements like m2 should remain readable.

Great systems make the everyday things feel effortless.

Example blockquote attribution

Inline code like button--secondary fits within a sentence. Press Ctrl + S to save, or inspect sample output: Build complete.

<button class="button button--secondary" type="button">
    Explore the details
</button>
08 / Notices

Helpful feedback, at the right time.

A clear title and useful next step. Meaning is carried by text as well as color.

Good to know

You can update these details at any time.

Changes saved

Your preferences have been updated successfully.

One more thing

Review your details before continuing.

Something needs attention

Check the highlighted field and try again.

DDEV starter theme / Components built to be reused.