Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
|
|
@ -0,0 +1,21 @@
|
|||
/*csslint important: 0*/
|
||||
#global-overlays {
|
||||
/* See the new mozpasspointerevents attribute added in bug 796452 */
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
offset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
#global-overlays * {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
#global-overlays .close-global-overlay {
|
||||
pointer-events: auto !important;
|
||||
height: 3rem;
|
||||
width: 5rem;
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
#os-logo {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000 url('/shared/resources/branding/initlogo.png') no-repeat center / cover;
|
||||
z-index: 65538;
|
||||
opacity: 1;
|
||||
transition: opacity 1s ease 2s;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#carrier-logo {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#carrier-logo > img,
|
||||
#poweroff-splash > img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
opacity: 1;
|
||||
transition: opacity 1s ease 2s;
|
||||
}
|
||||
|
||||
#carrier-logo > video,
|
||||
#poweroff-splash > video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
opacity: 1;
|
||||
transition: opacity 1s ease;
|
||||
}
|
||||
|
||||
#carrier-logo.transparent {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#carrier-logo > img.hide,
|
||||
#carrier-logo > video.hide,
|
||||
#os-logo.hide,
|
||||
#poweroff-splash > img.hide,
|
||||
#poweroff-splash > video.hide {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) and (orientation: landscape) {
|
||||
#os-logo {
|
||||
background: #000 url('/shared/resources/branding/initlogo_large.png') no-repeat center / cover;
|
||||
}
|
||||
}
|
||||
|
||||
/* VULPES BRAND START: assets from ressources; keep Gaia's boot lifecycle. */
|
||||
#os-logo { background: #071d35 url('/shared/resources/branding/vulpes-wallpaper.png') center / cover; display:flex; flex-direction:column; align-items:center; justify-content:center; }
|
||||
#os-logo::before { content:""; width:190px; height:190px; flex:none; background:url('/shared/resources/branding/vulpes-symbol.png') center / contain no-repeat; }
|
||||
#os-logo::after { content:"Vulpes 2.7\A A community continuation of Firefox OS"; white-space:pre-line; padding:12px 22px; color:#f5f8fa; text-shadow:0 2px 8px #071d35; font:500 20px/1.8 sans-serif; text-align:center; }
|
||||
#poweroff-splash { background:#071d35 url('/shared/resources/branding/vulpes-symbol.png') center / 190px 190px no-repeat; }
|
||||
/* VULPES BRAND END */
|
||||
171
assets/webapps/system.gaiamobile.org/style/system/keyboard.css
Normal file
171
assets/webapps/system.gaiamobile.org/style/system/keyboard.css
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
#keyboards {
|
||||
/* See the new mozpasspointerevents attribute added in bug 796452 */
|
||||
pointer-events: none;
|
||||
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.inputWindow {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
transform: translateY(100%);
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inputWindow iframe {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.inputWindow.active {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.inputWindow.top-most iframe {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media not all and (-moz-physical-home-button) {
|
||||
#screen:not(.software-button-disabled) #keyboards {
|
||||
bottom: var(--software-home-button-height);
|
||||
}
|
||||
}
|
||||
|
||||
#screen.software-button-enabled #keyboards {
|
||||
bottom: var(--software-home-button-height);
|
||||
}
|
||||
|
||||
@media (orientation: landscape) {
|
||||
#screen.software-button-enabled #keyboards {
|
||||
/* BiDi note: the software home button should not be mirrored in RTL. */
|
||||
right: var(--software-home-button-height);
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.inputWindow.slide-from-bottom {
|
||||
animation: kbShow var(--transition-duration) both ease;
|
||||
}
|
||||
|
||||
.inputWindow.slide-to-bottom {
|
||||
/* ease-in for disappearing */
|
||||
animation: kbHide var(--transition-duration) both ease-in;
|
||||
}
|
||||
|
||||
@keyframes kbShow {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%);
|
||||
}
|
||||
80% {
|
||||
/* the original style indicates opacity should transition from 0 to 1
|
||||
within 0.2s for "ease", which after calculation is about 80% progress
|
||||
of var(--transition-duration) "ease". */
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes kbHide {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%);
|
||||
}
|
||||
}
|
||||
|
||||
/* notification */
|
||||
#keyboard-show-ime-list > .fake-notification {
|
||||
box-sizing: border-box;
|
||||
|
||||
/* wait for activate */
|
||||
display: none;
|
||||
}
|
||||
|
||||
#keyboard-show-ime-list > .fake-notification.activated {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#keyboard-show-ime-list > .fake-notification > .title-container {
|
||||
margin: 1.4rem 0 0;
|
||||
margin-inline-start: 3.7rem;
|
||||
}
|
||||
|
||||
#keyboard-show-ime-list > .fake-notification > .detail {
|
||||
margin-inline-start: 3.7rem;
|
||||
}
|
||||
|
||||
.lockScreenInputWindow.slide-from-bottom {
|
||||
animation: slideFromBottom var(--transition-duration) both ease;
|
||||
}
|
||||
|
||||
.lockScreenInputWindow.slide-to-bottom {
|
||||
animation: slideToBottom var(--transition-duration) both ease-in;
|
||||
}
|
||||
|
||||
@keyframes slideFromBottom {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%);
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideToBottom {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%);
|
||||
}
|
||||
}
|
||||
|
||||
.lockScreenInputWindow {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
.lockScreenInputWindow #lockscreen-inputpad-frame {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.lockScreenInputWindow #lockscreen-inputpad-frame.hide {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
/* Gecko 52 desktop: the JS clip limits hit testing to the keyboard area. */
|
||||
.inputWindow.active.top-most iframe { pointer-events: auto; }
|
||||
326
assets/webapps/system.gaiamobile.org/style/system/system.css
Normal file
326
assets/webapps/system.gaiamobile.org/style/system/system.css
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
* {
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea,
|
||||
[contenteditable="true"] {
|
||||
-moz-user-select: text;
|
||||
}
|
||||
|
||||
#screen {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000;
|
||||
background-size: cover; /* Possible memory over-consumption with huge images, it should be removed for improving stability*/
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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 var(--transition-duration);
|
||||
}
|
||||
|
||||
@keyframes poweroff-splash-fade-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#bottom-panel {
|
||||
position: absolute;
|
||||
display: none;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 1rem;
|
||||
}
|
||||
|
||||
#bottom-panel.visible{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.poweroff-ring {
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
width: 19vw;
|
||||
height: 19vw;
|
||||
margin-inline-start: -9.5vw;
|
||||
margin-top: -9.5vw;
|
||||
offset-inline-start: 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#poweroff-ring-1 {
|
||||
top: 25%;
|
||||
background-color: #e66600;
|
||||
}
|
||||
|
||||
#poweroff-ring-2 {
|
||||
top: 50%;
|
||||
background-color: #dc4e00;
|
||||
}
|
||||
|
||||
#poweroff-ring-3 {
|
||||
top: 75%;
|
||||
background-color: #d24500;
|
||||
}
|
||||
|
||||
.poweroff-ring > span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
top: 50%;
|
||||
offset-inline-start: 50%;
|
||||
margin: auto;
|
||||
background-color: black;
|
||||
width: 12vw;
|
||||
height: 12vw;
|
||||
margin-top: -6vw;
|
||||
margin-inline-start: -6vw;
|
||||
}
|
||||
|
||||
@media all and (orientation:landscape) {
|
||||
.poweroff-ring {
|
||||
width: 19vh;
|
||||
height: 19vh;
|
||||
margin-inline-start: -9.5vh;
|
||||
margin-top: -9.5vh;
|
||||
}
|
||||
|
||||
.poweroff-ring > span {
|
||||
width: 12vh;
|
||||
height: 12vh;
|
||||
margin-top: -6vh;
|
||||
margin-inline-start: -6vh;
|
||||
}
|
||||
}
|
||||
|
||||
#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,
|
||||
#fullscreen-dialog-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: 0;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
border: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#windows .appWindow:not(.homescreen):not(.lockScreenInputWindow)::before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: var(--statusbar-height);
|
||||
|
||||
background: rgba(0, 0, 0, .15);
|
||||
content: '';
|
||||
}
|
||||
|
||||
#secure-windows {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
border: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#dialog-overlay {
|
||||
position: absolute;
|
||||
top: var(--statusbar-height);
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#screen:-moz-full-screen-ancestor #dialog-overlay,
|
||||
#dialog-overlay.fullscreen {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
#screen:not(.crash-dialog) #crash-dialog,
|
||||
#screen:not(.trustedui) #trustedui-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* `.dialog` is set by system_dialog.js when a dialog is shown */
|
||||
#screen.dialog #dialog-overlay {
|
||||
visibility: visible;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
#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.fxa-dialog #fxa-dialog,
|
||||
#screen.trustedui #trustedui-container,
|
||||
#screen.trustedui #dialog-overlay {
|
||||
visibility: visible;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
#screen.locked #dialog-overlay {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#screen iframe.communication-frame {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#dialog-overlay {
|
||||
background-color: rgba(0,0,0,0.6);
|
||||
background: url(../themes/default/images/ui/menu_bg.png) no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
/* DIALOGS */
|
||||
/* We'll potentially move this code into the components */
|
||||
|
||||
gaia-dialog > .dialog-content {
|
||||
padding: 1.8rem;
|
||||
}
|
||||
|
||||
Loading…
Reference in a new issue