From a42f1ee8b12f5868de39fa21d9ff95b0186f8466 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 18:29:05 -0500 Subject: [PATCH] Make a card look like it came from the shop, not from a component library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The cards were white boxes with a grey drop shadow and no edge — the default card of every web app, sitting on a page that is otherwise cream, sage and a hand-drawn vine. Four changes, all of them things the brand already owns: - A WARM HAIRLINE. A card now has an edge, so it reads as stock lying on a counter rather than as a panel floating over a screen. - A SHADOW IN SAGE, not black — rgba(35,43,30,…), the darkest colour in the palette. Grey shadows are what made them feel borrowed. - A CREAM HEAD (`panel-head`). On a catering card the size, price and "About 6–8 people" sit on the tint with the contents below, the way a printed menu separates what it costs from what you get. Product cards use the same band for their caption, so the photo reads as mounted on the card instead of being it. - THE BRANCH, at watermark weight, in the corner of every price card. It is the one mark that is unmistakably this shop, and it costs nothing: the mask was already there for the wordmark. The lift is a lift now, two pixels, rather than the shadow just darkening. TWO THINGS TAILWIND v4 MADE ME FIX ALONG THE WAY. `.mark`, `.mark-l`, `.mark-r` and `.no-scrollbar` were plain classes in @layer components, and only a registered utility can be @applied by another rule — the watermark builds on the branch mark, so they became @utility like everything else here. And rewriting that file dropped the `summary { list-style: none }` reset, which would have put a disclosure triangle beside the hamburger on every phone; caught it by grepping the compiled CSS rather than by luck. 53 tests green, every class on every page resolves, and the price cards are in the screenshot. --- src/main/resources/templates/catering.html | 25 ++-- src/main/resources/templates/home.html | 2 +- src/main/resources/templates/products.html | 6 +- src/main/styles/base.css | 9 ++ src/main/styles/components.css | 127 ++++++++++++--------- src/main/styles/theme.css | 8 ++ 6 files changed, 112 insertions(+), 65 deletions(-) diff --git a/src/main/resources/templates/catering.html b/src/main/resources/templates/catering.html index 79eb6e6..fd7077d 100644 --- a/src/main/resources/templates/catering.html +++ b/src/main/resources/templates/catering.html @@ -67,19 +67,24 @@ : (${#lists.size(table.tiers) == 2} ? 'sm:grid-cols-2 max-w-3xl mx-auto' : 'sm:grid-cols-2 lg:grid-cols-3')">
-

Small

-

$24

- -

Ask us

- -

About 6–8 people

+ class="relative flex flex-col overflow-hidden panel-lift"> + + -