]> BookStack Code Mirror - bookstack/blob - resources/sass/_components.scss
Dropzone: Polished image manager elements
[bookstack] / resources / sass / _components.scss
1
2 // System wide notifications
3 .notification {
4   position: fixed;
5   top: 0;
6   right: 0;
7   margin: $-xl;
8   padding: $-m $-l;
9   background-color: #FFF;
10   @include lightDark(background-color, #fff, #444);
11   border-radius: 4px;
12   border-inline-start: 6px solid currentColor;
13   box-shadow: $bs-large;
14   z-index: 999999;
15   cursor: pointer;
16   max-width: 360px;
17   transition: transform ease-in-out 280ms;
18   transform: translateX(580px);
19   display: grid;
20   grid-template-columns: 42px 1fr 12px;
21   color: #444;
22   font-weight: 700;
23   span, svg {
24     vertical-align: middle;
25     justify-self: center;
26     align-self: center;
27   }
28   svg {
29     width: 2.8rem;
30     height: 2.8rem;
31     padding-inline-end: $-s;
32     fill: currentColor;
33   }
34   .dismiss {
35     margin-top: -8px;
36     svg {
37       height: 1.0rem;
38       @include lightDark(color, #444, #888);
39     }
40   }
41   span {
42     vertical-align: middle;
43     line-height: 1.3;
44     @include whenDark {
45       color: #BBB;
46     }
47   }
48   &.pos {
49     color: $positive;
50   }
51   &.neg {
52     color: $negative;
53   }
54   &.warning {
55     color: $warning;
56   }
57   &.showing {
58     transform: translateX(0);
59   }
60   &.showing:hover {
61     transform: translate3d(0, -2px, 0);
62   }
63 }
64
65 .chapter-contents-toggle {
66   cursor: pointer;
67   margin: 0;
68   transition: all ease-in-out 180ms;
69   user-select: none;
70   svg[data-icon="caret-right"] {
71     margin-inline-end: 0;
72     font-size: 1rem;
73     transition: all ease-in-out 180ms;
74     transform: rotate(0deg);
75     transform-origin: 50% 50%;
76   }
77   &.open svg[data-icon="caret-right"] {
78     transform: rotate(90deg);
79   }
80   svg[data-icon="caret-right"] + * {
81     margin-inline-start: $-xxs;
82   }
83 }
84
85 [overlay], .popup-background {
86   @include lightDark(background-color, rgba(0, 0, 0, 0.333), rgba(0, 0, 0, 0.6));
87   position: fixed;
88   z-index: 95536;
89   width: 100%;
90   height: 100%;
91   min-width: 100%;
92   min-height: 100%;
93   top: 0;
94   left: 0;
95   right: 0;
96   bottom: 0;
97   align-items: center;
98   justify-content: center;
99   display: none;
100 }
101
102 .popup-body-wrap {
103   display: flex;
104 }
105
106 .popup-body {
107   @include lightDark(background-color, #fff, #333);
108   max-height: 90%;
109   max-width: 1200px;
110   width: 90%;
111   height: auto;
112   margin: 2% auto;
113   border-radius: 4px;
114   box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.3);
115   overflow: hidden;
116   z-index: 999;
117   display: flex;
118   flex-direction: column;
119   position: relative;
120   &.small {
121     margin: 2% auto;
122     width: 800px;
123     max-width: 90%;
124   }
125   &.very-small {
126     margin: 2% auto;
127     width: 600px;
128     max-width: 90%;
129   }
130   &:before {
131     display: flex;
132     align-self: flex-start;
133   }
134   .popup-content {
135     overflow-y: auto;
136   }
137   &:focus {
138     outline: 0;
139   }
140 }
141
142 .popup-header button, .popup-footer button {
143   margin: 0;
144   border-radius: 0;
145   box-shadow: none;
146   color: #FFF;
147   padding: $-xs $-m;
148   cursor: pointer;
149 }
150
151 .popup-header button:not(.popup-header-close) {
152   font-size: 0.8rem;
153 }
154
155 .popup-header button:hover {
156     background-color: rgba(255, 255, 255, 0.1);
157 }
158
159 .popup-footer {
160   justify-content: end;
161   background-color: var(--color-primary-light);
162   min-height: 41px;
163   button {
164     padding: 10px $-m;
165   }
166 }
167
168 .popup-header-close {
169   border: 0;
170   color: #FFF;
171   font-size: 16px;
172   cursor: pointer;
173   svg {
174     margin-right: 0;
175   }
176 }
177
178 .popup-header, .popup-footer {
179   display: flex;
180   position: relative;
181   height: 40px;
182   flex: 0;
183   .popup-title {
184     color: #FFF;
185     margin-right: auto;
186     padding: 8px $-m;
187   }
188   &.flex-container-row {
189     display: flex !important;
190   }
191 }
192 body.flexbox-support #entity-selector-wrap .popup-body .form-group {
193   height: 444px;
194   min-height: 444px;
195 }
196 #entity-selector-wrap .popup-body .form-group {
197   margin: 0;
198 }
199 .popup-body .entity-selector-container {
200   flex: 1;
201 }
202
203 .image-manager-body {
204   min-height: 70vh;
205 }
206
207 .dropzone-overlay {
208   position: absolute;
209   display: flex;
210   justify-content: center;
211   align-items: center;
212   font-size: 1.333rem;
213   width: 98%;
214   height: 98%;
215   left: 1%;
216   top: 1%;
217   border-radius: 4px;
218   border: 1px dashed var(--color-primary);
219   font-style: italic;
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);
224   color: #FFF;
225   opacity: .8;
226   z-index: 9;
227   pointer-events: none;
228   animation: dzAnimIn 240ms ease-in-out;
229 }
230
231 @keyframes dzAnimIn {
232   0% {
233     opacity: 0;
234     transform: scale(.7);
235   }
236   60% {
237     transform: scale(1.1);
238   }
239   100% {
240     transform: scale(1);
241     opacity: .8;
242   }
243 }
244
245 @keyframes dzFileItemIn {
246   0% {
247     opacity: .5;
248     transform: translateY(28px);
249   }
250   100% {
251     opacity: 1;
252     transform: translateY(0);
253   }
254 }
255 @keyframes dzFileItemOut {
256   0% {
257     opacity: 1;
258     transform: translateY(0);
259   }
260   100% {
261     opacity: .5;
262     transform: translateY(28px);
263   }
264 }
265
266 .dropzone-file-item {
267   width: 260px;
268   height: 80px;
269   position: relative;
270   display: flex;
271   margin: 1rem;
272   flex-direction: row;
273   background-color: #FFF;
274   box-shadow: $bs-large;
275   border-radius: 4px;
276   overflow: hidden;
277   padding-bottom: 3px;
278   animation: dzFileItemIn ease-in-out 240ms;
279   transition: transform ease-in-out 120ms, box-shadow ease-in-out 120ms;
280   cursor: pointer;
281   &:hover {
282     transform: translateY(-3px);
283     box-shadow: 0 3px 8px 1px rgba(22, 22, 22, 0.2);
284   }
285 }
286 .dropzone-file-item.dismiss {
287   animation: dzFileItemOut ease-in-out 240ms;
288 }
289 .dropzone-file-item .loading-container {
290   text-align: start !important;
291   margin: 0;
292 }
293 .dropzone-file-item-image-wrap {
294   width: 80px;
295   position: relative;
296   background-color: var(--color-primary-light);
297   img {
298     object-fit: cover;
299     width: 100%;
300     height: 100%;
301     opacity: .8;
302   }
303 }
304 .dropzone-file-item-text-wrap {
305   flex: 1;
306   display: block;
307   padding: 1rem;
308   overflow: auto;
309 }
310 .dropzone-file-item-progress {
311   position: absolute;
312   bottom: 0;
313   left: 0;
314   font-size: 0;
315   height: 3px;
316   background-color: var(--color-primary);
317   transition: width ease-in-out 240ms;
318 }
319 .dropzone-file-item-label,
320 .dropzone-file-item-status {
321   align-items: center;
322   font-size: .9rem;
323   font-weight: 700;
324 }
325 .dropzone-file-item-status[data-status] {
326   display: flex;
327   font-size: .6rem;
328   font-weight: 500;
329   line-height: 1.2;
330 }
331 .dropzone-file-item-status[data-status="success"] {
332   color: $positive;
333 }
334 .dropzone-file-item-status[data-status="error"] {
335   color: $negative;
336 }
337 .dropzone-file-item-status[data-status] + .dropzone-file-item-label {
338   display: none;
339 }
340
341 .image-manager-list .image {
342   display: block;
343   position: relative;
344   border-radius: 0;
345   float: left;
346   margin: 0;
347   cursor: pointer;
348   width: math.div(100%, 6);
349   height: auto;
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;
353   overflow: hidden;
354   &.selected {
355     transform: scale3d(0.92, 0.92, 0.92);
356     outline: currentColor 2px solid;
357   }
358   img {
359     width: 100%;
360     max-width: 100%;
361     display: block;
362   }
363   .image-meta {
364     position: absolute;
365     width: 100%;
366     bottom: 0;
367     left: 0;
368     color: #EEE;
369     background-color: rgba(0, 0, 0, 0.4);
370     font-size: 10px;
371     padding: 3px 4px;
372     span {
373       display: block;
374     }
375   }
376   @include smaller-than($xl) {
377     width: math.div(100%, 4);
378   }
379   @include smaller-than($m) {
380     .image-meta {
381       display: none;
382     }
383   }
384 }
385
386 .image-manager .load-more {
387   display: block;
388   text-align: center;
389   @include lightDark(background-color, #EEE, #444);
390   padding: $-s $-m;
391   color: #AAA;
392   clear: both;
393   font-size: 20px;
394   cursor: pointer;
395   font-style: italic;
396 }
397
398 .image-manager .loading-container {
399   text-align: center;
400 }
401
402 .image-manager-sidebar {
403   width: 300px;
404   overflow-y: auto;
405   overflow-x: hidden;
406   border-inline-start: 1px solid #DDD;
407   @include lightDark(border-color, #ddd, #000);
408   .inner {
409     min-height: auto;
410     padding: $-m;
411   }
412   .image-manager-viewer img {
413     max-width: 100%;
414     max-height: 180px;
415     display: block;
416     margin: 0 auto $-m auto;
417     box-shadow: 0 1px 21px 1px rgba(76, 76, 76, 0.3);
418   }
419   .image-manager-viewer {
420     height: 196px;
421     display: flex;
422     align-items: center;
423     justify-content: center;
424     a {
425       display: inline-block;
426     }
427   }
428 }
429
430 .image-manager-list {
431   overflow-y: scroll;
432   flex: 1;
433 }
434
435 .image-manager-content {
436   display: flex;
437   flex-direction: column;
438   flex: 1;
439   .container {
440     width: 100%;
441   }
442   .full-tab {
443     text-align: center;
444   }
445 }
446
447 .tab-container [role="tablist"] {
448   display: flex;
449   align-items: end;
450   justify-items: start;
451   text-align: start;
452   border-bottom: 1px solid #DDD;
453   @include lightDark(border-color, #ddd, #444);
454   margin-bottom: $-m;
455 }
456
457 .tab-container [role="tablist"] button[role="tab"],
458 .image-manager [role="tablist"] button[role="tab"] {
459   display: inline-block;
460   padding: $-s;
461   @include lightDark(color, rgba(0, 0, 0, .5), rgba(255, 255, 255, .5));
462   cursor: pointer;
463   border-bottom: 2px solid transparent;
464   margin-bottom: -1px;
465   &[aria-selected="true"] {
466     color: var(--color-link) !important;
467     border-bottom-color: var(--color-link) !important;
468   }
469   &:hover, &:focus {
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));
472   }
473 }
474 .tab-container [role="tablist"].controls-card {
475   margin-bottom: 0;
476   border-bottom: 0;
477   padding: 0 $-xs;
478 }
479
480 .image-picker .none {
481   display: none;
482 }
483
484 .code-editor .CodeMirror {
485   height: auto;
486   min-height: 50vh;
487   border-bottom: 0;
488 }
489
490 .code-editor .lang-options {
491   overflow-y: scroll;
492   flex-basis: 200px;
493   flex-grow: 1;
494 }
495
496 .code-editor .lang-options button {
497   display: block;
498   padding: $-xs $-m;
499   border-bottom: 1px solid;
500   @include lightDark(color, #333, #AAA);
501   @include lightDark(border-bottom-color, #EEE, #000);
502   cursor: pointer;
503   width: 100%;
504   text-align: left;
505   font-family: $mono;
506   font-size: 0.7rem;
507   padding-left: 24px + $-xs;
508   &:hover, &.active {
509     background-color: var(--color-primary-light);
510     color: var(--color-primary);
511   }
512 }
513
514 .code-editor button.lang-option-favorite-toggle {
515   position: absolute;
516   top: 0;
517   left: 0;
518   width: 28px;
519   font-size: 1rem;
520   border: 0;
521   line-height: 1;
522   padding: 2px;
523   z-index: 2;
524   height: 100%;
525   text-align: center;
526   color: var(--color-primary);
527   svg {
528     margin: 0;
529   }
530 }
531
532 .code-editor button[data-favourite="true"] ~ .action-favourite,
533 .code-editor button[data-favourite="false"] ~ .action-unfavourite {
534   display: none;
535 }
536
537 .code-editor .action-favourite {
538   opacity: 0.5;
539 }
540 .code-editor button:hover ~ .action-favourite {
541   opacity: 1;
542 }
543
544 .code-editor label {
545   background-color: var(--color-primary-light);
546   width: 100%;
547   color: var(--color-primary);
548   padding: $-xxs $-s;
549   margin-bottom: 0;
550 }
551
552 .code-editor-language-list {
553   position: relative;
554   width: 160px;
555   z-index: 2;
556   align-items: stretch;
557 }
558
559 .code-editor-language-list input {
560   border-radius: 0;
561   border: 0;
562   border-bottom: 1px solid #DDD;
563   padding: $-xs $-s;
564   height: auto;
565 }
566
567 .code-editor-main {
568   flex: 1;
569   min-width: 0;
570   .cm-editor {
571     margin-bottom: 0;
572     z-index: 1;
573     max-width: 100%;
574     width: 100%;
575   }
576 }
577
578 .code-editor-body-wrap {
579   height: 80vh;
580 }
581
582 @include smaller-than($s) {
583   .code-editor .lang-options {
584     display: none;
585   }
586   .code-editor-body-wrap {
587     flex-direction: column;
588   }
589   .code-editor-language-list, .code-editor-language-list input {
590     width: 100%;
591   }
592 }
593
594 .comment-box {
595   border-radius: 4px;
596   border: 1px solid #DDD;
597   @include lightDark(border-color, #ddd, #000);
598   @include lightDark(background-color, #FFF, #222);
599   .content {
600     font-size: 0.666em;
601     p, ul, ol {
602       font-size: $fs-m;
603       margin: .5em 0;
604     }
605   }
606   .actions {
607     opacity: 0;
608     transition: opacity ease-in-out 120ms;
609   }
610   &:hover .actions, &:focus-within .actions {
611     opacity: 1;
612   }
613 }
614
615 .comment-box .header {
616   .meta {
617     img, a, span {
618       display: inline-block;
619       vertical-align: top;
620     }
621     a, span {
622       padding: $-xxs 0 $-xxs 0;
623       line-height: 1.6;
624     }
625     a { color: #666; }
626     span {
627       padding-inline-start: $-xxs;
628     }
629   }
630   .text-muted {
631     color: #999;
632   }
633 }
634
635 #tag-manager .drag-card {
636   max-width: 500px;
637 }
638
639 .template-item {
640   cursor: pointer;
641   position: relative;
642   &:hover, .template-item-actions button:hover {
643     background-color: #F2F2F2;
644   }
645   .template-item-actions {
646     position: absolute;
647     top: 0;
648     inset-inline-end: 0;
649     width: 50px;
650     height: 100%;
651     display: flex;
652     flex-direction: column;
653     border-inline-start: 1px solid;
654     @include lightDark(border-color, #ddd, #000);
655   }
656   .template-item-actions button {
657     cursor: pointer;
658     flex: 1;
659     @include lightDark(background-color, #FFF, #222);
660     border: 0;
661     border-top: 1px solid;
662     @include lightDark(border-color, #DDD, #000);
663   }
664   .template-item-actions button svg {
665     margin: 0;
666   }
667   .template-item-actions button:first-child {
668     border-top: 0;
669   }
670 }
671
672
673 .dropdown-search {
674   position: relative;
675 }
676 .dropdown-search-toggle-breadcrumb {
677   border: 1px solid transparent;
678   border-radius: 4px;
679   line-height: normal;
680   padding: $-xs;
681   &:hover {
682     border-color: #DDD;
683   }
684   .svg-icon {
685     margin-inline-end: 0;
686   }
687 }
688 .dropdown-search-toggle-select {
689   display: flex;
690   gap: $-s;
691   line-height: normal;
692   .svg-icon {
693     height: 26px;
694     width: 26px;
695     margin: 0;
696   }
697   .avatar {
698     height: 22px;
699     width: 22px;
700   }
701   .avatar + span {
702     max-width: 100%;
703     overflow: hidden;
704     text-overflow: ellipsis;
705     white-space: nowrap;
706   }
707   .dropdown-search-toggle-caret {
708     font-size: 1.15rem;
709   }
710 }
711 .dropdown-search-toggle-select-label {
712   min-width: 0;
713   white-space: nowrap;
714 }
715 .dropdown-search-toggle-select-caret {
716   line-height: 0;
717   margin-left: auto;
718   margin-top: -2px;
719   display: flex;
720   align-items: center;
721 }
722
723 .dropdown-search-dropdown {
724   box-shadow: $bs-med;
725   overflow: hidden;
726   min-height: 100px;
727   width: 240px;
728   display: none;
729   position: absolute;
730   z-index: 80;
731   right: 0;
732   top: 0;
733   margin-top: $-m;
734   @include rtl {
735     right: auto;
736     left: -$-m;
737   }
738   .dropdown-search-search .svg-icon {
739     position: absolute;
740     left: $-s;
741     @include rtl {
742       right: $-s;
743       left: auto;
744     }
745     top: 11px;
746     fill: #888;
747     pointer-events: none;
748   }
749   .dropdown-search-list {
750     max-height: 400px;
751     overflow-y: scroll;
752     text-align: start;
753   }
754   .dropdown-search-item {
755     padding: $-s $-m;
756     &:hover,&:focus {
757       background-color: #F2F2F2;
758       text-decoration: none;
759     }
760   }
761   input, input:focus {
762     padding-inline-start: $-xl;
763     border-radius: 0;
764     border: 0;
765     border-bottom: 1px solid #DDD;
766   }
767   input:focus {
768     outline: 0;
769   }
770 }
771
772 @include smaller-than($m) {
773   .dropdown-search-dropdown {
774     position: fixed;
775     right: auto;
776     left: $-m;
777   }
778   .dropdown-search-dropdown .dropdown-search-list {
779     max-height: 240px;
780   }
781 }
782
783 .item-list {
784   box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
785 }
786 .item-list-row {
787   border: 1.5px solid;
788   @include lightDark(border-color, #E2E2E2, #444);
789   border-bottom-width: 0;
790   label {
791     padding-bottom: 0;
792   }
793   &:hover {
794     @include lightDark(background-color, #F6F6F6, #333);
795   }
796 }
797 .item-list-row:first-child {
798   border-radius: 4px 4px 0 0;
799 }
800 .item-list-row:last-child {
801   border-radius: 0 0 4px 4px;
802   border-bottom-width: 1.5px;
803 }
804 .item-list-row:first-child:last-child {
805   border-radius: 4px;
806 }
807 .item-list-row-toggle-all {
808   visibility: hidden;
809 }
810 .item-list-row:hover .item-list-row-toggle-all {
811   visibility: visible;
812 }
813
814 .status-indicator-active, .status-indicator-inactive {
815   width: 8px;
816   height: 8px;
817   border-radius: 50%;
818   display: inline-block;
819 }
820 .status-indicator-active {
821   background-color: $positive;
822 }
823 .status-indicator-inactive {
824   background-color: $negative;
825 }
826
827 .shortcut-container {
828   background-color: rgba(0, 0, 0, 0.25);
829   pointer-events: none;
830   position: fixed;
831   left: 0;
832   top: 0;
833   width: 100%;
834   height: 100%;
835   z-index: 99;
836 }
837 .shortcut-linkage {
838   position: fixed;
839   box-shadow: 0 0 4px 0 #FFF;
840   border-radius: 3px;
841 }
842 .shortcut-hint {
843   position: fixed;
844   padding: $-xxs $-xxs;
845   font-size: .85rem;
846   font-weight: 700;
847   line-height: 1;
848   background-color: #eee;
849   border-radius: 3px;
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;
852   color: #333;
853 }
854
855 // Back to top link
856 $btt-size: 40px;
857 .back-to-top {
858   background-color: var(--color-primary);
859   position: fixed;
860   bottom: $-m;
861   right: $-l;
862   padding: 5px 7px;
863   cursor: pointer;
864   color: #FFF;
865   fill: #FFF;
866   svg {
867     width: math.div($btt-size, 1.5);
868     height: math.div($btt-size, 1.5);
869     margin-inline-end: 4px;
870   }
871   width: $btt-size;
872   height: $btt-size;
873   border-radius: $btt-size;
874   transition: all ease-in-out 180ms;
875   opacity: 0;
876   z-index: 999;
877   overflow: hidden;
878   &:hover {
879     width: $btt-size*3.4;
880     opacity: 1 !important;
881   }
882   .inner {
883     width: $btt-size*3.4;
884   }
885   span {
886     position: relative;
887     vertical-align: top;
888     line-height: 2;
889   }
890 }
891
892 // Sortable scroll boxes
893 .scroll-box {
894   list-style: none;
895   padding: 0;
896   margin: 0;
897   max-height: 280px;
898   overflow-y: scroll;
899   border: 1px solid;
900   @include lightDark(border-color, #DDD, #000);
901   border-radius: 3px;
902   min-height: 20px;
903   @include lightDark(background-color, #EEE, #000);
904 }
905 .scroll-box-item {
906   border-bottom: 1px solid;
907   border-top: 1px solid;
908   @include lightDark(border-color, #DDD, #000);
909   margin-top: -1px;
910   @include lightDark(background-color, #FFF, #222);
911   display: flex;
912   align-items: flex-start;
913   padding: 1px;
914   &:last-child {
915     border-bottom: 0;
916   }
917   &:hover {
918     cursor: pointer;
919     @include lightDark(background-color, #f8f8f8, #333);
920   }
921   .handle {
922     color: #AAA;
923     cursor: grab;
924   }
925   button {
926     opacity: .6;
927   }
928   .handle svg {
929     margin: 0;
930   }
931   > * {
932     padding: $-xs $-m;
933   }
934   .handle + * {
935     padding-left: 0;
936   }
937   &:hover .handle {
938     @include lightDark(color, #444, #FFF);
939   }
940   &:hover button {
941     opacity: 1;
942   }
943   a:hover {
944     text-decoration: none;
945   }
946 }
947
948 input.scroll-box-search, .scroll-box-header-item {
949   font-size: 0.8rem;
950   border: 1px solid;
951   @include lightDark(border-color, #DDD, #000);
952   @include lightDark(background-color, #FFF, #222);
953   margin-bottom: -1px;
954   border-radius: 3px 3px 0 0;
955   width: 100%;
956   max-width: 100%;
957   height: auto;
958   line-height: 1.4;
959   color: #666;
960 }
961
962 .scroll-box-search + .scroll-box,
963 .scroll-box-header-item + .scroll-box {
964   border-radius: 0 0 3px 3px;
965 }
966
967 .scroll-box[refs="shelf-sort@shelf-book-list"] [data-action="add"] {
968   display: none;
969 }
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"],
973 {
974   display: none;
975 }