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;
216 background-color: var(--color-primary);
217 border: 4px dashed rgba(0, 0, 0, 0.5);
222 box-sizing: border-box;
223 pointer-events: none;
224 animation: dzAnimIn 240ms ease-in-out;
227 @keyframes dzAnimIn {
230 transform: scale(.7);
233 transform: scale(1.1);
241 @keyframes dzFileItemIn {
244 transform: translateY(28px);
248 transform: translateY(0);
252 .dropzone-file-item {
259 background-color: #FFF;
260 box-shadow: $bs-large;
264 animation: dzFileItemIn ease-in-out 240ms;
266 .dropzone-file-item .loading-container {
267 text-align: start !important;
270 .dropzone-file-item-image-wrap {
280 .dropzone-file-item-text-wrap {
286 .dropzone-file-item-progress {
292 background-color: var(--color-primary);
293 transition: width ease-in-out 240ms;
295 .dropzone-file-item-label,
296 .dropzone-file-item-status {
301 .dropzone-file-item-status[data-status] {
307 .dropzone-file-item-status[data-status="success"] {
310 .dropzone-file-item-status[data-status="error"] {
313 .dropzone-file-item-status[data-status] + .dropzone-file-item-label {
317 .dropzone-container {
319 @include lightDark(background-color, #eee, #222);
320 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");
323 .image-manager-list .image {
330 width: math.div(100%, 6);
332 @include lightDark(border-color, #ddd, #000);
333 box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
334 transition: all cubic-bezier(.4, 0, 1, 1) 160ms;
337 transform: scale3d(0.92, 0.92, 0.92);
338 outline: currentColor 2px solid;
351 background-color: rgba(0, 0, 0, 0.4);
358 @include smaller-than($xl) {
359 width: math.div(100%, 4);
361 @include smaller-than($m) {
368 .image-manager .load-more {
371 @include lightDark(background-color, #EEE, #444);
380 .image-manager .loading-container {
384 .image-manager-sidebar {
388 border-inline-start: 1px solid #DDD;
389 @include lightDark(border-color, #ddd, #000);
398 margin: 0 auto $-m auto;
399 box-shadow: 0 1px 21px 1px rgba(76, 76, 76, 0.3);
401 .image-manager-viewer {
405 justify-content: center;
407 display: inline-block;
410 .dropzone-container {
411 border-bottom: 1px solid #DDD;
412 @include lightDark(border-color, #ddd, #000);
416 .image-manager-list {
421 .image-manager-content {
423 flex-direction: column;
446 transition: all ease-in-out 120ms;
449 .dz-drag-hover .dz-message {
450 background-color: rgb(16, 126, 210);
454 @keyframes passing-through {
457 transform: translateY(40px);
461 transform: translateY(0px);
465 transform: translateY(-40px);
469 @keyframes slide-in {
472 transform: translateY(40px);
476 transform: translateY(0px);
485 transform: scale(1.1);
492 .dropzone, .dropzone * {
493 box-sizing: border-box;
498 display: inline-block;
508 .dz-preview:hover .dz-details {
512 .dz-preview.dz-file-preview .dz-image {
517 .dz-preview.dz-file-preview .dz-details {
521 .dz-preview.dz-image-preview {
525 .dz-preview.dz-image-preview .dz-details {
526 transition: opacity 0.2s linear;
529 .dz-preview .dz-remove {
538 .dz-preview .dz-remove:hover {
539 text-decoration: underline;
542 .dz-preview:hover .dz-details {
546 .dz-preview .dz-details {
557 color: rgba(0, 0, 0, 0.9);
561 .dz-preview .dz-details .dz-size {
562 margin-bottom: 0.5em;
566 .dz-preview .dz-details .dz-filename {
570 .dz-preview .dz-details .dz-filename:hover span {
571 border: 1px solid rgba(200, 200, 200, 0.8);
572 background-color: rgba(255, 255, 255, 0.8);
575 .dz-preview .dz-details .dz-filename:not(:hover) {
577 text-overflow: ellipsis;
580 .dz-preview .dz-details .dz-filename:not(:hover) span {
581 border: 1px solid transparent;
584 .dz-preview .dz-details .dz-filename span {
585 background-color: rgba(255, 255, 255, 0.4);
590 .dz-preview:hover .dz-image img {
594 .dz-preview .dz-image {
604 .dz-preview .dz-image img {
608 .dz-preview.dz-success .dz-success-mark {
609 animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
612 .dz-preview.dz-error .dz-error-mark {
614 animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
617 .dz-preview .dz-success-mark, .dz-preview .dz-error-mark {
618 pointer-events: none;
625 margin-inline-start: -27px;
629 .dz-preview .dz-success-mark svg, .dz-preview .dz-error-mark svg {
635 .dz-preview.dz-processing .dz-progress {
637 transition: all 0.2s linear;
640 .dz-preview.dz-complete .dz-progress {
642 transition: opacity 0.4s ease-in;
645 .dz-preview:not(.dz-processing) .dz-progress {
646 animation: pulse 6s ease infinite;
649 .dz-preview .dz-progress {
652 pointer-events: none;
659 margin-inline-start: -40px;
660 background: rgba(255, 255, 255, 0.9);
666 .dz-preview .dz-progress .dz-upload {
668 background: linear-gradient(to bottom, #666, #444);
674 transition: width 300ms ease-in-out;
677 .dz-preview.dz-error .dz-error-message {
681 .dz-preview.dz-error {
682 .dz-image, .dz-details {
683 &:hover ~ .dz-error-message {
685 pointer-events: auto;
690 .dz-preview .dz-error-message {
691 pointer-events: none;
697 transition: opacity 0.3s ease;
704 background: $negative;
709 .dz-preview .dz-error-message:after {
716 border-inline-start: 6px solid transparent;
717 border-inline-end: 6px solid transparent;
718 border-bottom: 6px solid $negative;
722 .tab-container [role="tablist"] {
725 justify-items: start;
727 border-bottom: 1px solid #DDD;
728 @include lightDark(border-color, #ddd, #444);
732 .tab-container [role="tablist"] button[role="tab"],
733 .image-manager [role="tablist"] button[role="tab"] {
734 display: inline-block;
736 @include lightDark(color, rgba(0, 0, 0, .5), rgba(255, 255, 255, .5));
738 border-bottom: 2px solid transparent;
740 &[aria-selected="true"] {
741 color: var(--color-link) !important;
742 border-bottom-color: var(--color-link) !important;
745 @include lightDark(color, rgba(0, 0, 0, .8), rgba(255, 255, 255, .8));
746 @include lightDark(border-bottom-color, rgba(0, 0, 0, .2), rgba(255, 255, 255, .2));
749 .tab-container [role="tablist"].controls-card {
755 .image-picker .none {
759 .code-editor .CodeMirror {
765 .code-editor .lang-options {
771 .code-editor .lang-options button {
774 border-bottom: 1px solid;
775 @include lightDark(color, #333, #AAA);
776 @include lightDark(border-bottom-color, #EEE, #000);
782 padding-left: 24px + $-xs;
784 background-color: var(--color-primary-light);
785 color: var(--color-primary);
789 .code-editor button.lang-option-favorite-toggle {
801 color: var(--color-primary);
807 .code-editor button[data-favourite="true"] ~ .action-favourite,
808 .code-editor button[data-favourite="false"] ~ .action-unfavourite {
812 .code-editor .action-favourite {
815 .code-editor button:hover ~ .action-favourite {
820 background-color: var(--color-primary-light);
822 color: var(--color-primary);
827 .code-editor-language-list {
831 align-items: stretch;
834 .code-editor-language-list input {
837 border-bottom: 1px solid #DDD;
853 .code-editor-body-wrap {
857 @include smaller-than($s) {
858 .code-editor .lang-options {
861 .code-editor-body-wrap {
862 flex-direction: column;
864 .code-editor-language-list, .code-editor-language-list input {
871 border: 1px solid #DDD;
872 @include lightDark(border-color, #ddd, #000);
873 @include lightDark(background-color, #FFF, #222);
883 transition: opacity ease-in-out 120ms;
885 &:hover .actions, &:focus-within .actions {
890 .comment-box .header {
893 display: inline-block;
897 padding: $-xxs 0 $-xxs 0;
902 padding-inline-start: $-xxs;
910 #tag-manager .drag-card {
917 &:hover, .template-item-actions button:hover {
918 background-color: #F2F2F2;
920 .template-item-actions {
927 flex-direction: column;
928 border-inline-start: 1px solid;
929 @include lightDark(border-color, #ddd, #000);
931 .template-item-actions button {
934 @include lightDark(background-color, #FFF, #222);
936 border-top: 1px solid;
937 @include lightDark(border-color, #DDD, #000);
939 .template-item-actions button svg {
942 .template-item-actions button:first-child {
951 .dropdown-search-toggle-breadcrumb {
952 border: 1px solid transparent;
960 margin-inline-end: 0;
963 .dropdown-search-toggle-select {
979 text-overflow: ellipsis;
982 .dropdown-search-toggle-caret {
986 .dropdown-search-toggle-select-label {
990 .dropdown-search-toggle-select-caret {
998 .dropdown-search-dropdown {
1013 .dropdown-search-search .svg-icon {
1022 pointer-events: none;
1024 .dropdown-search-list {
1029 .dropdown-search-item {
1032 background-color: #F2F2F2;
1033 text-decoration: none;
1036 input, input:focus {
1037 padding-inline-start: $-xl;
1040 border-bottom: 1px solid #DDD;
1047 @include smaller-than($m) {
1048 .dropdown-search-dropdown {
1053 .dropdown-search-dropdown .dropdown-search-list {
1059 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
1062 border: 1.5px solid;
1063 @include lightDark(border-color, #E2E2E2, #444);
1064 border-bottom-width: 0;
1069 @include lightDark(background-color, #F6F6F6, #333);
1072 .item-list-row:first-child {
1073 border-radius: 4px 4px 0 0;
1075 .item-list-row:last-child {
1076 border-radius: 0 0 4px 4px;
1077 border-bottom-width: 1.5px;
1079 .item-list-row:first-child:last-child {
1082 .item-list-row-toggle-all {
1085 .item-list-row:hover .item-list-row-toggle-all {
1086 visibility: visible;
1089 .status-indicator-active, .status-indicator-inactive {
1093 display: inline-block;
1095 .status-indicator-active {
1096 background-color: $positive;
1098 .status-indicator-inactive {
1099 background-color: $negative;
1102 .shortcut-container {
1103 background-color: rgba(0, 0, 0, 0.25);
1104 pointer-events: none;
1114 box-shadow: 0 0 4px 0 #FFF;
1119 padding: $-xxs $-xxs;
1123 background-color: #eee;
1125 border: 1px solid #b4b4b4;
1126 box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset;
1133 background-color: var(--color-primary);
1142 width: math.div($btt-size, 1.5);
1143 height: math.div($btt-size, 1.5);
1144 margin-inline-end: 4px;
1148 border-radius: $btt-size;
1149 transition: all ease-in-out 180ms;
1154 width: $btt-size*3.4;
1155 opacity: 1 !important;
1158 width: $btt-size*3.4;
1162 vertical-align: top;
1167 // Sortable scroll boxes
1175 @include lightDark(border-color, #DDD, #000);
1178 @include lightDark(background-color, #EEE, #000);
1181 border-bottom: 1px solid;
1182 border-top: 1px solid;
1183 @include lightDark(border-color, #DDD, #000);
1185 @include lightDark(background-color, #FFF, #222);
1187 align-items: flex-start;
1194 @include lightDark(background-color, #f8f8f8, #333);
1213 @include lightDark(color, #444, #FFF);
1219 text-decoration: none;
1223 input.scroll-box-search, .scroll-box-header-item {
1226 @include lightDark(border-color, #DDD, #000);
1227 @include lightDark(background-color, #FFF, #222);
1228 margin-bottom: -1px;
1229 border-radius: 3px 3px 0 0;
1237 .scroll-box-search + .scroll-box,
1238 .scroll-box-header-item + .scroll-box {
1239 border-radius: 0 0 3px 3px;
1242 .scroll-box[refs="shelf-sort@shelf-book-list"] [data-action="add"] {
1245 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="remove"],
1246 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_up"],
1247 .scroll-box[refs="shelf-sort@all-book-list"] [data-action="move_down"],