
Internal
Every component the storefront is built from, in every state it can reach. Colours come from the semantic roles, which carry the seven contrast repairs — a specimen here is the same code the storefront ships.
States that normally need a pointer or a keyboard are forced with a data attribute that reuses the component's own declaration, so a specimen can never drift from the real thing.
Each row is a sanctioned pairing. The contrast audit measures these as rendered, not as documented.
--color-text · The quick brown fox jumps over the lazy dog
--color-text-heading · The quick brown fox jumps over the lazy dog
--color-text-secondary · The quick brown fox jumps over the lazy dog
--color-text-caption · The quick brown fox jumps over the lazy dog
--color-text-placeholder · The quick brown fox jumps over the lazy dog
--color-link · The quick brown fox jumps over the lazy dog
--color-link-hover · The quick brown fox jumps over the lazy dog
--color-text · The quick brown fox jumps over the lazy dog
--color-text-secondary · The quick brown fox jumps over the lazy dog
--color-link · The quick brown fox jumps over the lazy dog
--color-text-on-ink · The quick brown fox jumps over the lazy dog
--color-text-on-ink-dim · The quick brown fox jumps over the lazy dog
--color-link-on-ink · The quick brown fox jumps over the lazy dog
--color-success-700 · The quick brown fox jumps over the lazy dog
--color-warning-700 · The quick brown fox jumps over the lazy dog
--color-error-700 · The quick brown fox jumps over the lazy dog
--color-clay-700 · The quick brown fox jumps over the lazy dog
Fraunces for display and headings, Inter for text and UI. Two faces, ever.
Painted from your photograph
Painted from your photograph
Painted from your photograph
Painted from your photograph
Painted from your photograph
Painted from your photograph
We send your proof within 24 hours. Unlimited revisions. If it will not work we will send you a request for a new photo, or a refund.
We send your proof within 24 hours. Unlimited revisions. If it will not work we will send you a request for a new photo, or a refund.
We send your proof within 24 hours. Unlimited revisions. If it will not work we will send you a request for a new photo, or a refund.
$129.00
Depth is three stacked layers at 5% black — never a solid border. Nested corners are derived: inner = outer − padding.
Raised — cards
Overlay — modals and drawers
Sticky — header on scroll
--radius-xs
--radius-sm
--radius-card
--radius-lg
The reversed marks now ship on a transparent background, so they can sit on ink or on a scrim over photography.
Wordmark on canvas
Reversed on ink
Reversed over photography, on a scrim
Monogram
Primary is Ink. Clay is jewelry — links and small accents — and never a large fill.
Default
Hover
Active
Focus
Disabled
Loading
Default
Hover
Active
Focus
Disabled
Loading
Default
Hover
Active
Focus
Disabled
Loading
Medium — 44px
Large — 52px
With icon
Full width
With price
On sale
Attention sheen
Labels sit above the field and never inside it. Errors carry three signals: border, icon and message.
Family name, year, or address — lettered in elegant script at no charge.
64 characters left
Default
Hover
Focus
That photo is over 20 MB. Try the original from your camera roll rather than a screenshot.
22 characters left
Error
Disabled
A tree to keep or lose, the season, cars in or out of the driveway — whatever you tell us here goes in.
256 characters left
Default
Default
Disabled
A real radio group: keyboard-operable, form-submittable, no script involved.
The frame finishes, showing the timber itself rather than naming it. The photograph is the same shot the product gallery uses, cropped to the mitre, so the chip and the gallery cannot disagree about the wood. Selection is a ring around the chip — a fill behind it would put Ink beside the timber and change how the timber reads.
Three separate labelled slots, never one multi-file input: the label is the instruction to the artist. Drop a file on one to see the filled state; the empty box is already the height of the full one, so nothing reflows.
Both are modal bodies on the product page, shown here flat. The size diagram is drawn from the product's own option values, so a size added in the admin appears without a code change.
Sizes are the painted area. A framed piece adds roughly one and a half inches on every side.
Every size we sell, drawn to scale on one wall. Measurements are the painted area — a frame adds about one and a half inches on every side.
| Size | Metric | Where it works |
|---|---|---|
| 8 × 10 in | 20 × 25 cm | A shelf, a desk, or one of a pair on a narrow wall. |
| 12 × 16 in | 30 × 41 cm | A hallway, a bedside wall, or the middle of a gallery arrangement. |
| 16 × 20 in | 41 × 51 cm | The most chosen size. Above a console table or a fireplace. |
| 18 × 24 in | 46 × 61 cm | Reads across a room. Above a sideboard or a bed. |
| 24 × 36 in | 61 × 91 cm | A statement over a sofa. Hang it alone. |
Every frame is solid timber with a hand-finished face, glazed in plexiglass so it travels safely.
Scroll-snap track, thumbnail rail, video playing without chrome, and click-to-enlarge. Everything the script adds is an enhancement — with it dead the strip still scrolls and every image is still reachable.
neutral
success
warning
error
accent

With image, badge and action. The action goes to the product page — never straight into the cart. Every product here needs photographs before it can be made, so a quick-add would create an order with nothing to paint from.

$129.00
Hover
$129.00
Without an image
Every piece is made to order. We send your proof within 24 hours, and ship once you approve it.
Cotton canvas, stretched on a kiln-dried pine bar, in a solid walnut float frame.
Cotton canvas, stretched on a kiln-dried pine bar, in a solid walnut float frame.
Both are one native dialog element. Focus trapping, Escape and focus restoration are the platform's.
Centred modal
Side drawer
Auto-dismiss pauses while the pointer or the keyboard is on the message.
Two levels
Three levels, with a parent
From a menu
With one appended link
Within 24 hours of your order, and revisions are unlimited.
Send us a photograph and we remake it. Nothing to send back.
All closed
Within 24 hours of your order, and revisions are unlimited.
Send us a photograph and we remake it. Nothing to send back.
First row open
One good photograph is enough. We will tell you if it is not.
A single step
A house, a dog, a person — or all of them in one picture. The steps are the same whatever you send us.
Your house, your dog, the two of them together. One photograph from your phone is enough.
Your proof arrives within 24 hours. Change anything, as many times as you like, at no charge. Nothing goes to print until you say yes.
On your wall 6 to 13 business days after you approve your proof — 4 to 6 to make it, 2 to 7 in transit, free anywhere in the US. Framed pieces arrive ready to hang.
The full band