2 // System wide notifications
9 background-color: #FFF;
10 @include lightDark(background-color, #fff, #444);
12 border-inline-start: 6px solid currentColor;
13 box-shadow: $bs-large;
17 transition: transform ease-in-out 280ms;
18 transform: translateX(580px);
20 grid-template-columns: 42px 1fr 12px;
24 vertical-align: middle;
31 padding-inline-end: $-s;
38 @include lightDark(color, #444, #888);
42 vertical-align: middle;
58 transform: translateX(0);
61 transform: translate3d(0, -2px, 0);
65 .chapter-contents-toggle {
68 transition: all ease-in-out 180ms;
70 svg[data-icon="caret-right"] {
73 transition: all ease-in-out 180ms;
74 transform: rotate(0deg);
75 transform-origin: 50% 50%;
77 &.open svg[data-icon="caret-right"] {
78 transform: rotate(90deg);
80 svg[data-icon="caret-right"] + * {
81 margin-inline-start: $-xxs;
85 [overlay], .popup-background {
86 @include lightDark(background-color, rgba(0, 0, 0, 0.333), rgba(0, 0, 0, 0.6));
98 justify-content: center;
107 @include lightDark(background-color, #fff, #333);
114 box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.3);
118 flex-direction: column;
132 align-self: flex-start;
142 .popup-header button, .popup-footer button {
151 .popup-header button:not(.popup-header-close) {
155 .popup-header button:hover {
156 background-color: rgba(255, 255, 255, 0.1);
160 justify-content: end;
161 background-color: var(--color-primary-light);
168 .popup-header-close {
178 .popup-header, .popup-footer {
188 &.flex-container-row {
189 display: flex !important;
192 body.flexbox-support #entity-selector-wrap .popup-body .form-group {
196 #entity-selector-wrap .popup-body .form-group {
199 .popup-body .entity-selector-container {
203 .image-manager-body {
210 justify-content: center;
218 border: 1px dashed var(--color-primary);
220 box-sizing: content-box;
221 background-clip: padding-box;
222 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23a9a9a9' fill-opacity='0.52' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
223 background-color: var(--color-primary);
227 pointer-events: none;
228 animation: dzAnimIn 240ms ease-in-out;
231 @keyframes dzAnimIn {
234 transform: scale(.7);
237 transform: scale(1.1);
245 @keyframes dzFileItemIn {
248 transform: translateY(28px);
252 transform: translateY(0);
255 @keyframes dzFileItemOut {
258 transform: translateY(0);
262 transform: translateY(28px);
266 .dropzone-file-item {
273 background-color: #FFF;
274 box-shadow: $bs-large;
278 animation: dzFileItemIn ease-in-out 240ms;
279 transition: transform ease-in-out 120ms, box-shadow ease-in-out 120ms;
282 transform: translateY(-3px);
283 box-shadow: 0 3px 8px 1px rgba(22, 22, 22, 0.2);
286 .dropzone-file-item.dismiss {
287 animation: dzFileItemOut ease-in-out 240ms;
289 .dropzone-file-item .loading-container {
290 text-align: start !important;
293 .dropzone-file-item-image-wrap {
296 background-color: var(--color-primary-light);
304 .dropzone-file-item-text-wrap {
310 .dropzone-file-item-progress {
316 background-color: var(--color-primary);
317 transition: width ease-in-out 240ms;
319 .dropzone-file-item-label,
320 .dropzone-file-item-status {
325 .dropzone-file-item-status[data-status] {
331 .dropzone-file-item-status[data-status="success"] {
334 .dropzone-file-item-status[data-status="error"] {
337 .dropzone-file-item-status[data-status] + .dropzone-file-item-label {
341 .image-manager-list .image {
348 width: math.div(100%, 6);
350 @include lightDark(border-color, #ddd, #000);
351 box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
352 transition: all cubic-bezier(.4, 0, 1, 1) 160ms;
355 transform: scale3d(0.92, 0.92, 0.92);
356 outline: currentColor 2px solid;
369 background-color: rgba(0, 0, 0, 0.4);
376 @include smaller-than($xl) {
377 width: math.div(100%, 4);
379 @include smaller-than($m) {
386 .image-manager .load-more {
389 @include lightDark(background-color, #EEE, #444);
398 .image-manager .loading-container {
402 .image-manager-sidebar {
406 border-inline-start: 1px solid #DDD;
407 @include lightDark(border-color, #ddd, #000);
412 .image-manager-viewer img {
416 margin: 0 auto $-m auto;
417 box-shadow: 0 1px 21px 1px rgba(76, 76, 76, 0.3);
419 .image-manager-viewer {
423 justify-content: center;
425 display: inline-block;
430 .image-manager-list {
435 .image-manager-content {
437 flex-direction: column;
447 .tab-container [role="tablist"] {
450 justify-items: start;
452 border-bottom: 1px solid #DDD;
453 @include lightDark(border-color, #ddd, #444);
457 .tab-container [role="tablist"] button[role="tab"],
458 .image-manager [role="tablist"] button[role="tab"] {
459 display: inline-block;
461 @include lightDark(color, rgba(0, 0, 0, .5), rgba(255, 255, 255, .5));
463 border-bottom: 2px solid transparent;
465 &[aria-selected="true"] {
466 color: var(--color-link) !important;
467 border-bottom-color: var(--color-link) !important;
470 @include lightDark(color, rgba(0, 0, 0, .8), rgba(255, 255, 255, .8));
471 @include lightDark(border-bottom-color, rgba(0, 0, 0, .2), rgba(255, 255, 255, .2));
474 .tab-container [role="tablist"].controls-card {
480 .image-picker .none {
484 .code-editor .CodeMirror {
490 .code-editor .lang-options {
496 .code-editor .lang-options button {
499 border-bottom: 1px solid;
500 @include lightDark(color, #333, #AAA);
501 @include lightDark(border-bottom-color, #EEE, #000);
507 padding-left: 24px + $-xs;
509 background-color: var(--color-primary-light);
510 color: var(--color-primary);
514 .code-editor button.lang-option-favorite-toggle {
526 color: var(--color-primary);
532 .code-editor button[data-favourite="true"] ~ .action-favourite,
533 .code-editor button[data-favourite="false"] ~ .action-unfavourite {
537 .code-editor .action-favourite {
540 .code-editor button:hover ~ .action-favourite {
545 background-color: var(--color-primary-light);
547 color: var(--color-primary);
552 .code-editor-language-list {
556 align-items: stretch;
559 .code-editor-language-list input {
562 border-bottom: 1px solid #DDD;
578 .code-editor-body-wrap {
582 @include smaller-than($s) {
583 .code-editor .lang-options {
586 .code-editor-body-wrap {
587 flex-direction: column;
589 .code-editor-language-list, .code-editor-language-list input {
596 border: 1px solid #DDD;
597 @include lightDark(border-color, #ddd, #000);
598 @include lightDark(background-color, #FFF, #222);
608 transition: opacity ease-in-out 120ms;
610 &:hover .actions, &:focus-within .actions {
615 .comment-box .header {
618 display: inline-block;
622 padding: $-xxs 0 $-xxs 0;
627 padding-inline-start: $-xxs;
635 #tag-manager .drag-card {
642 &:hover, .template-item-actions button:hover {
643 background-color: #F2F2F2;
645 .template-item-actions {
652 flex-direction: column;
653 border-inline-start: 1px solid;
654 @include lightDark(border-color, #ddd, #000);
656 .template-item-actions button {
659 @include lightDark(background-color, #FFF, #222);
661 border-top: 1px solid;
662 @include lightDark(border-color, #DDD, #000);
664 .template-item-actions button svg {
667 .template-item-actions button:first-child {
676 .dropdown-search-toggle-breadcrumb {
677 border: 1px solid transparent;
685 margin-inline-end: 0;
688 .dropdown-search-toggle-select {
704 text-overflow: ellipsis;
707 .dropdown-search-toggle-caret {
711 .dropdown-search-toggle-select-label {
715 .dropdown-search-toggle-select-caret {
723 .dropdown-search-dropdown {
738 .dropdown-search-search .svg-icon {
747 pointer-events: none;
749 .dropdown-search-list {
754 .dropdown-search-item {
757 background-color: #F2F2F2;
758 text-decoration: none;
762 padding-inline-start: $-xl;
765 border-bottom: 1px solid #DDD;
772 @include smaller-than($m) {
773 .dropdown-search-dropdown {
778 .dropdown-search-dropdown .dropdown-search-list {
784 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
788 @include lightDark(border-color, #E2E2E2, #444);
789 border-bottom-width: 0;
794 @include lightDark(background-color, #F6F6F6, #333);
797 .item-list-row:first-child {
798 border-radius: 4px 4px 0 0;
800 .item-list-row:last-child {
801 border-radius: 0 0 4px 4px;
802 border-bottom-width: 1.5px;
804 .item-list-row:first-child:last-child {
807 .item-list-row-toggle-all {
810 .item-list-row:hover .item-list-row-toggle-all {
814 .status-indicator-active, .status-indicator-inactive {
818 display: inline-block;
820 .status-indicator-active {
821 background-color: $positive;
823 .status-indicator-inactive {
824 background-color: $negative;
827 .shortcut-container {
828 background-color: rgba(0, 0, 0, 0.25);
829 pointer-events: none;
839 box-shadow: 0 0 4px 0 #FFF;
844 padding: $-xxs $-xxs;
848 background-color: #eee;
850 border: 1px solid #b4b4b4;
851 box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset;
858 background-color: var(--color-primary);
867 width: math.div($btt-size, 1.5);
868 height: math.div($btt-size, 1.5);
869 margin-inline-end: 4px;
873 border-radius: $btt-size;
874 transition: all ease-in-out 180ms;
879 width: $btt-size*3.4;
880 opacity: 1 !important;
883 width: $btt-size*3.4;
892 // Sortable scroll boxes
900 @include lightDark(border-color, #DDD, #000);
903 @include lightDark(background-color, #EEE, #000);
906 border-bottom: 1px solid;
907 border-top: 1px solid;
908 @include lightDark(border-color, #DDD, #000);
910 @include lightDark(background-color, #FFF, #222);
912 align-items: flex-start;
919 @include lightDark(background-color, #f8f8f8, #333);
938 @include lightDark(color, #444, #FFF);
944 text-decoration: none;
948 input.scroll-box-search, .scroll-box-header-item {
951 @include lightDark(border-color, #DDD, #000);
952 @include lightDark(background-color, #FFF, #222);
954 border-radius: 3px 3px 0 0;
962 .scroll-box-search + .scroll-box,
963 .scroll-box-header-item + .scroll-box {
964 border-radius: 0 0 3px 3px;
967 .scroll-box[refs="shelf-sort@shelf-book-list"] [data-action="add"] {
970 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="remove"],
971 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_up"],
972 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_down"],