html { font-size: 10px; } @media screen and (min-width: 480px) { html { font-size: 13.3px; } } body { width: 100%; height: 100%; margin: 0px; padding: 0px; overflow: hidden; font-family: 'MozTT', sans-serif; color: #fff; font-size: 12px; } #screen { position: absolute; overflow: hidden; width: 100%; height: 100%; background-color: #000; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%; } #screen.screenoff { background: #000 !important; } #screen.screenoff * { visibility: hidden !important; } /* * Poweroff animation */ #screen > div#poweroff-splash { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; } #screen > div#poweroff-splash.step1 { animation: poweroff-splash-fade-in 0.5s; } @keyframes poweroff-splash-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } .poweroff-ring { display: block; position: absolute; border-radius: 50%; width: 60px; height: 60px; margin-left: -30px; margin-top: -30px; left: 50%; opacity: 0; } #poweroff-ring-1 { top: 120px; background-color: #e66600; } #poweroff-ring-2 { top: 240px; background-color: #dc4e00; } #poweroff-ring-3 { top: 360px; background-color: #d24500; } .poweroff-ring > span { display: block; position: absolute; border-radius: 50%; top: 50%; left: 50%; margin: auto; background-color: black; width: 40px; height: 40px; margin-top: -20px; margin-left: -20px; } #poweroff-ring-2 > span { transform: scale(1.125); } #poweroff-ring-3 > span { transform: scale(1.25); } /* Ring 1 : inner diameter scales from 40 pixel to 58 pixel */ @keyframes ring1-scale { 0% { transform: scale(1); } 100% { transform: scale(1.45); } } /* Ring 2 : inner diameter scales from 45 pixel to 59.5 pixel */ @keyframes ring2-scale { 0% { transform: scale(1.125); } 100% { transform: scale(1.4875); } } /* Ring 3 : inner diameter scales from 50 pixel to 59 pixel */ @keyframes ring3-scale { 0% { transform: scale(1.25); } 100% { transform: scale(1.475); } } @keyframes ring-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes ring-fade-out { 0% { opacity: 1; } 100% { opacity: 0; } } #screen > div#poweroff-splash.step2 > #poweroff-ring-1 { animation: ring-fade-in .4s ease-out 0s, ring-fade-out .5s linear .4s; } #screen > div#poweroff-splash.step2 > #poweroff-ring-2 { animation: ring-fade-in .4s ease-out .25s, ring-fade-out .5s linear .65s; } #screen > div#poweroff-splash.step2 > #poweroff-ring-3 { animation: ring-fade-in .4s ease-out .5s, ring-fade-out .5s linear .9s; } #screen > div#poweroff-splash.step2 > #poweroff-ring-1 > span { animation: ring1-scale .5s linear .4s; } #screen > div#poweroff-splash.step2 > #poweroff-ring-2 > span { animation: ring2-scale .5s linear .65s; } #screen > div#poweroff-splash.step2 > #poweroff-ring-3 > span { animation: ring3-scale .5s linear .9s; } #system-overlay { width: 100%; height: 100%; position: absolute; top: 0; left: 0; visibility: hidden; pointer-events: none; } #system-overlay.volume { visibility: visible; } #windows { position: absolute; left: 0px; width: 100%; top: -100%; height: 0; max-height: 0; border: 0px; overflow: hidden; } #windows.active { top: 0; height: 100%; max-height: 100%; } #windows > .appWindow { position: fixed; border: 0; margin: 0; padding: 0; overflow: hidden; left: 0; top: 20px; /* Need to leave this in here to prevent flickering. */ transform: scale(1); /* * Do not specify height/width here! * They should be handle executively in window_manager.js * */ /* * Disable this for now because it forces an expensive fallback path in * Gecko. The performance issue should be fixed by * https://bugzilla.mozilla.org/show_bug.cgi?id=697645 or a related bug. * border-radius: 8px; */ } #windows > .appWindow > iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; } #screen.active-statusbar #windows > .appWindow { top: 40px; } #windows > .appWindow:not(.homescreen) { background-color: #fff; } #windows > .appWindow:not(.homescreen).default-background { background: url('/shared/resources/branding/splash_screen_generic.png') center center no-repeat #fff; } #windows > .appWindow:not(.active):not(.homescreen):not(.opening):not(.closing) { visibility: hidden; } #windows > .appWindow:not(.homescreen):not(.active):not(.inlineActivity):not(.opening) { opacity: 0; transform: scale(0.6); } #windows > .appWindow.opening { transition: transform 0.25s ease, opacity 0.15s ease; } #windows.slow-transition > .appWindow.opening { transition: transform 5s ease, opacity 3s ease; } #screen.cards-view > #windows > .appWindow.opening, #screen.cards-view > #windows > .appWindow.closing, #screen.switch-app > #windows > .appWindow.opening, #screen.switch-app > #windows > .appWindow.closing { transition: transform 0.25s ease; visibility: inherit; opacity: 1; } #screen.switch-app > #windows.slow-transition > .appWindow.opening, #screen.switch-app > #windows.slow-transition > .appWindow.closing { transition: transform 5s ease; } #screen.switch-app > #windows > .appWindow.opening-card { transform: translateX(70%) scale(0.6); visibility: inherit; opacity: 1; } #screen.switch-app > #windows > .appWindow.opening-switching { transform: scale(0.6); transition: transform 0.25s ease; visibility: inherit; opacity: 1; } #screen.switch-app > #windows.slow-transition > .appWindow.opening-switching { transition: transform 5s ease; } #screen.switch-app > #windows > .appWindow.closing-card { transform: translateX(-70%) scale(0.6); transition: transform 0.25s ease; visibility: inherit; opacity: 1; } #screen.switch-app > #windows.slow-transition > .appWindow.closing-card { transition: transform 5s ease; } #windows > .appWindow.closing { transition: transform 0.25s ease, opacity 0.15s ease 0.1s; } #windows.slow-transition > .appWindow.closing { transition: transform 5s ease, opacity 3s ease 2s; } #windows > .appWindow.inlineActivity, #windows > .appWindow.hideBottom { transform: translateY(100%); transition: transform 0.25s ease, visibility 0.25s ease; } #windows.slow-transition > .appWindow.inlineActivity, #windows.slow-transition > .appWindow.hideBottom { transition: transform 5s ease, visibility 5s ease; } #windows > .appWindow.back { transition: transform 0.25s ease, visibility 0.25s ease; transform: scale(0.86); } #windows > .appWindow.restored { transform: none; transition: transform 0.25s ease; } #windows > .appWindow.inlineActivity.active { transform: none; } #screen > #windows > .appWindow.fullscreen-app { top: 0; } #screen.attention > #windows > .appWindow.fullscreen-app, #screen.attention > #windowSprite, #screen.fullscreen-app.attention > #windowSprite { height: calc(100% - 40px); top: 40px; } #windowSprite.before-inline-activity { transform: translateY(calc(100% - 1px)); opacity: 1; visibility: visible; } #windowSprite.inline-activity-opening { transition: transform 0.25s ease; transform: translateY(0); opacity: 1; visibility: visible; } #windowSprite.inline-activity-opened { transition: opacity 0.15s ease; transform: translateY(0); opacity: 0; visibility: visible; } #windowSprite.before-open { transform: scale(0.6); /* 0.01 opacity is needed to make sure Gecko paints and fire MozAfterPaint event for us. */ opacity: 0.01; visibility: visible; } #windowSprite.opening { transition: transform 0.25s ease, opacity 0.15s ease; transform: scale(1); opacity: 1; visibility: visible; } #screen.trustedui #windowSprite.opening { opacity: 0; } #windowSprite.opened { transition: opacity 0.15s ease; transform: scale(1); opacity: 0; visibility: visible; } #windowSprite.before-close { transform: scale(1); /* 0.01 opacity is needed to make sure Gecko paints and fire MozAfterPaint event for us. */ opacity: 0.01; visibility: visible; } #windowSprite.closing { transition: opacity 0.05s ease; transform: scale(1); opacity: 1; visibility: visible; } #windowSprite.closed { transition: transform 0.25s ease, opacity 0.15s ease; transform: scale(0.6); opacity: 0; visibility: visible; } .accessibility-invert { filter: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxmaWx0ZXIKICAgICAgaWQ9ImludmVydEZpbHRlciIKICAgICAgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KICAgIDxmZUNvbG9yTWF0cml4CiAgICAgICAgdmFsdWVzPSItMSAwIDAgMCAxIDAgLTEgMCAwIDEgMCAwIC0xIDAgMSAwIDAgMCAxIDAgIiAvPgogIDwvZmlsdGVyPgo8L3N2Zz4K#invertFilter); } iframe.backgroundWindow { position: absolute; top: -1px; left: -1px; width: 1px; height: 1px; visibility: hidden; } #dialog-overlay { position: absolute; top: 20px; left: 0; width: 100%; height: calc(100% - 20px); visibility: hidden; pointer-events: none; } #screen.active-statusbar #dialog-overlay { top: 40px; height: calc(100% - 40px); } #screen:-moz-full-screen-ancestor #dialog-overlay, #screen.fullscreen-app #dialog-overlay { top: 0; height: 100%; } #screen:not(.crash-dialog) #crash-dialog { visibility: hidden; } /* `.dialog` is set by system_dialog.js when a dialog is shown */ #screen.dialog #dialog-overlay { visibility: visible; pointer-events: auto; } #screen.authentication-dialog #dialog-overlay, #screen.authentication-dialog #authentication-dialog, #screen.crash-dialog #dialog-overlay, #screen.crash-dialog #crash-dialog #screen.modal-dialog #dialog-overlay, #screen.modal-dialog #modal-dialog, #screen.popup #popup-container, #screen.trustedui #trustedui-container, #screen.trustedui #dialog-overlay { visibility: visible; pointer-events: auto; } @keyframes banner-bounce { from, to { transform: translateY(100%); opacity: 0; } 12.5%, 87.5% { transform: translateY(0); opacity: 1; } } #system-banner { z-index: 0; visibility: hidden; opacity: 0; transform: translateY(100%); } #system-banner.visible { animation: banner-bounce 4s; visibility: visible; } #system-banner button { width: auto; } #system-banner[data-button="false"] button { visibility: hidden; } #screen iframe.communication-frame { visibility: hidden; } /* Styles for FTU starting */ #screen.ftu > [data-z-index-level="app"] > .appWindow.homescreen, #screen.ftu > [data-z-index-level="app"] > .appWindow.homescreen.active { opacity: 0; } #screen.ftuStarting #lockscreen { display: none; } #screen.ftuStarting #statusbar { opacity: 0; } /* For app error */ .appWindow > iframe { z-index: 1; } .appError { display: none; background-color: black; z-index: 0; } .appWindow > .appError { background-color: black; } .appError.visible { z-index: 2; display: block; }