
Projects
Larger pieces of work, planned and priced in writing first.

Larger pieces of work, planned and priced in writing first.
A first conversation and a written plan.
Weekly, on a fixed monthly price.

A scheduled check, every season.
The small fixes, done on the same visit.
Same-day help when something cannot wait.
A tile for a bento grid: title, text, optional image or icon, and a span setting (1×1, 2×1, 1×2, 2×2). The grid packs tiles densely at four columns and stacks them on small screens. Hover lifts the tile and drifts the image.
A features grid where one or two features deserve more room. A services overview mixing photos, icons and short text. A product summary block on a home page.
title (text); text (text); image (image, optional); span (select: 1×1, 2×1, 1×2, 2×2); tone (select: light, dark, primary)
Open the item pageAn icon, a title and a detail: a phone number, an email, an address, opening hours. The detail is a link when you give it one. Stack them in a list for contact blocks, footers and sidebars.
A contact block with phone, email, address and hours. An at a glance card with price, timeline and warranty. A footer or sidebar list of ways to reach you.
icon (select: phone, mail, pin, clock, calendar, check); title (text); detail (text); href (link, optional: makes the detail a link)
Open the item pageMost work starts two to four weeks after you say yes. Urgent needs are seen the same day.
Yes. Every quote lists each line of work and its price, and the invoice matches it unless you change the scope.
We move the dates with you and confirm the new ones in writing the same day.
One question and its answer as native details and summary: no script, keyboard and screen-reader behaviour for free, and the chevron turns with CSS. The answer is a slot, so it can hold paragraphs, lists, links or a button.
A questions list on a service or pricing page. A single expandable note inside an article. Shipping, returns or policy answers on a shop page.
question (text); startOpen (boolean); answer slot (anything; a default paragraph shows while it is empty)
Open the item page








Nothing matches those filters. Clear one, or call (503) 555-0147.
Filter and sort any list of cards without a plugin: a segmented type switch, sort buttons and a filter popover with checkbox groups, a live result count and an empty state. Types, sorts and filter groups are repeaters; the cards are a slot, and each card's list item carries the data it is judged by.
A directory of clinics, locations or staff that filters without a plugin. A service or product finder with types, sorts and checkbox filters. A project archive filtered by kind and year.
label (text); types (repeater: label, value, matched against data-type on each item); sorts (repeater: label, key, order asc or desc, read from data-); filters (repeater: label, key, values comma separated, matched against data-); noun and nounOne (text, for the count: visits and visit); emptyText (text); items slot (a list whose items carry data attributes)
Open the item pageRecovered the client's share of a family business after a two-year dispute with a former partner.
Verdict, 2026A landlord's claim for eight years of rent, reduced to a single payment and a clean exit.
Settled, 2026An injunction sought against a departing executive, dismissed on the second hearing.
Dismissed, 2025Water intrusion in a new build, paid by the builder's insurer without trial.
Settled, 2025Results as a ruled ledger: a serif figure and the matter on one line, or the wide form with a summary and an outcome. Rows are a repeater. Made for law firms, agencies and anyone with numbers worth a line each.
Case results for a law firm, one line each. A record of projects with figures for an agency. Pricing or fees set out as ruled rows.
label (text, optional heading above the rows); layout (select: compact, wide); rows (repeater: figure, matter, summary, outcome)
Open the item page

