@jupyterlab/filebrowser
Version:
JupyterLab - FileBrowser Widget
460 lines (382 loc) • 10.5 kB
CSS
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-filebrowser-button-height: 28px;
--jp-private-filebrowser-button-width: 48px;
}
.jp-FileBrowser .jp-SidePanel-content {
display: flex;
flex-direction: column;
overflow: hidden;
}
.jp-FileBrowser-toolbar.jp-Toolbar {
border-bottom: none;
height: auto;
margin: 8px 12px 0;
box-shadow: none;
padding: 0;
}
.jp-FileBrowser-toolbar.jp-Toolbar::part(positioning-region) {
row-gap: 12px;
}
.jp-FileBrowser-filterToolbar {
display: flex;
flex: 0 0 auto;
flex-direction: column;
}
.jp-FileBrowser-filterToolbar.jp-Toolbar {
border-bottom: none;
height: auto;
margin: 0 12px 6px;
box-shadow: none;
padding: 0;
}
.jp-FileBrowser-Panel {
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
}
.jp-BreadCrumbs {
flex: 0 0 auto;
margin: 8px 12px;
}
.jp-BreadCrumbs-item {
margin: 0 2px;
padding: 0 2px;
border-radius: var(--jp-border-radius);
cursor: pointer;
}
.jp-BreadCrumbs-item:hover {
background-color: var(--jp-layout-color2);
}
.jp-BreadCrumbs-item:first-child {
margin-left: 0;
}
.jp-BreadCrumbs-item.jp-mod-dropTarget {
background-color: var(--jp-brand-color2);
opacity: 0.7;
}
/*-----------------------------------------------------------------------------
| Buttons
|----------------------------------------------------------------------------*/
.jp-FileBrowser-toolbar > .jp-Toolbar-item,
.jp-FileBrowser-filterToolbar > .jp-Toolbar-item {
flex: 0 0 auto;
padding-left: 0;
align-items: center;
height: unset;
}
.jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent {
width: 28px;
}
/*-----------------------------------------------------------------------------
| Other styles
|----------------------------------------------------------------------------*/
.jp-FileDialog.jp-mod-conflict input {
color: var(--jp-error-color1);
}
.jp-FileDialog .jp-new-name-title {
margin-top: 12px;
}
.jp-FileBrowser .lm-AccordionPanel > h3:first-child {
display: none;
}
.jp-FileBrowser-filterToolbar > .jp-FileBrowser-filterBox {
width: 100%;
}
.jp-FileBrowser-filterBox > .jp-FilterBox {
width: 100%;
}
.jp-Open-Dialog > .jp-FileBrowser {
min-height: 200px;
}
.jp-Open-Dialog-label {
overflow: visible;
}
/*-----------------------------------------------------------------------------
| DirListing
|----------------------------------------------------------------------------*/
.jp-DirListing {
flex: 1 1 auto;
display: flex;
flex-direction: column;
outline: 0;
overflow: hidden;
--jp-dirlisting-padding-width: 12px;
}
.jp-DirListing-header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
align-items: center;
overflow: hidden;
border-top: var(--jp-border-width) solid var(--jp-border-color2);
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
user-select: none;
}
.jp-DirListing-headerItem {
padding: 4px 12px 2px;
font-weight: 500;
overflow: hidden;
white-space: nowrap;
box-sizing: border-box;
display: flex;
}
.jp-DirListing-headerItemText {
flex-grow: 1;
text-overflow: ellipsis;
overflow: hidden;
}
.jp-DirListing-headerItem:hover {
background: var(--jp-layout-color2);
}
.jp-DirListing-headerItem.jp-id-name:not([style*='width']) {
/* default width before user resizes this column */
flex: 1 1 126px;
}
.jp-DirListing-headerItem.jp-id-modified:not([style*='width']) {
/* default width before user resizes this column */
flex: 1 0 70px;
}
.jp-DirListing-headerItem.jp-id-filesize:not([style*='width']) {
/* default width before user resizes this column */
flex: 0 0 75px;
}
.jp-DirListing-headerItem.jp-id-modified,
.jp-DirListing-headerItem.jp-id-filesize {
text-align: right;
/* stylelint-disable */
container-type: inline-size;
/* stylelint-enable */
}
/**
* Use container queries (not yet supported by our version of stylelint)
* to display either a small or large header for the last-modified column.
*/
/* stylelint-disable */
@container (max-width: 300px) {
/* stylelint-enable */
.jp-DirListing-headerItem.jp-id-modified
> .jp-DirListing-headerItemText-small,
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-small {
display: inline;
}
.jp-DirListing-headerItem.jp-id-modified
> .jp-DirListing-headerItemText-large,
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-large {
display: none;
}
}
/* stylelint-disable */
@container (min-width: 300px) {
/* stylelint-enable */
.jp-DirListing-headerItem.jp-id-modified
> .jp-DirListing-headerItemText-small {
display: none;
}
.jp-DirListing-headerItem.jp-id-modified
> .jp-DirListing-headerItemText-large {
display: inline;
}
}
/* stylelint-disable */
@container (max-width: 100px) {
/* stylelint-enable */
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-small {
display: inline;
}
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-large {
display: none;
}
}
/* stylelint-disable */
@container (min-width: 100px) {
/* stylelint-enable */
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-small {
display: none;
}
.jp-DirListing-headerItem.jp-id-filesize
> .jp-DirListing-headerItemText-large {
display: inline;
}
}
.jp-DirListing-headerItem.jp-mod-selected {
font-weight: 600;
}
/* increase specificity to override bundled default */
.jp-DirListing-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
list-style-type: none;
overflow: auto;
background-color: var(--jp-layout-color1);
overflow-x: hidden;
}
.jp-DirListing-content mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
color: var(--jp-ui-inverse-font-color0);
}
/* Style the directory listing content when a user drops a file to upload */
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
outline: 5px dashed rgba(128, 128, 128, 0.5);
outline-offset: -10px;
cursor: copy;
}
.jp-DirListing-item {
align-items: center;
padding: 4px var(--jp-dirlisting-padding-width);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
display: inline-grid;
grid-auto-columns: max-content;
width: 100%;
box-sizing: border-box;
grid-auto-flow: column;
}
.jp-DirListing-checkboxWrapper {
/* Increases hit area of checkbox. */
padding: 4px;
}
.jp-DirListing-content .jp-DirListing-checkboxWrapper {
position: relative;
left: -4px;
margin: -4px 0 -4px -8px;
}
.jp-DirListing-checkboxWrapper.jp-mod-visible {
visibility: visible;
}
/* For devices that support hovering, hide checkboxes until hovered, selected...
*/
@media (hover: hover) {
.jp-DirListing-checkboxWrapper {
visibility: hidden;
}
.jp-DirListing-item:hover .jp-DirListing-checkboxWrapper,
.jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper {
visibility: visible;
}
}
.jp-DirListing-resizeHandle {
min-width: var(--jp-border-width);
background: var(--jp-border-color2);
height: calc(100% - 4px);
/* border increases the area where handle can be grabbed */
border: 2px solid var(--jp-layout-color1);
}
.jp-DirListing-resizeHandle.jp-mod-active {
background: var(--jp-brand-color1);
border-color: var(--jp-brand-color1);
}
.jp-DirListing-resizeHandle.jp-mod-active:hover {
border-color: var(--jp-brand-color1);
}
.jp-DirListing-resizeHandle:hover {
cursor: col-resize;
border-color: var(--jp-border-color2);
}
.jp-DirListing-itemName {
display: flex;
}
.jp-DirListing-item[data-is-dot] {
opacity: 75%;
}
.jp-DirListing-item.jp-mod-selected {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.jp-DirListing-item.jp-mod-dropTarget {
background: var(--jp-brand-color3);
}
.jp-DirListing-item:hover:not(.jp-mod-selected) {
background: var(--jp-layout-color2);
}
.jp-DirListing-itemIcon {
flex: 0 0 20px;
margin-right: 4px;
}
.jp-DirListing-itemText,
.jp-DirListing-itemModified,
.jp-DirListing-itemFileSize {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.jp-DirListing-itemName:not([style*='width']) > .jp-DirListing-itemText {
flex: 1 1 106px;
}
.jp-DirListing-item:has(.jp-DirListing-itemText:focus-visible) {
/* Targeting `.jp-DirListing-itemText` specifically to avoid an extra outline
when it gets replaced with `jp-DirListing-editor` when editing the file name */
outline-width: 2px;
outline-color: var(--jp-inverse-layout-color1);
outline-style: solid;
outline-offset: -4px;
}
.jp-DirListing-item.jp-mod-selected:focus-within {
outline-color: var(--jp-layout-color1);
}
.jp-DirListing-item > .jp-DirListing-itemName > .jp-DirListing-itemText:focus {
outline: 0;
}
.jp-DirListing-itemModified {
text-align: right;
}
.jp-DirListing-itemFileSize {
text-align: right;
}
.jp-DirListing-editor {
flex: 1 0 64px;
outline: none;
border: none;
color: var(--jp-ui-font-color1);
background-color: var(--jp-layout-color1);
z-index: 0;
}
.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before {
color: var(--jp-success-color1);
content: '\25CF';
font-size: 8px;
position: absolute;
left: -8px;
}
.jp-DirListing-item.jp-mod-running.jp-mod-selected
.jp-DirListing-itemIcon::before {
color: var(--jp-ui-inverse-font-color1);
}
.jp-DirListing-item.lm-mod-drag-image,
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
font-size: var(--jp-ui-font-size1);
padding-left: 4px;
margin-left: 4px;
width: 160px;
background-color: var(--jp-ui-inverse-font-color2);
box-shadow: var(--jp-elevation-z2);
border-radius: 0;
color: var(--jp-ui-font-color1);
transform: translateX(-40%) translateY(-58%);
}
.jp-Document {
min-width: 120px;
min-height: 120px;
outline: none;
}