button#explorer { background-color: transparent; border: none; text-align: left; cursor: pointer; padding: 0; color: var(--dark); display: flex; align-items: center; & h3 { font-size: 1rem; display: inline-block; margin: 0; } & .fold { margin-left: 0.5rem; transition: transform 0.3s ease; opacity: 0.8; } &.collapsed .fold { transform: rotateZ(-90deg); } } .folder-outer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.3s ease-in-out; } .folder-outer.open { grid-template-rows: 1fr; } .folder-outer > ul { overflow: hidden; } #explorer-content { list-style: none; overflow: hidden; max-height: none; transition: max-height 0.35s ease; margin-top: 0.5rem; &.collapsed > .overflow::after { opacity: 0; } & ul { list-style: none; margin: 0.08rem 0; padding: 0; transition: max-height 0.35s ease, transform 0.35s ease, opacity 0.2s ease; & div > li > a { color: var(--dark); opacity: 0.75; pointer-events: all; } } } svg { pointer-events: all; & > polyline { pointer-events: none; } } .folder-container { flex-direction: row; display: flex; align-items: center; user-select: none; & li > a { // other selector is more specific, needs important color: var(--secondary) !important; opacity: 1 !important; font-size: 1.05rem !important; } & li > a:hover { // other selector is more specific, needs important color: var(--tertiary) !important; } & li > button { color: var(--dark); background-color: transparent; border: none; text-align: left; cursor: pointer; padding-left: 0; padding-right: 0; display: flex; align-items: center; & h3 { font-size: 0.95rem; display: inline-block; color: var(--secondary); font-weight: 600; margin: 0; line-height: 1.5rem; font-weight: bold; pointer-events: none; } } } .folder-icon { margin-right: 5px; color: var(--secondary); cursor: pointer; transition: transform 0.3s ease; backface-visibility: visible; } div:has(> .folder-outer:not(.open)) > .folder-container > svg { transform: rotate(-90deg); } .folder-icon:hover { color: var(--tertiary); }