From 49d22484c0be173366e2d1893c81f988f41f3548 Mon Sep 17 00:00:00 2001 From: rubberducky Date: Thu, 15 Jan 2026 07:49:01 +0000 Subject: [PATCH] feature/site-header (#1) Co-authored-by: Tim Rijkse Reviewed-on: https://git.apps.rubberducky.studio/rubberducky/milinda-pitch/pulls/1 --- book.html | 7 +- css/styles.css | 37 +++- images/logo-asoka.png | Bin 0 -> 41171 bytes index.html | 12 +- js/app.js | 2 + js/components/arrow-button.js | 88 +++++++++ js/components/horizontal-scroll-nav.js | 34 ++-- js/components/push-box.js | 93 ++++++++++ js/components/search-bar.js | 242 +++++++++++++++++++++---- js/components/site-header.js | 1 - js/components/top-bar.js | 6 +- js/icons/index.js | 9 + js/icons/menu.js | 31 ++++ js/icons/mic.js | 31 ++++ js/icons/search.js | 30 +++ js/icons/shopping-bag.js | 31 ++++ js/icons/user.js | 30 +++ 17 files changed, 625 insertions(+), 59 deletions(-) create mode 100644 images/logo-asoka.png create mode 100644 js/components/arrow-button.js create mode 100644 js/components/push-box.js create mode 100644 js/icons/index.js create mode 100644 js/icons/menu.js create mode 100644 js/icons/mic.js create mode 100644 js/icons/search.js create mode 100644 js/icons/shopping-bag.js create mode 100644 js/icons/user.js diff --git a/book.html b/book.html index c7b4fae..e6a1042 100644 --- a/book.html +++ b/book.html @@ -8,12 +8,7 @@ content="The Midnight Library - Between life and death there is a library" /> The Midnight Library - BookStore - - - + diff --git a/css/styles.css b/css/styles.css index 1c4aa15..2da5b98 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1,3 +1,25 @@ +/* ========================================================================== + Font Definitions + ========================================================================== */ + +@font-face { + font-family: "Outline"; + src: url("../fonts/Outline-Regular.woff2") format("woff2"), + url("../fonts/Outline-Regular.woff") format("woff"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Outline"; + src: url("../fonts/Outline-Light.woff2") format("woff2"), + url("../fonts/Outline-Light.woff") format("woff"); + font-weight: 300; + font-style: normal; + font-display: swap; +} + /* ========================================================================== CSS Reset & Normalize (Modern Best Practices) Based on normalize.css v8.0.1 + modern resets @@ -175,15 +197,19 @@ table { --color-border: #e2e8f0; --color-border-light: #f1f5f9; + --color-push-box-bg: #EBEEF4; + --color-success: #22c55e; --color-error: #ef4444; --color-warning: #f59e0b; /* Typography */ - --font-family-base: "Outfit", system-ui, -apple-system, BlinkMacSystemFont, + --font-family-base: "Outline", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; --font-family-heading: var(--font-family-base); + --font-family-outfit: "Outfit", system-ui, -apple-system, BlinkMacSystemFont, + "Segoe UI", Roboto, sans-serif; --font-size-xs: 0.75rem; /* 12px */ --font-size-sm: 0.875rem; /* 14px */ @@ -193,14 +219,16 @@ table { --font-size-2xl: 1.5rem; /* 24px */ --font-size-3xl: 1.875rem; /* 30px */ + --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --line-height-tight: 1.25; - --line-height-normal: 1.5; + --line-height-normal: 1.5; /* 24px at 16px base */ --line-height-relaxed: 1.75; + --line-height-24: 24px; /* Spacing */ --spacing-xs: 0.25rem; /* 4px */ @@ -268,8 +296,8 @@ top-bar .icon-button svg { top-bar .logo { font-family: var(--font-family-base); - font-size: 1.25rem; - font-weight: 700; + font-size: var(--font-size-xl); + font-weight: var(--font-weight-bold); color: #ffffff; text-decoration: none; } @@ -277,6 +305,7 @@ top-bar .logo { top-bar .actions { display: flex; align-items: center; + gap: var(--spacing-md); } /* ========================================================================== diff --git a/images/logo-asoka.png b/images/logo-asoka.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2923bde13104ed08fcba32016ff4056f65b792 GIT binary patch literal 41171 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 Hu0mjfd;|*$ literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 180b4d1..159b721 100644 --- a/index.html +++ b/index.html @@ -8,10 +8,11 @@ content="Milinda - Discover and buy your next favorite book" /> Milinda - Home + @@ -81,6 +82,15 @@ + + Asoka Logo +

+ Gespecialiseerd op het vlak van boeddhisme en aanverwante Oost-West + thema's +

+ Meer over Asoka + +

Featured Books

diff --git a/js/app.js b/js/app.js index d1b66f1..289184c 100644 --- a/js/app.js +++ b/js/app.js @@ -11,6 +11,8 @@ import './components/search-bar.js'; import './components/site-content.js'; import './components/site-footer.js'; import './components/book-card.js'; +import './components/push-box.js'; +import './components/arrow-button.js'; // App initialization (if needed) document.addEventListener('DOMContentLoaded', () => { diff --git a/js/components/arrow-button.js b/js/components/arrow-button.js new file mode 100644 index 0000000..be19ff5 --- /dev/null +++ b/js/components/arrow-button.js @@ -0,0 +1,88 @@ +/** + * Arrow Button Component + * A CTA link with a circular arrow icon + * Uses a slot for the button text content + */ +class ArrowButton extends HTMLElement { + static get observedAttributes() { + return ["href"]; + } + + constructor() { + super(); + this.attachShadow({ mode: "open" }); + } + + connectedCallback() { + this.render(); + } + + attributeChangedCallback() { + this.render(); + } + + get href() { + return this.getAttribute("href") || "#"; + } + + render() { + this.shadowRoot.innerHTML = ` + + + + + + + + + + + + + `; + } +} + +customElements.define("arrow-button", ArrowButton); diff --git a/js/components/horizontal-scroll-nav.js b/js/components/horizontal-scroll-nav.js index 08a731c..4b0c2fd 100644 --- a/js/components/horizontal-scroll-nav.js +++ b/js/components/horizontal-scroll-nav.js @@ -59,11 +59,13 @@ class HorizontalScrollNav extends HTMLElement { .nav-container { display: flex; - gap: var(--spacing-sm, 0.5rem); + align-items: center; + height: 80px; + gap: 24px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; - padding: var(--spacing-xs, 0.25rem) var(--spacing-sm, 0.5rem); + padding: 0 16px; } .nav-container::-webkit-scrollbar { @@ -72,29 +74,39 @@ class HorizontalScrollNav extends HTMLElement { .nav-pill { flex-shrink: 0; - padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem); - font-size: var(--font-size-sm, 0.875rem); + height: 32px; + padding: 0; + font-family: var(--font-family-base); + font-size: var(--font-size-base, 16px); font-weight: var(--font-weight-medium, 500); - color: var(--color-text-light, #64748b); - background-color: var(--color-background-tertiary, #f1f5f9); + line-height: var(--line-height-24, 24px); + color: #000000; + background-color: transparent; border: none; - border-radius: var(--radius-full, 9999px); + border-radius: 0; cursor: pointer; transition: all var(--transition-fast, 150ms ease); white-space: nowrap; + text-decoration: underline; + text-underline-offset: 4px; + display: flex; + align-items: center; } .nav-pill:hover { - background-color: var(--color-border, #e2e8f0); + color: #333333; } .nav-pill.active { - color: var(--color-text-inverse, #ffffff); - background-color: var(--color-primary, #2563eb); + color: #ffffff; + background-color: #951D51; + text-decoration: none; + border-radius: 9999px; + padding: 0 16px; } .nav-pill.active:hover { - background-color: var(--color-primary-dark, #1d4ed8); + background-color: #7a1843; }