Upstream version 10.38.208.0
[platform/framework/web/crosswalk.git] / src / ui / file_manager / file_manager / foreground / css / file_manager.css
1 /* Copyright (c) 2014 The Chromium Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file. */
4
5 /* The order of z-index:
6  * - -1: text-measure
7  * - 2: drag-selection-border
8  * - 3: preview-panel
9  * - 500: scrollbar
10  * - 500: splitter
11  * - 525: spinner
12  * - 550: autocomplete-suggestions
13  * - 600: menus
14  * - 600: tooltip
15  * - 1000: preview thumbnail popup
16  * - 1000: overlay panel (ie. image editor)
17  */
18
19 /* Special attribute used in HTML to hide elements. */
20 body[type='folder'] [invisibleif~='folder'],
21 body[type='upload-folder'] [invisibleif~='upload-folder'],
22 body[type='saveas-file'] [invisibleif~='saveas-file'],
23 body[type='open-file'] [invisibleif~='open-file'],
24 body[type='open-multi-file'] [invisibleif~='open-multi-file'],
25 body[type='full-page'] [invisibleif~='full-page'],
26
27 body[type='folder'] [visibleif]:not([visibleif~='folder']),
28 body[type='upload-folder'] [visibleif]:not([visibleif~='upload-folder']),
29 body[type='saveas-file'] [visibleif]:not([visibleif~='saveas-file']),
30 body[type='open-file'] [visibleif]:not([visibleif~='open-file']),
31 body[type='open-multi-file'] [visibleif]:not([visibleif~='open-multi-file']),
32 body[type='full-page'] [visibleif]:not([visibleif~='full-page']) {
33   display: none !important;
34 }
35
36 html {
37   height: 100%;
38 }
39
40 html.col-resize * {
41   cursor: col-resize !important;
42 }
43
44 /* Outer frame of the dialog. */
45 body {
46   -webkit-tap-highlight-color: transparent;
47   -webkit-user-select: none;
48   cursor: default;
49   display: flex;
50   flex: auto;
51   flex-direction: column;
52   height: 100%;
53   margin: 0;
54   padding: 0;
55   width: 100%;
56 }
57
58 button:focus,
59 input[type='button']:focus,
60 input[type='submit']:focus,
61 select:focus,
62 a:focus {
63   outline-color: rgb(77, 144, 254);
64 }
65
66 /* Drop opacity of selected rows to give a visual feedback on copy/cut
67  * operation. */
68 .blink {
69   opacity: 0.8;
70 }
71
72 ::-webkit-scrollbar {
73   height: 0;
74   width: 0;
75 }
76
77 /* TODO(mtomasz): Flip scrollbars to the opposite side for RTL languages. */
78 .scrollbar-vertical {
79   bottom: 0;
80   flex: none;
81   position: absolute;
82   right: 0;
83   top: 0;
84   width: 10px;
85   z-index: 500;  /* Must be below the contextmenu (600). */
86 }
87
88 .scrollbar-button {
89   background-color: black;
90   border: 1px solid #ccc;
91   border-radius: 3px;
92   box-sizing: border-box;
93   height: 50%;
94   margin-right: 2px;
95   opacity: 0;
96   position: absolute;
97   transition: opacity 100ms;
98   width: 8px;
99 }
100
101 :hover > .scrollbar-vertical > .scrollbar-button,
102 .scrollbar-vertical > .scrollbar-button.scrolling {
103   opacity: 0.3;
104 }
105
106 .scrollbar-vertical > .scrollbar-button:hover {
107   opacity: 0.4;
108 }
109
110 .scrollbar-vertical > .scrollbar-button.pressed {
111   opacity: 0.5;
112 }
113
114 /* Main part of the dialog between header and footer. */
115 .dialog-container {
116   align-items: stretch;
117   background-color: white;  /* Makes #drag-container invisible. */
118   display: flex;
119   flex: auto;
120   flex-direction: row;
121   overflow: hidden;
122   position: relative;
123 }
124
125 /* The style applied when a modal dialog box overlap the dialog container. */
126 .dialog-container.disable-header-drag .dialog-navigation-list-header,
127 .dialog-container.disable-header-drag .dialog-header {
128   -webkit-app-region: no-drag;
129 }
130
131 /* List/grid and preview are inside this container. */
132 .dialog-main {
133   align-items: stretch;
134   display: flex;
135   flex: auto;
136   flex-direction: column;
137 }
138
139 /* Directory tree at the left. */
140 .dialog-navigation-list {
141   -webkit-border-end: 1px solid rgba(20, 20, 22, 0.1);
142   background-color: #f1f1f1;
143   display: flex;
144   flex: none;
145   flex-direction: column;
146   max-width: 40%;
147   min-width: 100px;
148   overflow: hidden;
149   position: relative;
150   width: 190px;
151 }
152
153 .dialog-navigation-list-header {
154   -webkit-app-region: drag;
155   flex: none;
156   height: 48px;  /* Keep in sync with #dialog-header. */
157   line-height: 45px;
158 }
159
160 .dialog-navigation-list-header #app-name {
161   color: #303030;
162   font-size: 130%;
163   margin: 0 15px;
164 }
165
166 .dialog-navigation-list-contents {
167   display: flex;
168   flex: 1 1 auto;
169   position: relative;
170 }
171
172 .dialog-navigation-list-footer {
173   display: flex;
174   flex: none;
175   flex-direction: column;
176 }
177
178 /* A vertical splitter between the roots list and the file list. It is actually
179    a transparent area centered on the roots list right border.*/
180 div.splitter {
181   cursor: col-resize;
182   flex: none;
183   margin-left: -3px;
184   margin-right: -3px;
185   position: relative;
186   width: 6px;
187   z-index: 500;  /* Must be below the contextmenu (600). */
188 }
189
190 #navigation-list {
191   display: flex;
192   flex: auto;
193   flex-direction: column;
194 }
195
196 #navigation-list > * {
197   height: 40px;
198   padding: 0 5px;
199 }
200
201 #navigation-list > .spacer {
202   flex: none;
203 }
204
205 #navigation-list > .accepts,
206 #navigation-list > [lead][selected],
207 #navigation-list > [lead],
208 #navigation-list > [selected],
209 #navigation-list > [anchor] {
210   background-color: rgb(225, 225, 225);
211 }
212
213 #navigation-list:focus > .accepts,
214 #navigation-list:focus > [lead][selected],
215 #navigation-list:focus > [lead],
216 #navigation-list:focus > [selected],
217 #navigation-list:focus > [anchor] {
218   background-color: rgb(66, 129, 244);
219   color: white;
220 }
221
222 #navigation-list li.root-item {
223   align-items: center;
224   display: flex;
225   flex: none;
226   line-height: 22px;  /* To accommodate for icons. */
227   padding-left: 11px;
228 }
229
230 #navigation-list li.root-item > .root-label {
231   flex: auto;
232   margin: 0 2px;
233   overflow: hidden;
234   text-overflow: ellipsis;
235   white-space: nowrap;
236 }
237
238 #navigation-list .volume-icon {
239   background-repeat: no-repeat;
240   flex: none;
241   height: 24px;
242   width: 24px;
243 }
244
245 #middlebar-header {
246   -webkit-border-end: 1px solid rgba(20, 20, 22, 0.1);
247   -webkit-box-sizing: border-box;
248   -webkit-padding-start: 20px;
249   color: rgb(100, 100, 100);
250   flex: none;
251   height: 47px;
252   line-height: 40px;
253   overflow-x: hidden;
254   position: absolute;
255   text-overflow: ellipsis;
256   width: 100%;
257 }
258
259 #directory-tree {
260   bottom: 0;
261   flex: none;
262   left: 0;
263   overflow-x: hidden;
264   overflow-y: auto;
265   padding-bottom: 0;  /* For the preview panel. Will be overridden by JS. */
266   position: absolute;
267   right: 0;
268   top: 0;
269 }
270
271 #directory-tree .tree-row {
272   align-items: center;
273   cursor: pointer;
274   display: flex;
275   line-height: 29px;
276   padding: 0 3px;
277 }
278
279 /* For rows of subitems (non-top items) */
280 #directory-tree .tree-children .tree-row {
281   line-height: 29px;
282 }
283
284 #directory-tree .tree-row > .expand-icon {
285   flex: none;
286   height: 37px;
287   left: 3px;
288   margin: -12px -10px -13px -13px;
289   right: 3px;
290   top: 0;
291   width: 37px;
292 }
293
294 #directory-tree:focus .tree-row[selected] > .expand-icon {
295   background-image: -webkit-canvas(tree-triangle-inverted);
296 }
297
298 #directory-tree .tree-row > .volume-icon {
299   background-position: center 3px;
300   background-repeat: no-repeat;
301   flex: none;
302   height: 24px;
303   width: 24px;
304 }
305
306 #directory-tree .tree-row > .label {
307   display: block;
308   flex: auto;
309   margin: 0 3px;
310   overflow-x: hidden;
311   text-overflow: ellipsis;
312 }
313
314 #directory-tree .tree-item.accepts > .tree-row,
315 #directory-tree .tree-row[lead][selected],
316 #directory-tree .tree-row[lead],
317 #directory-tree .tree-row[selected],
318 #directory-tree .tree-row[anchor] {
319   background-color: rgb(204, 204, 204);
320 }
321
322 #directory-tree .tree-item.accepts > .tree-row,
323 #directory-tree .tree-row[lead][selected],
324 #directory-tree .tree-row[lead],
325 #directory-tree .tree-row[selected],
326 #directory-tree .tree-row[anchor] {
327   background-color: rgb(225, 225, 225);
328 }
329
330 #directory-tree:focus .tree-item.accepts > .tree-row,
331 #directory-tree:focus .tree-row[lead][selected],
332 #directory-tree:focus .tree-row[lead],
333 #directory-tree:focus .tree-row[selected],
334 #directory-tree:focus .tree-row[anchor] {
335   background-color: rgb(193, 209, 232);
336 }
337
338 #directory-tree:focus .tree-item.accepts > .tree-row,
339 #directory-tree:focus .tree-row[lead][selected],
340 #directory-tree:focus .tree-row[lead],
341 #directory-tree:focus .tree-row[selected],
342 #directory-tree:focus .tree-row[anchor] {
343   background-color: rgb(66, 129, 244);
344   color: white;
345 }
346
347 /* Make top-level items thicker and their expand-icno invisible */
348 #directory-tree > .tree-item > .tree-row {
349   line-height: 40px;
350 }
351
352 #directory-tree > .tree-item > .tree-row > .expand-icon {
353   visibility: hidden;
354 }
355
356 #directory-tree .tree-row > div.root-eject {
357   background: -webkit-image-set(
358       url('../images/files/ui/eject.png') 1x,
359       url('../images/files/ui/2x/eject.png') 2x) no-repeat center;
360   cursor: pointer;
361   flex: none;
362   height: 20px;
363   margin-right: 6px;
364   opacity: 0.7;
365   transition: opacity 70ms linear;
366   width: 20px;
367 }
368
369 #directory-tree:focus .tree-row[selected] > div.root-eject {
370   background: -webkit-image-set(
371       url('../images/files/ui/eject_white.png') 1x,
372       url('../images/files/ui/2x/eject_white.png') 2x) no-repeat center;
373   opacity: 1;
374 }
375
376 #directory-tree .root-item[disabled] {
377   opacity: 0.5;
378   pointer-events: none;
379 }
380
381 /* Breadcrumbs and things under the title but above the list view. */
382 .dialog-header {
383   -webkit-app-region: drag;
384   align-items: center;
385   display: flex;
386   flex: none;
387   flex-direction: row;
388   height: 48px;
389   margin: 0;
390   transition: all 180ms ease;
391 }
392
393 .dialog-header .volume-icon {
394   -webkit-margin-start: 10px;
395   background-position: center 3px;
396   background-repeat: no-repeat;
397   flex: none;
398   height: 24px;
399   width: 24px;
400 }
401
402 .dialog-header > .spacer {
403   flex: auto;
404 }
405
406 /* Search box */
407
408 #search-box {
409   display: flex;
410   flex: none;
411 }
412
413 #search-box input {
414   -webkit-app-region: no-drag;
415   background-color: #fff;
416   border-style: none;
417   color: #333;
418   cursor: default;
419   display: block;
420   height: 48px;
421   line-height: 1em;
422   margin: 0;
423   max-width: 100%;
424   outline: none;
425   padding: 0;
426   transition: width 0.2s ease;
427   width: 0;
428 }
429
430 #search-box input::-webkit-search-cancel-button {
431   -webkit-appearance: none;
432 }
433
434 #search-box.has-cursor input,
435 #search-box.has-text input {
436   width: 176px;
437 }
438
439 #search-box .clear {
440   -webkit-app-region: no-drag;
441   -webkit-margin-end: 30px;
442   align-self: center;
443   background: -webkit-image-set(
444       url(../images/files/ui/search_clear.png) 1x,
445       url(../images/files/ui/2x/search_clear.png) 2x)
446       no-repeat center;
447   border: none;
448   display: none;
449   flex: none;
450   height: 12px;
451   min-height: 0;
452   min-width: 0;
453   outline: none;
454   padding: 0;
455   visibility: hidden;
456   width: 12px;
457 }
458
459 #search-box.has-cursor .clear,
460 #search-box.has-text .clear {
461   display: block;
462 }
463
464 #search-box.has-text .clear {
465   visibility: visible;
466 }
467
468 #search-box .clear:hover {
469   background-image: -webkit-image-set(
470       url(../images/files/ui/search_clear_hover.png) 1x,
471       url(../images/files/ui/2x/search_clear_hover.png) 2x);
472 }
473
474 #search-box .clear:active {
475   background-image: -webkit-image-set(
476       url(../images/files/ui/search_clear_pressed.png) 1x,
477       url(../images/files/ui/2x/search_clear_pressed.png) 2x);
478 }
479
480 .topbutton-bar {
481   flex: none;
482 }
483
484 .topbutton-bar .search-button {
485   background-image: -webkit-image-set(
486       url(../images/files/ui/search_icon_active.png) 1x,
487       url(../images/files/ui/2x/search_icon_active.png) 2x);
488 }
489
490 .topbutton-bar .view-button.table {
491   background-image: -webkit-image-set(
492       url('../images/files/ui/button_list_view.png') 1x,
493       url('../images/files/ui/2x/button_list_view.png') 2x);
494 }
495
496 .topbutton-bar .view-button.grid {
497   background-image: -webkit-image-set(
498       url('../images/files/ui/button_mosaic_view.png') 1x,
499       url('../images/files/ui/2x/button_mosaic_view.png') 2x);
500 }
501
502 /* Container for the detail and thumbnail list views. */
503 .dialog-body {
504   -webkit-transition: all 180ms ease;
505   border-top: 1px solid rgba(20, 20, 22, 0.1);
506   flex: auto;
507   position: relative;
508 }
509
510 .main-panel {
511   bottom: 0;
512   display: flex;
513   left: 0;
514   position: absolute;
515   right: 0;
516   top: 0;
517 }
518
519 .dialog-middlebar-contents {
520   display: flex;
521   flex: none;
522   max-width: 50%;
523   min-width: 45px;
524   position: relative;
525   width: 180px;
526 }
527
528 /* Container for the ok/cancel buttons. */
529 .dialog-footer {
530   align-items: center;
531   border-top: 1px solid rgb(225, 225, 225);
532   display: flex;
533   flex: none;
534   flex-direction: row;
535   outline: none;
536   padding: 10px;
537 }
538
539 .progressable:not([progress]) .progress-bar,
540 .progressable:not([progress]) .preparing-label {
541   display: none;
542 }
543
544 .progressable[progress] .ok,
545 .progressable[progress] #filename-input-box,
546 .progressable[progress] #preview-lines,
547 .progressable[progress] .file-type {
548   display: none;
549 }
550
551 .progressable .progress-bar {
552   -webkit-margin-end: 20px;
553   -webkit-margin-start: 20px;
554   flex: auto;
555 }
556
557 /* The container for breadcrumb elements. */
558 .breadcrumbs {
559   align-items: center;
560   display: flex;
561   flex: auto;
562   flex-direction: row;
563   line-height: 20px;
564   overflow: hidden;
565   padding-top: 1px;
566 }
567
568 .breadcrumbs > [collapsed]::before {
569   content: '...';
570 }
571
572 .breadcrumbs > [collapsed] {
573   width: 1em;
574 }
575
576 /* A single directory name in the list of path breadcrumbs. */
577 .breadcrumb-path {
578   color: #141414;
579   cursor: pointer;
580   flex: none;
581   overflow: hidden;
582   text-overflow: ellipsis;
583   white-space: nowrap;
584 }
585
586 /* The final breadcrumb, representing the current directory. */
587 #search-breadcrumbs .breadcrumb-path.breadcrumb-last {
588   color: #141414;
589   cursor: default;
590 }
591
592 /* The > arrow between breadcrumbs. */
593
594 .breadcrumbs .separator {
595   background-image: -webkit-image-set(
596     url('../images/files/ui/breadcrumb-separator.png') 1x,
597     url('../images/files/ui/2x/breadcrumb-separator.png') 2x);
598   background-position: center center;
599   background-repeat: no-repeat;
600   flex: none;
601   height: 10px;
602   overflow: hidden;
603   width: 25px;
604 }
605
606 html[dir='rtl'] .breadcrumbs .separator {
607   -webkit-transform: scaleX(-1);
608 }
609
610 #filename-input-box input {
611   border: 1px solid #c8c8c8;
612   border-radius: 1px;
613   box-sizing: border-box;
614   height: 31px;  /* border-box */
615   margin-right: 30px;
616 }
617
618 .filelist-panel {
619   display: flex;
620   flex: auto;
621   flex-direction: column;
622 }
623
624 #list-container {
625   display: flex;
626   flex: auto;
627   flex-direction: column;
628   position: relative;
629 }
630
631 #detail-table {
632   display: flex;
633   flex: auto;
634   flex-direction: column;
635 }
636
637 #detail-table > list,
638 .thumbnail-grid {
639   flex: auto;
640   padding-bottom: 0;  /* For the preview panel. Will be overridden by JS. */
641 }
642
643 #file-list {
644   /* Override overflow specifying by table_list.js to use the original scroll
645      bar. crbug.com/391698 */
646   overflow: scroll !important;
647 }
648
649 #file-list .drag-selection-border {
650   -webkit-box-sizing: border-box;
651   background-color: rgba(255, 255, 255, 0.3);
652   border: 2px solid rgba(255, 255, 255, 0.6);
653   outline: 1px solid rgba(0, 0, 0, 0.1);
654   position: absolute;
655   z-index: 2;
656 }
657
658 .spinner {
659   background: url(../images/common/spinner.svg) center/100% no-repeat;
660   height: 16px;
661   left: 50%;
662   margin-left: -8px;
663   margin-top: -8px;
664   opacity: 0.5;
665   position: absolute;
666   top: 50%;
667   width: 16px;
668 }
669
670 .spinner-layer {
671   background: url(../images/common/spinner.svg) center / 16px no-repeat;
672   bottom: 0;
673   left: 0;
674   position: absolute;
675   right: 0;
676   top: 0;
677   z-index: 525;
678 }
679
680 .downloads-warning {
681   align-items: center;
682   background-color: #f0f0f0;
683   background-image: -webkit-image-set(
684     url('../images/files/ui/warning_icon_square.png') 1x,
685     url('../images/files/ui/2x/warning_icon_square.png') 2x);
686   background-position: 15px center;
687   background-repeat: no-repeat;
688   color: #666;
689   display: flex;
690   flex: none;
691   flex-direction: row;
692   font-size: 13px;
693   height: 57px;
694   overflow: hidden;
695   padding-left: 57px;  /* Make space for the icon. */
696   transition: height 70ms linear;
697 }
698
699 .downloads-warning[hidden] {
700   display: flex !important;  /* Overrides [hidden] for animation. */
701   height: 0;
702 }
703
704 @-webkit-keyframes heightAnimation {
705   0% {
706     display: flex;
707     height: 0;
708   }
709 }
710
711 /* Drive space warning banner. */
712 .volume-warning {
713   -webkit-animation: heightAnimation 70ms linear;
714   align-items: center;
715   background-image: url(chrome://resources/images/clouds.png);
716   background-repeat: repeat-x;
717   background-size: 150px 44px;
718   color: #333;
719   display: flex;
720   flex: none;
721   flex-direction: row;
722   font-size: 13px;
723   height: 44px;
724   overflow: hidden;
725   position: relative;
726 }
727
728 .volume-warning[hidden] {
729   border-top-width: 0;
730   height: 0;
731 }
732
733 .volume-warning .drive-icon {
734   background-image: -webkit-image-set(
735     url('../images/files/ui/drive_logo.png') 1x,
736     url('../images/files/ui/2x/drive_logo.png') 2x);
737   background-position: center;
738   background-repeat: no-repeat;
739   background-size: 25px 22px;
740   flex: none;
741   height: 44px;
742   width: 50px;
743 }
744
745 .volume-warning .drive-text {
746   flex: none;
747   margin-right: 11px;
748 }
749
750 /* The cr.ui.Grid representing the detailed file list. */
751 .thumbnail-grid {
752   overflow-y: auto;
753   padding-bottom: 0;  /* For the preview panel. Will be overridden by JS. */
754   width: 100%;
755 }
756
757 body[type='full-page'] .thumbnail-frame > .img-container {
758   position: relative;
759 }
760
761 body[type='full-page'] .thumbnail-frame > .img-container,
762 body[type='full-page'] .detail-name .detail-icon {
763   cursor: pointer;
764 }
765
766 .img-container > img {
767   -webkit-user-drag: none;
768   position: absolute;
769 }
770
771 .img-container > img:not(.cached) {
772   -webkit-animation: fadeIn 250ms linear;
773 }
774
775 .thumbnail-bottom {
776   align-items: center;
777   bottom: 0;
778   cursor: auto;
779   display: flex;
780   flex-direction: row;
781   justify-content: center;
782   left: 0;
783   padding: 0 10px;
784   position: absolute;
785   right: 0;
786 }
787
788 .thumbnail-bottom .filename-label {
789   flex: auto;
790 }
791
792 /* Styles specific for the grid view. */
793
794 .thumbnail-grid .thumbnail-item {
795   -webkit-margin-start: 21px;
796   border: 3px solid transparent;  /* Selection will make the border visible. */
797   margin-top: 20px;
798   position: relative;
799 }
800
801 .thumbnail-grid .thumbnail-frame {
802   background-color: rgb(245, 245, 245);
803   height: 120px;
804   overflow: hidden;
805   position: relative;
806   width: 160px;
807 }
808
809 .thumbnail-grid .thumbnail-item[selected] .thumbnail-frame,
810 .thumbnail-grid .thumbnail-item.accepts .thumbnail-frame {
811   border-color: white;
812 }
813
814 .thumbnail-grid .img-container {
815   height: 100%;
816   width: 100%;
817 }
818
819 .thumbnail-grid .thumbnail-bottom {
820   background: rgba(0, 0, 0, 0.55);
821   color: #fff;
822   height: 30px;
823 }
824
825 /* Padding counterweights negative margins of items, thus eliminating scroll
826    bar when it's not needed. Max height is set to fit 8 items before showing
827    scroll bar. */
828 #default-actions-list {
829   max-height: 328px;
830   padding: 1px 0;
831 }
832
833 #default-actions-list > li > * {
834   background-position: 5px center;
835   background-repeat: no-repeat;
836   background-size: 16px 16px;
837   padding-left: 26px;
838 }
839
840 #list-container list > li[selected],
841 #list-container grid > li[selected],
842 #default-actions-list > li[selected] {
843   background-color: rgb(225, 225, 225);
844 }
845
846 #list-container list:focus > li[selected],
847 #list-container grid:focus > li[selected],
848 #default-actions-list:focus > li[selected] {
849   background-color: rgb(66, 129, 244);
850   color: white;
851 }
852
853 #list-container list > li.accepts[selected],
854 #list-container grid > li.accepts[selected] {
855   background-color: rgb(215, 215, 215);
856 }
857
858 #list-container list:focus > li.accepts[selected],
859 #list-container grid:focus > li.accepts[selected] {
860   background-color: rgb(48, 125, 254);
861 }
862
863 #list-container list > li.accepts,
864 #list-container grid > li.accepts {
865   background-color: #f1f1f1;
866 }
867
868 #list-container.nohover grid > .accepts {
869   background-color: transparent;
870 }
871
872 #directory-tree .tree-item.accepts > .tree-row,
873 #navigation-list > .accepts,
874 #list-container list > li.accepts,
875 #list-container grid > li.accepts {
876   -webkit-animation: acceptsBlink 200ms linear 1s 3;
877 }
878
879 @-webkit-keyframes acceptsBlink {
880   0% {
881     background-color: transparent;
882   }
883 }
884
885 .table-row-cell .filename-label,
886 .thumbnail-item .filename-label,
887 /* Show ellipsis in cells. The name column has different structure and overrides
888    this rule. */
889 .table-row-cell > div {
890   display: block;
891   overflow: hidden;
892   text-overflow: ellipsis;
893   white-space: nowrap;
894 }
895
896 /* Text box used for renaming in the detail list. */
897 .table-row-cell input.rename {
898   border-width: 0;
899   padding: 2px 0;
900 }
901
902 input.rename:focus {
903   outline-color: rgb(77, 144, 254);
904 }
905
906 input.rename {
907   font: inherit;
908   line-height: 1;
909   text-align: inherit;
910 }
911
912 .table-row-cell .filename-label,
913 .table-row-cell input.rename {
914   flex: auto;
915 }
916
917 li[renaming=''] .filename-label {
918   display: none;
919 }
920
921 /* Text box used for renaming in the thumbnail list. */
922 .thumbnail-grid input.rename {
923   -webkit-margin-start: -1px;
924   box-sizing: border-box;
925   height: 20px;
926   width: 114px;
927 }
928
929 /* The cr.ui.Table representing the detailed file list. */
930 .detail-table {
931   width: 100%;
932 }
933
934 /* Bottom pane describing current selection. */
935 .preview-panel {
936   -webkit-transition: background-color 150ms ease;
937   align-items: center;
938   background: white;
939   border-top: 1px solid rgba(20, 20, 22, 0.1);
940   bottom: 0;
941   display: flex;
942   flex-direction: row;
943   height: 51px;
944   left: 0;
945   opacity: 1;
946   padding: 0 10px 0 7px;
947   position: absolute;
948   right: 0;
949   z-index: 3;
950 }
951
952 .preview-panel[visibility=hiding] {
953   -webkit-transform: translate(0, 5px);
954   opacity: 0;
955   /* Using all seems to cause preview panel and checkbox flicking issue. */
956   transition: opacity 220ms ease,
957               -webkit-transform 220ms ease;
958 }
959
960 .preview-panel[visibility=hidden] {
961   display: none;
962   opacity: 0;
963 }
964
965 .preview-panel > .left,
966 .dialog-footer > .left {
967   align-items: center;
968   display: flex;
969   flex: auto;
970   flex-direction: row;
971 }
972
973 .preview-panel > .right,
974 .dialog-footer > .right {
975   flex: none;
976   justify-content: flex-end;
977 }
978
979 .preview-panel .preparing-label {
980   -webkit-margin-start: 30px;
981   flex: none;
982 }
983
984 .preview-panel .progress-bar {
985   flex: auto;
986 }
987
988 .preview-panel .preview-text {
989   color: #333;
990 }
991
992 .preview-thumbnails {
993   display: flex;
994   flex-direction: row;
995   padding-left: 25px;
996 }
997
998 .preview-thumbnails > .img-container {
999   background-color: white;
1000   background-size: 35px 35px;  /* For file icons. */
1001   border: 2px solid white;
1002   box-shadow: 0 1px 1px rgba(80, 80, 80, 0.5);
1003   box-sizing: border-box;
1004   cursor: pointer;
1005   height: 35px;
1006   margin: 0 0 0 -25px;  /* Overlapped images. */
1007   overflow: hidden;
1008   position: relative;
1009   width: 35px;
1010 }
1011
1012 .preview-thumbnails > .popup {
1013   -webkit-transform: translate(0, 3px) scale(0.95);
1014   background-color: #f2f2f2;
1015   border: 2px solid #fff;
1016   bottom: 8px;
1017   box-shadow: 0 0 0 1px #F0F0F0,
1018               0 0 0 2px #D0D0D0,
1019               2px 2px 6px rgba(0, 0, 0, 0.2);
1020   display: flex;
1021   left: -8px;
1022   opacity: 0;
1023   pointer-events: none;
1024   position: absolute;
1025   transition: opacity 180ms ease-in 300ms,
1026               -webkit-transform 180ms ease-in 300ms;
1027   z-index: 1000;
1028 }
1029
1030 .preview-thumbnails.has-zoom:hover > .popup {
1031   -webkit-transform: translate(0, 0) scale(1.0);
1032   opacity: 1;
1033   pointer-events: auto;
1034 }
1035
1036 @-webkit-keyframes fadeIn {
1037   from {
1038     opacity: 0;
1039   }
1040   to {
1041     opacity: 1;
1042   }
1043 }
1044
1045 .preview-thumbnails img {
1046   -webkit-animation: fadeIn 180ms ease-in-out;
1047 }
1048
1049 .preview-thumbnails > .popup > img {
1050   flex: 1 1 0;
1051   -webkit-user-drag: none;
1052 }
1053
1054 /* Table splitter element */
1055 .table-header-splitter {
1056   background-image: -webkit-image-set(
1057     url('../images/files/ui/vertical_separator.png') 1x,
1058     url('../images/files/ui/2x/vertical_separator.png') 2x);
1059   background-position: center;
1060   background-repeat: repeat-y;
1061   height: 20px;
1062   top: 10px;
1063   width: 5px;
1064 }
1065
1066 .table-header-splitter:last-child {
1067   display: none;
1068 }
1069
1070 /* Container for a table header. */
1071 .table-header {
1072   box-sizing: border-box;
1073   flex: none;
1074   height: 47px;
1075 }
1076
1077 .table-header-sort-image-desc::after {
1078   -webkit-padding-start: 13px;
1079   background-image: -webkit-image-set(
1080     url('../images/files/ui/sort_desc.png') 1x,
1081     url('../images/files/ui/2x/sort_desc.png') 2x);
1082   background-position: center center;
1083   background-repeat: no-repeat;
1084   color: #888;
1085   content: '\00a0';
1086   position: relative;
1087   top: 1px;
1088 }
1089
1090 .table-header-sort-image-asc::after {
1091   -webkit-padding-start: 13px;
1092   background-image: -webkit-image-set(
1093     url('../images/files/ui/sort_asc.png') 1x,
1094     url('../images/files/ui/2x/sort_asc.png') 2x);
1095   background-position: center center;
1096   background-repeat: no-repeat;
1097   color: #888;
1098   content: '\00a0';
1099   position: relative;
1100   top: -1px;
1101 }
1102
1103 .preview-container .table-header {
1104   border-radius: 0 4px 0 0;
1105 }
1106
1107 /* Text label in a table header. */
1108 .table-header-label {
1109   color: rgb(100, 100, 100);
1110   line-height: 40px;
1111   margin: 0 7px;
1112 }
1113
1114 .table-row-cell > * {
1115   align-items: center;
1116   flex: auto;
1117   flex-direction: row;
1118   padding: 0 10px;
1119 }
1120
1121 .table-row-cell {
1122   color: rgb(100, 100, 100);
1123 }
1124
1125 .table-row-cell > .detail-name {
1126   display: flex;
1127 }
1128
1129 .table-row-cell > .detail-name {
1130   color: rgb(0, 0, 0);
1131 }
1132
1133
1134 #list-container list:focus > [selected] .table-row-cell,
1135 #list-container list:focus > [selected] .detail-name {
1136   color: white;
1137 }
1138
1139 .table-row-cell {
1140   align-items: center;
1141 }
1142
1143 #list-container li.table-row,
1144 #default-actions-list li {
1145   height: 29px;
1146   line-height: 29px;
1147 }
1148
1149 /* The icon in the name column. See file_types.css for specific icons. */
1150 .detail-icon {
1151   height: 24px;
1152   width: 24px;
1153 }
1154
1155 #detail-table .detail-icon {
1156   /* To shift the icon position. */
1157   margin-bottom: 2px;
1158 }
1159
1160 .preview-panel .spacer {
1161   flex: auto;
1162 }
1163
1164 #delete-button {
1165   min-width: 21px;  /* overrride */
1166   padding: 0;  /* overrride */
1167   width: 21px;
1168 }
1169
1170 #delete-button::before {
1171   /* Background image should be specified in the before pseudo element because
1172    * border image fill is specified to delete-button. */
1173   background: -webkit-image-set(
1174     url(../images/files/ui/onbutton_trash.png) 1x,
1175     url(../images/files/ui/2x/onbutton_trash.png) 2x) no-repeat center;
1176   content: '';
1177   display: block;
1178   height: 100%;
1179   width: 100%;
1180 }
1181
1182 #delete-button[disabled] {
1183   display: none;
1184 }
1185
1186 #tasks-menu menuitem:not(.change-default) {
1187   background-position: left 10px center;
1188   padding-left: 32px;
1189 }
1190
1191 #share-button {
1192   display: block;
1193   min-width: 0;  /* overrride */
1194 }
1195
1196 #preview-lines {
1197   -webkit-margin-end: 10px;
1198   -webkit-margin-start: 10px;
1199   flex: auto;
1200 }
1201
1202 /* The selection summary text at the bottom of the preview pane. */
1203 .preview-summary {
1204   color: #666;
1205   overflow: hidden;
1206   text-overflow: ellipsis;
1207   vertical-align: middle;
1208   white-space: nowrap;
1209 }
1210
1211 .preview-summary .calculating-size {
1212   margin-left: 5px;
1213   opacity: 0.5;
1214 }
1215
1216 .detail-name > * {
1217   align-items: center;
1218   display: flex;
1219   flex: none;
1220 }
1221
1222 #filename-input-box {
1223   align-items: center;
1224   display: flex;
1225   flex: auto;
1226 }
1227
1228 #filename-input-box input {
1229   flex: auto;
1230   padding: 1px 2px;
1231 }
1232
1233 #filename-input-box .filename-label {
1234   background-color: white;
1235   color: #333;
1236   flex: none;
1237   padding-right: 4px;
1238 }
1239
1240 body:not([type='saveas-file']) #filename-input-box {
1241   display: none;
1242 }
1243
1244 /* Dimmed items */
1245
1246 body[type='folder'] .file,
1247 body[type='upload-folder'] .file,
1248 body[drive] .dialog-container[connection='offline'] .dim-offline {
1249   opacity: 0.4;
1250 }
1251
1252 /* Overlay pane covering the entire file manager window (e.g. image editor)*/
1253 .overlay-pane {
1254   -webkit-app-region: no-drag;
1255   border: none;
1256   height: 100%;
1257   left: 0;
1258   position: absolute;
1259   top: 0;
1260   width: 100%;
1261   z-index: 1000;  /* Must be above all elements in file manager container. */
1262 }
1263
1264 /* When the overlay pane is visible hide everything else so that the tab order
1265   is not confused. */
1266 body[overlay-visible] > :not(.overlay-pane) {
1267   display: none !important;
1268 }
1269
1270 /* Invisible container for elements representing files while dragging. */
1271 #drag-container {
1272   left: 0;
1273   position: fixed;
1274   top: 0;
1275   z-index: -1;  /* below .dialog-container */
1276 }
1277
1278 #drag-container .drag-contents {
1279   background-color: #fafafa;
1280   border: 1px solid #bbb;
1281   border-radius: 3px;
1282   box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .2);
1283   display: flex;
1284   flex-direction: row;
1285   line-height: 0;
1286   margin-bottom: 5px;
1287   padding: 6px;
1288   transition: opacity 200ms ease-in;
1289 }
1290
1291 #drag-container .drag-contents.for-image  {
1292   flex: none;
1293   padding: 2px;
1294 }
1295
1296 #drag-container .thumbnail-item {
1297   display: flex;
1298   flex-direction: row;
1299 }
1300
1301 #drag-container .label {
1302   flex: auto;
1303   font-weight: bold;
1304   line-height: 24px;
1305   max-width: 320px;
1306   overflow: hidden;
1307   padding: 0 5px;
1308   text-overflow: ellipsis;
1309   white-space: nowrap;
1310 }
1311
1312 menu.file-context-menu {
1313   z-index: 600;  /* Must be below the overlay pane (1000). */
1314 }
1315
1316 menu.chrome-menu hr {
1317   color: transparent;
1318   font-size: 0;
1319 }
1320
1321 div.shade {
1322   /* transition: opacity 1000ms linear; */
1323   background-color: rgba(255, 255, 255, 0.8);
1324   bottom: 0;
1325   left: 0;
1326   opacity: 0;
1327   position: absolute;
1328   right: 0;
1329   top: 0;
1330 }
1331
1332 div.shade[fadein] {
1333   opacity: 1;
1334 }
1335
1336 /* Message panel for unmounted Drive */
1337 #unmounted-panel,
1338 #format-panel {
1339   bottom: 0;
1340   color: #333;
1341   display: none;
1342   left: 0;
1343   padding-left: 50px;
1344   padding-top: 20px;
1345   position: absolute;
1346   right: 0;
1347   top: 0;
1348 }
1349
1350 body[drive='mounting'] .dialog-container #unmounted-panel,
1351 body[drive='error'] .dialog-container #unmounted-panel,
1352 body[unformatted] .dialog-container #format-panel {
1353   display: block;
1354 }
1355
1356 body[drive='unmounted'] .dialog-container .filelist-panel,
1357 body[drive='mounting'] .dialog-container .filelist-panel,
1358 body[drive='error'] .dialog-container .filelist-panel,
1359 body[unformatted] .dialog-container .filelist-panel {
1360   /* Hide file list when Drive is not mounted.
1361      Use opacity to avoid manual resizing.*/
1362   opacity: 0;
1363 }
1364
1365 #unmounted-panel > *,
1366 #format-panel > * {
1367   align-items: center;
1368   display: none;
1369   flex-direction: row;
1370   height: 22px;
1371   justify-content: flex-start;
1372   margin-bottom: 10px;
1373 }
1374
1375 #unmounted-panel > .loading {
1376   position: relative;
1377 }
1378
1379 #unmounted-panel > .loading > .spinner-box {
1380   bottom: 0;
1381   position: absolute;
1382   right: 100%;
1383   top: 0;
1384   width: 40px;
1385 }
1386
1387 body[unformatted] #format-panel > .error,
1388 body[drive='mounting'] #unmounted-panel > .loading,
1389 body[drive='error'] #unmounted-panel > .error,
1390 #format-panel > #format-button,
1391 #unmounted-panel.retry-enabled > .learn-more {
1392   display: flex;
1393 }
1394
1395 .plain-link {
1396   color: rgb(17, 85, 204);
1397   cursor: pointer;
1398   text-decoration: none;
1399 }
1400
1401 .buttonbar > * {
1402   position: relative;
1403 }
1404
1405 .buttonbar .tooltip,
1406 .topbutton-bar .tooltip {
1407   right: -12px;
1408   top: 35px;
1409 }
1410
1411 /* Tooltips */
1412 .tooltip {
1413   background: #2d2d2d;
1414   border-radius: 0;
1415   box-shadow: 1px 2px 4px #ccc;
1416   box-sizing: border-box;
1417   color: white;
1418   display: block;
1419   font-size: 11px;
1420   font-weight: bold;
1421   height: 29px;
1422   line-height: 29px;
1423   margin-left: -20px;
1424   min-width: 50px;
1425   opacity: 0;
1426   outline: 1px solid rgba(255, 255, 255, 0.5);
1427   padding: 0 10px;
1428   pointer-events: none;
1429   position: absolute;
1430   text-align: center;
1431   top: 5px;
1432   white-space: nowrap;
1433   z-index: 600;  /* Must be below the overlay pane (1000). */
1434 }
1435
1436 .tooltip::after,
1437 .tooltip::before {
1438   border-left: 5px solid transparent;
1439   border-right: 5px solid transparent;
1440   border-top: transparent;
1441   content: '';
1442   display: block;
1443   margin-left: -5px;
1444   position: absolute;
1445   right: 24px;
1446   top: -5px;
1447 }
1448
1449 .tooltip::after {
1450   border-bottom: 5px solid #2d2d2d;
1451 }
1452
1453 .tooltip::before {
1454   border-bottom: 5px solid rgba(255, 255, 255, 0.5);
1455 }
1456
1457 /* Show with delay, disappear instantly */
1458 @-webkit-keyframes tooltip-show {
1459   0% { opacity: 0; }
1460   90% { opacity: 0; }
1461   100% { opacity: 1; }
1462 }
1463
1464 :hover > .tooltip {
1465   -webkit-animation-duration: 800ms;
1466   -webkit-animation-iteration-count: 1;
1467   -webkit-animation-name: tooltip-show;
1468   -webkit-animation-timing-function: linear;
1469   opacity: 1;
1470 }
1471
1472 #no-search-results {
1473   bottom: 0;
1474   display: none;
1475   flex: none;
1476   left: 0;
1477   padding: 10px;
1478   position: absolute;
1479   right: 0;
1480   top: 28px;  /* Leave room for the file list header. */
1481 }
1482
1483 .dialog-container:not([drive-welcome='page']) #no-search-results[show] {
1484   display: block;
1485 }
1486
1487 #volume-space-info-contents {
1488   align-items: center;
1489   display: flex;
1490 }
1491
1492 #volume-space-info-contents > div {
1493   -webkit-margin-start: 15px;
1494   display: flex;
1495   flex: auto;
1496 }
1497
1498 #list-container .table-header-inner {
1499   height: 100%;
1500 }
1501
1502 #list-container .table-header-cell:hover {
1503   background-color: inherit;
1504 }
1505
1506 #list-container .table-header-cell:first-child {
1507   -webkit-box-sizing: border-box;
1508   -webkit-padding-start: 8px;
1509 }
1510
1511 #new-folder-button {
1512   flex: none;
1513   margin-right: 30px;
1514 }
1515
1516 #default-action-dialog {
1517   min-width: 300px;
1518   width: auto;
1519 }
1520
1521 .drive-welcome-wrapper {
1522   /* drive_welcome.css will override it once loaded. */
1523   display: none;
1524 }
1525
1526 list.autocomplete-suggestions {
1527   -webkit-margin-before: -7px;
1528   -webkit-margin-start: -38px;
1529   background-color: rgb(250, 250, 250);
1530   border-radius: 3px;
1531   box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .5);
1532   box-sizing: border-box;  /* To match the width with the search box's. */
1533   color: rgb(34, 34, 34);
1534   flex: none;
1535   overflow: hidden;
1536   padding: 5px 0;
1537   position: fixed;
1538   width: 300px !important; /* This overrides the value specified by script. */
1539   z-index: 550;
1540 }
1541
1542 list.autocomplete-suggestions > li {
1543   align-items: center;
1544   display: flex;
1545   padding: 3px 0;
1546 }
1547
1548 list.autocomplete-suggestions > li > div.detail-icon {
1549   -webkit-margin-end: 6px;
1550   -webkit-margin-start: 6px;
1551 }
1552
1553 list.autocomplete-suggestions > li > div.detail-text {
1554   flex: auto;
1555   overflow-x: hidden;
1556   text-overflow: ellipsis;
1557 }
1558
1559 list.autocomplete-suggestions > li > div.detail-text em {
1560   color: rgb(150, 150, 150);
1561   font-style: normal;
1562 }
1563
1564 list.autocomplete-suggestions > li > div[search-icon] {
1565   background: -webkit-image-set(
1566       url('../images/files/ui/search_icon_active.png') 1x,
1567       url('../images/files/ui/2x/search_icon_active.png') 2x) center no-repeat;
1568 }
1569
1570 list.autocomplete-suggestions > li[selected] > div[search-icon],
1571 list.autocomplete-suggestions > li[lead] > div[search-icon] {
1572   background: -webkit-image-set(
1573       url('../images/files/ui/search_icon_white.png') 1x,
1574       url('../images/files/ui/2x/search_icon_white.png') 2x) center no-repeat;
1575 }
1576
1577 list.autocomplete-suggestions > [selected],
1578 list.autocomplete-suggestions > [lead] {
1579   background-color: rgb(66, 129, 244);
1580   color: white;
1581 }
1582
1583 list.autocomplete-suggestions > [selected] > div.detail-text em,
1584 list.autocomplete-suggestions > [lead] > div.detail-text em {
1585   color: white;
1586 }
1587
1588 #gear-menu {
1589   margin-top: 8px;
1590 }
1591
1592 #gear-menu > menuitem:not(.menuitem-button) {
1593   -webkit-margin-end: 50px;
1594 }
1595
1596 #iframe-drag-area {
1597   -webkit-app-region: drag;
1598   height: 48px;
1599   left: 64px;
1600   position: absolute;
1601   right: 134px;
1602   top: 0;
1603   width: auto;
1604   z-index: 101;
1605 }
1606
1607 #suggest-app-dialog {
1608   background-color: #fff;
1609   border: 0;
1610   padding: 0;
1611   width: auto;
1612 }
1613
1614 #suggest-app-dialog .cr-dialog-title {
1615   /* Entire height: 44px (content-box 22px + padding 11px * 2) */
1616   font-size: 16px;
1617   height: 22px;
1618   margin: 0;
1619   padding: 11px 18px;
1620 }
1621
1622 #suggest-app-dialog #webview-container {
1623   border-bottom: solid 1px #bbb;
1624   border-top: solid 1px #bbb;
1625   position: relative;
1626 }
1627
1628 #suggest-app-dialog.show-spinner #webview-container webview {
1629   pointer-events: none;
1630 }
1631
1632 #suggest-app-dialog:not(.show-spinner) .spinner-layer {
1633   display: none;
1634 }
1635
1636 #suggest-app-dialog .spinner-layer {
1637   background-color: rgba(255, 255, 255, 0.7);
1638 }
1639
1640 #suggest-app-dialog .cr-dialog-buttons,
1641 #suggest-app-dialog .cr-dialog-ok,
1642 #suggest-app-dialog .cr-dialog-cancel {
1643   display: none;
1644 }
1645
1646 #suggest-app-dialog .cr-dialog-text {
1647   -webkit-padding-after: 10px;
1648   -webkit-padding-before: 0;
1649   -webkit-padding-end: 20px;
1650   -webkit-padding-start: 20px;
1651   margin: 0;
1652 }
1653
1654 #suggest-app-dialog #buttons {
1655   background: #eee;
1656   width: 100%;
1657 }
1658
1659 #suggest-app-dialog #buttons > #webstore-button {
1660   -webkit-padding-after: 10px;
1661   -webkit-padding-before: 10px;
1662   -webkit-padding-end: 10px;
1663   -webkit-padding-start: 36px;
1664   background-image: -webkit-image-set(
1665     url('chrome://theme/IDR_WEBSTORE_ICON_16') 1x,
1666     url('chrome://theme/IDR_WEBSTORE_ICON_16@2x') 2x);
1667   background-position: 12px center;
1668   background-repeat: no-repeat;
1669   color: #00f;
1670   cursor: pointer;
1671   display: inline-block;
1672   height: 16px;
1673 }
1674
1675 .cr-dialog-frame.error-dialog-frame {
1676   width: 300px;
1677 }
1678
1679 .error-dialog-frame .error-dialog-img {
1680   background-image: -webkit-image-set(
1681     url('chrome://theme/IDR_ERROR_NETWORK_GENERIC') 1x,
1682     url('chrome://theme/IDR_ERROR_NETWORK_GENERIC@2x') 2x);
1683   background-position: center;
1684   background-repeat: no-repeat;
1685   height: 40px;
1686 }
1687
1688 .error-dialog-frame .cr-dialog-cancel {
1689   display: none;
1690 }
1691
1692 .error-dialog-frame .cr-dialog-close,
1693 .error-dialog-frame .cr-dialog-title {
1694   display: none;
1695 }
1696
1697 .error-dialog-frame .cr-dialog-text {
1698   text-align: center;
1699 }
1700
1701 #multi-profile-share-dialog .cr-dialog-title {
1702   -webkit-margin-after: 0;
1703 }
1704
1705 #multi-profile-share-dialog .cr-dialog-text {
1706   line-height: 18px;
1707   margin-top: 0;
1708 }
1709
1710 #multi-profile-share-dialog .mail-label {
1711   padding-right: 16px;
1712 }
1713
1714 #multi-profile-share-dialog .mail-label::after {
1715   content: ':';
1716 }
1717
1718 #multi-profile-share-dialog .share-line {
1719   margin: 8px 16px;
1720 }
1721
1722 #conflict-confirm-dialog .cr-dialog-buttons {
1723   align-items: baseline;
1724   display: flex;
1725 }
1726
1727 #conflict-confirm-dialog input[type=checkbox] {
1728   -webkit-margin-start: -2px;
1729   width: auto;
1730 }
1731
1732 #conflict-confirm-dialog label {
1733   flex: 1 0 auto;
1734 }
1735
1736 /* Progress center */
1737
1738 @-webkit-keyframes progress-center-toggle {
1739   /* Height values of each frame are set by script.
1740    * Keep the animation sync with JS. */
1741   from {
1742   }
1743   to {
1744   }
1745 }
1746
1747 #progress-center {
1748   background-color: transparent;
1749   border-top: 1px solid transparent;
1750   overflow: hidden;
1751   position: relative;
1752   transition: background-color 300ms linear,
1753               border 300ms linear;
1754 }
1755
1756 #progress-center.opened {
1757   background-color: #ebebeb;
1758   border-top: 1px solid #d8d8d8;
1759 }
1760
1761 #progress-center.animated {
1762   -webkit-animation: progress-center-toggle 300ms ease-out;
1763 }
1764
1765 #progress-center-open-view {
1766   opacity: 1;
1767   padding-top: 10px;
1768   transition: opacity 300ms linear;
1769 }
1770
1771 #progress-center:not(.opened) #progress-center-open-view {
1772   opacity: 0;
1773   pointer-events: none;
1774   position: absolute;
1775 }
1776
1777 #progress-center-close-view {
1778   opacity: 1;
1779   transition: opacity 300ms linear;
1780 }
1781
1782 #progress-center.opened #progress-center-close-view {
1783   opacity: 0;
1784   pointer-events: none;
1785   position: absolute;
1786 }
1787
1788 #progress-center.animated #progress-center-open-view,
1789 #progress-center.animated #progress-center-close-view {
1790   left: 0;
1791   pointer-events: none;
1792   position: absolute;
1793   right: 0;
1794   top: 0;
1795   z-index: 1;
1796 }
1797
1798 #progress-center li {
1799   -webkit-padding-end: 10px;
1800   display: flex;
1801   /* This must not be margin-bottom to calculate parent's height correctly. */
1802   padding-bottom: 20px;
1803 }
1804
1805 #progress-center label {
1806   color: #777;
1807   display: block;
1808   overflow: hidden;
1809   text-overflow: ellipsis;
1810   white-space: nowrap;
1811 }
1812
1813 #progress-center li.error.single label {
1814   white-space: normal;
1815 }
1816
1817 #progress-center .progress-frame {
1818   -webkit-padding-end: 10px;
1819   -webkit-padding-start: 20px;
1820   flex: 1 0 0;
1821 }
1822
1823 #progress-center .progress-bar {
1824   background: #d8d8d8;
1825   border-radius: 3px;
1826   display: inline-block;
1827   height: 6px;
1828   opacity: 1;
1829   overflow: hidden;
1830   width: 100%;
1831 }
1832
1833 #progress-center li.error .progress-bar,
1834 #progress-center li.quiet .progress-bar {
1835   display: none;
1836 }
1837
1838 #progress-center .progress-track {
1839   background: #787878;
1840   height: 100%;
1841 }
1842
1843 #progress-center .progress-track.animated {
1844   transition: width 300ms linear;
1845 }
1846
1847 #progress-center .button-frame {
1848   align-self: flex-end;
1849   flex: none;
1850 }
1851
1852 #progress-center button {
1853   border: none;
1854   cursor: pointer;
1855   display: inline-block;
1856   height: 12px;
1857   min-height: 0;
1858   min-width: 0;
1859   outline: none;
1860   padding: 0;
1861   vertical-align: middle;
1862   width: 12px;
1863 }
1864
1865 #progress-center li.error.single .button-frame {
1866   display: none;
1867 }
1868
1869 #progress-center button.close {
1870   -webkit-margin-end: 10px;
1871   -webkit-margin-start: auto;
1872   background: -webkit-image-set(
1873       url(../images/files/ui/process_drawer_button_opened.png) 1x,
1874       url(../images/files/ui/2x/process_drawer_button_opened.png) 2x)
1875       no-repeat;
1876   display: block;
1877   margin-bottom: 20px;
1878 }
1879
1880 #progress-center button.close:hover {
1881   background: -webkit-image-set(
1882       url(../images/files/ui/process_drawer_button_opened_hover.png) 1x,
1883       url(../images/files/ui/2x/process_drawer_button_opened_hover.png) 2x)
1884       no-repeat;
1885 }
1886
1887 #progress-center button.close:active {
1888   background: -webkit-image-set(
1889       url(../images/files/ui/process_drawer_button_opened_pressed.png) 1x,
1890       url(../images/files/ui/2x/process_drawer_button_opened_pressed.png) 2x)
1891       no-repeat;
1892 }
1893
1894 #progress-center button.open {
1895   background: -webkit-image-set(
1896       url(../images/files/ui/process_drawer_button_closed.png) 1x,
1897       url(../images/files/ui/2x/process_drawer_button_closed.png) 2x)
1898       no-repeat;
1899 }
1900
1901 #progress-center button.open:hover {
1902   background: -webkit-image-set(
1903       url(../images/files/ui/process_drawer_button_closed_hover.png) 1x,
1904       url(../images/files/ui/2x/process_drawer_button_closed_hover.png) 2x)
1905       no-repeat;
1906 }
1907
1908 #progress-center button.open:active {
1909   background: -webkit-image-set(
1910       url(../images/files/ui/process_drawer_button_closed_pressed.png) 1x,
1911       url(../images/files/ui/2x/process_drawer_button_closed_pressed.png) 2x)
1912       no-repeat;
1913 }
1914
1915 #progress-center button.cancel {
1916   background: -webkit-image-set(
1917       url(../images/files/ui/close_bar.png) 1x,
1918       url(../images/files/ui/2x/close_bar.png) 2x)
1919       no-repeat;
1920 }
1921
1922 #progress-center-close-view:not(.single) button.cancel {
1923   display: none;
1924 }
1925
1926 #progress-center-close-view.single button.open {
1927   display: none;
1928 }
1929
1930 #progress-center li:not(.cancelable) button.cancel {
1931   visibility: hidden;
1932 }
1933
1934 .text-measure {
1935   pointer-events: none;
1936   position: absolute;
1937   top: 0;
1938   visibility: hidden;
1939   z-index: -1;
1940 }