Ghost/ghost/members-api/static/auth/styles/components.css
Rish bc889ae9a0 Refactored members auth flow with dynamic settings
no issue

- Updated members auth flow UI
- Updated members settings and routing to be dynamic
2019-05-07 17:35:17 +02:00

371 lines
7.1 KiB
CSS

/* Reusable components */
/* ------------------------------------------------------------
*/
/* Modal */
/* ------------------------------------------------------------ */
.gm-page-overlay {
width: 100%;
height: 100vh;
position: fixed;
overflow-y: scroll;
background: linear-gradient(45deg, rgba(13,25,40,0.96) 0%,rgba(0,0,0,0.96) 100%);
animation: fadeInOverlay 0.2s ease 1 forwards;
}
.gm-page-overlay.close {
animation: fadeOutOverlay 0.2s ease 0.5s 1 forwards;
}
.gm-page-overlay.close .gm-modal {
animation: closeModal 0.4s ease-in-out 1 forwards;
}
.gm-modal-container {
position: relative;
top: 25vh;
display: flex;
}
.gm-modal {
position: relative;
margin: 0 auto;
animation: openModal 0.6s ease 1 forwards;
}
.gm-modal-close {
position: absolute;
top: 8px;
right: 8px;
display: block;
padding: 8px;
z-index: 9999;
padding: 20px;
cursor: pointer;
}
.gm-modal-close svg {
width: 32px;
height: 32px;
}
.gm-modal-close svg path {
stroke: var(--grey);
transition: all var(--animation-speed-base) ease;
}
.gm-modal-close:hover svg path {
stroke: var(--grey-d2);
}
@keyframes fadeInOverlay {
from {opacity: 0;}
to {opacity: 1;}
}
@keyframes fadeOutOverlay {
from {opacity: 1;}
to {opacity: 0;}
}
@keyframes openModal {
0% {
/* opacity: 0; */
transform: scale(1.1);
}
100% {
/* opacity: 1.0; */
transform: scale(1.0);
}
}
@keyframes closeModal {
90% {
opacity: 0;
transform: scale(0.95);
}
100% {
opacity: 0;
}
}
@media (max-width: 440px) {
.gm-modal-container {
margin: 0;
padding: 0;
top: 0;
transform: none;
min-height: 100vh;
}
.gm-modal {
width: calc(100% - 48px);
height: calc(100vh - 48px);
padding: 24px;
border-radius: 0;
}
.gm-page-overlay {
background: linear-gradient(45deg, rgba(13,25,40,0.96) 0%,rgba(0,0,0,0.96) 100%);
}
@keyframes openModal {
0% {
opacity: 0;
transform: translateY(40px);
}
50% {
opacity: 1.0;
transform: translateY(0);
}
}
@keyframes closeModal {
0% {
opacity: 1.0;
transform: translateY(0);
}
60% {
opacity: 0;
transform: translateY(40px);
}
100% {
opacity: 0;
}
}
}
/* Buttons */
/* ------------------------------------------------------------ */
button {
width: 100%;
font-weight: 500;
border: 1px solid var(--grey);
color: var(--grey-d3);
text-align: center;
cursor: pointer;
white-space: nowrap;
padding: 15px 16px 16px;
border-radius: 6px;
outline: none;
transition: all var(--animation-speed-f1) ease-in-out;
position: relative;
letter-spacing: 0.2px;
}
button:hover {
color: var(--blue-l1);
}
.gm-btn-blue {
background: var(--blue);
background: linear-gradient(to bottom, rgba(62,176,239,1) 0%,rgba(0,139,214,1) 100%);
color: var(--white);
border: none;
}
.gm-btn-blue:active {
background: var(--blue-d1);
background: linear-gradient(to bottom, rgb(22, 147, 214) 0%,rgb(0, 118, 182) 100%);
}
.gm-btn-blue:hover {
color: var(--white);
}
.gm-btn-blue:hover:before {
opacity: 0.8;
}
.gm-btn-blue:before {
content: "";
transition: all var(--animation-speed-s1) ease;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: linear-gradient(0deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.2));
opacity: 0;
}
/* Forms inputs */
/* ------------------------------------------------------------ */
/* Change Autocomplete styles in Chrome*/
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover
textarea:-webkit-autofill:focus,
textarea:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active {
-webkit-box-shadow: 0 0 0px 40px #FFF inset;
}
::-webkit-input-placeholder,
::-moz-placeholder,
:-ms-input-placeholder,
:-moz-placeholder {
color: var(--grey-d1);
}
.gm-form-element {
position: relative;
}
.gm-input {
position: relative;
border-bottom: 1px solid var(--grey-l1);
}
.gm-input.last,
.gm-input.single {
border-bottom: none;
}
.gm-input.first input {
border-radius: 6px 6px 0 0;
}
.gm-input.last input {
border-radius: 0 0 6px 6px;
}
.gm-input.single input {
border-radius: 6px;
}
.gm-input input {
font-size: var(--text-base);
color: var(--grey-d3);
border: none;
-webkit-appearance: none;
box-sizing: border-box;
background: var(--white);
width: 100%;
outline: none;
padding: 15px 14px 15px 38px;
letter-spacing: 0.2px;
vertical-align: middle;
line-height: 18px;
}
.gm-input input:focus {
}
.gm-input i svg {
width: 16px;
height: 16px;
}
.gm-input i svg path {
stroke: var(--grey-d1);
transition: stroke var(--animation-speed-base) ease-in-out;
}
.gm-input input.gm-error {
background: #FEEBE6;
box-shadow: 0 0 1px rgba(255, 0, 0, 1);
}
.gm-input input.gm-error + i svg path {
stroke: color-mod(var(--red) a(0.5));
}
.gm-input input.gm-error::-webkit-input-placeholder,
.gm-input input.gm-error::-moz-placeholder,
.gm-input input.gm-error:-ms-input-placeholder,
.gm-input input.gm-error:-moz-placeholder {
color: color-mod(var(--red) a(0.75));
}
.gm-input input.gm-input-filled + i svg path {
stroke: var(--grey-d2);
}
.gm-input i {
position: absolute;
top: 16px;
left: 14px;
opacity: 1.0;
transition: all var(--animation-speed-base) ease-in-out;
transition-delay: 0s;
}
.gm-input-errortext {
position: absolute;
top: 46px;
color: color-mod(var(--red) l(+5%) s(-2%));
font-size: var(--text-xs);
letter-spacing: 0.8px;
border-radius: 5px;
z-index: 9999;
animation: slideErrorText 0.4s ease;
}
@keyframes slideErrorText {
from {
opacity: 0;
transform: translateX(-10px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
/* Error tooltip triangle */
.gm-input-errortext-xx:before {
position: absolute;
top: -6px;
left: 50%;
margin-left: -6px;
width: 0;
border-bottom: 6px solid var(--grey-d3);
border-bottom: 6px solid var(--grey-d3);
border-right: 6px solid transparent;
border-left: 6px solid transparent;
content: " ";
font-size: 0;
line-height: 0;
}
.gm-form-errortext {
color: #FF7254;
letter-spacing: 0.4px;
margin: 24px -2px 0px;
border: 1px solid color-mod(var(--red) a(0.4));
padding: 13px 14px;
font-weight: 400;
display: flex;
justify-content: center;
align-items: start;
border-radius: 4px;
}
.gm-form-errortext span {
margin: 1px 0 0;
}
.gm-form-errortext i {
margin: 1px 8px 0 0;
}
.gm-form-errortext i svg path {
stroke: #FF7254;
}