The one-time install behind every motion item: the keyframes (rise, fade, blur, scale, wipes, sweep, circle, block, fill, shine, aurora, marquee, count, stack, focus, and the glow buttons' pulse, sweep, flicker and flow), the registered properties they animate, the easing tokens (ACSS's presets when the site has them) and two spring easings sampled into linear(). Copy it, then in Etch open Styles, Stylesheets, add one named EtchPress Motion and paste. Free.
The one-time install behind every motion item in the library. Entrances, wipes and fills for your own elements, by keyframe name. Easing and spring tokens shared across a whole site.
None. Install once per site: Copy, then Etch, Styles, Stylesheets, New, name it EtchPress Motion, paste, save. Every motion item then works by class; without it they show their finished state.
Open the item pageA search box that opens a search window over the page: type to narrow a list of pages, services or anything you name, move with the arrow keys, open with Enter, close with Escape. Cmd K or Ctrl K opens it from anywhere. No plugin, no search index: the results are a list you fill in the component's settings.
A site search for a small site without a search plugin: pages, services, locations. A symptom or service finder in a clinic or agency header. A command menu for a docs site or a product's help pages.
placeholder (text, shown in the box and the field); label (text, the window's accessible name); items (repeater: title, category, link, keywords, matched word by word against what is typed); emptyText (text); hotkey (select: on, off; the first palette on a page with it on answers Cmd K or Ctrl K).
Open the item pageCome in, be seen within 20 minutes.
Three clinics, walk-in and booked visits, labs on site.
See a doctor from your sofa.
Same doctors, same notes, from any phone or laptop.
A segmented control (a sliding thumb behind two to four options) that switches between panels. Each panel is a slot, so anything goes inside. Real buttons with pressed state, arrow-key movement and no layout jump between panels.
Monthly and annual pricing behind one switch. Two to four views of the same content, such as plans, tiers or audiences. A tabs replacement that keeps its height.
label (text, names the control for screen readers); option1 to option4 (text, empty options are left out); align (select: start, center); panel1 to panel4 slots
Open the item pageA dated notice in a small card: a caption, the headline, one short paragraph, when it was posted and a link for details. For a closure, new hours, an offer or a new location. Light or dark, medium or small.
A holiday closure or a change of hours on the home page. A seasonal offer with its end date. A new location or a new service, dated. A dark tile in a light section, or the reverse.
caption (text); title (text); body (text); date (text, as shown, optional) and datetime (ISO); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageWhat is included, as a small card: a caption, a title and one line per item with a check; an item can be marked not included and shows a muted cross instead. A note and one link. Light or dark, medium or small.
What a plan or a visit includes, beside the plan cards. What to bring to an appointment. What a quote covers and what it does not, on a service page. A dark tile in a light section, or the reverse.
caption (text); title (text); rows (repeater: label, included as a switch); note (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageOpening hours in a small card: a caption, a status line, the days with their hours, a note and one link. Today's row is picked out on its own, in the page's language. Light or dark, medium or small.
Opening hours on a contact page or in the footer band. A tile in a bento or "why us" section beside a rating and a stat. A clinic's or a shop's hours with today picked out. A dark tile on a light page, or the reverse.
caption (text); title (text, the status line); rows (repeater: day, hours); note (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageThe next open date in a small card: the date large, the slot under it, a line on lead time and the book link. The date is text you set or bind, so it says what you mean. Light or dark, medium or small.
The next estimate visit beside the contact form. A clinic's next new-patient slot on the home page. Lead time in plain words for a busy season. A dark tile in a light section, or the reverse.
caption (text); title (text, what the visit is); date (text, the display line); slot (text, optional); note (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageA review score in a small card: the score as a large numeral, five stars that fill to it to the decimal, the number of reviews, where they are and one link to read them. Light or dark, medium or small.
A Google or Trustpilot score beside the hours and a stat in a bento band. Proof next to the booking form on a service page. A footer tile that links to the review profile. A dark tile in a light section, or the reverse.
caption (text); title (text); score (text, such as 4.9: the stars fill to it, to the decimal); count (text); source (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item page
One photo as a small card, with a gradient fade and the caption, title and place over it at the bottom, and a link to the gallery. Dark on the photo in both schemes. Medium or small.
The latest finished job beside the hours, the rating and a stat. A photo tile that opens the gallery. A before-and-after teaser on a service page. One strong image in a band of quiet tiles.
image (image URL); alt (text); caption (text); title (text); where (text, optional); linkLabel and linkHref (optional); size (select: medium, small)
Open the item pageWhere the business works, as a small card: a title that says it in words, the places as a row of chips that wraps, a note on the radius and a link to check an address. Light or dark, medium or small.
The service area beside the hours and the contact form. The towns a clinic or a firm serves, with a link to the directions page. A radius in plain words for a trade that travels. A dark tile in a light section, or the reverse.
caption (text); title (text); places (repeater: name); note (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageA number and its label in a small card, with one line of change against the last period and an arrow that points up, down or level. Light or dark, medium or small.
Jobs completed this month, beside the hours and the rating in a bento band. A figure with its direction on an about page: years, crews, projects. A patient or client count with the change since last year. A dark tile in a light section, or the reverse.
caption (text); label (text, the title); number (text); prefix and suffix (text, optional); change (text, optional); trend (select: up, down, level); note (text, optional); linkLabel and linkHref (optional); tone (select: light, dark); size (select: medium, small)
Open the item pageNothing matches. Clear the search.