Mailspring/internal_packages/onboarding/stylesheets/onboarding.less
Ben Gotow 91998d3b36 fix(onboarding): Tweaks, styles, etc. for new onboarding experience
Summary:
Remove logout menu item and buttons, turn Link External Account to Add Account

Onboarding window starts hidden, is shown when react component is mounted and sized

Use get/setBounds to animate position and size at the same time smoothly

Fix specs, change 401 notice

Delay bouncing to Gmail to show users the Gmail screen momentarily

Make the animated resizing code defer so it doesn't run in a hard loop, and other animations can run at the same time

Bring back crossfade between screens, remove left/right shift on welcome screens

Test Plan: Run tests

Reviewers: drew, evan

Reviewed By: evan

Maniphest Tasks: T3529

Differential Revision: https://phab.nylas.com/D2054
2015-09-23 09:59:34 -07:00

350 lines
5.8 KiB
Text

@import "ui-variables";
@checkSize: 136px;
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@-webkit-keyframes bounce {
0% { transform: scale(1); }
50% { transform: scale(1.3); }
100% { transform: scale(1); }
}
@-webkit-keyframes fill {
0% { opacity: 0; border-width: @checkSize / 2; }
25% { opacity: 1; }
100% { opacity: 1; border-width: 0; }
}
.page-frame {
background-color: @gray-lighter;
-webkit-animation: fadein 0.8s;
text-align: center;
display: inline-block;
h1 {
font-weight: 100;
font-size: 40pt;
}
h4 {
font-weight: 400;
font-size: 20pt;
}
iframe, webview {
position: absolute;
width:100%;
height:100%;
left:0;
top:0;
border:0;
}
.logo-container {
width: 117px;
height: 117px;
display: inline-block;
padding-top: 30px;
box-sizing: content-box;
}
.prompt {
color:#5D5D5D;
font-size:1.07em;
font-weight:300;
margin-top:20px;
margin-bottom:14px;
}
form {
padding-right:25px;
padding-left:25px;
}
input {
display:block;
padding:10px;
width:100%;
margin-bottom:20px;
background-color: #F5F5F5;
text-align: center;
}
.environment-selector {
position: absolute;
opacity:0.1;
top: 244px;
width:292px;
select {
width:100%;
}
}
.page-container {
z-index: 10;
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.page {
margin:auto;
padding-top: 10%;
&.no-top {
padding-top: 0;
}
&.account-setup {
padding: 0 15px;
width: 300px
}
&.account-choose {
width: 300px;
}
&.opaque {
background-color: @gray-lighter;
}
}
.page-gradient {
position: absolute;
top: 0;
width: 100%;
height: 200px;
z-index: 5;
transition: background 0.3s ease-in-out;
&.under {
z-index: 0;
}
}
.page-background {
height: 100%;
width: 100%;
position: absolute;
top: 0;
}
.quit {
position: absolute;
top:5px;
left:5px;
}
.back,
.dismiss {
position: absolute;
top:25px;
left:25px;
}
.page-enter {
opacity: 0.01;
transition: all .15s ease-out;
}
.page-enter.page-enter-active {
opacity: 1;
}
.page-leave {
opacity: 1;
transition: all .15s ease-in;
}
.page-leave.page-leave-active {
opacity: 0.01;
}
.welcome-image-container {
height:391px;
display:block;
}
.welcome-image {
position:absolute;
}
.welcome-image-enter {
opacity: 0;
transition: opacity .3s linear;
}
.welcome-image-enter.welcome-image-enter-active {
opacity: 1;
}
.welcome-image-leave {
opacity: 1;
transition: opacity .3s linear;
}
.welcome-image-leave.welcome-image-leave-active {
opacity: 0;
}
.check {
width: @checkSize;
height: @checkSize;
background: #e5e5e5;
border-radius:50%;
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
box-shadow: 0 -4px 4px 0 rgba(255, 255, 255, 0.75), inset 0 4px 4px 0 rgba(0, 0, 0, 0.08);
&:before {
content: "";
position: absolute;
border-radius:50%;
top: 9%;
left: 9%;
right: 9%;
bottom: 9%;
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);
}
&:after {
content: "";
position: absolute;
border-radius:50%;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
background-color: #60b247;
border-width: 0;
border-color: #e5e5e5;
border-style: solid;
-webkit-animation: fill 0.5s forwards;
-webkit-animation-delay: 0.8s;
}
.check-icon {
position: absolute;
z-index: 3;
top: 31%;
left: 28%;
width: 45%;
fill: white;
-webkit-animation: bounce 0.4s forwards;
-webkit-animation-delay: 1.9s;
}
}
.provider {
text-align: left;
border-top: 1px solid rgba(0,0,0,0.05);
cursor: default;
img.icon {
}
.icon-container {
width: 50px;
height: 50px;
display: inline-block;
box-sizing: content-box;
padding: 5px 15px;
}
}
.provider:hover{
background: rgba(255,255,255,0.7);
}
.errormsg {
color: #A33
}
form.settings {
padding: 0 20px;
padding-bottom: 40px;
input {
padding: 8px;
display: inline-block;
width: 100%;
margin-bottom: 10px;
background: #FFF;
color: #333;
text-align: left;
&::-webkit-input-placeholder {
color: #C6C6C6;
}
}
input[type=checkbox] {
width: initial;
margin-right: 5px;
}
input.error {
border: 1px solid #A33;
}
label {
display: inline-block;
width: 100%;
color: #888;
text-align: left;
}
label.half {
width: 50%;
}
label.checkbox {
text-align: center;
}
}
.appearance-mode {
background-color:#f7f9f9;
border-radius: 10px;
border: 1px solid #c6c7c7;
text-align: center;
flex: 1;
padding:9px;
padding-top:10px;
margin:10px;
margin-top:0;
img {
background-color: #c6c7c7;
}
div {
margin-top: 10px;
text-transform: capitalize;
cursor: default;
}
}
.appearance-mode.active {
border:1px solid @component-active-color;
color: @component-active-color;
img { background-color: @component-active-color; }
}
}
.initial-package {
display:block;
margin:auto;
margin-top:10px;
margin-bottom:10px;
width:550px;
padding:15px;
border:1px solid #eee;
text-align:left;
img {
float:left;
margin-right:20px;
margin-top:30px;
margin-bottom:30px;
}
.name {
font-size:20px;
}
.description {
font-size:14px;
max-width:500px;
}
}