diff --git a/app/Http/Controllers/AddMemberController.php b/app/Http/Controllers/AddMemberController.php index c480cb41c7391840a9ae0f28e168bf7d1eead3d3..3336830d4b66535e2ae6ff13d71d638e28ce728c 100644 --- a/app/Http/Controllers/AddMemberController.php +++ b/app/Http/Controllers/AddMemberController.php @@ -89,7 +89,7 @@ class AddMemberController extends Controller if ($request->hasFile('list_members')) { try { $extension = $request->file('list_members')->getClientOriginalExtension(); - if ($extension === 'xlsx') { + if ($extension === 'xlsx' || $extension === 'xls') { $path = $request->file('list_members')->getRealPath(); $data = Excel::load($path, function($reader) {})->get(); if (!empty($data)) { diff --git a/public/css/app.css b/public/css/app.css index 4a29ea7798f85efd328d5ea8cbcf42e4c2629b5c..03e674885f330c15e76dbb19e4ff46fe07ad911a 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -1,5 +1,5 @@ @import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600);/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) + * Bootstrap v4.2.1 (https://getbootstrap.com/) * Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2018 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) @@ -47,18 +47,11 @@ html { font-family: sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -ms-overflow-style: scrollbar; - -webkit-tap-highlight-color: transparent; -} - -@-ms-viewport { - width: device-width; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } article, aside, -dialog, figcaption, figure, footer, @@ -114,6 +107,7 @@ abbr[data-original-title] { text-decoration: underline dotted; cursor: help; border-bottom: 0; + text-decoration-skip-ink: none; } address { @@ -149,10 +143,6 @@ blockquote { margin: 0 0 1rem; } -dfn { - font-style: italic; -} - b, strong { font-weight: bolder; @@ -182,7 +172,6 @@ a { color: #007bff; text-decoration: none; background-color: transparent; - -webkit-text-decoration-skip: objects; } a:hover { @@ -209,7 +198,7 @@ pre, code, kbd, samp { - font-family: monospace, monospace; + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 1em; } @@ -217,7 +206,6 @@ pre { margin-top: 0; margin-bottom: 1rem; overflow: auto; - -ms-overflow-style: scrollbar; } figure { @@ -229,8 +217,9 @@ img { border-style: none; } -svg:not(:root) { +svg { overflow: hidden; + vertical-align: middle; } table { @@ -251,7 +240,7 @@ th { label { display: inline-block; - margin-bottom: .5rem; + margin-bottom: 0.5rem; } button { @@ -285,7 +274,7 @@ select { } button, -html [type="button"], +[type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; @@ -351,7 +340,6 @@ progress { -webkit-appearance: none; } -[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } @@ -510,7 +498,7 @@ mark, } .blockquote-footer::before { - content: "\2014 \A0"; + content: "\2014\A0"; } .img-fluid { @@ -541,13 +529,6 @@ mark, color: #6c757d; } -code, -kbd, -pre, -samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; -} - code { font-size: 87.5%; color: #e83e8c; @@ -722,7 +703,6 @@ pre code { .col-xl-auto { position: relative; width: 100%; - min-height: 1px; padding-right: 15px; padding-left: 15px; } @@ -741,7 +721,7 @@ pre code { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; - max-width: none; + max-width: 100%; } .col-1 { @@ -977,7 +957,7 @@ pre code { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; - max-width: none; + max-width: 100%; } .col-sm-1 { @@ -1218,7 +1198,7 @@ pre code { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; - max-width: none; + max-width: 100%; } .col-md-1 { @@ -1459,7 +1439,7 @@ pre code { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; - max-width: none; + max-width: 100%; } .col-lg-1 { @@ -1700,7 +1680,7 @@ pre code { -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto; - max-width: none; + max-width: 100%; } .col-xl-1 { @@ -1928,7 +1908,6 @@ pre code { .table { width: 100%; - max-width: 100%; margin-bottom: 1rem; background-color: transparent; } @@ -1972,6 +1951,13 @@ pre code { border-bottom-width: 2px; } +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + .table-striped tbody tr:nth-of-type(odd) { background-color: rgba(0, 0, 0, 0.05); } @@ -1986,6 +1972,13 @@ pre code { background-color: #b8daff; } +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + .table-hover .table-primary:hover { background-color: #9fcdff; } @@ -2001,6 +1994,13 @@ pre code { background-color: #d6d8db; } +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + .table-hover .table-secondary:hover { background-color: #c8cbcf; } @@ -2016,6 +2016,13 @@ pre code { background-color: #c3e6cb; } +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + .table-hover .table-success:hover { background-color: #b1dfbb; } @@ -2031,6 +2038,13 @@ pre code { background-color: #bee5eb; } +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + .table-hover .table-info:hover { background-color: #abdde5; } @@ -2046,6 +2060,13 @@ pre code { background-color: #ffeeba; } +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + .table-hover .table-warning:hover { background-color: #ffe8a1; } @@ -2061,6 +2082,13 @@ pre code { background-color: #f5c6cb; } +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + .table-hover .table-danger:hover { background-color: #f1b0b7; } @@ -2076,6 +2104,13 @@ pre code { background-color: #fdfdfe; } +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + .table-hover .table-light:hover { background-color: #ececf6; } @@ -2091,6 +2126,13 @@ pre code { background-color: #c6c8ca; } +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + .table-hover .table-dark:hover { background-color: #b9bbbe; } @@ -2116,7 +2158,7 @@ pre code { } .table .thead-dark th { - color: #f5f8fa; + color: #fff; background-color: #212529; border-color: #32383e; } @@ -2128,7 +2170,7 @@ pre code { } .table-dark { - color: #f5f8fa; + color: #fff; background-color: #212529; } @@ -2221,8 +2263,10 @@ pre code { .form-control { display: block; width: 100%; + height: calc(2.19rem + 2px); padding: 0.375rem 0.75rem; font-size: 0.9rem; + font-weight: 400; line-height: 1.6; color: #495057; background-color: #fff; @@ -2235,6 +2279,13 @@ pre code { transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } +@media screen and (prefers-reduced-motion: reduce) { + .form-control { + -webkit-transition: none; + transition: none; + } +} + .form-control::-ms-expand { background-color: transparent; border: 0; @@ -2254,11 +2305,6 @@ pre code { opacity: 1; } -.form-control:-ms-input-placeholder { - color: #6c757d; - opacity: 1; -} - .form-control::-ms-input-placeholder { color: #6c757d; opacity: 1; @@ -2275,10 +2321,6 @@ pre code { opacity: 1; } -select.form-control:not([size]):not([multiple]) { - height: calc(2.19rem + 2px); -} - select.form-control:focus::-ms-value { color: #495057; background-color: #fff; @@ -2319,67 +2361,41 @@ select.form-control:focus::-ms-value { padding-bottom: 0.375rem; margin-bottom: 0; line-height: 1.6; + color: #212529; background-color: transparent; border: solid transparent; border-width: 1px 0; } .form-control-plaintext.form-control-sm, -.input-group-sm > .form-control-plaintext.form-control, -.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text, -.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text, -.input-group-sm > .input-group-prepend > .form-control-plaintext.btn, -.input-group-sm > .input-group-append > .form-control-plaintext.btn, -.form-control-plaintext.form-control-lg, -.input-group-lg > .form-control-plaintext.form-control, -.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text, -.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text, -.input-group-lg > .input-group-prepend > .form-control-plaintext.btn, -.input-group-lg > .input-group-append > .form-control-plaintext.btn { +.form-control-plaintext.form-control-lg { padding-right: 0; padding-left: 0; } -.form-control-sm, -.input-group-sm > .form-control, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-append > .btn { +.form-control-sm { + height: calc(1.68125rem + 2px); padding: 0.25rem 0.5rem; font-size: 0.7875rem; line-height: 1.5; border-radius: 0.2rem; } -select.form-control-sm:not([size]):not([multiple]), -.input-group-sm > select.form-control:not([size]):not([multiple]), -.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), -.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), -.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), -.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) { - height: calc(1.68125rem + 2px); -} - -.form-control-lg, -.input-group-lg > .form-control, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.input-group-lg > .input-group-append > .btn { +.form-control-lg { + height: calc(2.6875rem + 2px); padding: 0.5rem 1rem; font-size: 1.125rem; line-height: 1.5; border-radius: 0.3rem; } -select.form-control-lg:not([size]):not([multiple]), -.input-group-lg > select.form-control:not([size]):not([multiple]), -.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), -.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]), -.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), -.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) { - height: calc(2.6875rem + 2px); +select.form-control[size], +select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; } .form-group { @@ -2459,28 +2475,27 @@ select.form-control-lg:not([size]):not([multiple]), z-index: 5; display: none; max-width: 100%; - padding: .5rem; + padding: 0.25rem 0.5rem; margin-top: .1rem; - font-size: .875rem; - line-height: 1; + font-size: 0.7875rem; + line-height: 1.6; color: #fff; - background-color: rgba(40, 167, 69, 0.8); - border-radius: .2rem; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; } .was-validated .form-control:valid, -.form-control.is-valid, -.was-validated -.custom-select:valid, -.custom-select.is-valid { +.form-control.is-valid { border-color: #28a745; + padding-right: 2.19rem; + background-repeat: no-repeat; + background-position: center right calc(2.19rem / 4); + background-size: calc(2.19rem / 2) calc(2.19rem / 2); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); } .was-validated .form-control:valid:focus, -.form-control.is-valid:focus, -.was-validated -.custom-select:valid:focus, -.custom-select.is-valid:focus { +.form-control.is-valid:focus { border-color: #28a745; -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); @@ -2489,16 +2504,44 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .form-control:valid ~ .valid-feedback, .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, -.form-control.is-valid ~ .valid-tooltip, -.was-validated -.custom-select:valid ~ .valid-feedback, -.was-validated -.custom-select:valid ~ .valid-tooltip, +.form-control.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: 2.19rem; + background-position: top calc(2.19rem / 4) right calc(2.19rem / 4); +} + +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #28a745; + padding-right: 3.3925rem; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") no-repeat center right 1.75rem/1.095rem 1.095rem; +} + +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #28a745; + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-select:valid ~ .valid-feedback, +.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, .custom-select.is-valid ~ .valid-tooltip { display: block; } +.was-validated .form-control-file:valid ~ .valid-feedback, +.was-validated .form-control-file:valid ~ .valid-tooltip, +.form-control-file.is-valid ~ .valid-feedback, +.form-control-file.is-valid ~ .valid-tooltip { + display: block; +} + .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { color: #28a745; @@ -2518,7 +2561,7 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - background-color: #71dd8a; + border-color: #28a745; } .was-validated .custom-control-input:valid ~ .valid-feedback, @@ -2530,23 +2573,24 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; background-color: #34ce57; } .was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); - box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); } -.was-validated .custom-file-input:valid ~ .custom-file-label, -.custom-file-input.is-valid ~ .custom-file-label { +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { border-color: #28a745; } -.was-validated .custom-file-input:valid ~ .custom-file-label::before, -.custom-file-input.is-valid ~ .custom-file-label::before { - border-color: inherit; +.was-validated .custom-file-input:valid ~ .custom-file-label, +.custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; } .was-validated .custom-file-input:valid ~ .valid-feedback, @@ -2558,6 +2602,7 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); } @@ -2576,28 +2621,27 @@ select.form-control-lg:not([size]):not([multiple]), z-index: 5; display: none; max-width: 100%; - padding: .5rem; + padding: 0.25rem 0.5rem; margin-top: .1rem; - font-size: .875rem; - line-height: 1; + font-size: 0.7875rem; + line-height: 1.6; color: #fff; - background-color: rgba(220, 53, 69, 0.8); - border-radius: .2rem; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; } .was-validated .form-control:invalid, -.form-control.is-invalid, -.was-validated -.custom-select:invalid, -.custom-select.is-invalid { +.form-control.is-invalid { border-color: #dc3545; + padding-right: 2.19rem; + background-repeat: no-repeat; + background-position: center right calc(2.19rem / 4); + background-size: calc(2.19rem / 2) calc(2.19rem / 2); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); } .was-validated .form-control:invalid:focus, -.form-control.is-invalid:focus, -.was-validated -.custom-select:invalid:focus, -.custom-select.is-invalid:focus { +.form-control.is-invalid:focus { border-color: #dc3545; -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); @@ -2606,16 +2650,44 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .form-control:invalid ~ .invalid-feedback, .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, -.form-control.is-invalid ~ .invalid-tooltip, -.was-validated -.custom-select:invalid ~ .invalid-feedback, -.was-validated -.custom-select:invalid ~ .invalid-tooltip, +.form-control.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: 2.19rem; + background-position: top calc(2.19rem / 4) right calc(2.19rem / 4); +} + +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #dc3545; + padding-right: 3.3925rem; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.095rem 1.095rem; +} + +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #dc3545; + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-select:invalid ~ .invalid-feedback, +.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, .custom-select.is-invalid ~ .invalid-tooltip { display: block; } +.was-validated .form-control-file:invalid ~ .invalid-feedback, +.was-validated .form-control-file:invalid ~ .invalid-tooltip, +.form-control-file.is-invalid ~ .invalid-feedback, +.form-control-file.is-invalid ~ .invalid-tooltip { + display: block; +} + .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { color: #dc3545; @@ -2635,7 +2707,7 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - background-color: #efa2a9; + border-color: #dc3545; } .was-validated .custom-control-input:invalid ~ .invalid-feedback, @@ -2647,23 +2719,24 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; background-color: #e4606d; } .was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); - box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } -.was-validated .custom-file-input:invalid ~ .custom-file-label, -.custom-file-input.is-invalid ~ .custom-file-label { +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { border-color: #dc3545; } -.was-validated .custom-file-input:invalid ~ .custom-file-label::before, -.custom-file-input.is-invalid ~ .custom-file-label::before { - border-color: inherit; +.was-validated .custom-file-input:invalid ~ .custom-file-label, +.custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; } .was-validated .custom-file-input:invalid ~ .invalid-feedback, @@ -2675,6 +2748,7 @@ select.form-control-lg:not([size]):not([multiple]), .was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } @@ -2737,7 +2811,8 @@ select.form-control-lg:not([size]):not([multiple]), display: inline-block; } - .form-inline .input-group { + .form-inline .input-group, + .form-inline .custom-select { width: auto; } @@ -2779,13 +2854,14 @@ select.form-control-lg:not([size]):not([multiple]), .btn { display: inline-block; font-weight: 400; + color: #212529; text-align: center; - white-space: nowrap; vertical-align: middle; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; + background-color: transparent; border: 1px solid transparent; padding: 0.375rem 0.75rem; font-size: 0.9rem; @@ -2797,8 +2873,15 @@ select.form-control-lg:not([size]):not([multiple]), transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } -.btn:hover, -.btn:focus { +@media screen and (prefers-reduced-motion: reduce) { + .btn { + -webkit-transition: none; + transition: none; + } +} + +.btn:hover { + color: #212529; text-decoration: none; } @@ -2818,11 +2901,6 @@ select.form-control-lg:not([size]):not([multiple]), cursor: pointer; } -.btn:not(:disabled):not(.disabled):active, -.btn:not(:disabled):not(.disabled).active { - background-image: none; -} - a.btn.disabled, fieldset:disabled a.btn { pointer-events: none; @@ -2842,8 +2920,8 @@ fieldset:disabled a.btn { .btn-primary:focus, .btn-primary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); } .btn-primary.disabled, @@ -2864,8 +2942,8 @@ fieldset:disabled a.btn { .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); } .btn-secondary { @@ -2882,8 +2960,8 @@ fieldset:disabled a.btn { .btn-secondary:focus, .btn-secondary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); } .btn-secondary.disabled, @@ -2904,8 +2982,8 @@ fieldset:disabled a.btn { .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); } .btn-success { @@ -2922,8 +3000,8 @@ fieldset:disabled a.btn { .btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); } .btn-success.disabled, @@ -2944,8 +3022,8 @@ fieldset:disabled a.btn { .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); } .btn-info { @@ -2962,8 +3040,8 @@ fieldset:disabled a.btn { .btn-info:focus, .btn-info.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); } .btn-info.disabled, @@ -2984,8 +3062,8 @@ fieldset:disabled a.btn { .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); } .btn-warning { @@ -3002,8 +3080,8 @@ fieldset:disabled a.btn { .btn-warning:focus, .btn-warning.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); } .btn-warning.disabled, @@ -3024,8 +3102,8 @@ fieldset:disabled a.btn { .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); } .btn-danger { @@ -3042,8 +3120,8 @@ fieldset:disabled a.btn { .btn-danger:focus, .btn-danger.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); } .btn-danger.disabled, @@ -3064,8 +3142,8 @@ fieldset:disabled a.btn { .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); } .btn-light { @@ -3082,8 +3160,8 @@ fieldset:disabled a.btn { .btn-light:focus, .btn-light.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); } .btn-light.disabled, @@ -3104,8 +3182,8 @@ fieldset:disabled a.btn { .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); } .btn-dark { @@ -3122,8 +3200,8 @@ fieldset:disabled a.btn { .btn-dark:focus, .btn-dark.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } .btn-dark.disabled, @@ -3144,14 +3222,12 @@ fieldset:disabled a.btn { .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } .btn-outline-primary { color: #007bff; - background-color: transparent; - background-image: none; border-color: #007bff; } @@ -3190,8 +3266,6 @@ fieldset:disabled a.btn { .btn-outline-secondary { color: #6c757d; - background-color: transparent; - background-image: none; border-color: #6c757d; } @@ -3230,8 +3304,6 @@ fieldset:disabled a.btn { .btn-outline-success { color: #28a745; - background-color: transparent; - background-image: none; border-color: #28a745; } @@ -3270,8 +3342,6 @@ fieldset:disabled a.btn { .btn-outline-info { color: #17a2b8; - background-color: transparent; - background-image: none; border-color: #17a2b8; } @@ -3310,8 +3380,6 @@ fieldset:disabled a.btn { .btn-outline-warning { color: #ffc107; - background-color: transparent; - background-image: none; border-color: #ffc107; } @@ -3350,8 +3418,6 @@ fieldset:disabled a.btn { .btn-outline-danger { color: #dc3545; - background-color: transparent; - background-image: none; border-color: #dc3545; } @@ -3390,8 +3456,6 @@ fieldset:disabled a.btn { .btn-outline-light { color: #f8f9fa; - background-color: transparent; - background-image: none; border-color: #f8f9fa; } @@ -3430,8 +3494,6 @@ fieldset:disabled a.btn { .btn-outline-dark { color: #343a40; - background-color: transparent; - background-image: none; border-color: #343a40; } @@ -3471,20 +3533,16 @@ fieldset:disabled a.btn { .btn-link { font-weight: 400; color: #007bff; - background-color: transparent; } .btn-link:hover { color: #0056b3; text-decoration: underline; - background-color: transparent; - border-color: transparent; } .btn-link:focus, .btn-link.focus { text-decoration: underline; - border-color: transparent; -webkit-box-shadow: none; box-shadow: none; } @@ -3492,6 +3550,7 @@ fieldset:disabled a.btn { .btn-link:disabled, .btn-link.disabled { color: #6c757d; + pointer-events: none; } .btn-lg, @@ -3526,29 +3585,23 @@ input[type="button"].btn-block { } .fade { - opacity: 0; -webkit-transition: opacity 0.15s linear; transition: opacity 0.15s linear; } -.fade.show { - opacity: 1; -} - -.collapse { - display: none; -} - -.collapse.show { - display: block; +@media screen and (prefers-reduced-motion: reduce) { + .fade { + -webkit-transition: none; + transition: none; + } } -tr.collapse.show { - display: table-row; +.fade:not(.show) { + opacity: 0; } -tbody.collapse.show { - display: table-row-group; +.collapse:not(.show) { + display: none; } .collapsing { @@ -3559,15 +3612,22 @@ tbody.collapse.show { transition: height 0.35s ease; } +@media screen and (prefers-reduced-motion: reduce) { + .collapsing { + -webkit-transition: none; + transition: none; + } +} + .dropup, -.dropdown { +.dropright, +.dropdown, +.dropleft { position: relative; } .dropdown-toggle::after { display: inline-block; - width: 0; - height: 0; margin-left: 0.255em; vertical-align: 0.255em; content: ""; @@ -3601,41 +3661,109 @@ tbody.collapse.show { border-radius: 0.25rem; } -.dropup .dropdown-menu { - margin-top: 0; - margin-bottom: 0.125rem; -} - -.dropup .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; +.dropdown-menu-right { + right: 0; + left: auto; } -.dropup .dropdown-toggle:empty::after { - margin-left: 0; +@media (min-width: 576px) { + .dropdown-menu-sm-right { + right: 0; + left: auto; + } } -.dropright .dropdown-menu { - margin-top: 0; - margin-left: 0.125rem; +@media (min-width: 768px) { + .dropdown-menu-md-right { + right: 0; + left: auto; + } } -.dropright .dropdown-toggle::after { +@media (min-width: 992px) { + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { display: inline-block; - width: 0; - height: 0; margin-left: 0.255em; vertical-align: 0.255em; content: ""; border-top: 0.3em solid transparent; + border-right: 0; border-bottom: 0.3em solid transparent; border-left: 0.3em solid; } @@ -3649,14 +3777,15 @@ tbody.collapse.show { } .dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; margin-top: 0; margin-right: 0.125rem; } .dropleft .dropdown-toggle::after { display: inline-block; - width: 0; - height: 0; margin-left: 0.255em; vertical-align: 0.255em; content: ""; @@ -3668,8 +3797,6 @@ tbody.collapse.show { .dropleft .dropdown-toggle::before { display: inline-block; - width: 0; - height: 0; margin-right: 0.255em; vertical-align: 0.255em; content: ""; @@ -3686,6 +3813,14 @@ tbody.collapse.show { vertical-align: 0; } +.dropdown-menu[x-placement^="top"], +.dropdown-menu[x-placement^="right"], +.dropdown-menu[x-placement^="bottom"], +.dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + .dropdown-divider { height: 0; margin: 0.5rem 0; @@ -3706,6 +3841,16 @@ tbody.collapse.show { border: 0; } +.dropdown-item:first-child { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.dropdown-item:last-child { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + .dropdown-item:hover, .dropdown-item:focus { color: #16181b; @@ -3723,6 +3868,7 @@ tbody.collapse.show { .dropdown-item.disabled, .dropdown-item:disabled { color: #6c757d; + pointer-events: none; background-color: transparent; } @@ -3739,6 +3885,12 @@ tbody.collapse.show { white-space: nowrap; } +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + .btn-group, .btn-group-vertical { position: relative; @@ -3751,9 +3903,9 @@ tbody.collapse.show { .btn-group > .btn, .btn-group-vertical > .btn { position: relative; - -webkit-box-flex: 0; - -ms-flex: 0 1 auto; - flex: 0 1 auto; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } .btn-group > .btn:hover, @@ -3770,17 +3922,6 @@ tbody.collapse.show { z-index: 1; } -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group, -.btn-group-vertical .btn + .btn, -.btn-group-vertical .btn + .btn-group, -.btn-group-vertical .btn-group + .btn, -.btn-group-vertical .btn-group + .btn-group { - margin-left: -1px; -} - .btn-toolbar { display: -webkit-box; display: -ms-flexbox; @@ -3796,8 +3937,9 @@ tbody.collapse.show { width: auto; } -.btn-group > .btn:first-child { - margin-left: 0; +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; } .btn-group > .btn:not(:last-child):not(.dropdown-toggle), @@ -3817,10 +3959,16 @@ tbody.collapse.show { padding-left: 0.5625rem; } -.dropdown-toggle-split::after { +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { margin-left: 0; } +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + .btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { padding-right: 0.375rem; @@ -3846,17 +3994,14 @@ tbody.collapse.show { justify-content: center; } -.btn-group-vertical .btn, -.btn-group-vertical .btn-group { +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { width: 100%; } -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { margin-top: -1px; - margin-left: 0; } .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), @@ -3899,6 +4044,7 @@ tbody.collapse.show { } .input-group > .form-control, +.input-group > .form-control-plaintext, .input-group > .custom-select, .input-group > .custom-file { position: relative; @@ -3909,15 +4055,12 @@ tbody.collapse.show { margin-bottom: 0; } -.input-group > .form-control:focus, -.input-group > .custom-select:focus, -.input-group > .custom-file:focus { - z-index: 3; -} - .input-group > .form-control + .form-control, .input-group > .form-control + .custom-select, .input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, .input-group > .custom-select + .form-control, .input-group > .custom-select + .custom-select, .input-group > .custom-select + .custom-file, @@ -3927,6 +4070,16 @@ tbody.collapse.show { margin-left: -1px; } +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + .input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) { border-top-right-radius: 0; @@ -3949,13 +4102,12 @@ tbody.collapse.show { } .input-group > .custom-file:not(:last-child) .custom-file-label, -.input-group > .custom-file:not(:last-child) .custom-file-label::before { +.input-group > .custom-file:not(:last-child) .custom-file-label::after { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.input-group > .custom-file:not(:first-child) .custom-file-label, -.input-group > .custom-file:not(:first-child) .custom-file-label::before { +.input-group > .custom-file:not(:first-child) .custom-file-label { border-top-left-radius: 0; border-bottom-left-radius: 0; } @@ -3973,6 +4125,11 @@ tbody.collapse.show { z-index: 2; } +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + .input-group-prepend .btn + .btn, .input-group-prepend .btn + .input-group-text, .input-group-prepend .input-group-text + .input-group-text, @@ -4017,6 +4174,45 @@ tbody.collapse.show { margin-top: 0; } +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(2.6875rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.125rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.68125rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.7875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + .input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text, .input-group > .input-group-append:not(:last-child) > .btn, @@ -4040,7 +4236,7 @@ tbody.collapse.show { .custom-control { position: relative; display: block; - min-height: 1.6rem; + min-height: 1.44rem; padding-left: 1.5rem; } @@ -4059,17 +4255,23 @@ tbody.collapse.show { .custom-control-input:checked ~ .custom-control-label::before { color: #fff; + border-color: #007bff; background-color: #007bff; } .custom-control-input:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; } -.custom-control-input:active ~ .custom-control-label::before { +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { color: #fff; background-color: #b3d7ff; + border-color: #b3d7ff; } .custom-control-input:disabled ~ .custom-control-label { @@ -4081,29 +4283,28 @@ tbody.collapse.show { } .custom-control-label { + position: relative; margin-bottom: 0; + vertical-align: top; } .custom-control-label::before { position: absolute; - top: 0.3rem; - left: 0; + top: 0.22rem; + left: -1.5rem; display: block; width: 1rem; height: 1rem; pointer-events: none; content: ""; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: #dee2e6; + background-color: #fff; + border: #adb5bd solid 1px; } .custom-control-label::after { position: absolute; - top: 0.3rem; - left: 0; + top: 0.22rem; + left: -1.5rem; display: block; width: 1rem; height: 1rem; @@ -4117,20 +4318,17 @@ tbody.collapse.show { border-radius: 0.25rem; } -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { - background-color: #007bff; -} - .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); } .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; background-color: #007bff; } .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); } .custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { @@ -4145,28 +4343,66 @@ tbody.collapse.show { border-radius: 50%; } -.custom-radio .custom-control-input:checked ~ .custom-control-label::before { - background-color: #007bff; -} - .custom-radio .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } .custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { background-color: rgba(0, 123, 255, 0.5); } +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.22rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} + +@media screen and (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + -webkit-transition: none; + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + .custom-select { display: inline-block; width: 100%; height: calc(2.19rem + 2px); padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-weight: 400; line-height: 1.6; color: #495057; vertical-align: middle; - background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; - background-size: 8px 10px; + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + background-color: #fff; border: 1px solid #ced4da; border-radius: 0.25rem; -webkit-appearance: none; @@ -4177,8 +4413,8 @@ tbody.collapse.show { .custom-select:focus { border-color: #80bdff; outline: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); + -webkit-box-shadow: 0 0 0 0.2rem rgba(128, 189, 255, 0.5); + box-shadow: 0 0 0 0.2rem rgba(128, 189, 255, 0.5); } .custom-select:focus::-ms-value { @@ -4204,16 +4440,18 @@ tbody.collapse.show { .custom-select-sm { height: calc(1.68125rem + 2px); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - font-size: 75%; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.7875rem; } .custom-select-lg { height: calc(2.6875rem + 2px); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - font-size: 125%; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.125rem; } .custom-file { @@ -4233,20 +4471,24 @@ tbody.collapse.show { opacity: 0; } -.custom-file-input:focus ~ .custom-file-control { +.custom-file-input:focus ~ .custom-file-label { border-color: #80bdff; -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.custom-file-input:focus ~ .custom-file-control::before { - border-color: #80bdff; +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; } .custom-file-input:lang(en) ~ .custom-file-label::after { content: "Browse"; } +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + .custom-file-label { position: absolute; top: 0; @@ -4255,6 +4497,7 @@ tbody.collapse.show { z-index: 1; height: calc(2.19rem + 2px); padding: 0.375rem 0.75rem; + font-weight: 400; line-height: 1.6; color: #495057; background-color: #fff; @@ -4269,16 +4512,204 @@ tbody.collapse.show { bottom: 0; z-index: 3; display: block; - height: calc(calc(2.19rem + 2px) - 1px * 2); + height: 2.19rem; padding: 0.375rem 0.75rem; line-height: 1.6; color: #495057; content: "Browse"; background-color: #e9ecef; - border-left: 1px solid #ced4da; + border-left: inherit; border-radius: 0 0.25rem 0.25rem 0; } +.custom-range { + width: 100%; + height: calc(1rem + 0.4rem); + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.custom-range:focus::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #f5f8fa, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media screen and (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media screen and (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media screen and (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} + +@media screen and (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + -webkit-transition: none; + transition: none; + } +} + .nav { display: -webkit-box; display: -ms-flexbox; @@ -4302,6 +4733,8 @@ tbody.collapse.show { .nav-link.disabled { color: #6c757d; + pointer-events: none; + cursor: default; } .nav-tabs { @@ -4466,7 +4899,7 @@ tbody.collapse.show { padding: 0.25rem 0.75rem; font-size: 1.125rem; line-height: 1; - background-color: #e8e8e8; + background-color: transparent; border: 1px solid transparent; border-radius: 0.25rem; } @@ -4520,11 +4953,6 @@ tbody.collapse.show { position: absolute; } - .navbar-expand-sm .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .navbar-expand-sm .navbar-nav .nav-link { padding-right: 0.5rem; padding-left: 0.5rem; @@ -4547,11 +4975,6 @@ tbody.collapse.show { .navbar-expand-sm .navbar-toggler { display: none; } - - .navbar-expand-sm .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } } @media (max-width: 767.98px) { @@ -4584,11 +5007,6 @@ tbody.collapse.show { position: absolute; } - .navbar-expand-md .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .navbar-expand-md .navbar-nav .nav-link { padding-right: 0.5rem; padding-left: 0.5rem; @@ -4611,11 +5029,6 @@ tbody.collapse.show { .navbar-expand-md .navbar-toggler { display: none; } - - .navbar-expand-md .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } } @media (max-width: 991.98px) { @@ -4648,11 +5061,6 @@ tbody.collapse.show { position: absolute; } - .navbar-expand-lg .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .navbar-expand-lg .navbar-nav .nav-link { padding-right: 0.5rem; padding-left: 0.5rem; @@ -4675,11 +5083,6 @@ tbody.collapse.show { .navbar-expand-lg .navbar-toggler { display: none; } - - .navbar-expand-lg .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } } @media (max-width: 1199.98px) { @@ -4712,11 +5115,6 @@ tbody.collapse.show { position: absolute; } - .navbar-expand-xl .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .navbar-expand-xl .navbar-nav .nav-link { padding-right: 0.5rem; padding-left: 0.5rem; @@ -4739,11 +5137,6 @@ tbody.collapse.show { .navbar-expand-xl .navbar-toggler { display: none; } - - .navbar-expand-xl .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } } .navbar-expand { @@ -4773,11 +5166,6 @@ tbody.collapse.show { position: absolute; } -.navbar-expand .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; -} - .navbar-expand .navbar-nav .nav-link { padding-right: 0.5rem; padding-left: 0.5rem; @@ -4801,11 +5189,6 @@ tbody.collapse.show { display: none; } -.navbar-expand .dropup .dropdown-menu { - top: auto; - bottom: 100%; -} - .navbar-light .navbar-brand { color: rgba(0, 0, 0, 0.9); } @@ -4841,7 +5224,7 @@ tbody.collapse.show { } .navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } .navbar-light .navbar-text { @@ -4892,7 +5275,7 @@ tbody.collapse.show { } .navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } .navbar-dark .navbar-text { @@ -4971,6 +5354,7 @@ tbody.collapse.show { .card-header { padding: 0.75rem 1.25rem; margin-bottom: 0; + color: inherit; background-color: rgba(0, 0, 0, 0.03); border-bottom: 1px solid rgba(0, 0, 0, 0.125); } @@ -5174,6 +5558,8 @@ tbody.collapse.show { column-count: 3; -webkit-column-gap: 1.25rem; column-gap: 1.25rem; + orphans: 1; + widows: 1; } .card-columns .card { @@ -5182,6 +5568,34 @@ tbody.collapse.show { } } +.accordion .card { + overflow: hidden; +} + +.accordion .card:not(:first-of-type) .card-header:first-child { + border-radius: 0; +} + +.accordion .card:not(:first-of-type):not(:last-of-type) { + border-bottom: 0; + border-radius: 0; +} + +.accordion .card:first-of-type { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion .card:last-of-type { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion .card .card-header { + margin-bottom: -1px; +} + .breadcrumb { display: -webkit-box; display: -ms-flexbox; @@ -5195,10 +5609,13 @@ tbody.collapse.show { border-radius: 0.25rem; } +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + .breadcrumb-item + .breadcrumb-item::before { display: inline-block; padding-right: 0.5rem; - padding-left: 0.5rem; color: #6c757d; content: "/"; } @@ -5236,6 +5653,7 @@ tbody.collapse.show { } .page-link:hover { + z-index: 2; color: #0056b3; text-decoration: none; background-color: #e9ecef; @@ -5323,6 +5741,11 @@ tbody.collapse.show { border-radius: 0.25rem; } +a.badge:hover, +a.badge:focus { + text-decoration: none; +} + .badge:empty { display: none; } @@ -5343,10 +5766,9 @@ tbody.collapse.show { background-color: #007bff; } -.badge-primary[href]:hover, -.badge-primary[href]:focus { +a.badge-primary:hover, +a.badge-primary:focus { color: #fff; - text-decoration: none; background-color: #0062cc; } @@ -5355,10 +5777,9 @@ tbody.collapse.show { background-color: #6c757d; } -.badge-secondary[href]:hover, -.badge-secondary[href]:focus { +a.badge-secondary:hover, +a.badge-secondary:focus { color: #fff; - text-decoration: none; background-color: #545b62; } @@ -5367,10 +5788,9 @@ tbody.collapse.show { background-color: #28a745; } -.badge-success[href]:hover, -.badge-success[href]:focus { +a.badge-success:hover, +a.badge-success:focus { color: #fff; - text-decoration: none; background-color: #1e7e34; } @@ -5379,10 +5799,9 @@ tbody.collapse.show { background-color: #17a2b8; } -.badge-info[href]:hover, -.badge-info[href]:focus { +a.badge-info:hover, +a.badge-info:focus { color: #fff; - text-decoration: none; background-color: #117a8b; } @@ -5391,10 +5810,9 @@ tbody.collapse.show { background-color: #ffc107; } -.badge-warning[href]:hover, -.badge-warning[href]:focus { +a.badge-warning:hover, +a.badge-warning:focus { color: #212529; - text-decoration: none; background-color: #d39e00; } @@ -5403,10 +5821,9 @@ tbody.collapse.show { background-color: #dc3545; } -.badge-danger[href]:hover, -.badge-danger[href]:focus { +a.badge-danger:hover, +a.badge-danger:focus { color: #fff; - text-decoration: none; background-color: #bd2130; } @@ -5415,10 +5832,9 @@ tbody.collapse.show { background-color: #f8f9fa; } -.badge-light[href]:hover, -.badge-light[href]:focus { +a.badge-light:hover, +a.badge-light:focus { color: #212529; - text-decoration: none; background-color: #dae0e5; } @@ -5427,10 +5843,9 @@ tbody.collapse.show { background-color: #343a40; } -.badge-dark[href]:hover, -.badge-dark[href]:focus { +a.badge-dark:hover, +a.badge-dark:focus { color: #fff; - text-decoration: none; background-color: #1d2124; } @@ -5637,11 +6052,19 @@ tbody.collapse.show { justify-content: center; color: #fff; text-align: center; + white-space: nowrap; background-color: #007bff; -webkit-transition: width 0.6s ease; transition: width 0.6s ease; } +@media screen and (prefers-reduced-motion: reduce) { + .progress-bar { + -webkit-transition: none; + transition: none; + } +} + .progress-bar-striped { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: 1rem 1rem; @@ -5726,6 +6149,7 @@ tbody.collapse.show { .list-group-item.disabled, .list-group-item:disabled { color: #6c757d; + pointer-events: none; background-color: #fff; } @@ -5742,11 +6166,16 @@ tbody.collapse.show { border-radius: 0; } +.list-group-flush .list-group-item:last-child { + margin-bottom: -1px; +} + .list-group-flush:first-child .list-group-item:first-child { border-top: 0; } .list-group-flush:last-child .list-group-item:last-child { + margin-bottom: 0; border-bottom: 0; } @@ -5896,45 +6325,104 @@ tbody.collapse.show { opacity: .5; } -.close:hover, -.close:focus { +.close:hover { color: #000; text-decoration: none; - opacity: .75; } .close:not(:disabled):not(.disabled) { cursor: pointer; } +.close:not(:disabled):not(.disabled):hover, +.close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + button.close { padding: 0; background-color: transparent; border: 0; -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 0.25rem; + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.toast-body { + padding: 0.75rem; } .modal-open { overflow: hidden; } +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + .modal { position: fixed; top: 0; - right: 0; - bottom: 0; left: 0; z-index: 1050; display: none; + width: 100%; + height: 100%; overflow: hidden; outline: 0; } -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - .modal-dialog { position: relative; width: auto; @@ -5947,13 +6435,20 @@ button.close { transition: -webkit-transform 0.3s ease-out; transition: transform 0.3s ease-out; transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; - -webkit-transform: translate(0, -25%); - transform: translate(0, -25%); + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} + +@media screen and (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + -webkit-transition: none; + transition: none; + } } .modal.show .modal-dialog { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); + -webkit-transform: none; + transform: none; } .modal-dialog-centered { @@ -5966,6 +6461,12 @@ button.close { min-height: calc(100% - (0.5rem * 2)); } +.modal-dialog-centered::before { + display: block; + height: calc(100vh - (0.5rem * 2)); + content: ""; +} + .modal-content { position: relative; display: -webkit-box; @@ -5987,10 +6488,10 @@ button.close { .modal-backdrop { position: fixed; top: 0; - right: 0; - bottom: 0; left: 0; z-index: 1040; + width: 100vw; + height: 100vh; background-color: #000; } @@ -6012,14 +6513,14 @@ button.close { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; - padding: 1rem; + padding: 1rem 1rem; border-bottom: 1px solid #e9ecef; border-top-left-radius: 0.3rem; border-top-right-radius: 0.3rem; } .modal-header .close { - padding: 1rem; + padding: 1rem 1rem; margin: -1rem -1rem -1rem auto; } @@ -6048,6 +6549,8 @@ button.close { justify-content: flex-end; padding: 1rem; border-top: 1px solid #e9ecef; + border-bottom-right-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; } .modal-footer > :not(:first-child) { @@ -6076,17 +6579,28 @@ button.close { min-height: calc(100% - (1.75rem * 2)); } + .modal-dialog-centered::before { + height: calc(100vh - (1.75rem * 2)); + } + .modal-sm { max-width: 300px; } } @media (min-width: 992px) { - .modal-lg { + .modal-lg, + .modal-xl { max-width: 800px; } } +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} + .tooltip { position: absolute; z-index: 1070; @@ -6414,80 +6928,90 @@ button.close { position: relative; } +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; +} + .carousel-inner { position: relative; width: 100%; overflow: hidden; } +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + .carousel-item { position: relative; display: none; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + float: left; width: 100%; - -webkit-transition: -webkit-transform 0.6s ease; - transition: -webkit-transform 0.6s ease; - transition: transform 0.6s ease; - transition: transform 0.6s ease, -webkit-transform 0.6s ease; + margin-right: -100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; } -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; +@media screen and (prefers-reduced-motion: reduce) { + .carousel-item { + -webkit-transition: none; + transition: none; + } } +.carousel-item.active, .carousel-item-next, .carousel-item-prev { - position: absolute; - top: 0; -} - -.carousel-item-next.carousel-item-left, -.carousel-item-prev.carousel-item-right { - -webkit-transform: translateX(0); - transform: translateX(0); -} - -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-next.carousel-item-left, - .carousel-item-prev.carousel-item-right { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } + display: block; } -.carousel-item-next, +.carousel-item-next:not(.carousel-item-left), .active.carousel-item-right { -webkit-transform: translateX(100%); transform: translateX(100%); } -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-next, - .active.carousel-item-right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -.carousel-item-prev, +.carousel-item-prev:not(.carousel-item-right), .active.carousel-item-left { -webkit-transform: translateX(-100%); transform: translateX(-100%); } -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-prev, - .active.carousel-item-left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); +.carousel-fade .carousel-item { + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + -webkit-transition: 0s 0.6s opacity; + transition: 0s 0.6s opacity; +} + +@media screen and (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + -webkit-transition: none; + transition: none; } } @@ -6496,6 +7020,7 @@ button.close { position: absolute; top: 0; bottom: 0; + z-index: 1; display: -webkit-box; display: -ms-flexbox; display: flex; @@ -6509,6 +7034,16 @@ button.close { color: #fff; text-align: center; opacity: 0.5; + -webkit-transition: opacity 0.15s ease; + transition: opacity 0.15s ease; +} + +@media screen and (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + -webkit-transition: none; + transition: none; + } } .carousel-control-prev:hover, @@ -6518,7 +7053,7 @@ button.close { color: #fff; text-decoration: none; outline: 0; - opacity: .9; + opacity: 0.9; } .carousel-control-prev { @@ -6539,17 +7074,17 @@ button.close { } .carousel-control-prev-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"); } .carousel-control-next-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); } .carousel-indicators { position: absolute; right: 0; - bottom: 10px; + bottom: 0; left: 0; z-index: 15; display: -webkit-box; @@ -6565,7 +7100,8 @@ button.close { } .carousel-indicators li { - position: relative; + -webkit-box-sizing: content-box; + box-sizing: content-box; -webkit-box-flex: 0; -ms-flex: 0 1 auto; flex: 0 1 auto; @@ -6574,31 +7110,25 @@ button.close { margin-right: 3px; margin-left: 3px; text-indent: -999px; - background-color: rgba(255, 255, 255, 0.5); -} - -.carousel-indicators li::before { - position: absolute; - top: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + -webkit-transition: opacity 0.6s ease; + transition: opacity 0.6s ease; } -.carousel-indicators li::after { - position: absolute; - bottom: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; +@media screen and (prefers-reduced-motion: reduce) { + .carousel-indicators li { + -webkit-transition: none; + transition: none; + } } .carousel-indicators .active { - background-color: #fff; + opacity: 1; } .carousel-caption { @@ -6613,6 +7143,77 @@ button.close { text-align: center; } +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + opacity: 1; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + opacity: 1; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + .align-baseline { vertical-align: baseline !important; } @@ -6837,6 +7438,10 @@ button.bg-dark:focus { border-radius: 50% !important; } +.rounded-pill { + border-radius: 50rem !important; +} + .rounded-0 { border-radius: 0 !important; } @@ -7132,8 +7737,8 @@ button.bg-dark:focus { padding-top: 56.25%; } -.embed-responsive-4by3::before { - padding-top: 75%; +.embed-responsive-3by4::before { + padding-top: 133.33333333%; } .embed-responsive-1by1::before { @@ -7183,6 +7788,34 @@ button.bg-dark:focus { flex-wrap: wrap-reverse !important; } +.flex-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + .justify-content-start { -webkit-box-pack: start !important; -ms-flex-pack: start !important; @@ -7346,6 +7979,34 @@ button.bg-dark:focus { flex-wrap: wrap-reverse !important; } + .flex-sm-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-sm-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-sm-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { -webkit-box-pack: start !important; -ms-flex-pack: start !important; @@ -7510,6 +8171,34 @@ button.bg-dark:focus { flex-wrap: wrap-reverse !important; } + .flex-md-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-md-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-md-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { -webkit-box-pack: start !important; -ms-flex-pack: start !important; @@ -7674,6 +8363,34 @@ button.bg-dark:focus { flex-wrap: wrap-reverse !important; } + .flex-lg-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-lg-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-lg-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { -webkit-box-pack: start !important; -ms-flex-pack: start !important; @@ -7838,6 +8555,34 @@ button.bg-dark:focus { flex-wrap: wrap-reverse !important; } + .flex-xl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-xl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-xl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { -webkit-box-pack: start !important; -ms-flex-pack: start !important; @@ -8026,6 +8771,14 @@ button.bg-dark:focus { } } +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + .position-static { position: static !important; } @@ -8080,8 +8833,6 @@ button.bg-dark:focus { overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; - -webkit-clip-path: inset(50%); - clip-path: inset(50%); border: 0; } @@ -8093,8 +8844,26 @@ button.bg-dark:focus { overflow: visible; clip: auto; white-space: normal; - -webkit-clip-path: none; - clip-path: none; +} + +.shadow-sm { + -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + -webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + -webkit-box-shadow: none !important; + box-shadow: none !important; } .w-25 { @@ -8113,6 +8882,10 @@ button.bg-dark:focus { width: 100% !important; } +.w-auto { + width: auto !important; +} + .h-25 { height: 25% !important; } @@ -8129,6 +8902,10 @@ button.bg-dark:focus { height: 100% !important; } +.h-auto { + height: auto !important; +} + .mw-100 { max-width: 100% !important; } @@ -8137,6 +8914,22 @@ button.bg-dark:focus { max-height: 100% !important; } +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + .m-0 { margin: 0 !important; } @@ -8372,57 +9165,177 @@ button.bg-dark:focus { padding-bottom: 1rem !important; } -.pl-3, -.px-3 { - padding-left: 1rem !important; +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; } -.p-4 { - padding: 1.5rem !important; +.m-n4 { + margin: -1.5rem !important; } -.pt-4, -.py-4 { - padding-top: 1.5rem !important; +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; } -.pr-4, -.px-4 { - padding-right: 1.5rem !important; +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; } -.pb-4, -.py-4 { - padding-bottom: 1.5rem !important; +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; } -.pl-4, -.px-4 { - padding-left: 1.5rem !important; +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; } -.p-5 { - padding: 3rem !important; +.m-n5 { + margin: -3rem !important; } -.pt-5, -.py-5 { - padding-top: 3rem !important; +.mt-n5, +.my-n5 { + margin-top: -3rem !important; } -.pr-5, -.px-5 { - padding-right: 3rem !important; +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; } -.pb-5, -.py-5 { - padding-bottom: 3rem !important; +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; } -.pl-5, -.px-5 { - padding-left: 3rem !important; +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; } .m-auto { @@ -8738,6 +9651,126 @@ button.bg-dark:focus { padding-left: 3rem !important; } + .m-sm-n1 { + margin: -0.25rem !important; + } + + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + + .m-sm-n2 { + margin: -0.5rem !important; + } + + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + + .m-sm-n3 { + margin: -1rem !important; + } + + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + + .m-sm-n4 { + margin: -1.5rem !important; + } + + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + + .m-sm-n5 { + margin: -3rem !important; + } + + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { margin: auto !important; } @@ -9052,6 +10085,126 @@ button.bg-dark:focus { padding-left: 3rem !important; } + .m-md-n1 { + margin: -0.25rem !important; + } + + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + + .m-md-n2 { + margin: -0.5rem !important; + } + + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + + .m-md-n3 { + margin: -1rem !important; + } + + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + + .m-md-n4 { + margin: -1.5rem !important; + } + + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + + .m-md-n5 { + margin: -3rem !important; + } + + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { margin: auto !important; } @@ -9366,6 +10519,126 @@ button.bg-dark:focus { padding-left: 3rem !important; } + .m-lg-n1 { + margin: -0.25rem !important; + } + + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + + .m-lg-n2 { + margin: -0.5rem !important; + } + + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + + .m-lg-n3 { + margin: -1rem !important; + } + + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + + .m-lg-n4 { + margin: -1.5rem !important; + } + + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + + .m-lg-n5 { + margin: -3rem !important; + } + + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { margin: auto !important; } @@ -9680,6 +10953,126 @@ button.bg-dark:focus { padding-left: 3rem !important; } + .m-xl-n1 { + margin: -0.25rem !important; + } + + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + + .m-xl-n2 { + margin: -0.5rem !important; + } + + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + + .m-xl-n3 { + margin: -1rem !important; + } + + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + + .m-xl-n4 { + margin: -1.5rem !important; + } + + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + + .m-xl-n5 { + margin: -3rem !important; + } + + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { margin: auto !important; } @@ -9705,10 +11098,18 @@ button.bg-dark:focus { } } +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + .text-justify { text-align: justify !important; } +.text-wrap { + white-space: normal !important; +} + .text-nowrap { white-space: nowrap !important; } @@ -9803,6 +11204,10 @@ button.bg-dark:focus { font-weight: 300 !important; } +.font-weight-lighter { + font-weight: lighter !important; +} + .font-weight-normal { font-weight: 400 !important; } @@ -9811,6 +11216,10 @@ button.bg-dark:focus { font-weight: 700 !important; } +.font-weight-bolder { + font-weight: bolder !important; +} + .font-italic { font-style: italic !important; } @@ -9825,7 +11234,7 @@ button.bg-dark:focus { a.text-primary:hover, a.text-primary:focus { - color: #0062cc !important; + color: #0056b3 !important; } .text-secondary { @@ -9834,7 +11243,7 @@ a.text-primary:focus { a.text-secondary:hover, a.text-secondary:focus { - color: #545b62 !important; + color: #494f54 !important; } .text-success { @@ -9843,7 +11252,7 @@ a.text-secondary:focus { a.text-success:hover, a.text-success:focus { - color: #1e7e34 !important; + color: #19692c !important; } .text-info { @@ -9852,7 +11261,7 @@ a.text-success:focus { a.text-info:hover, a.text-info:focus { - color: #117a8b !important; + color: #0f6674 !important; } .text-warning { @@ -9861,7 +11270,7 @@ a.text-info:focus { a.text-warning:hover, a.text-warning:focus { - color: #d39e00 !important; + color: #ba8b00 !important; } .text-danger { @@ -9870,7 +11279,7 @@ a.text-warning:focus { a.text-danger:hover, a.text-danger:focus { - color: #bd2130 !important; + color: #a71d2a !important; } .text-light { @@ -9879,7 +11288,7 @@ a.text-danger:focus { a.text-light:hover, a.text-light:focus { - color: #dae0e5 !important; + color: #cbd3da !important; } .text-dark { @@ -9888,13 +11297,25 @@ a.text-light:focus { a.text-dark:hover, a.text-dark:focus { - color: #1d2124 !important; + color: #121416 !important; +} + +.text-body { + color: #212529 !important; } .text-muted { color: #6c757d !important; } +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + .text-hide { font: 0/0 a; color: transparent; @@ -9903,6 +11324,14 @@ a.text-dark:focus { border: 0; } +.text-decoration-none { + text-decoration: none !important; +} + +.text-reset { + color: inherit !important; +} + .visible { visibility: visible !important; } @@ -9934,7 +11363,7 @@ a.text-dark:focus { pre, blockquote { - border: 1px solid #999; + border: 1px solid #adb5bd; page-break-inside: avoid; } @@ -9990,7 +11419,23 @@ a.text-dark:focus { .table-bordered th, .table-bordered td { - border: 1px solid #ddd !important; + border: 1px solid #dee2e6 !important; + } + + .table-dark { + color: inherit; + } + + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; } } diff --git a/resources/views/admin/addXLSX.blade.php b/resources/views/admin/addXLSX.blade.php index 7bcc829d5febf631d353b9d16766448616f56638..b1a1e3db8a12fcabc7cf77831d4cd1bf568cb60d 100644 --- a/resources/views/admin/addXLSX.blade.php +++ b/resources/views/admin/addXLSX.blade.php @@ -2,7 +2,7 @@ @section('content') @include('inc.addmembertab') - <div class="addCSVForm"> + <div class="addXLSXForm"> {!! Form::open(['action' => ['AddMemberController@importXLSX'], 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!} <div class="form-group"> {{Form::label('list_members','Members')}} diff --git a/resources/views/inc/addmembertab.blade.php b/resources/views/inc/addmembertab.blade.php index 45ca8b78cbdf11fafd8b1ae580bc31e37410fa8c..e2975bd62bb814e7f3c446bd02bd83f75717d30a 100644 --- a/resources/views/inc/addmembertab.blade.php +++ b/resources/views/inc/addmembertab.blade.php @@ -5,7 +5,7 @@ <a class="nav-item nav-link aCSVAdd" href="/admin/addCSV"> <i class="addMenu">Upload CSV</i> </a> - <a class="nav-item nav-link XLSXAdd" href="/admin/addCSV"> + <a class="nav-item nav-link XLSXAdd" href="/admin/addXLSX"> <i class="addMenu">Upload XLSX</i> </a> diff --git a/routes/web.php b/routes/web.php index a259a63983fc1f9b68002f769a96fda106d4f304..5f2b938cb4e130122f277fbfef2c35b61baaf7c5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,6 +22,7 @@ Route::get('/about', function () { }); Route::post('/importcsv','AddMemberController@importCSV'); +Route::post('/importxlsx','AddMemberController@importXLSX'); Route::post('/importmember','AddMemberController@importMember'); //Route::resource('profile', 'MembersController'); @@ -83,6 +84,7 @@ Route::group( [ 'prefix' => 'admin' ], function() Route::resource('members', 'MembersController'); Route::post('/importcsv','AddMemberController@importCSV'); + Route::post('/importxlsx','AddMemberController@importXLSX'); Route::post('/importmember','AddMemberController@importMember'); Route::post('/answers/rate/{answer}/{user}/{each}', 'AnswersController@giveRating'); @@ -100,5 +102,9 @@ Route::group( [ 'prefix' => 'admin' ], function() return view('admin.addCSV'); })->middleware('admin'); + Route::get('/addXLSX', function () { + return view('admin.addXLSX'); + })->middleware('admin'); + Route::post('/answer/store_ajax', 'AnswersController@storeAjax'); });