feat(shell): 시안B 슬림 아이콘 레일 — 사이드바 접힘=54px 글로벌 네비(숨김 대신)
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<script>
|
||||
// 시안 B — 글로벌 네비 슬림 아이콘 레일 (분류 사이드바 접힘 상태). 앱 토큰 사용.
|
||||
import { page } from '$app/stores';
|
||||
import { Home, FolderTree, Newspaper, StickyNote, Hash, GraduationCap, MessageCircle, Inbox, CalendarCheck } from 'lucide-svelte';
|
||||
|
||||
const items = [
|
||||
{ href: '/', icon: Home, label: '홈', exact: true },
|
||||
{ href: '/library', icon: FolderTree, label: '문서' },
|
||||
{ href: '/news', icon: Newspaper, label: '뉴스' },
|
||||
{ href: '/memos', icon: StickyNote, label: '메모' },
|
||||
{ href: '/clause', icon: Hash, label: '절' },
|
||||
{ href: '/events', icon: CalendarCheck, label: '일정' },
|
||||
{ href: '/study', icon: GraduationCap, label: '공부' },
|
||||
{ href: '/chat', icon: MessageCircle, label: '이드' },
|
||||
{ href: '/inbox', icon: Inbox, label: '편지함' },
|
||||
];
|
||||
let path = $derived($page.url.pathname);
|
||||
const active = (it) => (it.exact ? path === it.href : path.startsWith(it.href));
|
||||
</script>
|
||||
|
||||
<nav class="flex flex-col items-center gap-1 py-2 h-full overflow-y-auto bg-sidebar">
|
||||
{#each items as it (it.href)}
|
||||
{@const Icon = it.icon}
|
||||
<a
|
||||
href={it.href}
|
||||
title={it.label}
|
||||
class="flex flex-col items-center justify-center gap-0.5 w-12 h-[46px] rounded-lg text-dim hover:bg-surface-hover hover:text-accent transition-colors {active(it) ? 'bg-surface-active text-accent font-semibold' : ''}"
|
||||
>
|
||||
<Icon size={17} strokeWidth={1.75} />
|
||||
<span class="text-[8.5px] leading-none tracking-tight">{it.label}</span>
|
||||
</a>
|
||||
{/each}
|
||||
</nav>
|
||||
@@ -11,6 +11,7 @@
|
||||
import { queueOverview } from '$lib/stores/queueOverview';
|
||||
import { MACHINE_STATE_LABEL, machineChipClass } from '$lib/utils/queueDisplay';
|
||||
import Sidebar from '$lib/components/Sidebar.svelte';
|
||||
import SlimRail from '$lib/components/SlimRail.svelte';
|
||||
import SystemStatusDot from '$lib/components/SystemStatusDot.svelte';
|
||||
import QueueDrawer from '$lib/components/QueueDrawer.svelte';
|
||||
import QuickMemoButton from '$lib/components/QuickMemoButton.svelte';
|
||||
@@ -198,8 +199,8 @@
|
||||
<!-- 메인: 데스크탑 상시 사이드바 + 콘텐츠 -->
|
||||
<div class="flex-1 min-h-0 flex">
|
||||
{#if showSidebar}
|
||||
<aside class="hidden lg:block shrink-0 overflow-hidden transition-[width] duration-200 ease-out {sidebarCollapsed ? 'w-0 border-r-0' : 'w-sidebar border-r border-default'}">
|
||||
<Sidebar />
|
||||
<aside class="hidden lg:block shrink-0 overflow-hidden transition-[width] duration-200 ease-out {sidebarCollapsed ? 'w-14 border-r border-default' : 'w-sidebar border-r border-default'}">
|
||||
{#if sidebarCollapsed}<SlimRail />{:else}<Sidebar />{/if}
|
||||
</aside>
|
||||
{/if}
|
||||
<main class="flex-1 min-w-0 overflow-auto">
|
||||
|
||||
Reference in New Issue
Block a user