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 .dropzone-landing-area {
232 background-color: var(--color-primary-light);
235 border: 1px dashed var(--color-primary);
236 color: var(--color-primary);
240 @keyframes dzAnimIn {
243 transform: scale(.7);
246 transform: scale(1.1);
254 @keyframes dzFileItemIn {
257 transform: translateY(28px);
261 transform: translateY(0);
264 @keyframes dzFileItemOut {
267 transform: translateY(0);
271 transform: translateY(28px);
275 .dropzone-file-item {
282 @include lightDark(background, #FFF, #444);
283 box-shadow: $bs-large;
287 animation: dzFileItemIn ease-in-out 240ms;
288 transition: transform ease-in-out 120ms, box-shadow ease-in-out 120ms;
291 transform: translateY(-3px);
292 box-shadow: 0 3px 8px 1px rgba(22, 22, 22, 0.2);
295 .dropzone-file-item.dismiss {
296 animation: dzFileItemOut ease-in-out 240ms;
298 .dropzone-file-item .loading-container {
299 text-align: start !important;
302 .dropzone-file-item-image-wrap {
305 background-color: var(--color-primary-light);
313 .dropzone-file-item-text-wrap {
319 .dropzone-file-item-progress {
325 background-color: var(--color-primary);
326 transition: width ease-in-out 240ms;
328 .dropzone-file-item-label,
329 .dropzone-file-item-status {
334 .dropzone-file-item-status[data-status] {
340 .dropzone-file-item-status[data-status="success"] {
343 .dropzone-file-item-status[data-status="error"] {
346 .dropzone-file-item-status[data-status] + .dropzone-file-item-label {
350 .image-manager-list .image {
357 width: math.div(100%, 6);
359 @include lightDark(border-color, #ddd, #000);
360 box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
361 transition: all cubic-bezier(.4, 0, 1, 1) 160ms;
364 transform: scale3d(0.92, 0.92, 0.92);
365 outline: currentColor 2px solid;
378 background-color: rgba(0, 0, 0, 0.4);
385 @include smaller-than($xl) {
386 width: math.div(100%, 4);
388 @include smaller-than($m) {
395 .image-manager .load-more {
405 .image-manager .loading-container {
409 .image-manager-sidebar {
413 border-inline-start: 1px solid #DDD;
414 @include lightDark(border-color, #ddd, #000);
419 .image-manager-viewer img {
423 margin: 0 auto $-m auto;
424 box-shadow: 0 1px 21px 1px rgba(76, 76, 76, 0.3);
426 .image-manager-viewer {
430 justify-content: center;
432 display: inline-block;
437 .image-manager-list {
442 .image-manager-content {
444 flex-direction: column;
454 .image-manager [role="tablist"] button[role="tab"] {
455 border-right: 1px solid #DDD;
456 @include lightDark(border-color, #DDD, #000);
462 .image-manager-header {
466 .tab-container [role="tablist"] {
469 justify-items: start;
471 border-bottom: 1px solid #DDD;
472 @include lightDark(border-color, #ddd, #444);
476 .tab-container [role="tablist"] button[role="tab"],
477 .image-manager [role="tablist"] button[role="tab"] {
478 display: inline-block;
480 @include lightDark(color, rgba(0, 0, 0, .5), rgba(255, 255, 255, .5));
482 border-bottom: 2px solid transparent;
484 &[aria-selected="true"] {
485 color: var(--color-link) !important;
486 border-bottom-color: var(--color-link) !important;
489 @include lightDark(color, rgba(0, 0, 0, .8), rgba(255, 255, 255, .8));
490 @include lightDark(border-bottom-color, rgba(0, 0, 0, .2), rgba(255, 255, 255, .2));
493 .tab-container [role="tablist"].controls-card {
499 .image-picker .none {
503 .code-editor .CodeMirror {
509 .code-editor .lang-options {
515 .code-editor .lang-options button {
518 border-bottom: 1px solid;
519 @include lightDark(color, #333, #AAA);
520 @include lightDark(border-bottom-color, #EEE, #000);
526 padding-left: 24px + $-xs;
528 background-color: var(--color-primary-light);
529 color: var(--color-primary);
533 .code-editor button.lang-option-favorite-toggle {
545 color: var(--color-primary);
551 .code-editor button[data-favourite="true"] ~ .action-favourite,
552 .code-editor button[data-favourite="false"] ~ .action-unfavourite {
556 .code-editor .action-favourite {
559 .code-editor button:hover ~ .action-favourite {
564 background-color: var(--color-primary-light);
566 color: var(--color-primary);
571 .code-editor-language-list {
575 align-items: stretch;
578 .code-editor-language-list input {
581 border-bottom: 1px solid #DDD;
597 .code-editor-body-wrap {
601 @include smaller-than($s) {
602 .code-editor .lang-options {
605 .code-editor-body-wrap {
606 flex-direction: column;
608 .code-editor-language-list, .code-editor-language-list input {
615 border: 1px solid #DDD;
616 @include lightDark(border-color, #ddd, #000);
617 @include lightDark(background-color, #FFF, #222);
627 transition: opacity ease-in-out 120ms;
629 &:hover .actions, &:focus-within .actions {
634 .comment-box .header {
637 display: inline-block;
641 padding: $-xxs 0 $-xxs 0;
646 padding-inline-start: $-xxs;
654 #tag-manager .drag-card {
661 &:hover, .template-item-actions button:hover {
662 background-color: #F2F2F2;
664 .template-item-actions {
671 flex-direction: column;
672 border-inline-start: 1px solid;
673 @include lightDark(border-color, #ddd, #000);
675 .template-item-actions button {
678 @include lightDark(background-color, #FFF, #222);
680 border-top: 1px solid;
681 @include lightDark(border-color, #DDD, #000);
683 .template-item-actions button svg {
686 .template-item-actions button:first-child {
695 .dropdown-search-toggle-breadcrumb {
696 border: 1px solid transparent;
704 margin-inline-end: 0;
707 .dropdown-search-toggle-select {
723 text-overflow: ellipsis;
726 .dropdown-search-toggle-caret {
730 .dropdown-search-toggle-select-label {
734 .dropdown-search-toggle-select-caret {
742 .dropdown-search-dropdown {
757 .dropdown-search-search .svg-icon {
766 pointer-events: none;
768 .dropdown-search-list {
773 .dropdown-search-item {
776 background-color: #F2F2F2;
777 text-decoration: none;
781 padding-inline-start: $-xl;
784 border-bottom: 1px solid #DDD;
791 @include smaller-than($m) {
792 .dropdown-search-dropdown {
797 .dropdown-search-dropdown .dropdown-search-list {
803 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
807 @include lightDark(border-color, #E2E2E2, #444);
808 border-bottom-width: 0;
813 @include lightDark(background-color, #F6F6F6, #333);
816 .item-list-row:first-child {
817 border-radius: 4px 4px 0 0;
819 .item-list-row:last-child {
820 border-radius: 0 0 4px 4px;
821 border-bottom-width: 1.5px;
823 .item-list-row:first-child:last-child {
826 .item-list-row-toggle-all {
829 .item-list-row:hover .item-list-row-toggle-all {
833 .status-indicator-active, .status-indicator-inactive {
837 display: inline-block;
839 .status-indicator-active {
840 background-color: $positive;
842 .status-indicator-inactive {
843 background-color: $negative;
846 .shortcut-container {
847 background-color: rgba(0, 0, 0, 0.25);
848 pointer-events: none;
858 box-shadow: 0 0 4px 0 #FFF;
863 padding: $-xxs $-xxs;
867 background-color: #eee;
869 border: 1px solid #b4b4b4;
870 box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset;
877 background-color: var(--color-primary);
886 width: math.div($btt-size, 1.5);
887 height: math.div($btt-size, 1.5);
888 margin-inline-end: 4px;
892 border-radius: $btt-size;
893 transition: all ease-in-out 180ms;
898 width: $btt-size*3.4;
899 opacity: 1 !important;
902 width: $btt-size*3.4;
911 // Sortable scroll boxes
919 @include lightDark(border-color, #DDD, #000);
922 @include lightDark(background-color, #EEE, #000);
925 border-bottom: 1px solid;
926 border-top: 1px solid;
927 @include lightDark(border-color, #DDD, #000);
929 @include lightDark(background-color, #FFF, #222);
931 align-items: flex-start;
938 @include lightDark(background-color, #f8f8f8, #333);
957 @include lightDark(color, #444, #FFF);
963 text-decoration: none;
967 input.scroll-box-search, .scroll-box-header-item {
970 @include lightDark(border-color, #DDD, #000);
971 @include lightDark(background-color, #FFF, #222);
973 border-radius: 3px 3px 0 0;
981 .scroll-box-search + .scroll-box,
982 .scroll-box-header-item + .scroll-box {
983 border-radius: 0 0 3px 3px;
986 .scroll-box[refs="shelf-sort@shelf-book-list"] [data-action="add"] {
989 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="remove"],
990 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_up"],
991 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_down"],