Elementry

The mark

An E built from machined bars on a book cloth tile. The middle arm is sky because it is the piece you swap out. Use the full mark above 32px and the small mark at 32px and under.

Mark at 96px on oil Mark at 48px on oil Mark at 32px on oil Mark at 16px on oil
Mark at 96px on book cloth Mark at 48px on book cloth Mark at 32px on book cloth Mark at 16px on book cloth
Mark at 96px on machinist gray Mark at 48px on machinist gray Mark at 32px on machinist gray Mark at 16px on machinist gray
Mark at 96px on paper Mark at 48px on paper Mark at 32px on paper Mark at 16px on paper
Mark at 96px on white Mark at 48px on white Mark at 32px on white Mark at 16px on white
Lockup on dark
Lockup on light

Clear space

Keep a quarter of the tile's width clear on every side of the mark or the lockup.

Don'ts

  • Never recolor the bars.
  • Never color any bar but the middle one sky.
  • Never set the wordmark in another face or width.
  • Never place the mark on anything but oil, book cloth, machinist gray, paper, or white.
  • Never add a shadow, outline, or gradient.

Color

Every value on this page is read from the live stylesheet, so the guide cannot drift from the theme.

Palette

  • oil
  • cloth
  • cloth-hover
  • machinist
  • paper
  • white
  • steel
  • edge
  • fog
  • slate
  • sky
  • sky-hover
  • sky-press
  • sky-deep
  • error-tint
  • error-deep
  • success-tint
  • success-deep
  • warning-tint
  • warning-deep

Semantic tokens

Components use these. They take their dark values by default and switch inside plates, panels, and on-light.

On dark

  • fg
  • fg-muted
  • accent
  • focus
  • primary
  • primary-ink
  • primary-hover
  • primary-press
  • error
  • success
  • warning

Inside a panel

  • fg
  • fg-muted
  • accent
  • focus
  • primary
  • primary-ink
  • primary-hover
  • primary-press
  • error
  • success
  • warning

Contrast

Text pairs need 4.5:1. Borders and focus rings need 3:1.

SampleForegroundBackgroundRatioNeedsResult
Aa machinistoil4.5:1
Aa machinistcloth4.5:1
Aa fogoil4.5:1
Aa fogcloth4.5:1
Aa skyoil4.5:1
Aa skycloth4.5:1
Aa oilsky4.5:1
Aa oilsky-hover4.5:1
Aa oilsky-press4.5:1
Aa error-tintoil4.5:1
Aa error-tintcloth4.5:1
Aa success-tintoil4.5:1
Aa success-tintcloth4.5:1
Aa oilsuccess-tint4.5:1
Aa warning-tintoil4.5:1
Aa warning-tintcloth4.5:1
Aa oilmachinist4.5:1
Aa oilpaper4.5:1
Aa slatemachinist4.5:1
Aa slatepaper4.5:1
Aa sky-deepmachinist4.5:1
Aa sky-deeppaper4.5:1
Aa sky-deepwhite4.5:1
Aa papercloth4.5:1
Aa papercloth-hover4.5:1
Aa paperoil4.5:1
Aa whitesky-deep4.5:1
Aa whitesuccess-deep4.5:1
Aa error-deepmachinist4.5:1
Aa error-deeppaper4.5:1
Aa error-deepwhite4.5:1
Aa success-deepmachinist4.5:1
Aa success-deeppaper4.5:1
Aa success-deepwhite4.5:1
Aa warning-deepmachinist4.5:1
Aa warning-deeppaper4.5:1
Aa warning-deepwhite4.5:1
Aa steeloil3:1
Aa edgemachinist3:1
Aa edgepaper3:1
Aa edgewhite3:1

Type

Archivo labels: display at 72% width and weight 600, UI at 88%. Newsreader is for everything that is read. Monospace appears only in the copy field.

Hero, 64px

Edit your site by asking

Heading 1, 48px

Nothing goes live until you say so

Heading 2, 36px

Previewing and publishing

Heading 3, 24px

Sign in to edit your site

Reading, 17.5px

Tell Claude what to change, check the preview, and publish when it looks right. Every publish can be undone.

UI, 16px

Add photos

Small UI, 14px

Up to 10 photos, at most 5 MB each

Components

Each component on the dark canvas and inside a plate. Press Tab to see focus rings.

Buttons

btn btn-primary, btn btn-secondary, btn-quiet. Disabled and busy states shown last.

Undo

Notices

notice with notice-success, notice-changed, notice-warning, notice-error. On a live page, errors add role="alert".

Published

Your changes are live.

Preview ready

Open the preview to check the new hours before you publish.

Unpublished changes

Two edits are waiting in the preview. Publish them or throw them away.

Not published

The preview didn't build. Ask Claude what went wrong.

Tags

tag with tag-live, tag-preview, tag-muted.

LiveIn previewDraft

Example request

say

“Change our Saturday hours to 9 to 2.”

Steps

steps, only for a real sequence.

  1. Tell Claude what to change.
  2. Check the preview.
  3. Say publish when it looks right.

Side navigation

side-nav, side-nav-item, aria-current="page" on the current item. Dark canvas only.

Buttons

btn btn-primary, btn btn-secondary, btn-quiet. Disabled and busy states shown last.

Undo

Fields

field, field-label, field-input, field-hint, field-error, and field-file with file:btn file:btn-secondary. Fields sit only in plates and panels.

The address we sent your sign-in details to.

Enter your site's name.

Notices

notice with notice-success, notice-changed, notice-warning, notice-error. On a live page, errors add role="alert".

Published

Your changes are live.

Preview ready

Open the preview to check the new hours before you publish.

Unpublished changes

Two edits are waiting in the preview. Publish them or throw them away.

Not published

The preview didn't build. Ask Claude what went wrong.

Tags

tag with tag-live, tag-preview, tag-muted.

LiveIn previewDraft

Copy field

copy-field. Pages with JavaScript add the Copy button; without it the text stays selectable.

https://edit.elementry.dev/mcp
https://edit.elementry.dev/mcp

Example request

say

“Change our Saturday hours to 9 to 2.”

Steps

steps, only for a real sequence.

  1. Tell Claude what to change.
  2. Check the preview.
  3. Say publish when it looks right.

Layout

Band

Book cloth carries bands and headers.

Plate

Machinist gray, only for forms.

Panel

Paper, for reading.

Header
About
Hours
Footer

Blocks that belong together sit edge to edge with a 3px oil joint and no shadows. Sky marks the piece that changed.

Voice

Say what happens.

Do: Nothing goes live until you say so.

Don't: Seamless publishing.

Name things as a client would: your site, preview, publish, undo.

Do: Your preview is ready.

Don't: The edits branch deployed.

Sentence case, no exclamation marks, no all-caps labels.

Do: Photos added

Don't: PHOTOS ADDED!

Errors say what happened and what to do next, without apologizing.

Do: That email and password don't match. Check both and try again.

Don't: Oops! Something went wrong.

Example requests are things people would actually say.

Do: “Change our Saturday hours to 9 to 2.”

Don't: Update the hours content block.

An action keeps its name through a flow.

Do: Publish, then Published.

Don't: Publish, then Deployed.

We in the product, UI, notices, and help. I, with Todd's name, on About, Contact, and personal emails.

Do: We keep every published version, so any publish can be undone.

Don't: I keep every published version (in product copy).