Fixed header and breadcrumb layout and issues.
This commit is contained in:
		| @@ -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; | ||||
|   | ||||
| @@ -12,6 +12,8 @@ | ||||
|       :ref="el => setLinkRef(0, el)" | ||||
|       :class="{ current: !!isCurrent(0) }" | ||||
|       :aria-current="isCurrent(0)" | ||||
|       @click.prevent="navigate(0)" | ||||
|       title="/" | ||||
|     > | ||||
|       <component :is="home" /> | ||||
|     </a> | ||||
| @@ -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 }}</a> | ||||
|     </template> | ||||
|   </nav> | ||||
| @@ -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); | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| <template> | ||||
|   <nav class="headermain"> | ||||
|     <div class="buttons"> | ||||
|   <nav class="headermain buttons"> | ||||
|     <template v-if="store.error"> | ||||
|       <div class="error-message" @click="store.error = ''">{{ store.error }}</div> | ||||
|       <div class="smallgap"></div> | ||||
| @@ -25,7 +24,6 @@ | ||||
|     </template> | ||||
|     <SvgButton ref="searchButton" name="find" @click.prevent="toggleSearchInput" /> | ||||
|     <SvgButton name="cog" @click="settingsMenu" /> | ||||
|     </div> | ||||
|   </nav> | ||||
| </template> | ||||
|  | ||||
| @@ -93,24 +91,18 @@ defineExpose({ | ||||
|  | ||||
| <style scoped> | ||||
| .buttons { | ||||
|   flex: 1000 0 auto; | ||||
|   padding: 0; | ||||
|   display: flex; | ||||
|   align-items: center; | ||||
|   height: 3.5em; | ||||
|   z-index: 10; | ||||
| } | ||||
| .buttons > * { | ||||
|   flex-shrink: 1; | ||||
| } | ||||
| input[type='search'] { | ||||
|   background: var(--input-background); | ||||
|   color: var(--input-color); | ||||
|   border: 0; | ||||
|   border-radius: 0.1em; | ||||
|   padding: 0.5em; | ||||
|   outline: none; | ||||
|   font-size: 1.5em; | ||||
|   max-width: 30vw; | ||||
|   max-width: 15ch; | ||||
| } | ||||
| </style> | ||||
| @/stores/main | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Leo Vasanko
					Leo Vasanko