style(fe): optimize sidebar width to 200px and collapse width to 44px with clean toggle header
This commit is contained in:
@@ -133,13 +133,15 @@ const sidebarClass = computed(() => ({
|
||||
<aside aria-label="주요 메뉴" :class="['ks-sidebar', sidebarClass]">
|
||||
<!-- Header with collapse button -->
|
||||
<div class="ks-sidebar__header">
|
||||
<span v-if="!collapsed" class="ks-sidebar__title">주요 메뉴</span>
|
||||
<button
|
||||
type="button"
|
||||
class="ks-sidebar__collapse-btn"
|
||||
:aria-label="collapsed ? '사이드바 펴기' : '사이드바 접기'"
|
||||
:title="collapsed ? '메뉴 펼치기' : '메뉴 접기'"
|
||||
:aria-label="collapsed ? '메뉴 펼치기' : '메뉴 접기'"
|
||||
@click="handleToggleCollapse"
|
||||
>
|
||||
{{ collapsed ? '›' : '‹' }}
|
||||
{{ collapsed ? '▶' : '◀ 접기' }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -212,41 +214,52 @@ const sidebarClass = computed(() => ({
|
||||
|
||||
<style scoped>
|
||||
.ks-sidebar {
|
||||
width: 280px;
|
||||
width: var(--ks-shell-sidebar-width, 200px);
|
||||
background-color: var(--color-background-secondary);
|
||||
border-right: 1px solid var(--color-border-primary);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.ks-sidebar--collapsed {
|
||||
width: 80px;
|
||||
width: var(--ks-shell-sidebar-collapsed, 44px);
|
||||
}
|
||||
|
||||
.ks-sidebar__header {
|
||||
padding: var(--spacing-4);
|
||||
padding: var(--ks-space-2) var(--ks-space-3);
|
||||
border-bottom: 1px solid var(--color-border-primary);
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 38px;
|
||||
box-sizing: border-border-box;
|
||||
}
|
||||
|
||||
.ks-sidebar__title {
|
||||
font-size: var(--ks-font-caption);
|
||||
font-weight: 700;
|
||||
color: var(--ks-color-text-muted);
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.ks-sidebar__collapse-btn {
|
||||
background-color: var(--color-background-primary);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
font-size: 24px;
|
||||
background-color: transparent;
|
||||
border: 1px solid var(--ks-color-border);
|
||||
font-size: 11px;
|
||||
cursor: pointer;
|
||||
color: var(--color-text-primary);
|
||||
padding: var(--spacing-1);
|
||||
border-radius: var(--border-radius-base);
|
||||
transition: all var(--transition-base);
|
||||
color: var(--ks-color-text-muted);
|
||||
padding: 2px 6px;
|
||||
border-radius: var(--ks-radius-sm);
|
||||
transition: var(--ks-transition-fast);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ks-sidebar__collapse-btn:hover {
|
||||
|
||||
Reference in New Issue
Block a user