/********************************************************** Widget ***/ .browse { display: inline-block; min-width: 300px; width: initial; padding: 5px; font-family: sans-serif; background: gray; /*color: rgba(255,255,255,0.8);*/ color: white; } /* .browse:not(:focus) { opacity: 0.8; } */ .browse .v-block { width: 100%; height: auto; box-sizing: border-box; } .browse .v-block:not(:first-of-type) { border-top: 1px solid rgba(255, 255, 255, 0.3); } .browse .v-block:empty { display: none; } /************************************************************ Path ***/ .browse .path { padding: 5px; padding-left: 10px; padding-right: 10px; white-space: nowrap; opacity: 0.8; } .browse .path:hover { opacity: 1; } .browse .path:empty { display: block; } .browse .path:before { content: "/"; } .browse .path .dir { display: inline-block; cursor: pointer; } .browse .path .dir:after { content: "/"; } .browse .path .dir:hover ~ .dir { opacity: 0.2; } .browse .path .dir.cur { opacity: 0.5; cursor: text; } .browse .path .dir.cur:after { content: ""; } .browse .path .dir.cur:hover { opacity: 1; } .browse .path .dir.cur:empty:not([contenteditable]) { position: relative; width: 50px; height: 12px; background: transparent; opacity: 0; } .browse .path .dir.cur:empty:hover:not([contenteditable]) { opacity: 0.6; } .browse .path .dir.cur:empty:hover:not([contenteditable]):after { content: "______"; border: dashed white 1px; cursor: text; } /************************************************************ List ***/ /* XXX need to make this resizable up but only to a certain size (~80vh) */ .browse .list { /* XXX need a way to make this automatic and depend on .browser setup to avoid multiple scrollbars and the need to manually dive into the configuration to change the container size limits */ max-height: 50vh; overflow-y: auto; overflow-x: hidden; } /* .browse .list:empty { display: block; } */ .browse .list div { padding: 5px; padding-left: 10px; padding-right: 10px; cursor: pointer; opacity: 0.7; } .browse:focus .list div.selected, .browse .path .dir:hover, .browse .list div:hover { background: rgba(0, 0, 0, 0.05); opacity: 0.9; } .browse .list div.selected { background: rgba(0, 0, 0, 0.08); } .browse:focus .list div.selected { background: rgba(0, 0, 0, 0.08); box-shadow: rgba(0, 0, 0, 0.2) 0.1em 0.1em 0.2em; opacity: 1; } /* XXX need to make the next two different... */ .browse .list div.filtered-out { opacity: 0.5; } .browse:not(.show-filtered-out) .list div.filtered-out { display: none; } .browse .list div.disabled { opacity: 0.3; } /******************************************************** Theaming ***/ /* Light */ .light .browse { background: white; color: rgba(0, 0, 0, 0.8); } .light .browse .v-block:not(:first-of-type) { border-top: 1px solid rgba(0, 0, 0, 0.2); } /* Dark */ .dark .browse { background: #0a0a0a; color: rgba(255, 255, 255, 0.8); } /* XXX can we make this simpler??? */ .dark .browse:focus .list div.selected, .dark .browse .path .dir:hover, .dark .browse .list div:hover { background: rgba(255, 255, 255, 0.08); } .dark .browse .list div.selected { background: rgba(255, 255, 255, 0.1); } .dark .browse:focus .list div.selected { background: rgba(255, 255, 255, 0.1); } /*********************************************************************/