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 {
150 .popup-header button:not(.popup-header-close) {
154 .popup-header button:hover {
155 background-color: rgba(255, 255, 255, 0.1);
159 justify-content: end;
160 background-color: var(--color-primary-light);
167 .popup-header-close {
177 .popup-header, .popup-footer {
187 &.flex-container-row {
188 display: flex !important;
191 body.flexbox-support #entity-selector-wrap .popup-body .form-group {
195 #entity-selector-wrap .popup-body .form-group {
198 .popup-body .entity-selector-container {
202 .image-manager-body {
209 justify-content: center;
217 border: 1px dashed var(--color-primary);
219 box-sizing: content-box;
220 background-clip: padding-box;
221 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");
222 background-color: var(--color-primary);
226 pointer-events: none;
227 animation: dzAnimIn 240ms ease-in-out;
230 @keyframes dzAnimIn {
233 transform: scale(.7);
236 transform: scale(1.1);
244 @keyframes dzFileItemIn {
247 transform: translateY(28px);
251 transform: translateY(0);
254 @keyframes dzFileItemOut {
257 transform: translateY(0);
261 transform: translateY(28px);
265 .dropzone-file-item {
272 background-color: #FFF;
273 box-shadow: $bs-large;
277 animation: dzFileItemIn ease-in-out 240ms;
278 transition: transform ease-in-out 120ms, box-shadow ease-in-out 120ms;
281 transform: translateY(-3px);
282 box-shadow: 0 3px 8px 1px rgba(22, 22, 22, 0.2);
285 .dropzone-file-item.dismiss {
286 animation: dzFileItemOut ease-in-out 240ms;
288 .dropzone-file-item .loading-container {
289 text-align: start !important;
292 .dropzone-file-item-image-wrap {
302 .dropzone-file-item-text-wrap {
308 .dropzone-file-item-progress {
314 background-color: var(--color-primary);
315 transition: width ease-in-out 240ms;
317 .dropzone-file-item-label,
318 .dropzone-file-item-status {
323 .dropzone-file-item-status[data-status] {
329 .dropzone-file-item-status[data-status="success"] {
332 .dropzone-file-item-status[data-status="error"] {
335 .dropzone-file-item-status[data-status] + .dropzone-file-item-label {
339 .image-manager-list .image {
346 width: math.div(100%, 6);
348 @include lightDark(border-color, #ddd, #000);
349 box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
350 transition: all cubic-bezier(.4, 0, 1, 1) 160ms;
353 transform: scale3d(0.92, 0.92, 0.92);
354 outline: currentColor 2px solid;
367 background-color: rgba(0, 0, 0, 0.4);
374 @include smaller-than($xl) {
375 width: math.div(100%, 4);
377 @include smaller-than($m) {
384 .image-manager .load-more {
387 @include lightDark(background-color, #EEE, #444);
396 .image-manager .loading-container {
400 .image-manager-sidebar {
404 border-inline-start: 1px solid #DDD;
405 @include lightDark(border-color, #ddd, #000);
414 margin: 0 auto $-m auto;
415 box-shadow: 0 1px 21px 1px rgba(76, 76, 76, 0.3);
417 .image-manager-viewer {
421 justify-content: center;
423 display: inline-block;
428 .image-manager-list {
433 .image-manager-content {
435 flex-direction: column;
445 .tab-container [role="tablist"] {
448 justify-items: start;
450 border-bottom: 1px solid #DDD;
451 @include lightDark(border-color, #ddd, #444);
455 .tab-container [role="tablist"] button[role="tab"],
456 .image-manager [role="tablist"] button[role="tab"] {
457 display: inline-block;
459 @include lightDark(color, rgba(0, 0, 0, .5), rgba(255, 255, 255, .5));
461 border-bottom: 2px solid transparent;
463 &[aria-selected="true"] {
464 color: var(--color-link) !important;
465 border-bottom-color: var(--color-link) !important;
468 @include lightDark(color, rgba(0, 0, 0, .8), rgba(255, 255, 255, .8));
469 @include lightDark(border-bottom-color, rgba(0, 0, 0, .2), rgba(255, 255, 255, .2));
472 .tab-container [role="tablist"].controls-card {
478 .image-picker .none {
482 .code-editor .CodeMirror {
488 .code-editor .lang-options {
494 .code-editor .lang-options button {
497 border-bottom: 1px solid;
498 @include lightDark(color, #333, #AAA);
499 @include lightDark(border-bottom-color, #EEE, #000);
505 padding-left: 24px + $-xs;
507 background-color: var(--color-primary-light);
508 color: var(--color-primary);
512 .code-editor button.lang-option-favorite-toggle {
524 color: var(--color-primary);
530 .code-editor button[data-favourite="true"] ~ .action-favourite,
531 .code-editor button[data-favourite="false"] ~ .action-unfavourite {
535 .code-editor .action-favourite {
538 .code-editor button:hover ~ .action-favourite {
543 background-color: var(--color-primary-light);
545 color: var(--color-primary);
550 .code-editor-language-list {
554 align-items: stretch;
557 .code-editor-language-list input {
560 border-bottom: 1px solid #DDD;
576 .code-editor-body-wrap {
580 @include smaller-than($s) {
581 .code-editor .lang-options {
584 .code-editor-body-wrap {
585 flex-direction: column;
587 .code-editor-language-list, .code-editor-language-list input {
594 border: 1px solid #DDD;
595 @include lightDark(border-color, #ddd, #000);
596 @include lightDark(background-color, #FFF, #222);
606 transition: opacity ease-in-out 120ms;
608 &:hover .actions, &:focus-within .actions {
613 .comment-box .header {
616 display: inline-block;
620 padding: $-xxs 0 $-xxs 0;
625 padding-inline-start: $-xxs;
633 #tag-manager .drag-card {
640 &:hover, .template-item-actions button:hover {
641 background-color: #F2F2F2;
643 .template-item-actions {
650 flex-direction: column;
651 border-inline-start: 1px solid;
652 @include lightDark(border-color, #ddd, #000);
654 .template-item-actions button {
657 @include lightDark(background-color, #FFF, #222);
659 border-top: 1px solid;
660 @include lightDark(border-color, #DDD, #000);
662 .template-item-actions button svg {
665 .template-item-actions button:first-child {
674 .dropdown-search-toggle-breadcrumb {
675 border: 1px solid transparent;
683 margin-inline-end: 0;
686 .dropdown-search-toggle-select {
702 text-overflow: ellipsis;
705 .dropdown-search-toggle-caret {
709 .dropdown-search-toggle-select-label {
713 .dropdown-search-toggle-select-caret {
721 .dropdown-search-dropdown {
736 .dropdown-search-search .svg-icon {
745 pointer-events: none;
747 .dropdown-search-list {
752 .dropdown-search-item {
755 background-color: #F2F2F2;
756 text-decoration: none;
760 padding-inline-start: $-xl;
763 border-bottom: 1px solid #DDD;
770 @include smaller-than($m) {
771 .dropdown-search-dropdown {
776 .dropdown-search-dropdown .dropdown-search-list {
782 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
786 @include lightDark(border-color, #E2E2E2, #444);
787 border-bottom-width: 0;
792 @include lightDark(background-color, #F6F6F6, #333);
795 .item-list-row:first-child {
796 border-radius: 4px 4px 0 0;
798 .item-list-row:last-child {
799 border-radius: 0 0 4px 4px;
800 border-bottom-width: 1.5px;
802 .item-list-row:first-child:last-child {
805 .item-list-row-toggle-all {
808 .item-list-row:hover .item-list-row-toggle-all {
812 .status-indicator-active, .status-indicator-inactive {
816 display: inline-block;
818 .status-indicator-active {
819 background-color: $positive;
821 .status-indicator-inactive {
822 background-color: $negative;
825 .shortcut-container {
826 background-color: rgba(0, 0, 0, 0.25);
827 pointer-events: none;
837 box-shadow: 0 0 4px 0 #FFF;
842 padding: $-xxs $-xxs;
846 background-color: #eee;
848 border: 1px solid #b4b4b4;
849 box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset;
856 background-color: var(--color-primary);
865 width: math.div($btt-size, 1.5);
866 height: math.div($btt-size, 1.5);
867 margin-inline-end: 4px;
871 border-radius: $btt-size;
872 transition: all ease-in-out 180ms;
877 width: $btt-size*3.4;
878 opacity: 1 !important;
881 width: $btt-size*3.4;
890 // Sortable scroll boxes
898 @include lightDark(border-color, #DDD, #000);
901 @include lightDark(background-color, #EEE, #000);
904 border-bottom: 1px solid;
905 border-top: 1px solid;
906 @include lightDark(border-color, #DDD, #000);
908 @include lightDark(background-color, #FFF, #222);
910 align-items: flex-start;
917 @include lightDark(background-color, #f8f8f8, #333);
936 @include lightDark(color, #444, #FFF);
942 text-decoration: none;
946 input.scroll-box-search, .scroll-box-header-item {
949 @include lightDark(border-color, #DDD, #000);
950 @include lightDark(background-color, #FFF, #222);
952 border-radius: 3px 3px 0 0;
960 .scroll-box-search + .scroll-box,
961 .scroll-box-header-item + .scroll-box {
962 border-radius: 0 0 3px 3px;
965 .scroll-box[refs="shelf-sort@shelf-book-list"] [data-action="add"] {
968 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="remove"],
969 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_up"],
970 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_down"],