aboutwelcome.scss (72717B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 @use 'sass:math'; 5 6 // Don't import any styles that are not scoped to .onboardingContainer. This 7 // stylesheet is loaded by FeatureCallout.sys.mjs into the browser chrome. To 8 // add other stylesheets to about:welcome or spotlight, add them to 9 // aboutwelcome.html or spotlight.html. Ideally, there should be no `@import` 10 // statements in the built aboutwelcome.css file. 11 @import '../../asrouter/content-src/styles/feature-callout'; 12 13 /* stylelint-disable max-nesting-depth */ 14 15 $break-point-small: 570px; 16 $break-point-medium: 610px; 17 $break-point-large: 866px; 18 $container-min-width: 700px; 19 $logo-size: 80px; 20 $main-section-width: 504px; 21 $split-section-width: 400px; 22 $split-screen-height: 550px; 23 $small-main-section-height: 450px; 24 $small-secondary-section-height: 100px; 25 $noodle-buffer: 106px; 26 $double-section-width: 800px; 27 28 html { 29 height: 100%; 30 } 31 32 // Below variables are used via config JSON in AboutWelcomeDefaults 33 // and referenced below inside dummy class to pass test browser_parsable_css 34 .dummy { 35 background: var(--mr-welcome-background-color) var(--mr-welcome-background-gradient) var(--mr-secondary-position) var(--mr-screen-background-color); 36 } 37 38 // Styling for content rendered in a Spotlight messaging surface. 39 :root { 40 &[dialogroot] { 41 background-color: transparent; 42 43 body { 44 padding: 0; 45 } 46 47 .onboardingContainer { 48 // Without this, the container will be 100vh in height. When the dialog 49 // overflows horizontally, the horizontal scrollbar will appear. If the 50 // scrollbars aren't overlay scrollbars (this is controlled by 51 // Theme::ScrollbarStyle), they will take up vertical space in the 52 // viewport, causing the dialog to overflow vertically. This causes the 53 // vertical scrollbar to appear, which takes up horizontal space, causing 54 // the horizontal scrollbar to appear, and so on. 55 height: 100%; 56 background-color: transparent; 57 58 &:dir(rtl) { 59 transform: unset; 60 } 61 62 .logo-container { 63 pointer-events: none; 64 } 65 66 .screen { 67 &:dir(rtl) { 68 transform: unset; 69 } 70 } 71 } 72 } 73 } 74 75 // Styling for about:welcome background container 76 .welcome-container { 77 .onboardingContainer { 78 min-height: $break-point-medium; 79 min-width: fit-content; 80 } 81 } 82 83 // Allows fullscreen scrolling, for addons picker which 84 // may have taller content than other onboarding screens. 85 // Overrides fixed height styles to avoid clipping. 86 .onboardingContainer:has(.addons-picker-container) { 87 .screen[pos='split'][fullscreen] { 88 height: auto; 89 90 .section-secondary { 91 height: auto; 92 } 93 94 .main-content { 95 min-height: 100vh; 96 } 97 } 98 } 99 100 .onboardingContainer:has(.embedded-backup-restore-container) { 101 .screen[pos='split'][fullscreen] { 102 .section-main { 103 .main-content { 104 .welcome-text { 105 margin-block: 15px 22px; 106 107 h1, h2 { 108 max-width: 300px; 109 } 110 } 111 } 112 } 113 } 114 } 115 116 .onboardingContainer { 117 --grey-subtitle-1: light-dark(#696977, #FFF); 118 --mr-welcome-background-color: light-dark(#F8F6F4, #333336); 119 --mr-screen-heading-color: var(--text-color); 120 --mr-welcome-background-gradient: linear-gradient( 121 0deg, 122 light-dark(rgba(144, 89, 255, 20%), rgba(144, 89, 255, 30%)) 0%, 123 light-dark(rgba(2, 144, 238, 20%), rgba(2, 144, 238, 30%)) 100% 124 ); 125 --mr-screen-background-color: light-dark(#F8F6F4, #62697A); 126 --single-select-border-color: #8F8F9D; 127 --single-select-hover-color: light-dark(#DEDEDF, #52525E); 128 --picker-background-color: color-mix(in srgb, transparent 98%, light-dark(black, white) 2%); 129 --picker-hover-background-color: color-mix(in srgb, transparent 95%, light-dark(black, white) 5%); 130 --picker-border-color: var(--border-color); 131 --picker-checked-border-color: var(--border-color-selected); 132 --picker-hover-border-color: var(--picker-border-color); 133 --picker-focus-ring-color: var(--color-accent-primary-selected); 134 --picker-checkbox-color: var(--color-accent-primary-selected); 135 --picker-checkbox-hover-color: var(--picker-checkbox-color); 136 --picker-backup-flair-background: color-mix(in srgb, var(--color-accent-primary) 20%, transparent); 137 --picker-backup-flair-color: var(--color-accent-primary); 138 139 @media (forced-colors: active) { 140 --picker-background-color: ButtonFace; 141 --picker-hover-background-color: SelectedItemText; 142 --picker-border-color: ButtonText; 143 --picker-checked-border-color: var(--picker-border-color); 144 --picker-hover-border-color: SelectedItem; 145 --picker-focus-ring-color: CanvasText; 146 --picker-checkbox-color: ButtonText; 147 --picker-checkbox-hover-color: SelectedItem; 148 } 149 150 font-family: system-ui; 151 font-size: 16px; 152 position: relative; 153 text-align: center; 154 height: 100vh; 155 156 @media (prefers-contrast) { 157 --mr-screen-background-color: buttontext; 158 --mr-screen-heading-color: buttonface; 159 160 background-color: var(--background-color-canvas); 161 } 162 163 // Transition all of these and reduced motion effectively only does opacity. 164 --transition: 0.6s opacity, 0.6s scale, 0.6s rotate, 0.6s translate; 165 166 // Define some variables that are used for in/out states. 167 @media (prefers-reduced-motion: no-preference) { 168 --translate: 30px; 169 --rotate: 20deg; 170 --scale: 0.4; 171 --progress-bar-transition: 0.6s translate; 172 173 // Scale is used for noodles that can be flipped. 174 &:dir(rtl) { 175 --scale: -0.4 0.4; 176 } 177 } 178 179 // Use default values that match "unmoved" state to avoid motion. 180 @media (prefers-reduced-motion: reduce) { 181 --translate: 0; 182 --rotate: 0deg; 183 --scale: 1; 184 // To reduce motion, progress bar fades in instead of wiping in. 185 --progress-bar-transition: none; 186 187 &:dir(rtl) { 188 --scale: -1 1; 189 } 190 } 191 192 &:dir(rtl) { 193 transform: rotateY(180deg); 194 } 195 196 &:has([pos='split'][fullscreen]) { 197 min-height: 100vh; 198 height: auto; 199 display: flex; 200 flex-direction: column; 201 } 202 203 .section-main { 204 display: flex; 205 flex-direction: column; 206 justify-content: center; 207 width: $main-section-width; 208 flex-shrink: 0; 209 } 210 211 .section-main:not(.embedded-migration) { 212 position: relative; 213 } 214 215 .main-content { 216 background-color: var(--background-color-canvas); 217 border-radius: var(--border-radius-large); 218 box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 20%); 219 display: flex; 220 flex-direction: column; 221 height: 100%; 222 padding: 0; 223 transition: var(--transition); 224 z-index: 1; 225 box-sizing: border-box; 226 227 @media (prefers-contrast){ 228 border: 1px solid var(--text-color) 229 } 230 231 &.no-steps { 232 padding-bottom: 48px; 233 } 234 235 .main-content-inner { 236 display: flex; 237 flex-direction: column; 238 flex-grow: 1; 239 justify-content: space-around; 240 } 241 } 242 243 // Handle conditional display of steps indicator 244 // Don't show when there's only one screen 245 .main-content .no-steps { 246 .main-content { 247 padding-bottom: 48px; 248 } 249 250 .steps { 251 display: none; 252 } 253 } 254 255 @mixin arrow-icon-styles { 256 .arrow-icon { 257 -moz-context-properties: fill; 258 fill: currentColor; 259 text-decoration: none; 260 261 &::after { 262 content: ''; 263 padding-inline-end: 12px; 264 margin-inline-start: 4px; 265 background: url('chrome://browser/skin/forward.svg') no-repeat center / 12px; 266 } 267 268 &:dir(rtl)::after { 269 background-image: url('chrome://browser/skin/back.svg'); 270 } 271 } 272 } 273 274 @mixin secondary-cta-styles { 275 background-color: var(--button-background-color); 276 border: var(--button-border); 277 line-height: 12px; 278 font-size: 0.72em; 279 font-weight: var(--font-weight-semibold); 280 padding: 8px 16px; 281 text-decoration: none; 282 cursor: default; 283 284 &:hover, 285 &[open] { 286 background-color: var(--button-background-color-hover); 287 color: var(--button-text-color-hover); 288 289 &:active { 290 background-color: var(--button-background-color-active); 291 color: var(--button-text-color-active); 292 } 293 } 294 } 295 296 @mixin text-link-styles { 297 background: none; 298 text-decoration: underline; 299 cursor: pointer; 300 color: var(--link-color); 301 302 &:hover { 303 color: var(--link-color-hover); 304 } 305 306 &:active { 307 color: var(--link-color-active); 308 309 @media (prefers-contrast) { 310 text-decoration: none; 311 } 312 } 313 } 314 315 .screen { 316 display: flex; 317 position: relative; 318 flex-flow: row nowrap; 319 height: 100%; 320 min-height: 500px; 321 overflow: hidden; 322 323 &.light-text { 324 --text-color: rgb(251, 251, 254); 325 --button-text-color-primary: rgb(43, 42, 51); 326 --button-text-color-primary-hover: rgb(43, 42, 51); 327 --button-background-color-primary: rgb(0, 221, 255); 328 --button-background-color-primary-hover: rgb(128, 235, 255); 329 --button-background-color-primary-active: rgb(170, 242, 255); 330 --button-text-color: var(--text-color); 331 } 332 333 &.dark-text { 334 --text-color: rgb(21, 20, 26); 335 --button-text-color-primary: rgb(251, 251, 254); 336 --button-text-color-primary-hover: rgb(251, 251, 254); 337 --button-background-color-primary: #0061E0; 338 --button-background-color-primary-hover: #0250BB; 339 --button-background-color-primary-active: #053E94; 340 --button-border-color-primary: transparent; 341 --button-border-color-primary-hover: transparent; 342 --button-text-color: var(--text-color); 343 } 344 345 &:dir(rtl) { 346 transform: rotateY(180deg); 347 } 348 349 &[pos='center'] { 350 background-color: rgba(21, 20, 26, 50%); 351 min-width: $main-section-width; 352 353 &.with-noodles { 354 // Adjust for noodles partially extending out from the square modal 355 min-width: $main-section-width + $noodle-buffer; 356 min-height: $main-section-width + $noodle-buffer; 357 358 .section-main { 359 height: $main-section-width; 360 } 361 } 362 363 &.with-video { 364 justify-content: center; 365 background: none; 366 align-items: center; 367 368 .section-main { 369 width: $double-section-width; 370 height: $split-screen-height; 371 } 372 373 .main-content { 374 background-color: var(--mr-welcome-background-color); 375 border-radius: var(--border-radius-medium); 376 box-shadow: 0 2px 14px rgba(58, 57, 68, 20%); 377 padding: 44px 85px 20px; 378 379 .welcome-text { 380 margin: 0; 381 } 382 383 .main-content-inner { 384 justify-content: space-between; 385 } 386 387 h1, 388 h2 { 389 align-self: start; 390 } 391 392 h1 { 393 font-size: 24px; 394 line-height: 28.8px; 395 } 396 397 h2 { 398 font-size: 15px; 399 line-height: 22px; 400 } 401 402 .secondary-cta { 403 @include arrow-icon-styles; 404 405 justify-content: end; 406 407 .secondary { 408 @include secondary-cta-styles; 409 410 color: var(--button-text-color); 411 } 412 } 413 } 414 } 415 416 &.addons-picker { 417 justify-content: center; 418 align-items: center; 419 background: none; 420 421 .section-main { 422 width: $double-section-width; 423 height: $split-screen-height; 424 } 425 426 .main-content { 427 background-color: var(--background-color-canvas); 428 border-radius: var(--border-radius-medium); 429 box-shadow: 0 2px 14px rgba(58, 57, 68, 20%); 430 overflow: hidden; 431 432 .welcome-text { 433 display: flex; 434 margin: 0; 435 } 436 437 .main-content-inner { 438 padding: 25px 56px 0; 439 justify-content: space-between; 440 } 441 442 h1, 443 h2 { 444 align-self: start; 445 } 446 447 h2 { 448 font-size: 15px; 449 text-align: start; 450 } 451 452 .brand-logo { 453 display: block; 454 margin: 40px 56px 0; 455 transition: var(--transition); 456 height: 30px; 457 } 458 459 .additional-cta { 460 display: block; 461 margin: 8px 0; 462 463 &.cta-link { 464 background: none; 465 padding: 0; 466 font-weight: normal; 467 468 @include text-link-styles; 469 } 470 471 &.secondary { 472 &:hover { 473 background-color: var(--button-background-color-hover); 474 } 475 } 476 } 477 478 .secondary-cta { 479 @include arrow-icon-styles; 480 481 justify-content: end; 482 483 .secondary { 484 @include secondary-cta-styles; 485 486 color: var(--button-text-color); 487 } 488 } 489 } 490 491 .addon-container { 492 display: flex; 493 border: 1px solid var(--border-color); 494 box-shadow: 0 1px 2px 0 var(--border-color); 495 border-radius: var(--border-radius-small); 496 margin: 5px auto; 497 text-align: start; 498 499 .rtamo-icon { 500 img { 501 margin: 10px; 502 } 503 } 504 505 .addon-details { 506 display: grid; 507 width: 70%; 508 } 509 510 .addon-title { 511 margin: 10px 0 3px; 512 font-size: 16px; 513 font-weight: var(--heading-font-weight); 514 } 515 516 .addon-description { 517 margin: 2px 0 10px; 518 font-size: 13px; 519 font-weight: normal; 520 } 521 522 .install-button-wrapper { 523 display: flex; 524 } 525 526 button { 527 align-self: center; 528 width: 124px; 529 } 530 } 531 532 .loader { 533 width: 1em; 534 height: 1em; 535 border: 3px solid var(--button-text-color-primary); 536 border-bottom-color: transparent; 537 border-radius: var(--border-radius-circle); 538 box-sizing: border-box; 539 animation: rotation 1s linear infinite; 540 justify-self: center; 541 } 542 543 @keyframes rotation { 544 0% { 545 transform: rotate(0deg); 546 } 547 548 100% { 549 transform: rotate(360deg); 550 } 551 } 552 553 .loaderContainer { 554 display: flex; 555 padding: 1.5px 37.5px; 556 margin: auto; 557 } 558 } 559 } 560 561 &:not([pos='split']) { 562 .secondary-cta { 563 .secondary { 564 @include text-link-styles; 565 566 font-size: 14px; 567 font-weight: normal; 568 line-height: 20px; 569 } 570 571 &.top { 572 button { 573 color: #FFF; 574 575 &:hover { 576 color: #E0E0E6; 577 } 578 } 579 } 580 } 581 582 migration-wizard { 583 padding: 5px 60px; 584 585 &::part(header){ 586 text-align: center; 587 } 588 589 &::part(buttons){ 590 margin: 32px auto 0; 591 } 592 } 593 594 .welcome-text { 595 &:empty { 596 margin: 0; 597 } 598 } 599 } 600 601 &[pos='split'] { 602 603 // Prevent the drop shadow from appearing in fullscreen mode 604 &:where(:not([fullscreen])) { 605 margin: auto; 606 min-height: $split-screen-height; 607 608 &::before { 609 content: ''; 610 position: absolute; 611 box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 20%); 612 width: $split-section-width + $split-section-width; 613 height: $split-screen-height; 614 border-radius: var(--border-radius-medium); 615 inset: 0; 616 margin: auto; 617 pointer-events: none; 618 } 619 } 620 621 #content-tiles-container { 622 margin: 0; 623 624 .content-tile:not(:only-child) { 625 margin-block: 0 24px; 626 } 627 628 .content-tile:last-child { 629 margin-block: 0 40px; 630 } 631 632 .multi-select-container { 633 padding: 0; 634 } 635 } 636 637 .section-secondary, 638 .section-main { 639 width: $split-section-width; 640 height: $split-screen-height; 641 } 642 643 .secondary-cta.top { 644 position: fixed; 645 padding-inline-end: 0; 646 647 button { 648 padding: 7px 15px; 649 } 650 } 651 652 .secondary-buttons-top-container { 653 .secondary-cta.top { 654 position: relative; 655 padding-top: 0; 656 top: 0; 657 inset-inline-end: 0; 658 } 659 } 660 661 .section-main { 662 flex-direction: row; 663 display: block; 664 margin: auto; 665 margin-inline-start: 0; 666 667 &:dir(rtl) { 668 margin: auto; 669 margin-inline-start: 0; 670 } 671 672 &.embedded-migration { 673 .main-content { 674 padding-block: 100px 0; 675 } 676 } 677 678 .main-content { 679 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 680 overflow: hidden; 681 padding-inline: 35px 20px; 682 padding-block: 120px 0; 683 box-shadow: none; 684 685 &.no-steps { 686 padding-bottom: 48px; 687 } 688 689 &:dir(rtl) { 690 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 691 } 692 693 .legal-paragraph { 694 text-align: start; 695 font-size: 11px; 696 line-height: 16.5px; 697 color: light-dark(#5B5B66, #CFCFD8); 698 699 @mixin narrow-legal-paragraph { 700 padding-inline: 30px; 701 } 702 703 @media only screen and (width <= 800px) { 704 @include narrow-legal-paragraph; 705 } 706 707 [narrow] & { 708 @include narrow-legal-paragraph; 709 } 710 711 } 712 713 .main-content-inner { 714 min-height: 330px; 715 716 .mobile-download-buttons { 717 padding: 0; 718 margin-inline-start: -5px; 719 display: flex; 720 721 button { 722 cursor: pointer; 723 } 724 } 725 726 .qr-code-image { 727 margin: 5px 0 10px; 728 display: flex; 729 } 730 731 .language-switcher-container { 732 .primary { 733 margin-bottom: 5px; 734 } 735 } 736 } 737 738 .action-buttons { 739 position: relative; 740 text-align: initial; 741 height: 100%; 742 743 .checkbox-container { 744 font-size: 13px; 745 margin-block: 1em; 746 747 &:not(.multi-select-item) { 748 transition: var(--transition); 749 } 750 751 input, 752 label { 753 vertical-align: middle; 754 } 755 } 756 757 .additional-cta-box { 758 margin: 8px 0; 759 760 .additional-cta { 761 margin: 0; 762 763 &.cta-link { 764 @include text-link-styles; 765 766 padding: 0; 767 font-weight: normal; 768 } 769 770 &.secondary { 771 &:hover, 772 &[open] { 773 background-color: var(--button-background-color-hover); 774 } 775 } 776 } 777 } 778 779 &.additional-cta-container { 780 flex-wrap: nowrap; 781 align-items: start; 782 } 783 784 .secondary-cta { 785 position: absolute; 786 bottom: -30px; 787 inset-inline-end: 0; 788 789 .secondary { 790 @include secondary-cta-styles; 791 } 792 793 @include arrow-icon-styles; 794 } 795 796 .loader { 797 width: 1em; 798 height: 1em; 799 border: 3px solid var(--button-text-color-primary); 800 border-bottom-color: transparent; 801 border-radius: var(--border-radius-circle); 802 box-sizing: border-box; 803 animation: rotation 1s linear infinite; 804 justify-self: center; 805 } 806 807 @keyframes rotation { 808 0% { 809 transform: rotate(0deg); 810 } 811 812 100% { 813 transform: rotate(360deg); 814 } 815 } 816 817 .loaderContainer { 818 display: flex; 819 padding: 1.5px 37.5px; 820 margin: auto; 821 } 822 } 823 824 .logo-container { 825 text-align: start; 826 } 827 828 .brand-logo { 829 height: 25px; 830 margin-block: 0; 831 } 832 833 .logo-alt { 834 width: inherit; 835 height: inherit; 836 } 837 838 .welcome-text { 839 margin-inline: 0 10px; 840 margin-block: 10px 35px; 841 text-align: initial; 842 align-items: initial; 843 max-width: 400px; 844 845 &:empty { 846 margin: 0; 847 } 848 849 h1 { 850 font-size: 24px; 851 line-height: 1.2; 852 width: 300px; 853 } 854 855 h2 { 856 margin: 10px 0 0; 857 min-height: 1em; 858 font-size: 15px; 859 line-height: 1.5; 860 color: light-dark(#5B5B66, #CFCFD8); 861 } 862 } 863 864 .welcome-text h1, 865 .primary { 866 margin: 0; 867 } 868 869 .steps { 870 z-index: 1; 871 872 &.progress-bar { 873 margin-inline: -35px; 874 } 875 } 876 877 @media (prefers-contrast) { 878 border: 1px solid var(--text-color); 879 880 .steps.progress-bar { 881 border-top: 1px solid var(--text-color); 882 background-color: var(--background-color-canvas); 883 884 .indicator { 885 background-color: var(--color-accent-primary); 886 } 887 } 888 } 889 } 890 } 891 892 .section-secondary { 893 --mr-secondary-position: center center / auto 350px; 894 895 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 896 margin: auto 0 auto auto; 897 display: flex; 898 align-items: center; 899 -moz-context-properties: fill, stroke, fill-opacity, stroke-opacity; 900 stroke: currentColor; 901 position: relative; 902 903 &:dir(rtl) { 904 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 905 margin: auto; 906 margin-inline-end: 0; 907 } 908 909 h1 { 910 color: var(--mr-screen-heading-color); 911 font-weight: var(--font-weight-bold); 912 font-size: 47px; 913 line-height: 110%; 914 max-width: 340px; 915 text-align: initial; 916 white-space: pre-wrap; 917 text-shadow: none; 918 margin-inline: 40px 0; 919 } 920 921 .image-alt { 922 width: inherit; 923 height: inherit; 924 } 925 926 .hero-image { 927 flex: 1; 928 display: flex; 929 justify-content: center; 930 max-height: 100%; 931 932 img { 933 width: 100%; 934 max-width: 180px; 935 margin: 25px 0; 936 padding-bottom: 30px; 937 938 @mixin narrow-hero-img { 939 padding-bottom: unset; 940 } 941 942 @media only screen and (width <= 800px) { 943 @include narrow-hero-img; 944 } 945 946 [narrow] & { 947 @include narrow-hero-img; 948 } 949 } 950 } 951 } 952 953 .multi-select-container { 954 margin-inline: 0 10px; 955 956 .checkbox-container { 957 display: grid; 958 959 label, p { 960 grid-column: 2; 961 } 962 963 p { 964 margin-block: 0.5em 0; 965 } 966 } 967 968 @mixin narrow-multi-select-container { 969 flex-direction: column; 970 align-self: center; 971 align-items: start; 972 justify-content: center; 973 width: 240px; 974 padding: 0 30px; 975 margin-inline: 0; 976 box-sizing: content-box; 977 } 978 979 @media only screen and (width <= 800px) { 980 @include narrow-multi-select-container; 981 } 982 983 [narrow] & { 984 @include narrow-multi-select-container; 985 } 986 } 987 988 .tiles-single-select-container { 989 margin-block: -20px auto; 990 align-items: initial; 991 992 .select-item { 993 min-width: 38px; 994 } 995 } 996 997 @media only screen and (width >= 800px) { 998 .tiles-single-select-section { 999 margin-inline-start: -10px; 1000 } 1001 1002 &[reverse-split] { 1003 flex-direction: row-reverse; 1004 1005 .section-main { 1006 .main-content { 1007 border-radius: inherit; 1008 } 1009 1010 margin: auto; 1011 margin-inline-end: 0; 1012 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1013 1014 &:dir(rtl) { 1015 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1016 margin: auto; 1017 margin-inline-end: 0; 1018 } 1019 } 1020 1021 .section-secondary { 1022 margin: auto; 1023 margin-inline-start: 0; 1024 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1025 1026 &:dir(rtl) { 1027 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1028 margin: auto; 1029 margin-inline-start: 0; 1030 } 1031 } 1032 } 1033 } 1034 1035 // duplicate the above styles for no-rdm. unfortunately SASS won't allow 1036 // us to combine these selectors. 1037 &:where([no-rdm='true']) { 1038 .tiles-single-select-section { 1039 margin-inline-start: -10px; 1040 } 1041 1042 &[reverse-split] { 1043 flex-direction: row-reverse; 1044 1045 .section-main { 1046 .main-content { 1047 border-radius: inherit; 1048 } 1049 1050 margin: auto; 1051 margin-inline-end: 0; 1052 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1053 1054 &:dir(rtl) { 1055 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1056 margin: auto; 1057 margin-inline-end: 0; 1058 } 1059 } 1060 1061 .section-secondary { 1062 margin: auto; 1063 margin-inline-start: 0; 1064 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1065 1066 &:dir(rtl) { 1067 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1068 margin: auto; 1069 margin-inline-start: 0; 1070 } 1071 } 1072 } 1073 } 1074 1075 &[fullscreen] { 1076 $split-section-width: 50%; 1077 $split-screen-height: 100%; 1078 1079 min-height:100vh; 1080 1081 .section-secondary, 1082 .section-main { 1083 width: $split-section-width; 1084 height: auto; 1085 } 1086 1087 .section-main { 1088 margin: 0; 1089 display: flex; 1090 } 1091 1092 .section-main .main-content { 1093 border-radius: 0; 1094 padding: 0; 1095 flex: 1; 1096 height: auto; 1097 1098 h1 { 1099 width: auto; 1100 } 1101 1102 .main-content-inner { 1103 min-height: 0; 1104 flex-grow: 0; 1105 padding-inline: 110px; 1106 margin-block: auto; 1107 padding-block: 40px; 1108 1109 @media only screen and (width <= 800px) { 1110 padding-block: 20px; 1111 } 1112 1113 .steps:not(.progress-bar) { 1114 justify-content: start; 1115 padding-top: 24px; 1116 } 1117 } 1118 1119 .action-buttons { 1120 position: static; 1121 height: auto; 1122 1123 .secondary-cta { 1124 inset-block-end: 26px; 1125 inset-inline-end: 30px; 1126 } 1127 } 1128 } 1129 1130 .section-secondary { 1131 --mr-secondary-position: center center / 50%; 1132 1133 border-radius: 0; 1134 margin: 0; 1135 1136 .hero-image { 1137 height: 100%; 1138 display: flex; 1139 justify-content: center; 1140 align-items: center; 1141 1142 img { 1143 width: 30%; 1144 } 1145 } 1146 1147 .message-text.hero-text { 1148 margin-block: auto; 1149 margin-inline: 17% auto; 1150 text-align: start; 1151 width: 100%; 1152 max-width: 450px; 1153 1154 h1 { 1155 font-weight: var(--heading-font-weight); 1156 font-size: 80px; 1157 margin: 0; 1158 width: 100%; 1159 max-width: 100%; 1160 } 1161 1162 h2 { 1163 font-size: 20px; 1164 margin: 0; 1165 margin-block-start: 24px; 1166 font-weight: var(--heading-font-weight); 1167 width: 100%; 1168 } 1169 } 1170 } 1171 1172 .addons-picker-container { 1173 background: none; 1174 1175 .addon-container { 1176 display: flex; 1177 flex-direction: row; 1178 border: 1px solid var(--border-color); 1179 box-shadow: 0 1px 2px 0 var(--border-color); 1180 border-radius: var(--border-radius-small); 1181 margin-block: 0 16px; 1182 text-align: start; 1183 padding: 16px; 1184 max-width: 800px; 1185 1186 @media (800px <= width <= 990px) { 1187 flex-flow: row wrap; 1188 } 1189 1190 .rtamo-icon { 1191 img { 1192 margin-inline: 0 16px; 1193 } 1194 } 1195 1196 .addon-rows-container { 1197 flex-grow: 1; 1198 display: flex; 1199 flex-direction: column; 1200 1201 .addon-row { 1202 display: flex; 1203 flex-grow: 1; 1204 justify-content: space-between; 1205 1206 .install-button-wrapper { 1207 display: block; 1208 1209 button { 1210 padding-inline: 16px; 1211 font-size: 12px; 1212 padding-block: 0; 1213 background-color: var(--button-background-color); 1214 color: var(--button-text-color); 1215 min-width: 0; 1216 1217 &:hover { 1218 background-color: var(--button-background-color-hover); 1219 } 1220 1221 &:active { 1222 background-color: var(--button-background-color-active); 1223 } 1224 } 1225 } 1226 1227 1228 &:not(:last-child) { 1229 margin-block: 0 12px; 1230 } 1231 1232 .addon-author-details { 1233 margin-block: 0 4px; 1234 1235 .addon-title { 1236 font-size: 16px; 1237 font-weight: var(--heading-font-weight); 1238 } 1239 1240 .addon-author { 1241 font-size: 12px; 1242 margin-block: 2px 0; 1243 1244 .author-link { 1245 background: none; 1246 padding: 0; 1247 font-weight: normal; 1248 min-width: auto; 1249 min-height: auto; 1250 margin: 0; 1251 text-align: start; 1252 1253 @include text-link-styles; 1254 } 1255 1256 .addon-by-line { 1257 margin-inline: 0 4px; 1258 } 1259 } 1260 } 1261 1262 .addon-description { 1263 font-size: 14px; 1264 } 1265 } 1266 } 1267 } 1268 1269 .loader { 1270 width: 1em; 1271 height: 1em; 1272 border: 3px solid var(--button-text-color-primary); 1273 border-bottom-color: transparent; 1274 border-radius: var(--border-radius-circle); 1275 box-sizing: border-box; 1276 animation: rotation 1s linear infinite; 1277 justify-self: center; 1278 } 1279 1280 @keyframes rotation { 1281 0% { 1282 transform: rotate(0deg); 1283 } 1284 1285 100% { 1286 transform: rotate(360deg); 1287 } 1288 } 1289 1290 .loaderContainer { 1291 display: flex; 1292 padding: 1.5px 37.5px; 1293 margin: auto; 1294 } 1295 } 1296 1297 @mixin narrow-split-fullscreen { 1298 .section-main, 1299 .section-secondary { 1300 width: 100%; 1301 } 1302 1303 .section-main { 1304 height: 75%; 1305 flex-grow: 1; 1306 margin: 0; 1307 display: flex; 1308 1309 &[hide-secondary-section='responsive'] { 1310 height: 100%; 1311 1312 .main-content { 1313 border-radius: 0; 1314 padding: 0; 1315 height: auto; 1316 } 1317 } 1318 } 1319 1320 .section-main .main-content { 1321 .action-buttons .secondary-cta { 1322 inset-block-end: 0; 1323 inset-inline-end: 0; 1324 } 1325 1326 .main-content-inner { 1327 padding-inline: 55px; 1328 margin-inline: auto; 1329 } 1330 } 1331 1332 .section-secondary { 1333 --mr-secondary-position: center var(--mr-secondary-background-position-y) / 50%; 1334 1335 height: 250px; 1336 1337 .hero-image { 1338 img { 1339 width: 25%; 1340 max-height: 75%; 1341 } 1342 } 1343 } 1344 } 1345 1346 @media only screen and (width <= 800px) { 1347 height: 100%; 1348 1349 @include narrow-split-fullscreen; 1350 } 1351 1352 [narrow] & { 1353 @include narrow-split-fullscreen; 1354 } 1355 } 1356 1357 @mixin narrow-split { 1358 &:where(:not([no-rdm])) { 1359 flex-direction: column; 1360 min-height: $small-main-section-height + $small-secondary-section-height; 1361 1362 &::before { 1363 width: $split-section-width; 1364 } 1365 1366 &[reverse-split] { 1367 flex-direction: column; 1368 1369 .section-secondary { 1370 border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0; 1371 margin: auto; 1372 margin-bottom: 0; 1373 1374 &:dir(rtl) { 1375 margin: auto; 1376 margin-bottom: 0; 1377 border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0; 1378 } 1379 } 1380 1381 .section-main { 1382 height: auto; 1383 margin: auto; 1384 margin-top: 0; 1385 border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); 1386 1387 &:dir(rtl) { 1388 margin: auto; 1389 margin-top: 0; 1390 border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); 1391 } 1392 } 1393 } 1394 1395 .section-secondary, 1396 .section-main { 1397 width: $split-section-width; 1398 } 1399 1400 .section-secondary { 1401 --mr-secondary-background-position-y: top; 1402 --mr-secondary-position: center var(--mr-secondary-background-position-y) / 75%; 1403 1404 border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0; 1405 margin: auto; 1406 margin-bottom: 0; 1407 height: $small-secondary-section-height; 1408 1409 .hero-image img { 1410 margin: 6px 0; 1411 } 1412 1413 .message-text { 1414 margin-inline: auto; 1415 } 1416 1417 h1 { 1418 font-size: 35px; 1419 text-align: center; 1420 white-space: normal; 1421 margin-inline: auto; 1422 margin-block: 14px 6px; 1423 } 1424 1425 &:dir(rtl) { 1426 margin: auto; 1427 margin-bottom: 0; 1428 border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0; 1429 } 1430 1431 &.with-secondary-section-hidden { 1432 display: none; 1433 } 1434 } 1435 1436 migration-wizard { 1437 &::part(deck){ 1438 min-width: 330px; 1439 margin-inline: 36px; 1440 } 1441 } 1442 1443 .section-main { 1444 margin: auto; 1445 margin-top: 0; 1446 height: $small-main-section-height; 1447 1448 migration-wizard::part(buttons) { 1449 flex-direction: column; 1450 margin-inline: 46px; 1451 } 1452 1453 &[hide-secondary-section='responsive'] { 1454 height: $split-screen-height; 1455 margin: auto; 1456 1457 &:dir(rtl) { 1458 margin: auto; 1459 } 1460 1461 .main-content { 1462 padding: 50px 0 0; 1463 border-radius: var(--border-radius-medium); 1464 1465 &:dir(rtl) { 1466 border-radius: var(--border-radius-medium); 1467 } 1468 } 1469 } 1470 1471 .main-content { 1472 border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); 1473 padding: 30px 0 0; 1474 1475 .main-content-inner { 1476 align-items: center; 1477 } 1478 1479 .logo-container { 1480 text-align: center; 1481 1482 .brand-logo { 1483 min-height: 25px; 1484 1485 &, 1486 &:dir(rtl) { 1487 background-position: center; 1488 } 1489 } 1490 1491 .logo-alt { 1492 width: inherit; 1493 height: inherit; 1494 } 1495 } 1496 1497 .welcome-text { 1498 align-items: center; 1499 text-align: center; 1500 margin-inline: 0; 1501 padding-inline: 30px; 1502 1503 .spacer-bottom, 1504 .spacer-top { 1505 display: none; 1506 } 1507 } 1508 1509 .action-buttons { 1510 text-align: center; 1511 1512 .checkbox-container { 1513 display: none; 1514 } 1515 1516 .secondary-cta { 1517 position: relative; 1518 margin-block: 10px 0; 1519 bottom: 0; 1520 } 1521 } 1522 1523 .primary, 1524 .secondary { 1525 min-width: 240px; 1526 margin-inline: 0; 1527 } 1528 1529 .steps { 1530 padding-block: 0; 1531 margin: 0; 1532 1533 &.progress-bar { 1534 margin-inline: 0; 1535 } 1536 } 1537 } 1538 1539 .additional-cta { 1540 &.cta-link { 1541 align-self: center; 1542 } 1543 } 1544 1545 .dismiss-button { 1546 top: -$small-secondary-section-height; 1547 } 1548 1549 &:dir(rtl) { 1550 margin: auto; 1551 margin-top: 0; 1552 1553 .main-content { 1554 border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); 1555 } 1556 } 1557 } 1558 } 1559 1560 &[no-rdm] { 1561 width: 800px; 1562 1563 &[reverse-split] { 1564 flex-direction: row-reverse; 1565 1566 .section-main { 1567 .main-content { 1568 border-radius: inherit; 1569 } 1570 1571 margin: auto; 1572 margin-inline-end: 0; 1573 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1574 1575 &:dir(rtl) { 1576 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1577 margin: auto; 1578 margin-inline-end: 0; 1579 } 1580 } 1581 1582 .section-secondary { 1583 margin: auto; 1584 margin-inline-start: 0; 1585 border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; 1586 1587 &:dir(rtl) { 1588 border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); 1589 margin: auto; 1590 margin-inline-start: 0; 1591 } 1592 } 1593 } 1594 } 1595 } 1596 1597 @media only screen and (width <= 800px) { 1598 @include narrow-split; 1599 } 1600 1601 [narrow] & { 1602 @include narrow-split; 1603 } 1604 1605 &:where(:not([fullscreen])) { 1606 @media only screen and (height <= 650px) { 1607 // Hide the "Sign in" button on the welcome screen when it would 1608 // otherwise overlap the screen. We'd reposition it, but then it would 1609 // overlap the dismiss button. We may change the alignment so they don't 1610 // overlap in a future revision. 1611 @media (800px <= width <= 990px) { 1612 .section-main .secondary-cta.top { 1613 display: none; 1614 } 1615 } 1616 1617 // Reposition the "Sign in" button on the welcome screen to move inside 1618 // the screen when it would otherwise overlap the screen. 1619 @mixin extra-narrow-secondary-cta { 1620 .section-main .secondary-buttons-top-container { 1621 position: absolute; 1622 padding: 0; 1623 top: 0; 1624 inset-inline-end: 0; 1625 } 1626 } 1627 1628 @media (width <= 620px) { 1629 @include extra-narrow-secondary-cta; 1630 } 1631 1632 [narrow] & { 1633 @media (width <= 620px) { 1634 @include extra-narrow-secondary-cta; 1635 } 1636 } 1637 } 1638 } 1639 } 1640 } 1641 1642 .brand-logo { 1643 margin-block: 60px 10px; 1644 transition: var(--transition); 1645 height: 80px; 1646 user-select: none; 1647 1648 &.cta-top { 1649 margin-top: 25px; 1650 } 1651 1652 &.hide { 1653 visibility: hidden; 1654 padding: unset; 1655 margin-top: 50px; 1656 } 1657 } 1658 1659 .logo-alt { 1660 width: inherit; 1661 height: inherit; 1662 } 1663 1664 .rtamo-theme-icon { 1665 max-height: 30px; 1666 border-radius: var(--border-radius-xsmall); 1667 margin-bottom: 10px; 1668 margin-top: 24px; 1669 } 1670 1671 .rtamo-icon { 1672 text-align: start; 1673 1674 @mixin narrow-rtamo-icon { 1675 text-align: center; 1676 } 1677 1678 @media only screen and (width <= 800px) { 1679 @include narrow-rtamo-icon; 1680 } 1681 1682 [narrow] & { 1683 @include narrow-rtamo-icon; 1684 } 1685 } 1686 1687 .text-link { 1688 @include text-link-styles; 1689 } 1690 1691 .welcome-text { 1692 display: flex; 1693 flex-direction: column; 1694 justify-content: center; 1695 align-items: center; 1696 margin: 0.5em 1em; 1697 transition: var(--transition); 1698 1699 h1, 1700 h2 { 1701 color: var(--text-color); 1702 line-height: 1.5; 1703 } 1704 1705 h1 { 1706 font-size: 24px; 1707 font-weight: var(--heading-font-weight); 1708 margin: 0 6px; 1709 letter-spacing: -0.02em; 1710 outline: none; 1711 } 1712 1713 h2 { 1714 font-size: 16px; 1715 font-weight: normal; 1716 margin: 10px 6px 0; 1717 max-width: 750px; 1718 letter-spacing: -0.01em; 1719 } 1720 1721 &.fancy { 1722 h1 { 1723 background-image: linear-gradient( 1724 90deg, 1725 light-dark(#9059FF, #C688FF), 1726 light-dark(#FF4AA2, #FF84C0), 1727 light-dark(#FF8C00, #FFBD4F), 1728 light-dark(#FF4AA2, #FF84C0), 1729 light-dark(#9059FF, #C688FF) 1730 ); 1731 background-clip: text; 1732 background-size: 200%; 1733 1734 @media (prefers-contrast: no-preference) { 1735 color: transparent; 1736 } 1737 1738 @media (prefers-color-scheme: dark) { 1739 &::selection { 1740 color: #FFF; 1741 background-color: #696977; 1742 } 1743 } 1744 } 1745 } 1746 1747 &.shine { 1748 h1 { 1749 animation: shine 50s linear infinite; 1750 background-size: 400%; 1751 } 1752 1753 @keyframes shine { 1754 to { 1755 background-position: 400%; 1756 } 1757 } 1758 } 1759 1760 .cta-paragraph { 1761 a { 1762 margin: 0; 1763 text-decoration: underline; 1764 cursor: pointer; 1765 } 1766 } 1767 } 1768 1769 // Override light and dark mode fancy title colors for use over light and dark backgrounds 1770 .screen.light-text .welcome-text.fancy h1 { 1771 background-image: linear-gradient(90deg, #C688FF, #FF84C0, #FFBD4F, #FF84C0, #C688FF); 1772 } 1773 1774 .screen.dark-text .welcome-text.fancy h1 { 1775 background-image: linear-gradient(90deg, #9059FF, #FF4AA2, #FF8C00, #FF4AA2, #9059FF); 1776 } 1777 1778 .welcomeZap { 1779 span { 1780 position: relative; 1781 z-index: 1; 1782 white-space: nowrap; 1783 } 1784 1785 .zap { 1786 &::after { 1787 display: block; 1788 background-repeat: no-repeat; 1789 background-size: 100% 100%; 1790 content: ''; 1791 position: absolute; 1792 top: calc(100% - 0.15em); 1793 width: 100%; 1794 height: 0.3em; 1795 left: 0; 1796 z-index: -1; 1797 transform: scaleY(3); 1798 } 1799 1800 &.short::after { 1801 background-image: url('chrome://activity-stream/content/data/content/assets/short-zap.svg'); 1802 } 1803 1804 &.long::after { 1805 background-image: url('chrome://activity-stream/content/data/content/assets/long-zap.svg'); 1806 } 1807 } 1808 } 1809 1810 .language-loader { 1811 -moz-context-properties: fill; 1812 fill: currentColor; 1813 margin-inline-end: 10px; 1814 position: relative; 1815 top: 3px; 1816 width: 16px; 1817 height: 16px; 1818 margin-top: -6px; 1819 } 1820 1821 .tiles-single-select-container { 1822 display: flex; 1823 flex-direction: column; 1824 align-items: center; 1825 margin: 10px auto; 1826 } 1827 1828 .sr-only { 1829 opacity: 0; 1830 overflow: hidden; 1831 position: absolute; 1832 1833 &.input { 1834 height: 1px; 1835 width: 1px; 1836 } 1837 } 1838 1839 .tiles-single-select-section { 1840 border: 0; 1841 outline: none; 1842 display: flex; 1843 flex-wrap: wrap; 1844 gap: 5px; 1845 justify-content: space-evenly; 1846 margin-inline: 10px; 1847 padding: 10px; 1848 transition: var(--transition); 1849 1850 &:hover, 1851 &:active, 1852 &:focus-within { 1853 border-radius: var(--border-radius-medium); 1854 outline: 2px solid var(--button-background-color-primary); 1855 } 1856 1857 // single select and theme specific styles 1858 &.single-select, &.theme { 1859 flex-direction: row; 1860 padding-top: 5px; 1861 gap: 10px; 1862 justify-content: center; 1863 1864 .select-item { 1865 position: relative; 1866 padding-top: 5px; 1867 border: 1px solid var(--single-select-border-color); 1868 border-radius: var(--border-radius-large); 1869 1870 &:has(.input:focus), 1871 &:has(.selected) { 1872 outline: none; 1873 } 1874 1875 &:has(.input:focus) { 1876 outline: 2px solid var(--button-background-color-primary); 1877 outline-offset: 5px; 1878 } 1879 1880 &:has(.selected) { 1881 border: 1px solid var(--button-background-color-primary); 1882 border-radius: var(--border-radius-large); 1883 } 1884 1885 &:hover { 1886 background-color: var(--single-select-hover-color); 1887 } 1888 1889 &:focus-visible { 1890 outline: none; 1891 // Only highlight the image, not the frame around the image and the label 1892 .icon { 1893 outline: initial; 1894 } 1895 } 1896 1897 .flair { 1898 height: 18px; 1899 border-radius: var(--border-radius-small); 1900 background-color: #9059FF; 1901 color: #FFF; 1902 padding: 2px 8px; 1903 position: absolute; 1904 right: 1px; 1905 top: -10px; 1906 line-height: 1; 1907 1908 &.centered { 1909 /* stylelint-disable-next-line */ 1910 border-radius: 8px 8px 0 0; 1911 background-color: var(--button-background-color-primary); 1912 position: relative; 1913 right: unset; 1914 top: -6px; 1915 line-height: 0.75; 1916 width: 100%; 1917 box-sizing: border-box; 1918 1919 &.backup { 1920 /* stylelint-disable-next-line */ 1921 border-radius: 10px 10px 0 0; 1922 background-color: var(--picker-backup-flair-background); 1923 color: var(--picker-backup-flair-color); 1924 1925 &.spacer { 1926 background-color: transparent; 1927 } 1928 } 1929 } 1930 1931 &.spacer { 1932 background-color: transparent; 1933 } 1934 } 1935 1936 .icon { 1937 outline: none; 1938 } 1939 1940 .text { 1941 margin-block: 8px; 1942 } 1943 1944 .tile-list-container { 1945 display: flex; 1946 flex-direction: column; 1947 margin-inline-start: 20px; 1948 1949 .tile-list-item { 1950 display: flex; 1951 1952 &:last-child { 1953 margin-block-end: 8px; 1954 } 1955 } 1956 1957 .tile-list-icon-wrapper { 1958 padding-block-start: 6px; 1959 } 1960 1961 .tile-list-text { 1962 margin-inline-start: 8px; 1963 margin-inline-end: 20px; 1964 text-align: start; 1965 } 1966 } 1967 } 1968 } 1969 1970 // single select and theme specific styles 1971 &.single-select, &.theme { 1972 &:hover, &:focus-within { 1973 outline: none; 1974 } 1975 1976 .select-item { 1977 transition: var(--transition); 1978 1979 &:has(.input:focus) { 1980 outline: 2px solid var(--button-background-color-primary); 1981 outline-offset: 2px; 1982 } 1983 } 1984 } 1985 1986 .select-item { 1987 align-items: center; 1988 display: flex; 1989 flex-direction: column; 1990 flex: 1; 1991 padding: 0; 1992 min-width: 50px; 1993 box-shadow: none; 1994 border-radius: var(--border-radius-small); 1995 cursor: pointer; 1996 z-index: 0; 1997 transition: var(--transition); 1998 1999 &.backup { 2000 cursor: default; 2001 width: 225.5px; 2002 padding-top: 0; 2003 2004 &:has(.selected) { 2005 border: 1px solid var(--border-color-selected); 2006 } 2007 2008 &:hover { 2009 background-color: transparent; 2010 } 2011 } 2012 2013 &:focus, 2014 &:active { 2015 outline: initial; 2016 outline-offset: initial; 2017 } 2018 2019 .icon { 2020 background-size: cover; 2021 width: 40px; 2022 height: 40px; 2023 border-radius: var(--border-radius-small); 2024 z-index: -1; 2025 2026 &:dir(rtl) { 2027 transform: scaleX(-1); 2028 } 2029 2030 2031 &.light { 2032 background-image: url('resource://builtin-themes/light/icon.svg'); 2033 } 2034 2035 &.dark { 2036 background-image: url('resource://builtin-themes/dark/icon.svg'); 2037 } 2038 2039 &.alpenglow { 2040 background-image: url('resource://builtin-themes/alpenglow/icon.svg'); 2041 } 2042 2043 &.default, 2044 &.automatic { 2045 background-image: url('resource://default-theme/icon.svg'); 2046 } 2047 } 2048 2049 .text { 2050 display: flex; 2051 font-size: 14px; 2052 font-weight: normal; 2053 line-height: 20px; 2054 margin-inline-start: 0; 2055 margin-top: 9px; 2056 } 2057 } 2058 2059 legend { 2060 cursor: default; 2061 } 2062 } 2063 2064 .tiles-container { 2065 margin: 10px auto; 2066 2067 &.info { 2068 padding: 6px 12px 12px; 2069 2070 &:hover, 2071 &:focus { 2072 background-color: rgba(217, 217, 227, 30%); 2073 border-radius: var(--border-radius-small); 2074 } 2075 } 2076 } 2077 2078 .tiles-delayed { 2079 animation: fadein 0.4s; 2080 } 2081 2082 .multi-select-container { 2083 display: flex; 2084 flex-direction: column; 2085 flex-wrap: wrap; 2086 flex-shrink: 0; 2087 align-items: flex-start; 2088 gap: 16px; 2089 margin-block: -1em 2em; 2090 margin-inline: 1em; 2091 font-weight: normal; 2092 font-size: 14px; 2093 text-align: initial; 2094 transition: var(--transition); 2095 z-index: 1; 2096 color: var(--text-color); 2097 2098 @media not (prefers-contrast) { 2099 color: light-dark(#5B5B66, #CFCFD8); 2100 } 2101 2102 #multi-stage-multi-select-label { 2103 // These styles are based on .welcome-text>h2 (subtitle). 2104 color: var(--text-color); 2105 line-height: 1.5; 2106 font-size: 16px; 2107 font-weight: normal; 2108 letter-spacing: -0.01em; 2109 // Try to get the label positioned the same way it would be if it was a 2110 // subtitle. -0.5em for the welcome-text margin, 1em for the 2111 // multi-select-container margin, and 10px for the desired margin between 2112 // the label and the title. 2113 margin: calc(-0.5em + 1em + 10px) 6px 0; 2114 max-width: 750px; 2115 } 2116 2117 @at-root .onboardingContainer .screen[pos='split'] .multi-select-container #multi-stage-multi-select-label { 2118 margin: calc(-35px + 1em + 10px) 0 0; 2119 min-height: 1em; 2120 font-size: 15px; 2121 line-height: 1.5; 2122 2123 @media not (prefers-contrast) { 2124 color: light-dark(#5B5B66, #CFCFD8); 2125 } 2126 } 2127 2128 .checkbox-container { 2129 display: flex; 2130 2131 > input { 2132 flex-grow: 0; 2133 flex-shrink: 0; 2134 } 2135 } 2136 } 2137 2138 .confirmation-checklist-section { 2139 display: flex; 2140 flex-direction: column; 2141 align-items: center; 2142 margin: 10px auto; 2143 2144 .confirmation-checklist-container { 2145 display: flex; 2146 flex-direction: column; 2147 gap: 8px; 2148 2149 .confirmation-checklist-item { 2150 display: flex; 2151 flex-direction: column; 2152 margin-inline-start: 20px; 2153 2154 &:last-child { 2155 margin-block-end: 8px; 2156 } 2157 } 2158 2159 .confirmation-checklist-icon-wrapper { 2160 display: flex; 2161 align-items: center; 2162 } 2163 2164 .confirmation-checklist-text { 2165 margin-inline-start: 8px; 2166 font-weight: var(--font-weight-semibold); 2167 } 2168 2169 .confirmation-checklist-subtext { 2170 margin-inline-start: 26px; 2171 text-align: start; 2172 font-size: 14px; 2173 } 2174 } 2175 } 2176 2177 .mobile-downloads { 2178 .qr-code-image { 2179 margin: 24px 0 10px; 2180 width: 113px; 2181 height: 113px; 2182 } 2183 2184 .email-link { 2185 @include text-link-styles; 2186 2187 font-size: 16px; 2188 font-weight: normal; 2189 2190 &:hover { 2191 background: none; 2192 } 2193 } 2194 2195 .ios button { 2196 background-image: url('chrome://app-marketplace-icons/locale/ios.svg'); 2197 } 2198 2199 .android button { 2200 background-image: url('chrome://app-marketplace-icons/locale/android.png'); 2201 } 2202 } 2203 2204 .mobile-download-buttons { 2205 list-style: none; 2206 padding: 10px 0; 2207 margin: 0; 2208 2209 li { 2210 display: inline-block; 2211 2212 button { 2213 display: inline-block; 2214 height: 45px; 2215 width: 152px; 2216 background-repeat: no-repeat; 2217 background-size: contain; 2218 background-position: center; 2219 box-shadow: none; 2220 border: 0; 2221 } 2222 2223 &:not(:first-child) { 2224 margin-inline: 5px 0; 2225 } 2226 } 2227 } 2228 2229 .onboardingContainer .main-content.no-steps:has(button.content-tiles-header[aria-expanded='false']) { 2230 padding-bottom: 0; 2231 } 2232 2233 #content-tiles-container button.tile-header, 2234 button.content-tiles-header { 2235 width: 100%; 2236 margin: 0; 2237 padding: 12px 16px; 2238 display: flex; 2239 flex-direction: row; 2240 align-items: center; 2241 border-width: 1px; 2242 border-radius: 0; 2243 2244 @media (prefers-contrast: no-preference) { 2245 background-color: var(--background-color-canvas); 2246 border-color: var(--border-color); 2247 } 2248 2249 cursor: pointer; 2250 // ensures focus ring is fully visible 2251 outline-offset: -12px; 2252 2253 .arrow-icon { 2254 width: 1em; 2255 height: 1.5em; 2256 -moz-context-properties: fill; 2257 fill: currentColor; 2258 background: url('chrome://global/skin/icons/arrow-down.svg') center center / 100% no-repeat; 2259 } 2260 2261 &[aria-expanded='true'] { 2262 border-end-start-radius: 0; 2263 border-end-end-radius: 0; 2264 2265 .arrow-icon { 2266 background: url('chrome://global/skin/icons/arrow-up.svg') center center / 100% no-repeat; 2267 } 2268 } 2269 } 2270 2271 button.content-tiles-header { 2272 margin: 0.5em 0 0; 2273 font-size: 11px; 2274 font-weight: normal; 2275 justify-content: center; 2276 border-width: 1px 0; 2277 2278 @media (prefers-contrast: no-preference) { 2279 color: light-dark(#5B5B66, #CFCFD8); 2280 } 2281 2282 @media (prefers-contrast) { 2283 color: var(--text-color); 2284 } 2285 2286 .arrow-icon { 2287 margin-inline: 1em 2288 } 2289 } 2290 2291 #content-tiles-container { 2292 --tiles-container-border-radius: var(--border-radius-medium); 2293 2294 margin: 24px 48px; 2295 2296 .content-tile { 2297 display: flex; 2298 flex-direction: column; 2299 2300 &.has-header:first-of-type button.tile-header, 2301 &:not(.has-header) + .content-tile.has-header button.tile-header { 2302 border-start-start-radius: var(--tiles-container-border-radius); 2303 border-start-end-radius: var(--tiles-container-border-radius); 2304 } 2305 2306 &.has-header { 2307 &:not(:has(+ .content-tile.has-header)) { 2308 button.tile-header { 2309 border-end-start-radius: var(--tiles-container-border-radius); 2310 border-end-end-radius: var(--tiles-container-border-radius); 2311 2312 &[aria-expanded='true'] { 2313 border-end-start-radius: 0; 2314 border-end-end-radius: 0; 2315 2316 & + .tile-content { 2317 border: 1px solid var(--border-color); 2318 border-top: none; 2319 border-radius: 0 0 var(--tiles-container-border-radius) var(--tiles-container-border-radius); 2320 } 2321 } 2322 } 2323 } 2324 2325 &:has(+ .content-tile.has-header) { 2326 button.tile-header[aria-expanded='false'] { 2327 border-bottom: none; 2328 } 2329 } 2330 } 2331 2332 button.tile-header { 2333 font-size: 13px; 2334 justify-content: space-between; 2335 2336 & + .tile-content { 2337 border-inline-start: 1px solid var(--border-color); 2338 border-inline-end: 1px solid var(--border-color); 2339 } 2340 2341 .header-text-container { 2342 display: flex; 2343 flex-direction: column; 2344 2345 .header-title { 2346 font-weight: var(--heading-font-weight); 2347 line-height: 1.5; 2348 } 2349 2350 .header-subtitle { 2351 font-weight: normal; 2352 line-height: 1.5; 2353 } 2354 } 2355 } 2356 2357 .multi-select-container { 2358 padding: 24px; 2359 margin: 0; 2360 2361 &.picker { 2362 display: flex; 2363 flex-flow: row wrap; 2364 box-sizing: border-box; 2365 2366 input[type='checkbox'] { 2367 position: absolute; 2368 opacity: 0; 2369 width: 0; 2370 height: 0; 2371 } 2372 2373 .checkbox-container { 2374 display: flex; 2375 flex-direction: row; 2376 align-items: center; 2377 background-color: var(--picker-background-color); 2378 border: 1px solid var(--picker-border-color); 2379 padding: 8px 12px; 2380 border-radius: var(--border-radius-circle); 2381 user-select: none; 2382 2383 &:has(input:checked) { 2384 border-color: var(--picker-checked-border-color); 2385 border-width: 3px; 2386 margin: -2px; 2387 2388 &:hover { 2389 border-color: var(--picker-hover-border-color); 2390 } 2391 } 2392 2393 &:hover { 2394 background-color: var(--picker-hover-background-color); 2395 border-color: var(--picker-hover-border-color); 2396 2397 .picker-icon.picker-checked { 2398 background-color: var(--picker-checkbox-hover-color); 2399 } 2400 } 2401 2402 &:focus-visible { 2403 outline: 2px solid var(--picker-focus-ring-color); 2404 outline-offset: 6px; 2405 2406 &:has(input:checked) { 2407 outline-offset: 4px; 2408 } 2409 } 2410 2411 .picker-icon { 2412 border-radius: var(--border-radius-circle); 2413 width: 27px; 2414 height: 27px; 2415 display: flex; 2416 justify-content: center; 2417 align-items: center; 2418 text-align: center; 2419 margin-inline-end: 8px; 2420 font-size: 12px; 2421 forced-color-adjust: none; 2422 2423 &.picker-checked { 2424 forced-color-adjust: auto; 2425 background-color: var(--picker-checkbox-color); 2426 mask: url('chrome://global/skin/icons/check.svg') center / 15px no-repeat exclude, linear-gradient(#000 0 0); 2427 } 2428 } 2429 } 2430 } 2431 2432 .checkbox-container { 2433 display: grid; 2434 2435 label, 2436 p { 2437 grid-column: 2; 2438 } 2439 2440 p { 2441 margin-block: 0.5em 0; 2442 } 2443 } 2444 } 2445 } 2446 } 2447 2448 .tile-title-container { 2449 margin-inline: 0; 2450 margin-block: 10px 24px; 2451 text-align: start; 2452 transition: var(--transition); 2453 } 2454 2455 .tile-title { 2456 font-size: 24px; 2457 font-weight: var(--heading-font-weight); 2458 margin-block: 0; 2459 2460 &:not(:last-child) { 2461 margin-block-end: 16px; 2462 } 2463 } 2464 2465 .tile-subtitle { 2466 font-size: 16px; 2467 margin-block: 0; 2468 } 2469 2470 .dismiss-button { 2471 position: absolute; 2472 z-index: 2; 2473 top: 0; 2474 left: auto; 2475 right: 0; 2476 box-sizing: border-box; 2477 padding: 0; 2478 margin: 16px; 2479 display: block; 2480 float: inline-end; 2481 background: url('chrome://global/skin/icons/close.svg') no-repeat center / 16px; 2482 height: 32px; 2483 width: 32px; 2484 align-self: end; 2485 // override default min-height and min-width for buttons 2486 min-height: 32px; 2487 min-width: 32px; 2488 -moz-context-properties: fill; 2489 fill: currentColor; 2490 transition: var(--transition); 2491 2492 &:dir(rtl) { 2493 left: 0; 2494 right: auto; 2495 } 2496 2497 &.with-background { 2498 background-color: var(--background-color-canvas); 2499 2500 &:hover { 2501 background-color: var(--button-background-color-hover); 2502 } 2503 2504 &:active { 2505 background-color: var(--button-background-color-active); 2506 } 2507 } 2508 } 2509 2510 @keyframes fadein { 2511 from { opacity: 0; } 2512 } 2513 2514 .secondary-cta { 2515 display: flex; 2516 align-items: end; 2517 flex-direction: row; 2518 justify-content: center; 2519 font-size: 14px; 2520 transition: var(--transition); 2521 2522 &.top { 2523 justify-content: end; 2524 padding-inline-end: min(150px, 500px - 70vh); 2525 padding-top: 4px; 2526 position: absolute; 2527 top: 10px; 2528 inset-inline-end: 20px; 2529 z-index: 2; 2530 } 2531 2532 span { 2533 color: var(--grey-subtitle-1); 2534 margin: 0 4px; 2535 } 2536 } 2537 2538 .secondary-buttons-top-container { 2539 display: flex; 2540 flex-direction: row-reverse; 2541 position: fixed; 2542 top: 10px; 2543 inset-inline-end: 10px; 2544 width: auto; 2545 height: auto; 2546 z-index: 2; 2547 2548 .secondary-cta.top { 2549 position: relative; 2550 padding-top: 0; 2551 } 2552 } 2553 2554 .message-text { 2555 transition: var(--transition); 2556 } 2557 2558 .helptext { 2559 padding: 1em; 2560 text-align: center; 2561 color: var(--grey-subtitle-1); 2562 font-size: 12px; 2563 line-height: 18px; 2564 2565 &.default { 2566 align-self: center; 2567 max-width: 40%; 2568 } 2569 2570 span { 2571 padding-inline-end: 4px; 2572 } 2573 } 2574 2575 .helptext-img { 2576 height: 1.5em; 2577 width: 1.5em; 2578 margin-inline-end: 4px; 2579 vertical-align: middle; 2580 2581 &.end { 2582 margin: 4px; 2583 } 2584 2585 &.footer { 2586 vertical-align: bottom; 2587 } 2588 } 2589 2590 .steps { 2591 display: flex; 2592 flex-direction: row; 2593 justify-content: center; 2594 margin-top: 0; 2595 padding-block: 16px 0; 2596 transition: var(--transition); 2597 z-index: -1; 2598 height: 48px; 2599 box-sizing: border-box; 2600 2601 &.has-helptext { 2602 padding-bottom: 0; 2603 } 2604 2605 .indicator { 2606 width: 0; 2607 height: 0; 2608 margin-inline-end: 4px; 2609 margin-inline-start: 4px; 2610 background: var(--grey-subtitle-1); 2611 border-radius: var(--border-radius-small); 2612 // using border will show up in Windows High Contrast Mode to improve accessibility. 2613 border: 3px solid var(--button-text-color); 2614 opacity: 0.35; 2615 box-sizing: inherit; 2616 2617 &.current { 2618 opacity: 1; 2619 border-color: var(--button-background-color-primary); 2620 2621 // This is the only step shown, so visually hide it to maintain spacing. 2622 &:last-of-type:first-of-type { 2623 opacity: 0; 2624 } 2625 } 2626 } 2627 2628 &.progress-bar { 2629 height: 6px; 2630 padding-block: 0; 2631 margin-block: 42px 0; 2632 background-color: color-mix(in srgb, var(--button-text-color) 25%, transparent); 2633 justify-content: start; 2634 opacity: 1; 2635 transition: none; 2636 2637 .indicator { 2638 width: 100%; 2639 height: 100%; 2640 margin-inline: -1px; 2641 background-color: var(--button-background-color-primary); 2642 border: 0; 2643 border-radius: 0; 2644 opacity: 1; 2645 transition: var(--progress-bar-transition); 2646 translate: calc(var(--progress-bar-progress, 0%) - 100%); 2647 2648 &:dir(rtl) { 2649 translate: calc(var(--progress-bar-progress, 0%) * -1 + 100%); 2650 } 2651 } 2652 } 2653 } 2654 2655 .additional-cta-container { 2656 &[flow] { 2657 display: flex; 2658 flex-flow: column wrap; 2659 align-items: center; 2660 2661 &[flow='row'] { 2662 flex-direction: row; 2663 justify-content: center; 2664 2665 .secondary-cta { 2666 flex-basis: 100%; 2667 } 2668 } 2669 } 2670 } 2671 2672 .legal-paragraph { 2673 transition: var(--transition) 2674 } 2675 2676 .primary, 2677 .secondary, 2678 .additional-cta, 2679 .submenu-button { 2680 font-size: 13px; 2681 line-height: 16px; 2682 padding: 11px 15px; 2683 transition: var(--transition); 2684 2685 &.rtamo { 2686 margin-top: 24px; 2687 } 2688 2689 &.slim { 2690 padding: 0; 2691 } 2692 } 2693 2694 .secondary { 2695 background-color: var(--button-background-color); 2696 color: var(--button-text-color); 2697 } 2698 2699 .split-button-container, 2700 .screen .action-buttons .split-button-container { 2701 align-items: stretch; 2702 2703 &:not([hidden]) { 2704 display: flex; 2705 } 2706 2707 .primary, 2708 .secondary, 2709 .additional-cta { 2710 &:not(.submenu-button) { 2711 border-start-end-radius: 0; 2712 border-end-end-radius: 0; 2713 margin-inline-end: 0; 2714 } 2715 2716 &:focus-visible { 2717 z-index: 2; 2718 } 2719 } 2720 2721 .submenu-button { 2722 border-start-start-radius: 0; 2723 border-end-start-radius: 0; 2724 margin-inline-start: 1px; 2725 padding: 8px; 2726 min-width: 30px; 2727 box-sizing: border-box; 2728 background-image: url('chrome://global/skin/icons/arrow-down.svg'); 2729 background-repeat: no-repeat; 2730 background-size: 16px; 2731 background-position: center; 2732 -moz-context-properties: fill; 2733 fill: currentColor; 2734 } 2735 } 2736 2737 // Styles specific to background noodles, with screen-by-screen positions 2738 .noodle { 2739 display: block; 2740 background-repeat: no-repeat; 2741 background-size: 100% 100%; 2742 position: absolute; 2743 transition: var(--transition); 2744 2745 // Flip noodles in a way that combines individual transforms. 2746 &:dir(rtl) { 2747 scale: -1 1; 2748 } 2749 } 2750 2751 .outline-L { 2752 background-image: url('chrome://activity-stream/content/data/content/assets/noodle-outline-L.svg'); 2753 } 2754 2755 .solid-L { 2756 background-image: url('chrome://activity-stream/content/data/content/assets/noodle-solid-L.svg'); 2757 -moz-context-properties: fill; 2758 fill: var(--background-color-canvas); 2759 display: none; 2760 } 2761 2762 .purple-C { 2763 background-image: url('chrome://activity-stream/content/data/content/assets/noodle-C.svg'); 2764 -moz-context-properties: fill; 2765 fill: #E7258C; 2766 } 2767 2768 .orange-L { 2769 background-image: url('chrome://activity-stream/content/data/content/assets/noodle-solid-L.svg'); 2770 -moz-context-properties: fill; 2771 fill: #FFA437; 2772 } 2773 2774 .screen-1 { 2775 .section-main { 2776 z-index: 1; 2777 margin: auto; 2778 } 2779 2780 .section-main.system-prompt-spotlight { 2781 margin-top: 100px; 2782 margin-inline: auto; 2783 } 2784 // Position of noodles on second screen 2785 .outline-L { 2786 width: 87px; 2787 height: 80px; 2788 transform: rotate(10deg) translate(-30%, 200%); 2789 transition-delay: 0.4s; 2790 z-index: 2; 2791 } 2792 2793 .orange-L { 2794 width: 550px; 2795 height: 660px; 2796 transform: rotate(-155deg) translate(11%, -18%); 2797 transition-delay: 0.2s; 2798 } 2799 2800 .purple-C { 2801 width: 310px; 2802 height: 260px; 2803 transform: translate(-18%, -67%); 2804 } 2805 2806 .yellow-circle { 2807 width: 165px; 2808 height: 165px; 2809 border-radius: var(--border-radius-circle); 2810 transform: translate(230%, -5%); 2811 background: #952BB9; 2812 transition-delay: -0.2s; 2813 } 2814 } 2815 2816 // Defining the timing of the transition-in for items within the dialog, 2817 // These longer delays are to allow for the dialog to slide down on first screen 2818 .dialog-initial { 2819 .brand-logo { 2820 transition-delay: 0.6s; 2821 } 2822 2823 .welcome-text { 2824 transition-delay: 0.8s; 2825 } 2826 2827 .tiles-single-select-section, 2828 .inline-image, 2829 .link-paragraph, 2830 .multi-select-container, 2831 migration-wizard, 2832 turn-on-scheduled-backups::part(form) { 2833 transition-delay: 0.9s; 2834 } 2835 2836 .primary, 2837 .secondary, 2838 .secondary-cta, 2839 .steps, 2840 .cta-link, 2841 .legal-paragraph, 2842 .steps[above-button]:not(.progress-bar) { 2843 transition-delay: 1s; 2844 } 2845 } 2846 2847 // Delays for transitioning-in of intermediate screens 2848 .screen:not(.dialog-initial) { 2849 .tiles-single-select-section, 2850 .inline-image, 2851 .link-paragraph, 2852 .multi-select-container 2853 { 2854 transition-delay: 0.2s; 2855 } 2856 2857 .primary, 2858 .secondary, 2859 .secondary-cta, 2860 .cta-link, 2861 .legal-paragraph, 2862 .steps[above-button]:not(.progress-bar) { 2863 transition-delay: 0.4s; 2864 } 2865 } 2866 2867 .screen-2 { 2868 .section-main { 2869 z-index: 1; 2870 margin: auto; 2871 } 2872 2873 .section-main.system-prompt-spotlight { 2874 margin-top: 100px; 2875 margin-inline: auto; 2876 } 2877 2878 // Position of noodles on third screen 2879 .outline-L { 2880 width: 87px; 2881 height: 80px; 2882 transform: rotate(250deg) translate(-420%, 425%); 2883 transition-delay: 0.2s; 2884 z-index: 2; 2885 } 2886 2887 .orange-L { 2888 height: 800px; 2889 width: 660px; 2890 transform: rotate(35deg) translate(-10%, -7%); 2891 transition-delay: -0.4s; 2892 } 2893 2894 .purple-C { 2895 width: 392px; 2896 height: 394px; 2897 transform: rotate(260deg) translate(-34%, -35%); 2898 transition-delay: -0.2s; 2899 fill: #952BB9; 2900 } 2901 2902 .yellow-circle { 2903 width: 165px; 2904 height: 165px; 2905 border-radius: var(--border-radius-circle); 2906 transform: translate(160%, 130%); 2907 background: #E7258C; 2908 } 2909 } 2910 2911 &.transition-in { 2912 .noodle { 2913 opacity: 0; 2914 rotate: var(--rotate); 2915 scale: var(--scale); 2916 } 2917 2918 .dialog-initial { 2919 .main-content, 2920 .dismiss-button { 2921 translate: 0 calc(-2 * var(--translate)); 2922 } 2923 2924 .brand-logo, 2925 .steps { 2926 opacity: 0; 2927 translate: 0 calc(-1 * var(--translate)); 2928 } 2929 } 2930 2931 .screen { 2932 .welcome-text, 2933 .multi-select-container, 2934 .tiles-single-select-section, 2935 .link-paragraph, 2936 .inline-image, 2937 .primary, 2938 .checkbox-container:not(.multi-select-item), 2939 .secondary, 2940 .secondary-cta:not(.top), 2941 .cta-link, 2942 .legal-paragraph, 2943 migration-wizard, 2944 turn-on-scheduled-backups::part(form), 2945 .tile-title-container, 2946 .steps[above-button]:not(.progress-bar) { 2947 opacity: 0; 2948 translate: 0 calc(-1 * var(--translate)); 2949 } 2950 2951 &:not(.dialog-initial) { 2952 .steps:not(.progress-bar, [above-button]) { 2953 opacity: 0.2; 2954 } 2955 } 2956 } 2957 } 2958 2959 .system-prompt-spotlight { 2960 .inline-icon-container { 2961 display: flex; 2962 } 2963 2964 .welcome-text { 2965 align-items: flex-start; 2966 padding: 5px; 2967 2968 h2 { 2969 text-align: start; 2970 margin: 0; 2971 margin-block: 10px 15px; 2972 } 2973 } 2974 2975 .brand-logo { 2976 margin-block: 2px; 2977 } 2978 2979 .multi-select-container { 2980 margin-inline-start: 23px; 2981 margin-block-end: 17px; 2982 } 2983 2984 .additional-cta-container { 2985 display: flex; 2986 flex-direction: row-reverse; 2987 padding-inline-end: 15px; 2988 } 2989 2990 .main-content.no-steps { 2991 padding-bottom: 12px; 2992 margin-inline: auto; 2993 } 2994 } 2995 2996 &.transition-out { 2997 .noodle { 2998 opacity: 0; 2999 rotate: var(--rotate); 3000 scale: var(--scale); 3001 transition-delay: 0.2s; 3002 } 3003 3004 .screen:not(.dialog-last) { 3005 .main-content { 3006 overflow: hidden; 3007 } 3008 3009 .welcome-text, 3010 .multi-select-container { 3011 opacity: 0; 3012 translate: 0 var(--translate); 3013 transition-delay: 0.1s; 3014 } 3015 3016 // content that is nested between inner main content and navigation CTAs 3017 // requires an additional 0.1s transition to avoid overlap 3018 .tiles-single-select-section, 3019 .inline-image, 3020 .link-paragraph, 3021 migration-wizard, 3022 turn-on-scheduled-backups::part(form) { 3023 opacity: 0; 3024 translate: 0 var(--translate); 3025 transition-delay: 0.2s; 3026 } 3027 3028 .primary, 3029 .checkbox-container:not(.multi-select-item), 3030 .secondary, 3031 .secondary-cta:not(.top), 3032 .cta-link, 3033 .legal-paragraph, 3034 .steps[above-button]:not(.progress-bar) { 3035 opacity: 0; 3036 translate: 0 var(--translate); 3037 transition-delay: 0.3s; 3038 } 3039 3040 .steps:not(.progress-bar, [above-button]) { 3041 opacity: 0.2; 3042 transition-delay: 0.5s; 3043 } 3044 } 3045 3046 .dialog-last { 3047 .noodle { 3048 transition-delay: 0s; 3049 } 3050 3051 .main-content, 3052 .dismiss-button { 3053 opacity: 0; 3054 translate: 0 calc(2 * var(--translate)); 3055 transition-delay: 0.4s; 3056 } 3057 } 3058 } 3059 3060 .inline-image, 3061 .link-paragraph { 3062 transition: var(--transition); 3063 } 3064 3065 migration-wizard { 3066 width: unset; 3067 transition: var(--transition); 3068 3069 &::part(buttons) { 3070 margin-top: 24px; 3071 justify-content: flex-start; 3072 } 3073 3074 &::part(deck) { 3075 font-size: 0.83em; 3076 } 3077 } 3078 3079 turn-on-scheduled-backups::part(form) { 3080 transition: var(--transition); 3081 border: 1px solid var(--border-color); 3082 border-radius: var(--border-radius-medium); 3083 padding: 24px 30px; 3084 margin-block: 0 24px; 3085 } 3086 }