Concept: a dinner-only oyster bar and seafood restaurant in Portland, Maine, built around a nautical chart. View the site mock. Assets are in img/ next to this page and are regenerated by bake.py. Concept design by Coursed. No Code Block on this site.
Layout: editorial, photo-first, dark. The whole page sits on sea-ink except one bone section (the raw bar prices). The rhythm is a full-width photo band (Media module, edge to edge) followed by a centered Text module with a very large Caslon heading and one or two lines of copy. There are no image-beside-text rows.
Signature idea: depth contours, soundings (the small italic depth numbers on a chart) and graduated chart bars along the top and bottom edges, all baked over every photo band and the hero. The oyster list is a full-width tide-table image with a tide curve and a salinity scale for each farm. None of it is CSS.
| Role | Font | Source |
|---|---|---|
| Primary (headings, menu item names, logo) | Libre Caslon Text, Regular 400 | Google Fonts, OFL. Upload fonts/LibreCaslonText.ttf (variable; if the editor rejects variable fonts, download the static Regular from fonts.google.com/specimen/Libre+Caslon+Text). |
| Secondary (body, nav, buttons, prices) | IBM Plex Sans Condensed, Regular + Medium + SemiBold | Google Fonts, OFL. Upload fonts/IBMPlexSansCondensed-Regular.ttf (and SemiBold if a bold slot exists). |
Headings in sentence case. No all-caps, no letter-spacing. The italic Caslon used for soundings only appears inside images.
| Setting | Hex | Use |
|---|---|---|
| Brand | #D1166E | Chart magenta. Primary buttons, mobile CTA, review stars. Nothing else. |
| Background | #0D1B26 | Sea-ink. The whole site. |
| Surface | #172A38 | A step lighter than the background. Toast Tables widget, testimonial cards. |
| Text | #EEF1EF | Bone white. |
| Icon | #D1166E | |
| Border | #EEF1EF | Hairlines, outline buttons. |
| Per-module override | #EEF1EF bg / #0D1B26 text | Only the Menu Group module (#6). |
Corner radius 0 everywhere. Primary button = solid brand. Secondary = outline in the text color. Headings: Caslon, 140px desktop / 56px phone for H2, the hero H1 as large as the editor allows (240px in the mock), all centered.
| Item | Settings |
|---|---|
| Banners | None on desktop. No promo bar. |
| Nav | Overlaid ON, transparent, sticky OFF, cart OFF. Logo logo-bone.png. Links: Raw bar (anchor), Shuck Night (anchor), Wine list (PDF page), Gift cards (Gift Cards page). Primary CTA Reserve → Reservations anchor. |
| Mobile CTA banner | On, "Reserve a table" → Reservations. |
| Footer | Toast default. Logo logo-bone.png, address and hours from Toast data, Instagram + Facebook, links: Menu, Wine list, Gift cards, Reservations. Footer text: "Concept design by Coursed". |
| Other pages | Menu page (Toast-generated). PDF page "Wine list". Gift Cards page (reached from the nav and footer only, no homepage row). No online ordering. |
| # | Module | Settings | Assets | Copy |
|---|---|---|---|---|
| 1 | Welcome | Background image, tallest height, no extra dim (darkening is baked). Text box CENTER, box color none. Heading only, no body text. 1 button. | hero.jpg 1920×1080 | H1: Wrack Line Button: RESERVE A TABLE (solid → Reservations) |
| 2 | Reservations | Toast Tables, centered, module bg = Background. Anchor: reserve | none | H: Book a table Dinner Tuesday to Sunday from five. The raw bar seats are kept for walk-ins. |
| 3 | Media (image) | Full width, zero top/bottom spacing | band-harbor.jpg 2400×1200 | Alt: A lobster boat in fog on Casco Bay |
| 4 | Text | Centered, large heading. Anchor: raw | none | H: Raw bar Six Maine oysters most nights, shucked to order and served on crushed ice. |
| 5 | Media (image) | Full width, zero spacing | tide-table.jpg 2400×2000 (six farms, water, salinity scale, tide curve) | Alt text carries the full farm list (see index.html). |
| 6 | Menu Group | Module bg #EEF1EF, text #0D1B26 (the one light section). List layout, no item images, POS group "Raw Bar", group title centered | none (POS) | Group title: By the piece. Maine oysters 3.75 ea, Littleneck clams 2.75 ea, Half dozen shucker's pick 22, Shrimp cocktail 19, Lobster cocktail 31, Low tide for two 98. |
| 7 | Media (image) | Full width, zero spacing | band-dinner.jpg | Alt: Seared scallops on asparagus |
| 8 | Text | Centered | none | H: Dinner Scallops, hake, and a lobster plate that changes with the boats. The menu turns over most weeks. Button: SEE THE MENU (outline → Menu page) |
| 9 | Media (image) | Full width, zero spacing | band-shuck.jpg | Alt: Unshucked oysters and lemons in a basket |
| 10 | Events | Module bg = Background, heading + description centered. Anchor: shuck. 3 events (max 10) | event-dec.jpg, event-jan.jpg, event-feb.jpg 900×600 (date block baked) | H: Shuck Night First Monday of the month. Oysters are $1.50 until they run out, and the shuckers will teach you. Events: Shuck Night, Mon Dec 7 2026 / Mon Jan 4 2027 / Mon Feb 1 2027, 5 to 9 pm, walk-in only. |
| 11 | Media (image) | Full width, zero spacing | band-wine.jpg | Alt: A glass of white wine at the bar |
| 12 | Text | Centered. Anchor: wine | none | H: Wine list Mostly white, mostly from near cold water. Muscadet, Chablis, Galician albariño, and a lot of grower Champagne. Button: OPEN THE LIST (PDF) (outline → PDF page) |
| 13 | Testimonials | Module bg = Background, cards = Surface (#172A38), auto-pull Google 4 to 5 stars, max 6 | none (needs Google Business Profile linked) | H: Reviews. No typed quotes. |
| 14 | Text | Centered, small top spacing | none | H: Find us 118 Commercial Street, Portland, Maine / (207) 555-0137 · Tuesday to Sunday, 5 to 10 pm Buttons: DIRECTIONS (solid → Google Maps), CALL (outline → tel:2075550137) |
None. Everything chart-like is baked into images, so it also works in CA/UK/IE/AU where Code Block is not available.
hero.jpg instead.hero.jpg on phones.rows in tide_table() in bake.py and rerun.bake.py for each new month.All from Wikimedia Commons. Cropped, color-graded and overlaid with the chart in bake.py.
| Used in | Photo | Author | License |
|---|---|---|---|
hero.jpg, event-feb.jpg | Bluff oysters on ice | George Pollard | CC BY-SA 4.0 |
band-harbor.jpg | August 2009, lobster boat in Casco Bay, Maine | U.S. EPA | Public domain |
band-dinner.jpg | Pan seared scallops with grilled asparagus | Wiki.cullin | CC0 |
band-shuck.jpg | Oysters lemons basket | Nikodem Nijaki | CC BY-SA 3.0 |
band-wine.jpg | Celebrating with a glass of white wine in a lively bar setting | Shixart1985 | CC BY 2.0 |
event-dec.jpg | Oysters on the half shell, raw (cropped to the platter) | User:Youdontsmellbad | CC BY-SA 1.0 |
event-jan.jpg | Oysters served on ice | sanjay_ach | CC BY 4.0 |
For a real client, swap in the restaurant's own photography. The grade and chart overlay in bake.py apply to any photo.