react-modal-login
Version:
A highly customizable react login modal with social buttons
526 lines (504 loc) • 12.5 kB
CSS
.RML-btn, .RML-social-login-button, .RML-facebook-login-button, .RML-google-login-button {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 14px;
line-height: 1.428571429;
border-radius: 4px;
-webkit-touch-callout: none;
/* iOS Safari */
-webkit-user-select: none;
/* Safari */
-khtml-user-select: none;
/* Konqueror HTML */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* Internet Explorer/Edge */
user-select: none;
/* Non-prefixed version, currently
supported by Chrome and Opera */
}
.RML-btn:focus, .RML-social-login-button:focus, .RML-facebook-login-button:focus, .RML-google-login-button:focus, .RML-btn.focus, .focus.RML-social-login-button, .focus.RML-facebook-login-button, .focus.RML-google-login-button, .RML-btn:active:focus, .RML-btn:active.focus, .RML-btn.active:focus, .RML-btn.active.focus {
outline: none;
}
.RML-btn:hover, .RML-social-login-button:hover, .RML-facebook-login-button:hover, .RML-google-login-button:hover, .RML-btn:focus, .RML-social-login-button:focus, .RML-facebook-login-button:focus, .RML-google-login-button:focus, .RML-btn.focus, .focus.RML-social-login-button, .focus.RML-facebook-login-button, .focus.RML-google-login-button {
color: #333;
text-decoration: none;
outline: none;
}
.RML-btn:active, .RML-social-login-button:active, .RML-facebook-login-button:active, .RML-google-login-button:active, .RML-btn.active, .active.RML-social-login-button, .active.RML-facebook-login-button, .active.RML-google-login-button {
outline: none;
background-image: none;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.RML-btn.disabled, .disabled.RML-social-login-button, .disabled.RML-facebook-login-button, .disabled.RML-google-login-button, .RML-btn[disabled], [disabled].RML-social-login-button, [disabled].RML-facebook-login-button, [disabled].RML-google-login-button, fieldset[disabled] .RML-btn, fieldset[disabled] .RML-social-login-button, fieldset[disabled] .RML-facebook-login-button, fieldset[disabled] .RML-google-login-button {
cursor: not-allowed;
opacity: 0.65;
filter: alpha(opacity=0.65);
-webkit-box-shadow: none;
box-shadow: none;
}
.RML-btn a.disabled, .RML-social-login-button a.disabled, .RML-facebook-login-button a.disabled, .RML-google-login-button a.disabled, fieldset[disabled] .RML-btn a, fieldset[disabled] .RML-social-login-button a, fieldset[disabled] .RML-facebook-login-button a, fieldset[disabled] .RML-google-login-button a {
pointer-events: none;
}
.RML-login-modal-wrap {
position: fixed;
width: 100%;
height: 100%;
z-index: 10;
top: 0;
}
@-webkit-keyframes login-form-fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-moz-keyframes login-form-fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-ms-keyframes login-form-fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes login-form-fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-moz-keyframes fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-ms-keyframes fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
75% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.RML-form-group {
margin-bottom: 15px;
}
.RML-form-group label {
font-size: 14px;
}
.RML-form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
box-sizing: border-box;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
-moz-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
-ms-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.RML-login-modal-overlay {
position: fixed;
width: 100%;
height: 100%;
z-index: 1;
background-color: #31465d;
opacity: 0.6;
left: 0;
}
.RML-login-modal-box {
font-family: "Arial";
position: fixed;
width: 400px;
max-width: calc(100% - 40px);
max-height: calc(100% - 30px);
background-color: white;
border: 1px solid #547da1;
z-index: 2;
-webkit-box-shadow: 0 0px 6px #15030A;
-moz-box-shadow: 0 0px 6px #15030A;
box-shadow: 0 0px 6px #15030A;
border-radius: 4px;
left: 50%;
transform: translateX(-50%) translateY(-50%);
top: 50%;
-webkit-animation: enlarge-box 0.9s forwards;
-moz-animation: enlarge-box 0.9s forwards;
animation: enlarge-box 0.9s forwards;
}
.RML-login-modal-box .RML-login-modal-form {
opacity: 1;
-webkit-animation: login-form-fade-in 2s forwards;
-moz-animation: login-form-fade-in 2s forwards;
animation: login-form-fade-in 2s forwards;
}
.RML-login-modal-box .RML-login-modal-form button {
-webkit-transition: background-color 0.5s;
-moz-transition: background-color 0.5s;
-ms-transition: background-color 0.5s;
-o-transition: background-color 0.5s;
transition: background-color 0.5s;
float: right;
}
@-webkit-keyframes enlarge-box {
from {
width: 1px;
max-height: 1px;
}
to {
width: 400px;
max-height: calc(100% - 30px);
}
}
@-moz-keyframes enlarge-box {
from {
width: 1px;
max-height: 1px;
}
to {
width: 400px;
max-height: calc(100% - 30px);
}
}
@-ms-keyframes enlarge-box {
from {
width: 1px;
max-height: 1px;
}
to {
width: 400px;
max-height: calc(100% - 30px);
}
}
@keyframes enlarge-box {
from {
width: 1px;
max-height: 1px;
}
to {
width: 400px;
max-height: calc(100% - 30px);
}
}
.RML-login-modal-error {
display: inline-block;
padding-right: 5px;
color: #7A3B56;
font-size: 14px;
width: 100%;
font-weight: bold;
margin-bottom: 15px;
}
.RML-login-modal-indicator {
float: right;
margin-top: 5px;
margin-right: 10px;
}
.RML-recover-password-anchor {
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
font-size: 14px;
color: #547da1;
cursor: pointer;
text-transform: capitalize;
font-weight: bold;
}
.RML-recover-password-anchor:hover, .RML-recover-password-anchor:active, .RML-recover-password-anchor:focus {
color: #b6c0c5;
}
.RML-recover-password-success-label {
font-size: 14px;
margin-bottom: 15px;
color: #547da1;
display: block;
font-weight: bold;
}
.RML-login-modal-close {
position: absolute;
right: 0;
z-index: 1;
color: white;
border-radius: 0 2px 0 4px;
background-color: #547da1;
width: 24px;
text-align: center;
height: 24px;
cursor: pointer;
-webkit-transition: background-color 0.5s;
-moz-transition: background-color 0.5s;
-ms-transition: background-color 0.5s;
-o-transition: background-color 0.5s;
transition: background-color 0.5s;
}
.RML-login-modal-close:hover {
background-color: #31465d;
}
.RML-login-modal-close svg {
width: 12px;
height: 100%;
position: relative;
left: 1px;
}
.RML-login-modal-mode > div {
-webkit-touch-callout: none;
/* iOS Safari */
-webkit-user-select: none;
/* Safari */
-khtml-user-select: none;
/* Konqueror HTML */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* Internet Explorer/Edge */
user-select: none;
/* Non-prefixed version, currently
supported by Chrome and Opera */
display: inline-block;
width: 50%;
background-color: rgba(84, 125, 161, 0.4);
padding: 12px 0;
color: #31465d;
font-weight: 100;
font-size: 16px;
text-align: center;
border-bottom: 1px solid #b6c0c5;
cursor: pointer;
box-sizing: border-box;
vertical-align: top;
-webkit-transition: background-color 0.5s;
-moz-transition: background-color 0.5s;
-ms-transition: background-color 0.5s;
-o-transition: background-color 0.5s;
transition: background-color 0.5s;
}
.RML-login-modal-mode > div:hover:not(.disabled) {
background-color: rgba(84, 125, 161, 0.2);
}
.RML-login-modal-mode > div.active {
background-color: rgba(84, 125, 161, 0.2);
cursor: default;
}
.RML-login-modal-mode > div.disabled {
cursor: not-allowed;
}
.RML-login-modal-mode > div:first-child {
border-radius: 4px 0 0 0;
}
.RML-login-modal-mode > div:nth-child(2) {
border-radius: 0 4px 0 0;
border-left: 1px solid #b6c0c5;
}
.RML-social-modal-content-wrap {
max-height: calc(100vh - 79px);
overflow-y: auto;
padding: 25px 30px 30px 30px;
}
@media (max-width: 420px) {
.RML-social-modal-content-wrap {
padding: 20px 15px 20px 15px;
}
}
.RML-login-modal-box-content {
-webkit-animation: fade-in 1.2s forwards;
-moz-animation: fade-in 1.2s forwards;
animation: fade-in 1.2s forwards;
}
.RML-google-login-button {
background-color: #db4437;
}
.RML-google-login-button svg {
padding: 0px;
}
.RML-google-login-button:hover {
background-color: rgba(219, 68, 55, 0.8);
}
.RML-social-login-button, .RML-facebook-login-button, .RML-google-login-button {
-webkit-touch-callout: none;
/* iOS Safari */
-webkit-user-select: none;
/* Safari */
-khtml-user-select: none;
/* Konqueror HTML */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* Internet Explorer/Edge */
user-select: none;
/* Non-prefixed version, currently
supported by Chrome and Opera */
width: 100%;
color: white;
display: block;
border: none;
padding: 8px 10px;
text-align: left;
-webkit-transition: background-color 0.5s;
-moz-transition: background-color 0.5s;
-ms-transition: background-color 0.5s;
-o-transition: background-color 0.5s;
transition: background-color 0.5s;
}
.RML-social-login-button:hover, .RML-facebook-login-button:hover, .RML-google-login-button:hover, .RML-social-login-button:focus, .RML-facebook-login-button:focus, .RML-google-login-button:focus {
color: white;
}
.RML-social-login-button svg, .RML-facebook-login-button svg, .RML-google-login-button svg {
width: 22px;
height: 22px;
vertical-align: middle;
background-color: white;
border-radius: 3px;
margin-right: 8px;
}
.RML-social-login-button:nth-child(n+2), .RML-facebook-login-button:nth-child(n+2), .RML-google-login-button:nth-child(n+2) {
margin-top: 5px;
}
.RML-social-login-button span, .RML-facebook-login-button span, .RML-google-login-button span {
vertical-align: middle;
}
.hidden {
display: none ;
}
.RML-facebook-login-button {
background-color: #3b5998;
}
.RML-facebook-login-button:hover {
background-color: rgba(59, 89, 152, 0.8);
}
.RML-social-methods-separator {
text-align: center;
font-size: 16px;
color: #888;
margin-top: 12px;
margin-bottom: 12px;
}
.RML-login-modal-spinner {
animation: rotator 1.4s linear infinite;
overflow: hidden;
}
@keyframes rotator {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(270deg);
}
}
.RML-login-modal-spinner circle {
stroke-dasharray: 187;
stroke-dashoffset: 0;
transform-origin: center;
animation: dash 1.4s ease-in-out infinite, colors 5.6s ease-in-out infinite;
}
@keyframes dash {
0% {
stroke-dashoffset: 187;
}
50% {
stroke-dashoffset: 46.75;
transform: rotate(135deg);
}
100% {
stroke-dashoffset: 187;
transform: rotate(450deg);
}
}
@keyframes colors {
0% {
stroke: #4285F4;
}
25% {
stroke: #DE3E35;
}
50% {
stroke: #F7C223;
}
75% {
stroke: #1B9A59;
}
100% {
stroke: #4285F4;
}
}
.RML-login-modal-additional-wrap {
margin-top: 10px;
}
/*# sourceMappingURL=react-modal-login.css.map */