Ghost/ghost/members-auth-pages/styles/components.css
2019-05-07 17:15:50 +02:00

399 lines
7.9 KiB
CSS

/* Reusable components */
/* ------------------------------------------------------------
*/
/* Modal */
/* ------------------------------------------------------------ */
.gm-page-overlay {
width: 100%;
height: 100vh;
position: fixed;
overflow-y: scroll;
background: rgba(10, 17, 23, 0.9);
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.5s ease-in 1 forwards;
}
.gm-modal-container {
position: relative;
top: 50%;
transform: translateY(-50%);
display: flex;
}
.gm-modal {
position: relative;
background: white;
margin: 0 auto;
border-radius: 8px;
box-shadow: var(--box-shadow-base);
animation: openModal 0.6s ease 1 forwards;
}
.gm-modal-form {
width: 300px;
padding: 48px;
}
.gm-modal-close {
position: absolute;
top: 8px;
right: 8px;
display: block;
padding: 8px;
}
.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 { /* Safari and Chrome */
0% {
opacity: 0;
transform: translateY(25px) scale(0.85);
}
40% {
opacity: 1.0;
transform: translateY(-8px) scale(1.04);
}
100% {
transform: translateY(0) scale(1.0);
}
}
@keyframes closeModal { /* Safari and Chrome */
0% {
transform: translateY(0);
}
40% {
opacity: 1.0;
transform: translateY(-8px);
}
100% {
opacity: 0;
transform: translateY(85px);
}
}
@media (max-width: 440px) {
.gm-modal-container {
margin: 0;
padding: 0;
top: 0;
transform: none;
height: 100vh;
}
.gm-modal {
width: calc(100% - 48px);
height: calc(100vh - 48px);
padding: 24px;
border-radius: 0;
}
.gm-page-overlay {
background: rgba(10, 17, 23, 0.0);
}
@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: 13px 16px 14px;
border-radius: 4px;
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);
}
.gm-form-element {
margin: 24px 0 0;
position: relative;
}
.gm-input {
position: relative;
}
.gm-input input {
font-size: var(--text-s);
color: var(--grey-d3);
border: none;
border-radius: 4px;
border: 1px solid var(--grey-l1);
-webkit-appearance: none;
box-sizing: border-box;
background: var(--white);
width: 100%;
outline: none;
transition: border var(--animation-speed-f1) ease-in-out;
padding: 12px 14px 12px 38px; /* 1px bottom padding fixes jump that's caused by the border change */
letter-spacing: 0.2px;
vertical-align: middle;
line-height: 18px;
}
.gm-input input:hover {
border: 1px solid var(--grey);
}
.gm-input input.gm-error {
border: 1px solid color-mod(var(--red) a(0.8));
background: color-mod(var(--red) a(0.02))
}
.gm-input input:focus {
border: 1px solid color-mod(var(--blue) a(0.8));
box-shadow: 0 0 6px rgba(62, 176, 239, 0.3), 0 0 0px 40px #FFF inset;
}
.gm-input label {
display: flex;
align-items: center;
position: absolute;
font-size: var(--text-s);
padding: 0 0 2px 0;
width: 100%;
top: 14px;
left: 38px;
color: var(--grey);
transition: all var(--animation-speed-base) ease-in-out;
pointer-events: none;
letter-spacing: 0.4px;
font-weight: 400;
}
.gm-input input:hover + label {
color: var(--grey-d1);
}
.gm-input input.gm-input-filled + label,
.gm-input input:focus + label {
opacity: 0;
transition-delay: 0s;
}
.gm-input input.gm-error + label {
color: color-mod(var(--red) a(0.5));
}
.gm-input label i svg {
width: 16px;
height: 16px;
}
.gm-input label i svg path,
.gm-input i svg path {
stroke: var(--grey);
transition: stroke var(--animation-speed-base) ease-in-out;
}
.gm-input input:hover + label + i svg path {
stroke: var(--grey-d1);
}
.gm-input input.gm-error + label + i svg path {
stroke: color-mod(var(--red) a(0.5));
}
.gm-input input.gm-input-filled + label + i svg path,
.gm-input input:focus + label + i svg path {
stroke: var(--grey-d2);
}
.gm-input i {
position: absolute;
top: 14px;
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: var(--red);
font-size: var(--text-s);
letter-spacing: 0.4px;
margin: 40px -2px -12px;
background: color-mod(var(--red) a(0.08));
padding: 11px 14px;
font-weight: 500;
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;
}