Files
edx-platform/lms/static/sass/multicourse/_account.scss
jawad khan fc03da2b23 Added Apple sign-in button branding (#25015)
* Added Apple sign-in button branding

LEARNER-7926
2020-09-23 18:47:25 +05:00

832 lines
14 KiB
SCSS

// plus on button
// border radius on inputs
// Account-Centric (Login/Register)
// =====
// page-level
.view-register,
.view-login,
.view-passwordreset {
background: $container-bg;
// edx.org - marketing typography
%heading-1,
%heading-2,
%heading-3,
%heading-4,
%heading-5,
%body-text-emphasized,
%body-text,
%button-primary,
%button-secondary {
display: block;
font-family: $font-family-sans-serif;
line-height: lh(1);
}
%heading-2 {
font-size: 25px;
margin: 0 0 $baseline 0;
font-weight: 300;
color: $link-color;
}
%heading-3 {
font-size: 21px;
margin: 0 0 $baseline 0;
font-weight: 300;
color: $body-color;
}
%heading-4 {
font-size: 14px;
font-weight: 600;
letter-spacing: 0 !important;
color: $m-gray-d2;
}
// specific examples - body
%body-text-emphasized {
font-size: 18px;
margin: 0 0 $baseline 0;
font-weight: 300;
color: $body-color;
font-family: 'Open Sans', sans-serif;
line-height: lh(1.1);
}
%body-text {
font-size: 15px;
margin: 0 0 $baseline 0;
color: $body-color;
line-height: lh(1);
}
// specific examples - buttons
%button-primary {
border-radius: 0;
@include linear-gradient(saturate($link-color,15%) 5%, shade($link-color,15%) 95%);
display: inline-block;
padding: $baseline/2 $baseline*2.5;
text-transform: lowercase;
color: $very-light-text;
letter-spacing: 0.1rem;
font-weight: 500;
cursor: pointer;
text-align: center;
border: none !important;
text-shadow: none;
font-size: $font-size-base;
box-shadow: none !important;
}
%button-secondary {
@include linear-gradient($outer-border-color 5%, $lighter-base-font-color 95%);
display: inline-block;
padding: $baseline/2 $baseline*2.5;
text-transform: lowercase;
color: $very-light-text;
font-weight: 600;
cursor: pointer;
text-align: center;
border: none !important;
text-shadow: none;
letter-spacing: 0;
font-size: 16px;
box-shadow: 0 !important;
}
// layout
.content-wrapper {
padding-bottom: 0;
}
.container,
.introduction {
box-sizing: border-box;
@include clearfix();
margin: 0 auto;
width: 960px;
background: $container-bg;
}
.container {
padding: $baseline $baseline ($baseline*2) $baseline;
}
.introduction {
padding: 0;
header {
position: relative;
// CASE: normal typographical headings
h1 {
@extend %heading-2;
@include text-align(left);
margin-bottom: $baseline;
padding-bottom: $baseline;
}
// CASE: marketing/imageery-based headings
.title {
position: absolute;
top: ($baseline*2.5);
@include left($baseline*1.5);
.title-super,
.title-sub {
@extend %t-weight1;
display: block;
letter-spacing: 0;
}
.title-super {
@include font-size(26);
@include line-height(18);
color: $header-graphic-super-color;
}
.title-sub {
@include font-size(20);
@include margin-left($baseline*2);
text-transform: lowercase;
color: $header-graphic-sub-color;
}
}
}
}
}
// shared
.login,
.register,
.passwordreset,
#forgot-password-modal #password-reset {
// reset - horrible, but necessary
p,
ol,
ul,
h1,
h2,
h3,
h4,
h5,
h6,
label,
input,
textarea {
@extend %body-text;
}
h1,
h2,
h3,
h4,
h5,
h6 {
letter-spacing: 0;
}
a {
@include transition(color 0.15s ease-in-out 0s, border 0.15s ease-in-out 0s);
&:link,
&:visited,
&:hover,
&:active,
&:focus {
color: $link-color;
font-weight: 400;
text-decoration: none !important; // needed but nasty
font-family: $font-family-sans-serif;
}
&:hover,
&:active,
&:focus {
text-decoration: none !important; // needed but nasty
border-bottom: 1px dotted $link-color;
}
}
strong {
font-weight: 600;
}
// basic layout
.content,
aside {
box-sizing: border-box;
margin: $baseline 0 0 0;
}
.content {
@include float(left);
@include margin-right($baseline*2);
width: 600px;
}
aside {
@include float(left);
width: 280px;
p,
ol,
ul {
font-size: $font-size-sm !important;
}
}
// aside
aside {
.btn {
margin: 0 0 ($baseline*2) 0;
&:last-child {
margin-bottom: 0;
}
h3 {
@extend %heading-4;
margin: 0 0 ($baseline/4) 0;
}
}
.btn-login {
h3.title,
.instructions {
display: inline-block;
margin-bottom: 0;
}
.btn-login-action {
@extend %btn-secondary-grey-outline;
padding: ($baseline/10) ($baseline*0.75);
@include margin-left($baseline/4);
}
}
}
// forms
form {
.instructions {
@extend %body-text-emphasized;
margin-bottom: $baseline;
}
.group-form {
margin: 0;
padding-top: 0;
padding-bottom: $baseline;
}
.list-input {
margin: 0;
padding: 0;
list-style: none;
}
// field groups
.field-group {
@include clearfix();
margin: 0 0 $baseline 0;
.field {
@include float(left);
@include margin(0, ($baseline*1.5), 0, 0);
display: block;
border-bottom: none;
padding-bottom: 0;
input,
textarea {
width: 100%;
font-weight: 600;
}
}
&:last-child {
margin-bottom: 0;
}
}
.group-form-personalinformation {
.field-education-level,
.field-gender,
.field-yob {
display: inline-block;
vertical-align: top;
margin-bottom: 0;
}
}
// individual fields
.field {
margin: 0 0 $baseline 0;
// elements
label,
input,
textarea {
border-radius: 0;
display: block;
height: auto;
font-family: $font-family-sans-serif;
font-style: normal;
font-weight: 500;
color: $body-color;
}
label {
@include transition(color 0.15s ease-in-out 0s);
margin: 0 0 ($baseline/4) 0;
color: tint($black, 20%);
}
.tip {
@include transition(color 0.15s ease-in-out 0s);
display: block;
margin-top: ($baseline/4);
color: $lighter-base-font-color;
font-size: em(13);
}
&.password {
position: relative;
.tip {
position: absolute;
top: 0;
@include right(0);
}
}
input,
textarea {
width: 100%;
margin: 0;
padding: ($baseline/2) ($baseline*0.75);
&.long {
width: 100%;
}
&.short {
width: 25%;
}
}
textarea.long {
height: ($baseline*5);
}
&:last-child {
margin-bottom: 0;
}
// types - password
// types - select
&.select {
select {
width: 100%;
}
}
// types - checkboxes/radio buttons
&.checkbox {
input[type="checkbox"] {
display: inline-block;
width: auto;
@include margin-right($baseline/4);
}
label {
display: inline-block;
}
}
// states - all
&.disabled,
&.submitted {
color: rgba(0, 0, 0, 0.25);
label {
cursor: text;
&::after {
@include margin-left($baseline/4);
}
}
textarea,
input {
background: $container-bg;
color: rgba(0, 0, 0, 0.25);
}
}
// states - focused
&.is-focused {
label {
color: saturate($link-color, 15%);
}
.tip {
color: saturate($link-color, 15%);
}
}
// states - disabled
&.disabled {
label::after {
color: rgba(0, 0, 0, 0.35);
content: "(Disabled Currently)";
}
}
&.error {
label {
color: $red;
}
input,
textarea {
border-color: tint($red, 50%);
}
}
&.required {
label {
font-weight: 600;
a {
font-weight: 600 !important;
}
}
label::after {
@include margin-left($baseline/4);
content: "*";
}
}
}
}
// forms - actions
.form-actions {
@include clearfix();
button[type="submit"] {
@extend %m-btn-primary;
@extend %t-action2;
&:disabled,
&.is-disabled {
opacity: 0.3;
cursor: default !important;
}
}
.action-primary {
width: flex-grid(8, 8);
}
.action-secondary {
display: block;
@include float(right);
width: flex-grid(3, 8);
margin: $baseline $baseline 0 0;
font-size: em(14);
@include text-align(right);
}
}
// forms - third-party auth
// UI: deco - divider
.deco-divider {
position: relative;
display: block;
margin: ($baseline*1.5) 0;
border-top: ($baseline/5) solid $m-gray-l4;
.copy {
@extend %t-copy-lead1;
@extend %t-weight4;
position: absolute;
top: -($baseline);
@include left(43%);
padding: ($baseline/4) ($baseline*1.5);
background: white;
text-align: center;
color: $m-gray-l2;
}
}
// downplay required note
.instructions .note {
@extend %t-copy-sub2;
display: block;
font-weight: normal;
color: $gray;
}
.form-actions.form-third-party-auth {
width: flex-grid(8, 8);
margin-bottom: $baseline;
button[type="submit"] {
@extend %btn-secondary-blue-outline;
width: flex-grid(4, 8);
@include margin-right($baseline/2);
.icon {
@extend %sso-icon;
@include margin-right($baseline/2);
color: inherit;
}
&:last-child {
margin-right: 0;
}
&.button-oa2-google-oauth2:hover,
&.button-oa2-google-oauth2:focus {
background-color: $google-focus-blue;
border: 1px solid $google-focus-blue;
}
&.button-oa2-google-oauth2:hover {
box-shadow: 0 2px 1px 0 $google-focus-blue;
}
&.button-oa2-facebook:hover,
&.button-oa2-facebook:focus {
background-color: $facebook-focus-blue;
border: 1px solid $facebook-focus-blue;
}
&.button-oa2-facebook:hover {
box-shadow: 0 2px 1px 0 $facebook-focus-blue;
}
&.button-oa2-apple-id:hover,
&.button-oa2-apple-id:focus {
background-color: $apple-focus-black;
border: 1px solid $apple-focus-black;
}
&.button-oa2-apple-id:hover {
box-shadow: 0 2px 1px 0 $apple-focus-black;
}
&.button-oa2-linkedin-oauth2:hover,
&.button-oa2-linkedin-oauth2:focus {
background-color: $linkedin-blue;
border: 1px solid #06527d;
}
&.button-oa2-linkedin-oauth2:hover {
box-shadow: 0 2px 1px 0 #005d8e;
}
}
}
// forms - messages/status
.status {
box-sizing: border-box;
margin: 0 0 $baseline 0;
border-bottom: 3px solid shade($yellow, 10%);
padding: $baseline $baseline;
background: tint($yellow, 20%);
.message-title {
@extend %heading-4;
margin: 0 0 ($baseline/4) 0;
font-size: em(14);
font-weight: 600;
}
.message-copy {
@extend %body-text;
margin: 0 !important;
padding: 0;
list-style: none;
li {
margin: 0; /* 0 0 ($baseline/4) 0; */
}
}
}
.submission-error,
.system-error {
box-shadow: inset 0 -1px 2px 0 tint($red, 85%);
border-bottom: 3px solid shade($red, 10%);
background: tint($danger, 95%);
.message-title {
color: shade($danger, 10%) !important;
}
}
// misc
.orn-plus {
color: $very-light-text;
padding: 0 $baseline/4;
}
#register-form,
#login-form,
#passwordreset-form {
.status.message {
display: none;
&.is-shown {
display: block;
}
}
.third-party-signin.message {
display: none;
&.is-shown {
display: block;
}
}
}
}
// =====
// login
.view-login {
.header-global .nav-courseware .btn-login {
display: none;
}
.introduction {
header {
height: 120px;
background: transparent $login-banner-image 0 0 no-repeat;
}
}
}
// register
.view-register {
.introduction {
header {
height: 120px;
background: transparent $register-banner-image 0 0 no-repeat;
}
}
}
// password reset
.view-passwordreset {
.header-global .nav-courseware .btn-login {
display: none;
}
.introduction {
header {
height: 120px;
border-bottom: 1px solid $m-gray;
background: transparent $passwordreset-banner-image 0 0 no-repeat;
}
}
.content {
padding: 0;
}
}
// modal password reset form
#forgot-password-modal {
border-radius: 2px;
.inner-wrapper {
border-radius: 2px;
background: $body-bg;
padding-bottom: 0 !important;
}
#password-reset {
padding: $baseline;
header {
margin: 0;
padding: 0;
&::before {
background-image: none;
}
h2 {
@extend %heading-2;
@include text-align(left);
}
}
.message {
margin: $baseline 0 0 0;
}
fieldset {
margin-bottom: ($baseline/2);
padding: 0;
}
.instructions p {
margin-bottom: ($baseline/4);
}
form {
border-radius: 0;
box-shadow: none;
margin: 0;
border: none;
padding: 0;
.field {
&.text,
&.email,
&.textarea {
input {
background: #fafafa;
margin-bottom: 0;
}
}
}
.form-actions {
padding: 0 !important;
.action-primary {
float: none;
display: block !important;
width: 100%;
}
}
}
}
.modal-form-error {
@extend %body-text;
box-shadow: inset 0 -1px 2px 0 tint($red, 85%);
box-sizing: border-box;
margin: $baseline 0 ($baseline/2) 0 !important;
padding: $baseline;
border: none;
border-bottom: 3px solid shade($red, 10%);
background: tint($red, 95%);
}
}