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 5body { 6 -webkit-user-select: none; 7 font-family: Noto Sans UI, sans-serif; 8 font-size: 84%; 9 margin: 0; 10} 11 12input:focus, button:focus { 13 outline: 1px solid rgb(77, 144, 254); 14} 15 16input[type='checkbox'] { 17 width: 15px; 18 height: 15px; 19 background: -webkit-image-set( 20 url(../../file_manager/foreground/images/common/checkbox_white_unchecked.png) 1x, 21 url(../../file_manager/foreground/images/common/2x/checkbox_white_unchecked.png) 2x) 22 -1px -1px; 23 -webkit-appearance: none; 24 display: inline-block; 25 margin: 1px 6px 1px 1px; 26 vertical-align: text-bottom; 27} 28 29input[type='checkbox']:checked { 30 background: -webkit-image-set( 31 url(../../file_manager/foreground/images/common/checkbox_white_checked.png) 1x, 32 url(../../file_manager/foreground/images/common/2x/checkbox_white_checked.png) 2x) 33 -1px -1px; 34} 35 36.gallery, 37.gallery .content { 38 bottom: 0; 39 left: 0; 40 overflow: hidden; 41 position: absolute; 42 right: 0; 43 top: 0; 44} 45 46/* Common background for both mosaic and slide mode. */ 47.gallery .content { 48 background-color: black; 49} 50 51/* Image container and canvas elements */ 52 53.gallery .image-container { 54 cursor: none; /* Only visible when the toolbar is active */ 55 height: 100%; 56 position: absolute; 57 width: 100%; 58} 59 60.gallery[tools] .image-container[cursor='default'] { 61 cursor: default; 62} 63 64.gallery[tools] .image-container[cursor='move'] { 65 cursor: -webkit-image-set( 66 url(../images/100/cursor_move.png) 1x, 67 url(../images/200/cursor_move.png) 2x) 15 15, auto; 68} 69 70.gallery[tools] .image-container[cursor='crop'] { 71 cursor: -webkit-image-set( 72 url(../images/100/cursor_crop.png) 1x, 73 url(../images/200/cursor_crop.png) 2x) 15 15, auto; 74} 75 76.gallery[tools] .image-container[cursor='n-resize'], 77.gallery[tools] .image-container[cursor='s-resize'] { 78 cursor: -webkit-image-set( 79 url(../images/100/cursor_updown.png) 1x, 80 url(../images/200/cursor_updown.png) 2x) 15 15, auto; 81} 82 83.gallery[tools] .image-container[cursor='e-resize'], 84.gallery[tools] .image-container[cursor='w-resize'] { 85 cursor: -webkit-image-set( 86 url(../images/100/cursor_leftright.png) 1x, 87 url(../images/200/cursor_leftright.png) 2x) 15 15, auto; 88} 89 90.gallery[tools] .image-container[cursor='nw-resize'], 91.gallery[tools] .image-container[cursor='se-resize'] { 92 cursor: -webkit-image-set( 93 url(../images/100/cursor_nwse.png) 1x, 94 url(../images/200/cursor_nwse.png) 2x) 15 15, auto; 95} 96 97.gallery[tools] .image-container[cursor='ne-resize'], 98.gallery[tools] .image-container[cursor='sw-resize'] { 99 cursor: -webkit-image-set( 100 url(../images/100/cursor_swne.png) 1x, 101 url(../images/200/cursor_swne.png) 2x) 15 15, auto; 102} 103 104.gallery .image-container > .image { 105 pointer-events: none; 106 position: absolute; 107 /* Duration and timing function are set in Javascript. */ 108 transition-property: -webkit-transform, opacity; 109} 110 111.gallery .image-container > .image[fade] { 112 opacity: 0; 113} 114 115/* Full resolution image is invisible unless printing. */ 116.gallery .image-container > canvas.fullres { 117 display: none; 118} 119 120@media print { 121 /* Do not print anything but the image content. */ 122 .gallery > :not(.content) { 123 display: none !important; 124 } 125 126 /* Center the printed image. */ 127 .gallery .image-container { 128 -webkit-box-align: center; 129 -webkit-box-orient: horizontal; 130 -webkit-box-pack: center; 131 display: -webkit-box; 132 } 133 134 /* Do not print the screen resolution image. */ 135 .gallery .image-container > canvas.image { 136 display: none !important; 137 } 138 139 /* Print the full resolution image instead. */ 140 .gallery .image-container > canvas.fullres { 141 display: block !important; 142 max-height: 100%; 143 max-width: 100%; 144 } 145} 146 147/* Toolbar */ 148 149.gallery > .header, 150.gallery > .toolbar { 151 -webkit-box-align: stretch; 152 -webkit-box-orient: horizontal; 153 -webkit-box-pack: start; 154 background-color: rgba(30, 30, 30, 0.8); 155 display: flex; 156 left: 0; 157 opacity: 0; 158 padding: 0 10px; 159 pointer-events: none; 160 position: absolute; 161 right: 0; 162 transition: opacity 300ms ease; 163} 164 165.gallery > .header { 166 -webkit-app-region: drag; 167 -webkit-box-align: center; 168 -webkit-box-pack: end; 169 border-bottom: 1px solid rgba(50, 50, 50, 0.8); 170 display: -webkit-box; 171 height: 45px; 172 top: 0; 173} 174 175.gallery .header button { 176 -webkit-app-region: no-drag; 177} 178 179.gallery > .toolbar { 180 border-top: 1px solid rgba(50, 50, 50, 0.8); 181 bottom: 0; 182 height: 55px; 183 overflow: hidden; 184} 185 186.gallery[tools]:not([slideshow]) > .header, 187.gallery[tools]:not([slideshow]) > .toolbar { 188 opacity: 1; 189 pointer-events: auto; 190} 191 192/* Hide immediately when entering the slideshow. */ 193.gallery[tools][slideshow] > .toolbar { 194 transition-duration: 0; 195} 196 197.gallery[tools][locked] > .toolbar { 198 pointer-events: none; 199} 200 201.gallery .arrow-box { 202 -webkit-box-align: center; 203 -webkit-box-orient: horizontal; 204 -webkit-box-pack: center; 205 display: -webkit-box; 206 height: 100%; 207 pointer-events: none; 208 position: absolute; 209 width: 100%; 210 z-index: 100; 211} 212 213.gallery .arrow-box .arrow { 214 opacity: 0; 215 pointer-events: none; 216} 217 218.gallery .arrow-box .arrow-spacer { 219 -webkit-box-flex: 1; 220 pointer-events: none; 221} 222 223.gallery[tools] .arrow-box[active] .arrow { 224 cursor: pointer; 225 opacity: 1; 226 pointer-events: auto; 227} 228 229/* The arrow icons are in nested divs so that their opacity can be manipulated 230 * independently from their parent (which can be dimmed when the crop frame 231 * overlaps it) */ 232.gallery .arrow div { 233 background-position: center center; 234 background-repeat: no-repeat; 235 height: 193px; 236 opacity: 0; 237 width: 105px; 238} 239 240.gallery[tools] .arrow-box[active] .arrow div { 241 opacity: 0.25; 242} 243 244.gallery[tools] .arrow-box[active] .arrow div:hover { 245 opacity: 1; 246} 247 248.gallery .arrow.left div { 249 background-image: -webkit-image-set( 250 url(../images/100/arrow_left.png) 1x, 251 url(../images/200/arrow_left.png) 2x); 252} 253 254.gallery .arrow.right div { 255 background-image: -webkit-image-set( 256 url(../images/100/arrow_right.png) 1x, 257 url(../images/200/arrow_right.png) 2x); 258} 259 260/* Special behavior on mouse drag. 261 Redundant .gallery attributes included to make the rules more specific */ 262 263/* Everything but the image container should become mouse-transparent */ 264.gallery[tools][editing][mousedrag] * { 265 pointer-events: none; 266} 267 268.gallery[tools][editing][mousedrag] .image-container { 269 pointer-events: auto; 270} 271 272/* The editor marks elements with 'dimmed' attribute to get them out of the way 273 of the crop frame */ 274.gallery[tools][editing] [dimmed], 275.gallery[tools][editing] [dimmed] * { 276 pointer-events: none; 277} 278 279.gallery[tools][editing] [dimmed] { 280 opacity: 0.2; 281} 282 283/* Filename */ 284 285.gallery .filename-spacer { 286 flex: 0 1 auto; 287 height: 100%; 288 min-width: 140px; 289 overflow: hidden; 290 position: relative; 291 width: 252px; 292} 293 294.gallery .filename-spacer > * { 295 background-color: transparent; 296 overflow: hidden; 297 position: absolute; 298 transition: visibility 0 linear 180ms, all 180ms linear; 299 width: 260px; 300} 301 302.gallery .filename-spacer * { 303 color: white; 304} 305 306.gallery .filename-spacer .namebox { 307 height: 22px; 308 top: 15px; 309} 310 311.gallery[editing] .filename-spacer .namebox { 312 height: 21px; 313 top: 5px; 314} 315 316.gallery .filename-spacer .namebox { 317 background-color: transparent; 318 border: none; 319 box-sizing: border-box; 320 cursor: pointer; 321 display: block; 322 font-size: 120%; 323 outline: none; 324 overflow: hidden; 325 padding: 0 3px; 326 position: absolute; 327 text-overflow: ellipsis; 328 white-space: nowrap; 329} 330 331.gallery .filename-spacer .namebox[disabled] { 332 -webkit-user-select: none; 333 cursor: default; 334} 335 336.gallery .filename-spacer .namebox:not([disabled]):not(:focus):hover { 337 background-color: rgba(48, 48, 48, 1.0); 338} 339 340.gallery .filename-spacer .namebox:focus { 341 background-color: white; 342 color: black; 343 cursor: text; 344} 345 346.gallery .filename-spacer .options { 347 -webkit-box-align: center; 348 -webkit-box-orient: horizontal; 349 -webkit-box-pack: start; 350 display: -webkit-box; 351 height: 0; 352 opacity: 0; 353 top: 50px; 354 visibility: hidden; 355} 356 357.gallery[editing] .filename-spacer .options { 358 height: auto; 359 opacity: 1; 360 top: 28px; 361 visibility: visible; 362} 363 364.gallery .filename-spacer .saved, 365.gallery .filename-spacer .overwrite-original { 366 cursor: inherit; 367 font-size: 90%; 368 margin-left: 3px; 369 margin-right: 18px; 370 opacity: 0; 371 pointer-events: none; 372 transition: all linear 120ms; 373} 374 375.gallery[editing] .filename-spacer .saved { 376 color: white; 377 opacity: 0.5; 378} 379 380.gallery[editing] .filename-spacer .overwrite-original, 381.gallery[editing] .filename-spacer .overwrite-original > * { 382 cursor: pointer; 383 opacity: 1; 384 pointer-events: auto; 385} 386 387.gallery[editing] .options[saved] .overwrite-original { 388 opacity: 0.5; 389} 390 391.gallery[editing] .options[saved] .overwrite-original, 392.gallery[editing] .options[saved] .overwrite-original > * { 393 cursor: default; 394 pointer-events: none; 395} 396 397.gallery .filename-spacer .saved[highlighted] { 398 -webkit-transform: scaleX(1.1) scaleY(1.1) rotate(0); 399 opacity: 1; 400} 401 402/* Bubble */ 403 404.gallery .toolbar .bubble { 405 bottom: 65px; 406 font-size: 85%; 407 left: 50px; 408 position: absolute; 409 width: 220px; 410} 411 412.gallery:not([editing]) .toolbar .bubble { 413 display: none; 414} 415 416/* Middle spacer */ 417 418.gallery .middle-spacer { 419 align-items: center; 420 display: flex; 421 flex: 1 0 auto; 422 flex-direction: column; 423} 424 425/* Toolbar buttons */ 426 427.gallery .button-spacer { 428 display: flex; 429 flex: none; 430 justify-content: flex-end; 431 width: 252px; /* 42px button x 6 */ 432} 433 434/* Thumbnails */ 435 436.gallery .ribbon-spacer { 437 height: 55px; 438 margin-bottom: -55px; 439} 440 441.gallery .toolbar .ribbon { 442 height: 100%; 443 overflow: hidden; 444 transition: opacity 180ms linear, visibility 0 linear; 445 z-index: 0; 446} 447 448.gallery[editing] .toolbar .ribbon { 449 opacity: 0; 450 transition-delay: 0, 180ms; 451 visibility: hidden; 452} 453 454.gallery .ribbon-image { 455 border: 2px solid rgba(255, 255, 255, 0); /* transparent white */ 456 cursor: pointer; 457 display: inline-block; 458 height: 47px; 459 margin: 2px; 460 overflow: hidden; 461 transition: all 180ms linear; 462 width: 47px; 463} 464 465.ribbon-image[vanishing='smooth'] { 466 border-left-width: 0; 467 border-right-width: 0; 468 margin-left: 0; 469 margin-right: 0; 470 width: 0; 471} 472 473.gallery .ribbon-image[selected] { 474 border: 2px solid rgb(77, 144, 254); 475} 476 477.gallery .toolbar .ribbon.fade-left { 478 -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0, 479 rgba(0, 0, 0, 1) 40px); 480} 481 482.gallery .toolbar .ribbon.fade-right { 483 -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0) 0, 484 rgba(0, 0, 0, 1) 40px); 485} 486 487.gallery .toolbar .ribbon.fade-left.fade-right { 488 -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0, 489 rgba(0, 0, 0, 1) 40px, 490 rgba(0, 0, 0, 1) 230px, 491 rgba(0, 0, 0, 0) 100%); 492} 493 494.gallery .image-wrapper { 495 background-size: 45px 45px; 496 border: 1px solid rgba(0, 0, 0, 0); /* transparent black */ 497 height: 45px; 498 overflow: hidden; 499 position: relative; 500 width: 45px; 501} 502 503.gallery .image-wrapper > img { 504 position: absolute; 505} 506 507.gallery .image-wrapper > img:not(.cached) { 508 -webkit-animation: fadeIn 500ms ease-in; 509} 510 511/* Editor buttons */ 512 513.gallery .edit-bar-spacer { 514 -webkit-box-align: center; 515 -webkit-box-orient: horizontal; 516 -webkit-box-pack: center; 517 display: -webkit-box; 518 height: 100%; 519 left: 280px; 520 opacity: 0; 521 right: 280px; 522 transition: opacity 180ms linear, visibility 0 linear 180ms; 523 visibility: hidden; 524 margin-bottom: -55px; 525} 526 527.gallery .toolbar .edit-main { 528 -webkit-box-orient: horizontal; 529 -webkit-box-pack: center; 530 color: white; 531 display: -webkit-box; 532 height: 55px; 533 overflow: visible; 534} 535 536.gallery[editing] .edit-bar-spacer { 537 opacity: 1.0; 538 pointer-events: auto; 539 transition-delay: 100ms, 100ms; 540 visibility: visible; 541} 542 543.gallery .header button, 544.gallery .toolbar button, 545.gallery .header button[disabled], 546.gallery .toolbar button[disabled] { 547 background-color: rgba(0, 0, 0, 0); 548 background-position: center; 549 background-repeat: no-repeat; 550 border: none; 551 box-shadow: none; 552 color: white; 553 cursor: pointer; 554 display: inline-block; 555 flex: none; 556 opacity: 0.99; /* Workaround for http://crosbug.com/21065 */ 557 padding: 1px; /* Instead of a border. */ 558 position: relative; 559 z-index: 10; 560} 561 562.gallery .header button, 563.gallery .toolbar button { 564 height: 40px; 565 margin: 6px 0; 566 min-width: 40px; /* Reset. */ 567 width: 40px; 568} 569 570.gallery .toolbar button:focus { 571 z-index: 11; 572} 573 574/* By default, labels are hidden. */ 575.gallery > .toolbar button span { 576 display: none; 577} 578 579/* Show labels if there is enough space. */ 580@media (min-width: 1180px) { 581 582 .gallery .edit-main button, 583 .gallery .edit-main button[disabled] { 584 background-position: 5px center; 585 max-width: 60px; 586 min-width: 0; /* Reset. */ 587 padding: 0 10px 0 35px; 588 width: auto; 589 } 590 591 .gallery > .toolbar button span { 592 display: inline; 593 } 594 595} 596 597.gallery .header button:hover, 598.gallery .toolbar button:hover { 599 background-color: rgba(31, 31, 31, 1); 600 color: white; 601} 602 603.gallery .header button:active, 604.gallery .toolbar button:active, 605.gallery .header button[pressed], 606.gallery .toolbar button[pressed], 607.gallery .header button[pressed]:hover, 608.gallery .toolbar button[pressed]:hover { 609 background-color: rgba(240, 240, 240, 1); 610 color: black; 611} 612 613.gallery > .toolbar button.autofix { 614 background-image: -webkit-image-set( 615 url(../images/100/icon_autofix.png) 1x, 616 url(../images/200/icon_autofix.png) 2x); 617} 618 619.gallery > .toolbar button.autofix:active, 620.gallery > .toolbar button.autofix[pressed] { 621 background-image: -webkit-image-set( 622 url(../images/100/icon_autofix_selected.png) 1x, 623 url(../images/200/icon_autofix_selected.png) 2x); 624} 625 626.gallery > .toolbar button.crop { 627 background-image: -webkit-image-set( 628 url(../images/100/icon_crop.png) 1x, 629 url(../images/200/icon_crop.png) 2x); 630} 631 632.gallery > .toolbar button.crop:active, 633.gallery > .toolbar button.crop[pressed] { 634 background-image: -webkit-image-set( 635 url(../images/100/icon_crop_selected.png) 1x, 636 url(../images/200/icon_crop_selected.png) 2x); 637} 638 639.gallery > .toolbar button.exposure { 640 background-image: -webkit-image-set( 641 url(../images/100/icon_brightness.png) 1x, 642 url(../images/200/icon_brightness.png) 2x); 643} 644 645.gallery > .toolbar button.exposure:active, 646.gallery > .toolbar button.exposure[pressed] { 647 background-image: -webkit-image-set( 648 url(../images/100/icon_brightness_selected.png) 1x, 649 url(../images/200/icon_brightness_selected.png) 2x); 650} 651 652.gallery > .toolbar button.rotate_right { 653 background-image: -webkit-image-set( 654 url(../images/100/icon_rotate.png) 1x, 655 url(../images/200/icon_rotate.png) 2x); 656} 657 658.gallery > .toolbar button.rotate_right:active, 659.gallery > .toolbar button.rotate_right[pressed] { 660 background-image: -webkit-image-set( 661 url(../images/100/icon_rotate_selected.png) 1x, 662 url(../images/200/icon_rotate_selected.png) 2x); 663} 664 665.gallery > .toolbar button.rotate_left { 666 background-image: -webkit-image-set( 667 url(../images/100/icon_rotate_left.png) 1x, 668 url(../images/200/icon_rotate_left.png) 2x); 669} 670 671.gallery > .toolbar button.rotate_left:active, 672.gallery > .toolbar button.rotate_left[pressed] { 673 background-image: -webkit-image-set( 674 url(../images/100/icon_rotate_left_selected.png) 1x, 675 url(../images/200/icon_rotate_left_selected.png) 2x); 676} 677 678.gallery > .toolbar button.undo { 679 background-image: -webkit-image-set( 680 url(../images/100/icon_undo.png) 1x, 681 url(../images/200/icon_undo.png) 2x); 682} 683 684.gallery > .toolbar button.undo:active, 685.gallery > .toolbar button.undo[pressed] { 686 background-image: -webkit-image-set( 687 url(../images/100/icon_undo_selected.png) 1x, 688 url(../images/200/icon_undo_selected.png) 2x); 689} 690 691.gallery > .toolbar button.redo { 692 background-image: -webkit-image-set( 693 url(../images/100/icon_redo.png) 1x, 694 url(../images/200/icon_redo.png) 2x); 695 position: absolute; /* Exclude from center-packing*/ 696} 697 698.gallery > .toolbar button.redo:active, 699.gallery > .toolbar button.redo[pressed] { 700 background-image: -webkit-image-set( 701 url(../images/100/icon_redo_selected.png) 1x, 702 url(../images/200/icon_redo_selected.png) 2x); 703} 704 705.gallery > .toolbar button[disabled], 706.gallery[tools][locked] > .toolbar button { 707 opacity: 0.5; 708 pointer-events: none; 709} 710 711.gallery > .toolbar button[hidden] { 712 display: none; 713} 714 715.gallery[mode='slide'] > .toolbar button.mode { 716 background-image: -webkit-image-set( 717 url(../images/100/icon_mosaic.png) 1x, 718 url(../images/200/icon_mosaic.png) 2x); 719} 720 721.gallery[mode='slide'] > .toolbar button.mode:active { 722 background-image: -webkit-image-set( 723 url(../images/100/icon_mosaic_selected.png) 1x, 724 url(../images/200/icon_mosaic_selected.png) 2x); 725} 726 727.gallery[mode='mosaic'] > .toolbar button.mode { 728 background-image: -webkit-image-set( 729 url(../images/100/icon_1up.png) 1x, 730 url(../images/200/icon_1up.png) 2x); 731} 732 733.gallery[mode='mosaic'] > .toolbar button.mode:active { 734 background-image: -webkit-image-set( 735 url(../images/100/icon_1up_selected.png) 1x, 736 url(../images/200/icon_1up_selected.png) 2x); 737} 738 739.gallery > .toolbar button.slideshow { 740 background-image: -webkit-image-set( 741 url(../images/100/icon_slideshow.png) 1x, 742 url(../images/200/icon_slideshow.png) 2x); 743} 744 745.gallery > .toolbar button.slideshow:active, 746.gallery > .toolbar button.slideshow[pressed] { 747 background-image: -webkit-image-set( 748 url(../images/100/icon_slideshow_selected.png) 1x, 749 url(../images/200/icon_slideshow_selected.png) 2x); 750} 751 752.gallery > .toolbar button.delete { 753 background-image: -webkit-image-set( 754 url(../images/100/icon_delete.png) 1x, 755 url(../images/200/icon_delete.png) 2x); 756} 757 758.gallery > .toolbar button.delete:active { 759 background-image: -webkit-image-set( 760 url(../images/100/icon_delete_selected.png) 1x, 761 url(../images/200/icon_delete_selected.png) 2x); 762} 763 764.gallery > .toolbar button.edit { 765 background-image: -webkit-image-set( 766 url(../images/100/icon_edit.png) 1x, 767 url(../images/200/icon_edit.png) 2x); 768} 769 770.gallery > .toolbar button.edit:active, 771.gallery > .toolbar button.edit[pressed] { 772 background-image: -webkit-image-set( 773 url(../images/100/icon_edit_selected.png) 1x, 774 url(../images/200/icon_edit_selected.png) 2x); 775} 776 777.gallery > .toolbar button.print { 778 background-image: -webkit-image-set( 779 url(../images/100/icon_print.png) 1x, 780 url(../images/200/icon_print.png) 2x); 781} 782 783.gallery > .toolbar button.print:active, 784.gallery > .toolbar button.print[pressed] { 785 background-image: -webkit-image-set( 786 url(../images/100/icon_print_selected.png) 1x, 787 url(../images/200/icon_print_selected.png) 2x); 788} 789 790.gallery > .toolbar button.share { 791 background-image: -webkit-image-set( 792 url(../images/100/icon_share.png) 1x, 793 url(../images/200/icon_share.png) 2x); 794} 795 796.gallery > .toolbar button.share:active, 797.gallery > .toolbar button.share[pressed] { 798 background-image: -webkit-image-set( 799 url(../images/100/icon_share_selected.png) 1x, 800 url(../images/200/icon_share_selected.png) 2x); 801} 802 803.gallery > .toolbar button.share[disabled] { 804 display: none; 805} 806 807/* Secondary toolbar (mode-specific tools) */ 808 809.gallery .edit-modal { 810 -webkit-box-orient: horizontal; 811 -webkit-box-pack: center; 812 bottom: 80px; 813 display: -webkit-box; 814 height: 40px; 815 pointer-events: none; 816 position: absolute; 817 width: 100%; 818} 819 820.gallery .edit-modal-wrapper[hidden] { 821 display: none; 822} 823 824.gallery .edit-modal-wrapper { 825 -webkit-box-align: center; 826 -webkit-box-orient: horizontal; 827 -webkit-box-pack: center; 828 background-color: rgba(0, 0, 0, 0.75); 829 color: white; 830 display: -webkit-box; 831 pointer-events: auto; 832} 833 834.gallery .edit-modal .label { 835 -webkit-box-align: center; 836 -webkit-box-orient: horizontal; 837 background-position: 20px center; 838 background-repeat: no-repeat; 839 display: -webkit-box; 840 height: 20px; 841 padding-left: 50px; 842 padding-right: 10px; 843} 844 845.gallery .edit-modal .label.brightness { 846 background-image: -webkit-image-set( 847 url(../images/100/icon_brightness.png) 1x, 848 url(../images/200/icon_brightness.png) 2x); 849} 850 851.gallery .edit-modal .label.contrast { 852 background-image: -webkit-image-set( 853 url(../images/100/icon_contrast.png) 1x, 854 url(../images/200/icon_contrast.png) 2x); 855 height: 24px; 856 margin-left: 15px; 857} 858 859.gallery .edit-modal button { 860 background: transparent; 861 border: 0 none; 862 border-image: none; 863 box-sizing: border-box; 864 color: #fff; 865 height: 100%; 866 min-width: 0; 867 padding: 8px 16px; 868} 869 870.gallery .edit-modal button * { 871 pointer-events: none; 872} 873 874.gallery .edit-modal button:hover { 875 background: #1f1f1f; 876 color: #fff; 877} 878 879.gallery .edit-modal button.selected, 880.gallery .edit-modal button:active { 881 background: #f0f0f0; 882 color: black; 883} 884 885.gallery .edit-modal .range { 886 -webkit-appearance: none !important; 887 background: transparent; 888 height: 29px; 889 margin-right: 10px; 890 position: relative; 891} 892 893.gallery .edit-modal .range::before { 894 background: #fff; 895 content: ''; 896 display: block; 897 height: 3px; 898 left: 3px; 899 position: absolute; 900 right: 3px; 901 top: 13px; 902} 903 904.gallery .edit-modal .range::-webkit-slider-thumb { 905 -webkit-appearance: none; 906 background-image: -webkit-image-set( 907 url(../images/100/slider_thumb.png) 1x, 908 url(../images/200/slider_thumb.png) 2x); 909 height: 29px; 910 width: 16px; 911} 912 913/* Crop frame */ 914 915.gallery .crop-overlay { 916 -webkit-box-orient: vertical; 917 display: -webkit-box; 918 pointer-events: none; 919 position: absolute; 920} 921 922.gallery .crop-overlay .shadow { 923 background-color: rgba(0, 0, 0, 0.65); 924} 925 926.gallery .crop-overlay .middle-box { 927 -webkit-box-flex: 1; 928 -webkit-box-orient: horizontal; 929 display: -webkit-box; 930} 931 932.gallery .crop-frame { 933 -webkit-box-flex: 1; 934 display: -webkit-box; 935 position: relative; 936} 937 938.gallery .crop-frame div { 939 background-color: rgba(255, 255, 255, 1); 940 box-shadow: 0 0 3px rgba(0, 0, 0, 0.75); 941 position: absolute; 942} 943 944.gallery .crop-frame .horizontal { 945 height: 1px; 946 left: 7px; 947 right: 7px; 948} 949 950.gallery .crop-frame .horizontal.top { 951 top: 0; 952} 953 954.gallery .crop-frame .horizontal.bottom { 955 bottom: 0; 956} 957 958.gallery .crop-frame .vertical { 959 bottom: 7px; 960 top: 7px; 961 width: 1px; 962} 963 964.gallery .crop-frame .vertical.left { 965 left: 0; 966} 967 968.gallery .crop-frame .vertical.right { 969 right: 0; 970} 971 972.gallery .crop-frame .corner { 973 border-radius: 6px; 974 height: 13px; 975 width: 13px; 976} 977 978.gallery .crop-frame .corner.left { 979 left: -6px; 980} 981 982.gallery .crop-frame .corner.right { 983 right: -6px; 984} 985 986.gallery .crop-frame .corner.top { 987 top: -6px; 988} 989 990.gallery .crop-frame .corner.bottom { 991 bottom: -6px; 992} 993 994/* Prompt/notification panel */ 995 996.gallery .prompt-wrapper { 997 -webkit-box-orient: horizontal; 998 -webkit-box-pack: center; 999 display: -webkit-box; 1000 height: 100%; 1001 pointer-events: none; 1002 position: absolute; 1003 width: 100%; 1004} 1005 1006.gallery .prompt-wrapper[pos=top] { 1007 -webkit-box-align: start; 1008} 1009 1010.gallery .prompt-wrapper[pos=center] { 1011 -webkit-box-align: center; 1012} 1013 1014.gallery .prompt-wrapper[pos=center] .back-button { 1015 display: none; 1016} 1017 1018.dimmable { 1019 opacity: 1; 1020 transition: opacity 220ms ease; 1021} 1022 1023.gallery .prompt { 1024 -webkit-box-align: center; 1025 -webkit-box-orient: horizontal; 1026 background-color: rgba(0, 0, 0, 0.8); 1027 color: white; 1028 display: -webkit-box; 1029 font-size: 120%; 1030 height: 40px; 1031 opacity: 0; 1032 padding: 0 20px; 1033 position: relative; 1034 top: 5px; 1035 transition: all 180ms ease; 1036} 1037 1038.gallery .prompt[state='fadein'] { 1039 opacity: 1; 1040 top: 0; 1041} 1042 1043.gallery .prompt[state='fadeout'] { 1044 opacity: 0; 1045 top: 0; 1046} 1047 1048.gallery .prompt-wrapper[pos=top] .prompt { 1049 padding-right: 10px; 1050} 1051 1052.gallery .share-menu { 1053 -webkit-box-align: stretch; 1054 -webkit-box-orient: vertical; 1055 -webkit-box-pack: start; 1056 background-color: white; 1057 border: 1px solid #7f7f7f; 1058 border-radius: 1px; 1059 bottom: 60px; 1060 display: -webkit-box; 1061 opacity: 1.0; 1062 padding: 8px; 1063 position: absolute; 1064 right: 10px; 1065 transition: opacity 500ms ease-in-out; 1066} 1067 1068.gallery .share-menu .bubble-point { 1069 background-image: -webkit-image-set( 1070 url(../images/100/bubble_point.png) 1x, 1071 url(../images/200/bubble_point.png) 2x); 1072 background-position: center top; 1073 background-repeat: no-repeat; 1074 bottom: -8px; 1075 height: 8px; 1076 padding: 0; 1077 position: absolute; 1078 right: 20px; 1079 width: 20px; 1080} 1081 1082.gallery .share-menu[hidden] { 1083 bottom: -100%; /* Offscreen so that 'dimmed' attribute does not show it. */ 1084 opacity: 0; 1085 pointer-events: none; 1086} 1087 1088.gallery .share-menu > .item { 1089 background-color: rgba(0, 0, 0, 0); 1090 background-position: 5px center; 1091 background-repeat: no-repeat; 1092 cursor: pointer; 1093 padding: 5px; 1094 padding-left: 26px; 1095} 1096 1097.gallery .share-menu > .item:hover { 1098 background-color: rgba(240, 240, 240, 1); 1099} 1100 1101.gallery .share-menu > div > img { 1102 display: block; 1103 margin-right: 5px; 1104} 1105 1106/* Load spinner and error banner. */ 1107 1108.gallery .spinner { 1109 background-image: 1110 url(../../file_manager/foreground/images/common/spinner.svg); 1111 background-size: 100%; 1112 height: 16px; 1113 left: 50%; 1114 margin-left: -8px; 1115 margin-top: -8px; 1116 position: absolute; 1117 top: 50%; 1118 width: 16px; 1119} 1120 1121.gallery:not([spinner]) .spinner { 1122 display: none; 1123} 1124 1125.gallery .error-banner { 1126 -webkit-box-align: center; 1127 -webkit-box-orient: horizontal; 1128 -webkit-box-pack: center; 1129 background-color: rgba(24, 24, 24, 1); 1130 background-image: -webkit-image-set( 1131 url(../images/100/error.png) 1x, 1132 url(../images/200/error.png) 2x); 1133 background-position: 25px center; 1134 background-repeat: no-repeat; 1135 color: white; 1136 display: -webkit-box; 1137 height: 54px; 1138 padding-left: 70px; 1139 padding-right: 35px; 1140} 1141 1142.gallery:not([error]) .error-banner { 1143 display: none; 1144} 1145 1146/* Mosaic view. */ 1147.mosaic { 1148 bottom: 55px; /* Toolbar height. */ 1149 left: 0; 1150 overflow-x: scroll; 1151 overflow-y: hidden; 1152 position: absolute; 1153 right: 0; 1154 top: 0; 1155 1156 /* transition-duration is set in Javascript. */ 1157 transition-property: -webkit-transform; 1158 transition-timing-function: linear; 1159} 1160 1161.mosaic::-webkit-scrollbar { 1162 background: transparent; 1163} 1164 1165.mosaic::-webkit-scrollbar-thumb { 1166 background: rgb(31, 31, 31); 1167} 1168 1169.gallery:not([mode='mosaic']) .mosaic::-webkit-scrollbar-thumb { 1170 background: transparent; 1171} 1172 1173.mosaic-tile { 1174 position: absolute; 1175 /* Tile's zoom factor is animated on hover. We apply the transform to 1176 the entire tile so that the image outline is included into the animation. */ 1177 transition: -webkit-transform 150ms linear; 1178 z-index: 50; 1179} 1180 1181/* Mosaic tile's opacity is controlled by |visible| attribute which changes 1182 separately from .gallery[mode] */ 1183.mosaic:not([visible]) .mosaic-tile .img-border { 1184 opacity: 0; 1185} 1186 1187/* Animate tile's opacity, except for the selected tile which should show/hide 1188 instantly (this looks better when zooming to/from the slide mode). */ 1189.mosaic-tile:not([selected]) .img-border { 1190 transition: opacity 350ms linear; 1191} 1192 1193/* Must be in sync with mosaic_mode.js. 1194 Mosaic.Layout.SPACING should be equal to 1195 top + bottom + border-top-width + border-bottom-width AND 1196 left + right + border-left-width + border-right-width */ 1197.mosaic-tile .img-border { 1198 border: 1px solid black; /* Space between the outline and the image. */ 1199 bottom: 4px; 1200 left: 4px; 1201 outline: 2px solid transparent; 1202 overflow: hidden; 1203 position: absolute; 1204 right: 4px; 1205 top: 4px; 1206} 1207 1208/* Selected and hover state are only visible when zoom transition is over. */ 1209.mosaic[visible='normal'] .mosaic-tile[selected] .img-border { 1210 outline-color: rgb(51, 153, 255); 1211} 1212 1213.mosaic[visible='normal'].hover-visible 1214 .mosaic-tile:hover:not([selected]) .img-border { 1215 outline-color: rgb(182, 212, 252); 1216} 1217 1218.mosaic-tile .img-wrapper { 1219 bottom: 0; 1220 left: 0; 1221 position: absolute; 1222 right: 0; 1223 top: 0; 1224} 1225 1226.mosaic-tile .img-wrapper[generic-thumbnail], 1227.mosaic-tile .img-wrapper.animated:not([generic-thumbnail]) 1228 canvas:not(.cached) { 1229 -webkit-animation: fadeIn ease-in 1; 1230 -webkit-animation-duration: 500ms; 1231 -webkit-animation-fill-mode: forwards; 1232} 1233 1234@-webkit-keyframes fadeIn { 1235 from { 1236 opacity: 0; 1237 } 1238 to { 1239 opacity: 1; 1240 } 1241} 1242 1243/* In order to do mode animated transitions smoothly we keep both mosaic and 1244 image-container but transparent. */ 1245.gallery:not([mode='mosaic']) .mosaic, 1246.gallery:not([mode='slide']) .image-container { 1247 pointer-events: none; 1248} 1249 1250.gallery:not([mode='slide']) .ribbon, 1251.gallery:not([mode='slide']) .arrow-box { 1252 opacity: 0; 1253 pointer-events: none; 1254} 1255 1256/* Temporary. Remove this along with the delete confirmation dialog 1257 when Undo delete is implemented. */ 1258.cr-dialog-shield { 1259 background-color: black; 1260} 1261 1262/* Slideshow controls */ 1263 1264.slideshow-toolbar { 1265 -webkit-box-align: center; 1266 -webkit-box-orient: horizontal; 1267 -webkit-box-pack: center; 1268 bottom: 0; 1269 display: none; 1270 left: 0; 1271 padding-bottom: 6px; 1272 pointer-events: none; 1273 position: absolute; 1274 right: 0; 1275} 1276 1277.gallery[tools][slideshow] .slideshow-toolbar { 1278 display: -webkit-box; 1279} 1280 1281.slideshow-toolbar > div { 1282 background-position: center; 1283 background-repeat: no-repeat; 1284 height: 68px; 1285 opacity: 0.5; 1286 pointer-events: auto; 1287 width: 68px; 1288} 1289 1290.slideshow-toolbar > div:hover { 1291 opacity: 1; 1292} 1293 1294.slideshow-toolbar > .slideshow-play { 1295 background-image: -webkit-image-set( 1296 url(../images/100/slideshow-play.png) 1x, 1297 url(../images/200/slideshow-play.png) 2x); 1298 margin-right: -2px; 1299} 1300 1301.gallery[slideshow='playing'] .slideshow-toolbar > .slideshow-play { 1302 background-image: -webkit-image-set( 1303 url(../images/100/slideshow-pause.png) 1x, 1304 url(../images/200/slideshow-pause.png) 2x); 1305} 1306 1307.slideshow-toolbar > .slideshow-end { 1308 background-image: -webkit-image-set( 1309 url(../images/100/slideshow-end.png) 1x, 1310 url(../images/200/slideshow-end.png) 2x); 1311 margin-left: -2px; 1312} 1313 1314.gallery > .header > button { 1315 -webkit-margin-start: 10px; 1316 cursor: default; 1317 height: 32px; 1318 min-width: 32px; 1319 width: 32px; 1320} 1321 1322.gallery > .header > .minimize-button { 1323 background: -webkit-image-set( 1324 url(chrome://resources/images/apps/topbar_button_minimize.png) 1x, 1325 url(chrome://resources/images/2x/apps/topbar_button_minimize.png) 2x) 1326 center; 1327} 1328 1329.gallery > .header > .maximize-button { 1330 background: -webkit-image-set( 1331 url(chrome://resources/images/apps/topbar_button_maximize.png) 1x, 1332 url(chrome://resources/images/2x/apps/topbar_button_maximize.png) 2x) 1333 center; 1334} 1335 1336.gallery > .header > .close-button { 1337 background: -webkit-image-set( 1338 url(chrome://resources/images/apps/topbar_button_close.png) 1x, 1339 url(chrome://resources/images/2x/apps/topbar_button_close.png) 2x) 1340 center; 1341} 1342