arcaneSidebarComponentStyles top-level constant
String
const arcaneSidebarComponentStyles
ArcaneSidebar component tree-line styles.
Tree-line styling for ArcaneSidebar components.
Implementation
const String arcaneSidebarComponentStyles = '''
/* ============================================
ARCANE SIDEBAR COMPONENTS - Tree Lines
Tree-line styling for ArcaneSidebar components
============================================ */
/* Submenu content and group items containers get tree-line treatment */
.arcane-sidebar-submenu-content,
.arcane-sidebar-group-items {
position: relative;
display: flex;
flex-direction: column;
}
/* Each sidebar item in a submenu or group gets tree connectors */
.arcane-sidebar-submenu-content > .arcane-sidebar-item,
.arcane-sidebar-group-items > .arcane-sidebar-item {
position: relative;
}
/* Horizontal branch line */
.arcane-sidebar-submenu-content > .arcane-sidebar-item::before,
.arcane-sidebar-group-items > .arcane-sidebar-item::before {
content: '';
position: absolute;
left: 0;
top: 50%;
width: 0.5rem;
height: 1px;
background: var(--border);
}
/* Vertical line segment - connects this item to the next */
.arcane-sidebar-submenu-content > .arcane-sidebar-item:not(:last-child)::after,
.arcane-sidebar-group-items > .arcane-sidebar-item:not(:last-child)::after {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 1px;
background: var(--border);
}
/* Last item - L-bend connector */
.arcane-sidebar-submenu-content > .arcane-sidebar-item:last-child::after,
.arcane-sidebar-group-items > .arcane-sidebar-item:last-child::after {
content: '';
position: absolute;
left: 0;
top: 0;
height: 50%;
width: 1px;
background: var(--border);
}
/* Single child - hide tree lines */
.arcane-sidebar-submenu-content:has(> .arcane-sidebar-item:only-child) > .arcane-sidebar-item::before,
.arcane-sidebar-submenu-content:has(> .arcane-sidebar-item:only-child) > .arcane-sidebar-item::after,
.arcane-sidebar-group-items:has(> .arcane-sidebar-item:only-child) > .arcane-sidebar-item::before,
.arcane-sidebar-group-items:has(> .arcane-sidebar-item:only-child) > .arcane-sidebar-item::after {
display: none;
}
/* Adjust padding to accommodate tree lines */
.arcane-sidebar-submenu-content > .arcane-sidebar-item,
.arcane-sidebar-group-items > .arcane-sidebar-item {
padding-left: 1rem !important;
}
''';