@versions-list-width: 320px; @history-toolbar-height: 40px; @history-change-list-padding: 16px; history-root { height: 100%; display: block; } .history-react { display: flex; height: 100%; background-color: @history-main-bg; .history-header { height: @history-toolbar-height; background-color: @history-react-header-bg; color: @history-react-header-color; font-size: @font-size-small; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; } .doc-panel { flex: 1; display: flex; flex-direction: column; .toolbar-container { border-bottom: 1px solid @history-react-separator-color; padding: 0 8px; } .doc-container { flex: 1; overflow-y: auto; } } .change-list { display: flex; flex-direction: column; width: @versions-list-width; font-size: @font-size-small; border-left: 1px solid @history-react-separator-color; box-sizing: content-box; } .toggle-switch-label { flex: 1; span { display: block; } } .history-version-list-container { flex: 1; overflow-y: auto; } .history-all-versions-scroller { overflow-y: auto; height: 100%; } .history-all-versions-container { position: relative; } .history-versions-bottom { position: absolute; height: 8em; bottom: 0; } .history-toggle-switch-container, .history-version-day, .history-version-details { padding: 0 @history-change-list-padding; } .history-version-day { position: sticky; z-index: 1; top: 0; display: block; padding-top: 12px; padding-bottom: 4px; line-height: 20px; background-color: @white; } .history-version-details { padding-top: 8px; padding-bottom: 8px; position: relative; &.history-version-selectable { cursor: pointer; &:hover { background-color: @neutral-10; } } &.history-version-selected, &.history-version-selected.history-version-selectable:hover { background-color: @green-10; } } .history-version-metadata-time { display: block; margin-bottom: 4px; color: @neutral-90; &:last-child { margin-bottom: initial; } } .history-version-metadata-users, .history-version-changes { margin: 0; padding: 0; list-style: none; } .history-version-metadata-users { display: inline; > li { display: inline-flex; align-items: center; margin-right: 8px; } } .history-version-changes { > li { margin-bottom: 4px; } } .history-version-user-badge-color { @size: 8px; display: inline-block; width: @size; height: @size; margin-right: 4px; border-radius: 2px; } .history-version-user-badge-text { overflow-wrap: anywhere; flex: 1; } .history-version-day, .history-version-change-action, .history-version-metadata-users, .history-version-origin, .history-version-saved-by { color: @neutral-70; } .history-version-change-action { overflow-wrap: anywhere; } .history-version-change-doc { color: @neutral-90; overflow-wrap: anywhere; } .history-version-divider { margin: 6px 8px; border-color: @neutral-20; } .history-version-badge { margin-bottom: 4px; margin-right: 10px; height: unset; white-space: normal; overflow-wrap: anywhere; } .history-version-label { margin-bottom: 4px; &:last-child { margin-bottom: initial; } } .loading { padding-top: 10rem; font-family: @font-family-serif; text-align: center; } & > .loading { flex: 1; } .history-all-versions-scroller .loading { position: sticky; bottom: 0; padding: @line-height-computed / 2 0; background-color: @gray-lightest; } .history-version-saved-by { &-label { margin-right: 8px; } } .dropdown.open { .history-version-dropdown-menu-btn { background-color: rgba(@neutral-90, 0.08); box-shadow: initial; } } .history-version-dropdown-menu-btn { @size: 30px; padding: 0; width: @size; height: @size; font-size: @font-size-small; color: @neutral-90; background-color: transparent; &:hover, &:active { z-index: initial; background-color: rgba(@neutral-90, 0.08); box-shadow: initial; } } .history-loading-panel { padding-top: 10rem; font-family: @font-family-serif; text-align: center; } .history-file-entity-operation-badge { flex: 0 0 auto; text-transform: lowercase; margin-left: 0.5em; font-size: 0.7em; background: @history-file-badge-bg; color: @history-file-badge-color; border-radius: 8px; line-height: 1; padding: 2px 4px 3px; margin-top: 2px; } .history-react-toolbar { display: flex; align-items: center; gap: 8px; .history-react-toolbar-file-info { flex: 1; text-align: right; } .history-react-toolbar-time { font-weight: 700; } } .history-paywall-prompt { padding: @history-change-list-padding; .history-feature-list { list-style: none; padding-left: 8px; li { margin-bottom: 16px; } } button { width: 100%; } } .history-version-faded .history-version-details { max-height: 6em; .mask-image(linear-gradient(black 35%, transparent)); overflow: hidden; } .history-paywall-heading { .premium-text; font-family: inherit; font-size: 20px; font-weight: 700; } .history-content { padding: @line-height-computed / 2; } } .history-version-label-tooltip { padding: 6px; text-align: initial; &-row { margin-bottom: 6.25px; &-comment { overflow-wrap: anywhere; } &:last-child { margin-bottom: initial; } } } .history-version-dropdown-menu { [role='menuitem'] { padding: 10px 12px; color: @neutral-90; &:hover, &:focus { color: @neutral-90; background-color: @neutral-10; } span.material-symbols-rounded { vertical-align: middle; font-size: inherit; } } } .document-diff-container { height: 100%; display: flex; flex-direction: column; position: relative; .cm-viewer-container, .cm-editor { height: 100%; } .previous-highlight-button, .next-highlight-button { position: absolute; right: 16px; box-shadow: @box-shadow; } .previous-highlight-button { top: 16px; } .next-highlight-button { bottom: 16px; } } .history-file-tree { display: flex !important; // To work around jQuery layout's inline styles flex-direction: column; flex-grow: 1; max-height: 100%; ul.history-file-tree-list { margin: 0; overflow-x: hidden; height: 100%; flex-grow: 1; position: relative; overflow-y: auto; .history-file-tree-item > ul, ul[role='tree'] { margin-left: 22px; } li.bottom-buffer { min-height: @line-height-computed; } li { line-height: @file-tree-line-height; position: relative; margin-left: 8px; &:focus { outline: none; } .history-file-tree-item { color: @file-tree-item-color; cursor: pointer; white-space: nowrap; user-select: none; display: flex; align-items: center; &:focus { outline: none; } &:hover { background-color: @file-tree-item-hover-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 ::before pseudo-selector is used to fill // the empty space. .fake-full-width-bg(@file-tree-item-hover-bg); } .history-file-tree-folder-button, .history-file-tree-item-button { .reset-button; &:focus { outline: none; } } .history-file-tree-item-name-wrapper { display: flex; align-items: center; width: 100%; overflow: hidden; .history-file-tree-item-name { margin-right: @margin-xs; overflow: hidden; text-overflow: ellipsis; text-align: left; font-weight: normal; flex-grow: 1; &.strikethrough { text-decoration: line-through; } } .history-file-tree-item-badge { text-transform: capitalize; font-weight: normal; margin-right: @margin-sm; flex-shrink: 0; &:hover { background-color: @neutral-20; } } } } i.fa { color: @file-tree-item-icon-color; font-size: 14px; display: inline-flex; flex-shrink: 0; &.file-tree-icon { margin-right: 4px; margin-left: 8px; } &.file-tree-folder-icon { margin-right: 4px; } &.file-tree-expand-icon { margin-left: 8px; } } i.fa-folder-open, i.fa-folder { color: @file-tree-item-folder-color; font-size: 14px; } } li.selected > .history-file-tree-item { color: @file-tree-item-selected-color; background-color: @file-tree-item-selected-bg; font-weight: bold; > div > i.fa, > button > i.fa, > i.fa { color: @file-tree-item-selected-color; } .fake-full-width-bg(@file-tree-item-selected-bg); } } } .history-error { padding: 16px; }