/* Login Page */ .login-page { .container { max-width: 960px; } .navbar-gitlab .container { max-width: none; } .flash-container { margin-bottom: $gl-padding; position: relative; top: 8px; } .brand-holder { font-size: 18px; line-height: 1.5; p { font-size: 16px; color: $login-brand-holder-color; } h3 { font-size: 22px; } img { max-width: 100%; margin-bottom: 30px; } a { font-weight: $gl-font-weight-bold; } } p { font-size: 13px; } .borderless { .login-box, .omniauth-container { box-shadow: none; } .g-recaptcha { > div { margin-left: auto; margin-right: auto; } } } .login-box, .omniauth-container { box-shadow: 0 0 0 1px $border-color; border-radius: $border-radius; .login-heading h3 { font-weight: $gl-font-weight-normal; line-height: 1.5; margin: 0 0 10px; } .login-footer { margin-top: 10px; p:last-child { margin-bottom: 0; } } a.forgot { float: right; padding-top: 6px; } .nav .active a { background: transparent; } // Styles the glowing border of focused input for username async validation .login-body { font-size: 13px; input + p, input ~ p.field-validation { margin-top: 5px; } .username .validation-success { color: $green-600; } .username .validation-error { color: $red-500; } } } .omniauth-container { border-radius: $border-radius; font-size: 13px; p { margin: 0; } form { padding: 0; border: 0; background: none; } } .new-session-tabs { display: flex; box-shadow: 0 0 0 1px $border-color; border-top-right-radius: $border-radius-default; border-top-left-radius: $border-radius-default; // Ldap configurations may need more tabs & the tab labels are user generated (arbitrarily long). // These styles prevent this from breaking the layout, and only applied when providers are configured. &.custom-provider-tabs { flex-wrap: wrap; li { min-width: 85px; flex-basis: auto; // This styles tab elements that have wrapped to a second line. We cannot easily predict when this will happen. // We are making somewhat of an assumption about the configuration here: that users do not have more than // 3 LDAP servers configured (in addition to standard login) and they are not using especially long names for any // of them. If either condition is false, this will work as expected. If both are true, there may be a missing border // above one of the bottom row elements. If you know a better way, please implement it! &:nth-child(n+5) { border-top: 1px solid $border-color; } } a { font-size: 16px; } } li { flex: 1; text-align: center; border-left: 1px solid $border-color; &:first-of-type { border-left: 0; border-top-left-radius: $border-radius-default; } &:last-of-type { border-top-right-radius: $border-radius-default; } &:not(.active) { background-color: $gray-light; } a { width: 100%; font-size: 18px; } &.active > a { cursor: default; } } } .form-control { &:active, &:focus { background-color: $white; } } .submit-container { margin-top: 16px; } input[type='submit'] { margin-bottom: 0; display: block; width: 100%; } .devise-errors { h2 { margin-top: 0; font-size: 14px; color: $red-700; } } } @include media-breakpoint-down(xs) { .login-page { .col-md-5.float-right { float: none !important; margin-bottom: 45px; } } } .devise-layout-html { margin: 0; padding: 0; height: 100%; &.with-system-header { .login-page-broadcast { margin-top: calc(#{$system-header-height} + #{$header-height}); } } // Fixes footer container to bottom of viewport body { // offset height of fixed header + 1 to avoid scroll height: calc(100% - 51px); // offset without the header &.navless { height: calc(100% - 11px); } margin: 0; padding: 0; .page-wrap { min-height: 100%; position: relative; } .footer-container, hr.footer-fixed { position: absolute; bottom: 0; left: 0; right: 0; height: 40px; background: $white; } .login-page-broadcast { margin-top: 40px; } .navless-container { padding: 0 15px 65px; // height of footer + bottom padding of email confirmation link } .flash-container { padding-bottom: 65px; @include media-breakpoint-down(xs) { padding-bottom: 0; } } } }