adjust preview pane upwards on desktop
This commit is contained in:
parent
cd439e5e06
commit
bcea7049da
@ -1,4 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { navHeight } from '$lib/stores/layout';
|
||||||
import { pane as navStore, type Pane } from '$lib/stores/nav';
|
import { pane as navStore, type Pane } from '$lib/stores/nav';
|
||||||
|
|
||||||
export let pane: Pane;
|
export let pane: Pane;
|
||||||
@ -12,9 +13,20 @@
|
|||||||
// always show preview pane on a two column layout
|
// always show preview pane on a two column layout
|
||||||
let preview: boolean;
|
let preview: boolean;
|
||||||
$: preview = pane === 'preview';
|
$: preview = pane === 'preview';
|
||||||
|
|
||||||
|
// offset preview pane upward on desktop
|
||||||
|
let offset: number;
|
||||||
|
$: offset = preview ? $navHeight : 0;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id={`pane-${pane}`} data-testid={testid} role="tabpanel" class:hidden class:preview>
|
<div
|
||||||
|
id={`pane-${pane}`}
|
||||||
|
data-testid={testid}
|
||||||
|
role="tabpanel"
|
||||||
|
class:hidden
|
||||||
|
class:preview
|
||||||
|
style:--offset={`-${offset}px`}
|
||||||
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -34,6 +46,9 @@
|
|||||||
&.preview {
|
&.preview {
|
||||||
border-right: unset !important;
|
border-right: unset !important;
|
||||||
display: unset !important;
|
display: unset !important;
|
||||||
|
height: calc(100% - var(--offset));
|
||||||
|
position: relative;
|
||||||
|
top: var(--offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,24 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
|
import { navHeight } from '$lib/stores/layout';
|
||||||
|
|
||||||
import NavToggle from './nav-toggle.svelte';
|
import NavToggle from './nav-toggle.svelte';
|
||||||
|
|
||||||
let open: boolean = false;
|
let open: boolean = false;
|
||||||
|
|
||||||
let hidden: boolean;
|
let hidden: boolean;
|
||||||
$: hidden = !open;
|
$: hidden = !open;
|
||||||
|
|
||||||
|
// magic to offset preview pane on desktop
|
||||||
|
let navRef: HTMLElement;
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
$navHeight = navRef.getBoundingClientRect().height;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<nav>
|
<nav bind:this={navRef}>
|
||||||
<NavToggle bind:navOpen={open} />
|
<NavToggle bind:navOpen={open} />
|
||||||
<ul class:hidden role="tablist">
|
<ul class:hidden role="tablist">
|
||||||
<slot />
|
<slot />
|
||||||
|
3
src/lib/stores/layout.ts
Normal file
3
src/lib/stores/layout.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { writable } from 'svelte/store';
|
||||||
|
|
||||||
|
export const navHeight = writable(-1);
|
Loading…
x
Reference in New Issue
Block a user