From 034c6fdea97bb1f3e1e8225e353c1b0d60c52248 Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Fri, 17 Nov 2023 16:16:53 -0800 Subject: [PATCH] Fixed header and breadcrumb layout and issues. --- frontend/src/assets/main.css | 23 ++++------ frontend/src/components/BreadCrumb.vue | 17 +++++--- frontend/src/components/HeaderMain.vue | 60 +++++++++++--------------- 3 files changed, 46 insertions(+), 54 deletions(-) diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css index 2301f1e..8080aa6 100644 --- a/frontend/src/assets/main.css +++ b/frontend/src/assets/main.css @@ -37,12 +37,6 @@ :root { --root-font-size: calc(8px + 8 * 100vw / 1000); } - header .buttons:has(input[type='search']) > div { - display: none; - } - header .buttons > div:has(input[type='search']) { - display: inherit; - } } @media screen and (min-width: 2000px) { :root { @@ -78,17 +72,13 @@ } header { display: flex; - flex-direction: row-reverse; justify-content: space-between; - align-items: end; } - header .breadcrumb { - flex-shrink: 1; - } - header .breadcrumb > * { - flex-shrink: 1; - padding-top: 1rem !important; - padding-bottom: 1rem !important; + header .headermain { order: 1; } + header .breadcrumb { align-self: stretch; } + header .action-button { + width: 2em; + height: 2em; } } @media print { @@ -142,6 +132,9 @@ left: 0; } } +* { + box-sizing: border-box; +} html { font-size: var(--root-font-size); overflow: hidden; diff --git a/frontend/src/components/BreadCrumb.vue b/frontend/src/components/BreadCrumb.vue index 5de7e9c..032c9b6 100644 --- a/frontend/src/components/BreadCrumb.vue +++ b/frontend/src/components/BreadCrumb.vue @@ -12,6 +12,8 @@ :ref="el => setLinkRef(0, el)" :class="{ current: !!isCurrent(0) }" :aria-current="isCurrent(0)" + @click.prevent="navigate(0)" + title="/" > @@ -21,6 +23,7 @@ :aria-current="isCurrent(index + 1)" @click.prevent="navigate(index + 1)" :ref="el => setLinkRef(index + 1, el)" + :title="`/${longest.slice(0, index + 1).join('/')}`" >{{ location }} @@ -101,27 +104,31 @@ watchEffect(() => { --breadcrumb-transtime: 0.3s; } .breadcrumb { + flex: 1 1 auto; display: flex; - list-style: none; + min-width: 20%; + max-width: 100%; + min-height: 2em; margin: 0; padding: 0 1em 0 0; } .breadcrumb > a { + display: flex; + align-items: center; margin: 0 -0.5em 0 -0.5em; padding: 0; max-width: 8em; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; - height: 1.5em; color: var(--breadcrumb-color); padding: 0.3em 1.5em; clip-path: polygon(0 0, 1em 50%, 0 100%, 100% 100%, 100% 0, 0 0); transition: all var(--breadcrumb-transtime); } .breadcrumb a:first-child { - margin-left: 0; - padding-left: .2em; + padding-left: 1.5em; + padding-right: 1.7em; clip-path: none; } .breadcrumb a:last-child { @@ -148,9 +155,9 @@ watchEffect(() => { } .breadcrumb svg { /* FIXME: Custom positioning to align it well; needs proper solution */ - padding-left: 0.8em; width: 1.3em; height: 1.3em; + margin: -.5em; fill: var(--breadcrumb-color); transition: fill var(--breadcrumb-transtime); } diff --git a/frontend/src/components/HeaderMain.vue b/frontend/src/components/HeaderMain.vue index 5fab906..251b30f 100644 --- a/frontend/src/components/HeaderMain.vue +++ b/frontend/src/components/HeaderMain.vue @@ -1,31 +1,29 @@ @@ -93,24 +91,18 @@ defineExpose({ -@/stores/main