From 0275540e44be9d55fa4903582d30170e3eb8c9f0 Mon Sep 17 00:00:00 2001 From: Lam Nguyen Date: Thu, 28 Aug 2025 13:03:04 -0700 Subject: [PATCH 1/4] Coveo: Add mobile support --- assets/css/v2/style.css | 40 ++++++++++++++++++++++++++++++++++-- assets/js/coveo.js | 17 +++++++++++++++ layouts/_default/baseof.html | 1 + layouts/partials/header.html | 6 +++++- 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/assets/css/v2/style.css b/assets/css/v2/style.css index b6626dfb..40f0b24f 100644 --- a/assets/css/v2/style.css +++ b/assets/css/v2/style.css @@ -410,7 +410,7 @@ ol li:last-child { .grid-container { display: grid; grid-template-columns: var(--sidebar-width) 1fr; - grid-template-rows: var(--header-height) 1fr auto; + grid-template-rows: auto 1fr auto; grid-template-areas: "sidebar header" "sidebar content" @@ -533,6 +533,11 @@ ol li:last-child { height: 2.5rem; } + .header__search--mobile--search--button { + cursor: pointer; + display: none; + } + .header__search { display: block; width: auto; @@ -638,6 +643,31 @@ ol li:last-child { border-top: 1px solid oklch(var(--color-divider)); } +/* Coveo toggling */ +#search-standalone-header-panel:checked ~ .grid-container { + & :has([data-mode="mobile"]) { + .header__search[data-mode="mobile"] { + position: absolute; + top: 100%; + width: 100%; + padding-top: 0; + + #search-standalone-header { + display: unset; + + atomic-search-box { + width: calc(100% + 2rem); + margin-left: -1rem; + } + } + } + + .header + * { + margin-top: 2rem; + } + } +} + /* sidebar toggling */ #sidebar-panel:checked ~ .grid-container { grid-template-columns: 1fr; @@ -899,8 +929,14 @@ ol li:last-child { } } .header-container { + .header__search--mobile--search--button { + display: block; + } + .header__search { - display: none; + #search-standalone-header { + display: none; + } } } } diff --git a/assets/js/coveo.js b/assets/js/coveo.js index 261ef70a..5616c5e7 100644 --- a/assets/js/coveo.js +++ b/assets/js/coveo.js @@ -103,3 +103,20 @@ async function atomicCoveo() { document.addEventListener('DOMContentLoaded', async () => { atomicCoveo(); }); + +window.addEventListener('resize', () => { + const MODES = [ + // my really bad enum + 'desktop', + 'mobile', + ]; + const search = document.getElementById('header__search'); + + if (search) { + if (window.innerWidth < 68 * 16) { + search.setAttribute('data-mode', MODES[1]); + } else { + search.setAttribute('data-mode', MODES[0]); + } + } +}); diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index f5625a9e..4eabd547 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -41,6 +41,7 @@ {{ if or ( not hugo.IsServer ) ( not ( in .Site.Params.buildtype "package" ) ) }} {{ partial "universal-tag.html" . }} {{ end }} +
{{ if ( not ( in .Site.Params.buildtype "package" ) ) }} - {{ if ( not ( in .Site.Params.buildtype "package" ) ) }} -