From 18145b5db2496f0ee43fee25d20c55f6339fc70e Mon Sep 17 00:00:00 2001 From: hoelee Date: Mon, 26 Oct 2026 08:26:01 +0800 Subject: [PATCH] feat(header): logo mark + Lee Teong Hoe in brand, two-row mobile nav - brand: three-colour Hoelee mark (rasterised from the brand vector, transparent, public/images/hoelee-mark-96.png) followed by the name - section links grouped in .nav-links so the mobile header puts them on their own row instead of wrapping past the search/lang/theme controls - measured 320/360/390/414/600/768/1280: scrollWidth == innerWidth, header 91.6px two rows (<600px) / 60.3px one row, mark loads at 22/26px --- public/images/hoelee-mark-96.png | Bin 0 -> 8157 bytes src/layouts/BaseLayout.astro | 18 +++++++++---- src/styles/global.css | 42 ++++++++++++++++++++++++++++--- 3 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 public/images/hoelee-mark-96.png diff --git a/public/images/hoelee-mark-96.png b/public/images/hoelee-mark-96.png new file mode 100644 index 0000000000000000000000000000000000000000..9cccf22ac2a29b32d08449d21b44495dd5273402 GIT binary patch literal 8157 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 DiTtD! literal 0 HcmV?d00001 diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 0716b84..101cd29 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -176,11 +176,19 @@ const nav = isZh