1
0
resumarkdown/src/lib/components/nav-tree.svelte

50 lines
1.0 KiB
Svelte
Raw Normal View History

2024-10-12 00:53:39 -05:00
<script lang="ts">
2024-10-12 12:33:05 -05:00
import { onMount } from 'svelte';
import { slide } from 'svelte/transition';
2024-10-12 12:33:05 -05:00
import { navHeight } from '$lib/stores/layout';
2024-10-12 00:53:39 -05:00
import NavToggle from './nav-toggle.svelte';
export let mobile: boolean = true;
2024-10-12 00:53:39 -05:00
let open: boolean = false;
2024-10-12 12:33:05 -05:00
// magic to offset preview pane on desktop
let navRef: HTMLElement;
onMount(() => {
$navHeight = navRef.getBoundingClientRect().height;
});
2024-10-12 00:53:39 -05:00
</script>
2024-10-12 12:33:05 -05:00
<nav bind:this={navRef}>
2024-10-12 00:53:39 -05:00
<NavToggle bind:navOpen={open} />
{#if open || !mobile}
<ul role="tablist" transition:slide={{ duration: 300 }}>
<slot />
</ul>
{/if}
2024-10-11 00:23:32 -05:00
</nav>
<style lang="less">
ul {
2024-10-12 11:57:58 -05:00
@border: 2px solid @color-dark;
2024-10-12 12:04:33 -05:00
2024-10-12 11:57:58 -05:00
border-bottom: @border;
2024-10-12 12:04:03 -05:00
box-sizing: border-box;
2024-10-11 00:23:32 -05:00
list-style-type: none;
margin: 0;
padding: 0;
2024-10-11 23:10:25 -05:00
@media screen and (min-width: @sizes[lg]) {
align-items: center;
2024-10-12 11:57:58 -05:00
border-right: @border;
display: flex;
2024-10-11 23:10:25 -05:00
flex-direction: row;
justify-content: space-evenly;
2024-10-12 11:57:58 -05:00
width: 50%;
2024-10-11 23:10:25 -05:00
}
2024-10-11 00:23:32 -05:00
}
</style>