Add coffee & tea menu with espresso shot telemetry charts#14
Open
Glitched wants to merge 6 commits into
Open
Conversation
Adds a second menu tab alongside cocktails, reachable at /coffee via a toggle on every page. The coffee tab is a static composed page: a "proudly brew SEY" sign, the single bean currently on bar with its origin story, three drinks (espresso, pour over, americano), a short tea list, and the gear rundown. Espresso carries its GaggiMate profile (stored verbatim as exported, both standard and pro schemas) rendered as a static SVG chart: target vs actual pressure and brew-by-weight cup weight on stacked panels sharing a time axis, with phase boundaries and the pump-cut drip tail annotated. Shot telemetry ships slimmed by scripts/slim-shot.mjs (~100KB raw export -> ~3KB of chart fields). Profile and shot are community data placeholders until the machine mod is installed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
✅ Deploy Preview for thenightlatch ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
- Soften the active tab treatment (secondary fill instead of primary) - Sign reads "We Proudly Serve SEY Coffee", no trademark symbol - Drop the redundant roasted-by line; the sign covers attribution - Origin breadcrumb uses slashes instead of arrows - Label the bean chips (Process/Varietal/Elevation) and add a plain-language line explaining what a natural, a landrace varietal, and the elevation actually mean - Progressive disclosure for drinks: cards show title + one-line blurb, and params, brew steps, and the shot chart move into a tap-in dialog matching the cocktail cards - Replace placeholder teas with the real program, starting with Kettl's Nagano Soba Cha: tasting notes and caffeine tag on the card, producer/cultivar/region and brew params in the dialog Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
Espresso and pour over blurbs no longer reference the bean — the Now Brewing section covers that; the drink entries describe the preparation style. Tea cards slim down to name, caffeine tag, and tasting notes, while the dialog picks up the type, caffeine chip, and a per-tea source attribution (Kettl, Greenpoint), replacing the section footer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
- Pour over brews at 93°C with a ~50 g bloom, ~30 s rest, and two pours — matching how it's actually made - Temperature chips render Fahrenheit by default and toggle to the Celsius source value on tap (conversions rounded to whole degrees) - Brew steps lose the hanging list indent; numbers render inline and flush with the description text - The V60 is glass (regrettably or not) with CAFEC Abaca filters Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
The html element's background was set to var(--background) — a raw HSL triplet meant for hsl() — so the declaration was invalid and the root element stayed white, flashing between page loads. Wrap it in hsl() and declare color-scheme per theme so the pre-paint canvas (and scrollbars) follow the active theme too. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a complete coffee & tea menu section to the site alongside the existing cocktail menu, featuring real espresso shot telemetry visualization.
Summary
This PR introduces a new
/coffeepage with a curated coffee & tea menu, equipment details, and an interactive SVG chart component that visualizes espresso shot profiles and real pull telemetry. The chart is server-rendered with no JavaScript overhead and supports both planned pressure curves and actual shot data with pressure/weight tracking.Key Changes
src/pages/coffee.astro): Dedicated page with navigation tabs to switch between cocktails and coffee menussrc/coffee.ts): Centralized data for the current bean on bar, GaggiMate espresso profiles, drink recipes, tea selection, and equipment detailssrc/components/coffee/ShotChart.tsx): Server-rendered SVG visualization that displays:src/components/coffee/CoffeeMenu.tsx): Composed page layout with sections for current bean, espresso/pour-over recipes, tea list, and equipmentsrc/types/coffee.ts): Complete TypeScript definitions for GaggiMate profiles, shot samples, beans, drinks, and gearscripts/slim-shot.mjs): Utility script to compress raw GaggiMate exports from ~100KB to ~5KB by extracting only chart-relevant fieldssrc/components/MenuTabs.astro): Shared tab component for switching between cocktails and coffee sectionsImplementation Details
ShotChartcomponent uses pure SVG with CSS custom properties for theming—no JavaScript requiredhttps://claude.ai/code/session_019Up3A1AKGQYm9bNfXkkFNB