| | |
| | .sidebar { |
| | width: 250px; |
| | background: white; |
| | border-right: 1px solid var(--color-secondary-200); |
| | height: calc(100vh - 4rem); |
| | position: fixed; |
| | top: 4rem; |
| | left: 0; |
| | overflow-y: auto; |
| | transition: all var(--transition-slow); |
| | z-index: var(--z-60); |
| | } |
| |
|
| | |
| | .sidebar.collapsed { |
| | width: 104px !important; |
| | } |
| |
|
| | |
| | @media (max-width: 1023px) { |
| | .sidebar { |
| | transform: translateX(-100%); |
| | } |
| | |
| | .sidebar.active { |
| | transform: translateX(0); |
| | } |
| | } |
| |
|
| | .sidebar-nav { |
| | padding: var(--spacing-4) 0; |
| | } |
| |
|
| | .sidebar-item { |
| | display: flex; |
| | align-items: center; |
| | padding: var(--spacing-3) var(--spacing-4); |
| | color: var(--color-secondary-600); |
| | text-decoration: none; |
| | transition: all var(--transition-normal); |
| | position: relative; |
| | } |
| |
|
| | .sidebar-item:hover { |
| | background: var(--color-accent-50); |
| | color: var(--color-secondary-900); |
| | } |
| |
|
| | .sidebar-item.active { |
| | background: var(--color-primary-50); |
| | color: var(--color-primary-700); |
| | } |
| |
|
| | .sidebar-item.active::before { |
| | content: ''; |
| | position: absolute; |
| | left: 0; |
| | top: 0; |
| | bottom: 0; |
| | width: 3px; |
| | background: var(--color-primary-600); |
| | } |
| |
|
| | .sidebar-icon { |
| | width: 20px; |
| | height: 20px; |
| | margin-right: var(--spacing-3); |
| | flex-shrink: 0; |
| | } |
| |
|
| | .sidebar-text { |
| | white-space: nowrap; |
| | overflow: hidden; |
| | text-overflow: ellipsis; |
| | } |
| |
|
| | .sidebar.collapsed .sidebar-text { |
| | display: none; |
| | } |
| |
|
| | |
| | .sidebar.collapsed .nav-item:hover .nav-label { |
| | display: block; |
| | position: absolute; |
| | left: 100%; |
| | top: 50%; |
| | transform: translateY(-50%); |
| | background: white; |
| | padding: 8px 12px; |
| | border-radius: 6px; |
| | box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); |
| | white-space: nowrap; |
| | z-index: 100; |
| | margin-left: 8px; |
| | font-size: 14px; |
| | font-weight: 500; |
| | color: #1f2937; |
| | border: 1px solid #e5e7eb; |
| | } |
| |
|
| | |
| | .sidebar .nav-item { |
| | position: relative; |
| | } |
| |
|
| | @media (max-width: 1023px) { |
| | .sidebar { |
| | position: fixed; |
| | top: 4rem; |
| | left: 0; |
| | height: calc(100vh - 4rem); |
| | transform: translateX(-100%); |
| | z-index: var(--z-50); |
| | } |
| | |
| | .sidebar.active { |
| | transform: translateX(0); |
| | } |
| | |
| | .sidebar-overlay { |
| | position: fixed; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100vh; |
| | background: rgba(0, 0, 0, 0.5); |
| | z-index: var(--z-20); |
| | display: none; |
| | } |
| | |
| | .sidebar-overlay.active { |
| | display: block; |
| | } |
| | } |
| |
|
| | @media (max-width: 767px) { |
| | .sidebar { |
| | width: 100%; |
| | max-width: 300px; |
| | } |
| | } |