From af70682fa8ba545109f678176560d79e4a33c10b Mon Sep 17 00:00:00 2001 From: mifi Date: Mon, 16 Feb 2026 00:54:08 -0300 Subject: [PATCH] Revert to static JS site (Svelte built, but no CSR); Optimize images --- AGENTS.md | 4 +- docker-compose.yml | 2 +- package.json | 3 +- pnpm-lock.yaml | 476 ++++++++++++++++++ scripts/critical-css.js | 6 +- src/app.css | 60 +++ src/lib/components/GalleryFigure.svelte | 11 +- src/lib/components/Lightbox.svelte | 94 +--- src/lib/components/SiteHeader.svelte | 14 +- src/routes/+layout.ts | 2 +- src/routes/+page.svelte | 18 +- static/assets/js/script.js | 105 ++++ .../media/desktop/backyard_parking.webp | Bin 1296972 -> 831996 bytes .../media/desktop/backyard_parking@1x.webp | Bin 355184 -> 222310 bytes .../assets/media/desktop/bedroom_suite_1.webp | Bin 846070 -> 462828 bytes .../media/desktop/bedroom_suite_1@1x.webp | Bin 133202 -> 70730 bytes .../assets/media/desktop/bedroom_suite_2.webp | Bin 924526 -> 485714 bytes .../media/desktop/bedroom_suite_2@1x.webp | Bin 149192 -> 87856 bytes .../assets/media/desktop/bedroom_suite_3.webp | Bin 652524 -> 335310 bytes .../media/desktop/bedroom_suite_3@1x.webp | Bin 102712 -> 55078 bytes static/assets/media/desktop/coat_closet.webp | Bin 645400 -> 380974 bytes .../assets/media/desktop/coat_closet@1x.webp | Bin 94178 -> 49428 bytes static/assets/media/desktop/deck_1.webp | Bin 505846 -> 328040 bytes static/assets/media/desktop/deck_1@1x.webp | Bin 138026 -> 92636 bytes static/assets/media/desktop/deck_2.webp | Bin 632620 -> 370752 bytes static/assets/media/desktop/deck_2@1x.webp | Bin 170696 -> 112424 bytes static/assets/media/desktop/exterior.webp | Bin 300498 -> 192336 bytes static/assets/media/desktop/exterior@1x.webp | Bin 145668 -> 90042 bytes static/assets/media/desktop/guest_bath.webp | Bin 322220 -> 158230 bytes .../assets/media/desktop/guest_bath@1x.webp | Bin 87008 -> 51926 bytes static/assets/media/desktop/kitchen.webp | Bin 381800 -> 136658 bytes static/assets/media/desktop/kitchen@1x.webp | Bin 65920 -> 42746 bytes static/assets/media/desktop/laundry.webp | Bin 1029078 -> 594542 bytes static/assets/media/desktop/laundry@1x.webp | Bin 191980 -> 116854 bytes .../assets/media/desktop/living_room_1.webp | Bin 550718 -> 267690 bytes .../media/desktop/living_room_1@1x.webp | Bin 115442 -> 73368 bytes .../assets/media/desktop/living_room_2.webp | Bin 766026 -> 433420 bytes .../media/desktop/living_room_2@1x.webp | Bin 146894 -> 90684 bytes .../media/desktop/office_fitness_guest_1.webp | Bin 818676 -> 433614 bytes .../desktop/office_fitness_guest_1@1x.webp | Bin 131842 -> 71472 bytes .../media/desktop/office_fitness_guest_2.webp | Bin 788344 -> 370414 bytes .../desktop/office_fitness_guest_2@1x.webp | Bin 117574 -> 66858 bytes .../media/desktop/office_fitness_guest_3.webp | Bin 845730 -> 452098 bytes .../desktop/office_fitness_guest_3@1x.webp | Bin 128964 -> 72048 bytes .../media/desktop/office_fitness_guest_4.webp | Bin 704336 -> 351954 bytes .../desktop/office_fitness_guest_4@1x.webp | Bin 99446 -> 58812 bytes static/assets/media/desktop/onsuite_1.webp | Bin 432716 -> 208950 bytes static/assets/media/desktop/onsuite_1@1x.webp | Bin 73464 -> 42016 bytes static/assets/media/desktop/onsuite_2.webp | Bin 180252 -> 93454 bytes static/assets/media/desktop/onsuite_2@1x.webp | Bin 35500 -> 21922 bytes static/assets/media/desktop/tour_still.webp | Bin 129920 -> 85944 bytes .../assets/media/desktop/tour_still@1x.webp | Bin 60004 -> 35922 bytes .../assets/media/mobile/backyard_parking.webp | Bin 98214 -> 61380 bytes .../media/mobile/backyard_parking@1x.webp | Bin 26416 -> 17126 bytes .../assets/media/mobile/bedroom_suite_2.webp | Bin 37464 -> 23334 bytes .../assets/media/mobile/bedroom_suite_3.webp | Bin 32420 -> 21472 bytes .../media/mobile/bedroom_suite_3_mobile.webp | Bin 43212 -> 27758 bytes static/assets/media/mobile/deck_1.webp | Bin 44350 -> 30442 bytes static/assets/media/mobile/deck_1_mobile.webp | Bin 30772 -> 21498 bytes static/assets/media/mobile/deck_2_mobile.webp | Bin 75584 -> 49724 bytes static/assets/media/mobile/exterior@1x.webp | Bin 19176 -> 10858 bytes static/assets/media/mobile/guest_bath.webp | Bin 30696 -> 18982 bytes static/assets/media/mobile/guest_bath@1x.webp | Bin 10728 -> 6762 bytes static/assets/media/mobile/laundry@1x.webp | Bin 19268 -> 13066 bytes static/assets/media/mobile/living_room_1.webp | Bin 41036 -> 27332 bytes .../media/mobile/living_room_1_mobile.webp | Bin 55074 -> 37266 bytes .../assets/media/mobile/living_room_2@1x.webp | Bin 15964 -> 11078 bytes .../media/mobile/living_room_2_mobile.webp | Bin 61642 -> 40450 bytes .../media/mobile/office_fitness_guest_1.webp | Bin 39514 -> 25956 bytes .../mobile/office_fitness_guest_1@1x.webp | Bin 13502 -> 8866 bytes .../mobile/office_fitness_guest_2@1x.webp | Bin 14242 -> 9666 bytes .../mobile/office_fitness_guest_3@1x.webp | Bin 13080 -> 8286 bytes .../mobile/office_fitness_guest_3_mobile.webp | Bin 52102 -> 30978 bytes static/assets/media/mobile/onsuite_1.webp | Bin 25310 -> 15660 bytes static/assets/media/mobile/onsuite_1@1x.webp | Bin 8856 -> 5706 bytes .../assets/media/mobile/onsuite_1_mobile.webp | Bin 18064 -> 11238 bytes .../assets/media/mobile/onsuite_2_mobile.webp | Bin 18358 -> 11540 bytes .../assets/media/tablet/backyard_parking.webp | Bin 396938 -> 248130 bytes .../media/tablet/backyard_parking@1x.webp | Bin 104120 -> 64280 bytes .../assets/media/tablet/bedroom_suite_1.webp | Bin 155872 -> 82306 bytes .../media/tablet/bedroom_suite_1@1x.webp | Bin 39038 -> 24766 bytes .../assets/media/tablet/bedroom_suite_2.webp | Bin 173884 -> 99510 bytes .../media/tablet/bedroom_suite_2@1x.webp | Bin 38868 -> 23454 bytes .../assets/media/tablet/bedroom_suite_3.webp | Bin 118968 -> 62456 bytes .../media/tablet/bedroom_suite_3@1x.webp | Bin 33012 -> 20848 bytes static/assets/media/tablet/coat_closet.webp | Bin 104836 -> 56144 bytes .../assets/media/tablet/coat_closet@1x.webp | Bin 28190 -> 17116 bytes static/assets/media/tablet/deck_1.webp | Bin 154122 -> 102190 bytes static/assets/media/tablet/deck_1@1x.webp | Bin 46658 -> 31136 bytes static/assets/media/tablet/deck_2.webp | Bin 191592 -> 125682 bytes static/assets/media/tablet/deck_2@1x.webp | Bin 57306 -> 39166 bytes static/assets/media/tablet/exterior.webp | Bin 155864 -> 101596 bytes static/assets/media/tablet/exterior@1x.webp | Bin 61562 -> 39896 bytes static/assets/media/tablet/guest_bath.webp | Bin 96764 -> 58224 bytes static/assets/media/tablet/guest_bath@1x.webp | Bin 31432 -> 19300 bytes static/assets/media/tablet/kitchen.webp | Bin 72736 -> 46346 bytes static/assets/media/tablet/kitchen@1x.webp | Bin 28200 -> 18536 bytes static/assets/media/tablet/laundry.webp | Bin 219890 -> 132508 bytes static/assets/media/tablet/laundry@1x.webp | Bin 58810 -> 41258 bytes static/assets/media/tablet/living_room_1.webp | Bin 129334 -> 80776 bytes .../assets/media/tablet/living_room_1@1x.webp | Bin 41566 -> 27462 bytes static/assets/media/tablet/living_room_2.webp | Bin 167204 -> 103764 bytes .../assets/media/tablet/living_room_2@1x.webp | Bin 46696 -> 30870 bytes .../media/tablet/office_fitness_guest_1.webp | Bin 152618 -> 80194 bytes .../tablet/office_fitness_guest_1@1x.webp | Bin 39768 -> 27320 bytes .../media/tablet/office_fitness_guest_2.webp | Bin 132584 -> 72070 bytes .../tablet/office_fitness_guest_2@1x.webp | Bin 39220 -> 25448 bytes .../media/tablet/office_fitness_guest_3.webp | Bin 149514 -> 81610 bytes .../tablet/office_fitness_guest_3@1x.webp | Bin 39518 -> 23678 bytes .../media/tablet/office_fitness_guest_4.webp | Bin 114994 -> 63746 bytes .../tablet/office_fitness_guest_4@1x.webp | Bin 33138 -> 21460 bytes static/assets/media/tablet/onsuite_1.webp | Bin 82654 -> 46280 bytes static/assets/media/tablet/onsuite_1@1x.webp | Bin 25944 -> 16358 bytes static/assets/media/tablet/onsuite_2.webp | Bin 40060 -> 24064 bytes static/assets/media/tablet/onsuite_2@1x.webp | Bin 14660 -> 9608 bytes static/assets/media/tablet/tour_still.webp | Bin 62558 -> 39400 bytes static/assets/media/tablet/tour_still@1x.webp | Bin 30636 -> 19128 bytes 117 files changed, 686 insertions(+), 109 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d31d8c5..3f7ea75 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,7 +5,7 @@ This file helps LLM agents work with the Armandine codebase without introducing ## Stack and goals - **Svelte 5** + **SvelteKit** with **TypeScript**. The site is a **single pre-rendered page** (no SSR, no backend). -- **adapter-static**: the app is built to static HTML/JS/CSS in `build/`. The gallery is **rendered at build time** from `src/lib/media.ts`; the HTML already contains the full gallery. Lightbox and theme toggle are handled by a **client script** (`static/assets/js/script.js`) that binds to the pre-rendered DOM. +- **adapter-static**: the app is built to static HTML/JS/CSS in `build/`. **CSR is disabled** (`csr = false` in `+layout.ts`), so no Svelte runtime or app JS is loaded in the browser. The gallery and shell (header, empty lightbox dialog) are **rendered at build time** from Svelte components and `src/lib/media.ts`. Lightbox, theme toggle, and “show video” are implemented in **`static/assets/js/script.js`** only; they bind to the pre-rendered DOM. - **PostCSS**: nesting and CSS level 2; component-scoped `