aside#file-tree { .file-tree-inner { position: absolute; top: 32px; bottom: 0; left: 0; right: 0; overflow-y: auto; background-color: @file-tree-bg; &.no-toolbar { top: 0; } } // TODO; Consolidate with "Project files" in Overleaf h3 { font-size: 1rem; border-bottom: 1px solid @gray; padding-bottom: (@line-height-computed / 4); margin: (@line-height-computed / 2); } ul.file-tree-list when (@is-overleaf = false) { font-size: 0.8rem; padding: (@line-height-computed / 4) 0; } ul.file-tree-list { margin: 0; overflow-x: hidden; height: 100%; ul when (@is-overleaf = false) { margin-left: (@line-height-computed / 2); } ul when (@is-overleaf = true) { margin-left: (@line-height-computed / 2); } li { line-height: 2.6; position: relative; .entity { user-select: none; } .entity-name { color: @file-tree-item-color; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; &:hover { background-color: @file-tree-item-hover-bg; } &:hover when (@is-overleaf = true) { // When the entity is a subfolder, the DOM element is "indented" via margin-left. This makes the // element not fill the entire file-tree width (as it's spaced from the left-hand side via margin) // and, in consequence, the background gets clipped. The negative (in the x axis) box-shadow is a // hack to paint the unfilled left-hand region. box-shadow: -200px 0 0 @file-tree-item-hover-bg; } input { line-height: 1.6; } &.droppable-hover { // TODO background-color: fade(@file-tree-droppable-background-color, 60%); } } i.fa { color: @file-tree-item-icon-color; font-size: 14px; } i.fa-folder-open, i.fa-folder { color: @file-tree-item-folder-color; font-size: 14px; } i.toggle { width: 24px; padding: 6px; font-size: 0.7rem; color: @file-tree-item-toggle-color; } &.multi-selected { > .entity > .entity-name when (@is-overleaf = false) { background-color: @file-tree-multiselect-bg; &:hover { background-color: @file-tree-multiselect-hover-bg; } } > .entity when (@is-overleaf = true) { i.fa { color: #FFF; } > .entity-name { background-color: @file-tree-multiselect-bg; box-shadow: -200px 0 0 @file-tree-multiselect-bg; &:hover { background-color: @file-tree-multiselect-hover-bg; box-shadow: -200px 0 0 @file-tree-multiselect-hover-bg; } } } } .dropdown { position: absolute; right: 0; > a { padding: 0 12px; } } .rename-input { display: block; position: absolute; top: 1px; left: 44px; right: 32px; input { width: 100%; } } > .entity > .entity-name { .entity-menu-toggle { display: none; } } } } &:not(.multi-selected) { ul.file-tree-list li.selected { > .entity > .entity-name when (@is-overleaf = false) { color: @link-color; border-right: 4px solid @link-color; font-weight: bold; padding-right: 32px; i.fa-folder-open, i.fa { color: @link-color; } .entity-menu-toggle { display: inline; } } > .entity when (@is-overleaf = true) { i.fa { color: #FFF; } > .entity-name { background-color: @file-tree-item-selected-bg; // When the entity is a subfolder, the DOM element is "indented" via margin-left. This makes the // element not fill the entire file-tree width (as it's spaced from the left-hand side via margin) // and, in consequence, the background gets clipped. The negative (in the x axis) box-shadow is a // hack to paint the unfilled left-hand region. box-shadow: -200px 0 0 @file-tree-item-selected-bg; font-weight: bold; padding-right: 32px; .entity-menu-toggle { display: inline; } } } } } ul.droppable-hover { background-color: fade(@file-tree-droppable-background-color, 60%); } } .editor-dark when (@is-overleaf = false) { aside#file-tree { // background-color: lighten(@editor-dark-background-color, 10%); ul.file-tree-list { .dropdown-toggle { color: @editor-dark-highlight-color; } li { .entity-name { color: #aaaaaa; &:hover { background-color: black; } } &.selected { > .entity > .entity-name { color: @editor-dark-highlight-color; border-color: @editor-dark-highlight-color; i.fa-folder-open, i.fa-folder, i.fa-file, i.fa-image, i.fa-file-pdf-o { color: @editor-dark-highlight-color; } } } } } } }