/* ============================================================================================== --------------------------| |-------------------------- --------------------------| CSS / Key4events 2020 |-------------------------- --------------------------| Thème Bootstrap |-------------------------- --------------------------| |-------------------------- ============================================================================================== */ @import '../_lib-scss/common'; @import '../_lib-scss/bootstrap/functions'; @import '../_lib-scss/bootstrap/mixins'; @import '../_lib-scss/bootstrap/variables'; @import '../_lib-scss/bootstrap.mixins.key4'; @import '../_lib-scss/bootstrap.colors.key4.scss'; /* -------------------- Breakpoints -------------------- */ $grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1440px ); $container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1380px ); /* -------------------- Spacers -------------------- */ $spacer: 1rem; $spacers: (); $spacers: map-merge( ( 0: 0, 1: ($spacer * .25), 2: ($spacer * .5), 3: $spacer, 4: ($spacer * 1.5), 5: ($spacer * 3) ), $spacers ); /* -------------------- Teintes -------------------- */ @each $color, $value in $colors { .text-#{$color} { color: $value !important; } .bg-#{$color} { background-color: $value !important; } a.bg-#{$color} { &:hover { background-color: darken($value, 5%) !important; } } } /* -------------------- Ombres -------------------- */ $box-shadow-sm: 0 4px 11px rgba($black, .08); $box-shadow: 0 8px 22px rgba($black, .08); $box-shadow-lg: 0 16px 44px rgba($black, .08); /* -------------------- Container -------------------- */ .container { position: relative; z-index: 1; } /* -------------------- Card -------------------- */ .card { border: 0 !important; box-shadow: 0 16px 44px rgba(0, 0, 0, .08); } /* -------------------- Réglages globaux -------------------- */ $enable-rounded: false; $enable-shadows: true; $link-color: var(--primary); $link-decoration: underline; $link-hover-decoration: none; /* -------------------- Titres -------------------- */ $headings-font-family: $font-arquitecta-heavy; $h1-font-size: $font-size-base * 3.1; $h2-font-size: $font-size-base * 2.7; $h3-font-size: $font-size-base * 1.9; $h4-font-size: $font-size-base * 1.4; $h5-font-size: $font-size-base * 1.3; $h6-font-size: $font-size-base * 1.1; $headings-line-height: 1.05; h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--primary); text-transform: uppercase; letter-spacing: .02em; } h5, h6, .h5, .h6 { letter-spacing: 0; } h6, .h6 { font-family: $font-arquitecta-regular !important; color: $gray-900; } subtitle { font-family: $font-arquitecta-regular; color: $gray-600; font-size: 1.6rem; line-height: 1.1em; body.erp & { font-size: 1.2rem; } } /* -------------------- Inputs -------------------- */ $input-color: $gray-900; $input-placeholder-color: darken($gray-400, 5%); $input-border-width: 0; $input-font-size: .955rem; $input-font-size-sm: .8em; $input-font-size-lg: 1.15em; $form-feedback-font-size: 85%; $form-feedback-margin-top: .8rem; $input-disabled-bg: $gray-200 !important; $input-padding-x: 1.15rem; $input-padding-y: .5rem; $input-padding-x-sm: 1.05rem; $input-padding-y-sm: .4rem; $input-padding-x-lg: 1.7rem; $input-padding-y-lg: .28rem; $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)); $input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)); $input-height-lg: add($input-line-height-lg + 1em, add($input-padding-y-lg * 2, $input-height-border, false)); $input-shadow: 0 16px 44px rgba(0, 0, 0, .06); $input-focus-shadow: 0 16px 44px rgba(0, 0, 0, .13); $input-box-shadow: 0 0 0 3px rgba($primary, 0), 0 8px 22px rgba(0, 0, 0, .1); $input-focus-box-shadow: 0 0 0 3px rgba($primary, .3), 0 4px 18px rgba($primary, .14); .input-group { .input-group-text { padding: 0 .7em !important; } &.input-group-icon { .icon { display: flex; z-index: 4; width: 0; min-width: 0; height: 0; min-height: 0; opacity: .25; transition: $anim-300ms; > svg { position: relative; top: .2em; left: .25em; width: 30px; height: 30px; overflow: visible; use { stroke-width: 2px; } } &::before { position: relative; margin-top: calc(1.1em - .55rem); @include full-size(); text-align: center; font-size: 1.2rem; } } &.input-group-sm .icon { > svg { top: .15em; left: .15em; width: 26px; height: 26px; } &::before { font-size: 1rem; } } &.input-group-lg .icon { > svg { top: .5em; left: .4em; width: 36px; height: 36px; } &::before { font-size: 1.4rem; } } &.icon-left { .icon { &::before { left: .65em; } } .form-control { padding-left: calc(#{$input-padding-x} + 17px); } } &.icon-right { .icon { > svg { left: -2.3em; } &::before { left: -1.6em; } } &.input-group-sm .icon { > svg { left: -2em; } } &.input-group-lg .icon { > svg { left: -2.8em; } } .form-control { padding-right: calc(#{$input-padding-x} + 17px); } .was-validated .form-control:valid, .form-control.is-valid, .was-validated .form-control:invalid, .form-control.is-invalid { background-position-x: calc(100% - 2.15em); padding-right: 3.5em; } } .form-control:focus + .icon, .form-control:focus + div + .icon { opacity: .6; } } &.input-group-sm { &.icon-left .form-control { padding-left: calc(#{$input-padding-x-sm} + 13px); } &.icon-right .form-control { padding-right: calc(#{$input-padding-x-sm} + 13px); } } &.input-group-lg { &.icon-left .form-control { padding-left: calc(#{$input-padding-x-lg} + 22px); } &.icon-right .form-control { padding-right: calc(#{$input-padding-x-lg} + 22px); } } } .form-group { margin: 1px; transition: $anim-300ms; &:focus { z-index: 1; } } .form-control, .custom-select { border-radius: 0.001rem !important; transition: $anim-600ms !important; &:disabled, &[readonly] { box-shadow: none !important; } } .was-validated .form-control:valid, .form-control.is-valid { box-shadow: 0 0 0 .2rem rgba($success, .3), #{$input-shadow} !important; } .was-validated .form-control:valid:focus, .form-control.is-valid:focus { box-shadow: 0 0 0 .2rem rgba($success, .6), #{$input-box-shadow} !important; } .was-validated .form-control:invalid, .form-control.is-invalid { box-shadow: 0 0 0 .2rem rgba($danger, .3), #{$input-shadow} !important; } .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { box-shadow: 0 0 0 .2rem rgba($danger, .6), #{$input-box-shadow} !important; } form.bg-white { .form-control { background-color: #f7f7f7; &:not(:focus) { box-shadow: none; } } } /* -------------------- Selects -------------------- */ $custom-select-font-size: $input-font-size; $custom-select-font-size-sm: $input-font-size-sm; $custom-select-font-size-lg: $input-font-size-lg; $custom-select-padding-x: $input-padding-x; $custom-select-padding-y: $input-padding-y; $custom-select-padding-x-sm: $input-padding-x-sm; $custom-select-padding-y-sm: $input-padding-y-sm; $custom-select-padding-x-lg: $input-padding-x-lg; $custom-select-padding-y-lg: $input-padding-y-lg; $custom-select-border-width: $input-border-width; $custom-select-border-width: $input-border-width; $custom-select-height: $input-height; $custom-select-height-sm: $input-height-sm; $custom-select-height-lg: $input-height-lg; $custom-select-bg-size: 16px 9px; $custom-select-indicator-color: lighten($gray-500, 5%); $custom-select-indicator: url("data:image/svg+xml,"); $custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size; $custom-select-box-shadow: $input-box-shadow; $custom-select-focus-box-shadow: $input-focus-box-shadow; select { &:invalid, option[value=""] { color: darken($gray-400, 5%); } option:not([value=""]) { color: $custom-select-color; } } .custom-select { padding-right: 2.8em !important; -webkit-appearance: none; -moz-appearance: none; &:not(.custom-select-lg) { background-size: .85rem; } &:focus { z-index: 1; } } .was-validated .custom-select:invalid, .was-validated .custom-select:valid, .custom-select.is-invalid, .custom-select.is-valid { background-position: right .85rem center, center right 2.25rem !important; &:not(.custom-select-lg) { background-size: .85rem, 1rem !important; } } .was-validated select.form-control:invalid, .was-validated select.form-control:valid, select.form-control.is-invalid, select.form-control.is-valid { background-position-x: calc(100% - 18px); } input { &[type="date"], &[type="time"] { -webkit-appearance: none; } } /* -------------------- Checkboxes, radios & switches -------------------- */ $custom-checkbox-indicator-icon-checked: url("data:image/svg+xml,"); $custom-radio-indicator-icon-checked: url("data:image/svg+xml,"); $custom-switch-width: $custom-control-indicator-size * 2; .custom-checkbox, .custom-radio { padding-left: 1.9em !important; padding-bottom: .75em; &.custom-control-sm { padding-left: 1.75em !important; } &.custom-control-lg { padding-left: 2.2em !important; } .custom-control-label { &::before, &::after { width: 19px !important; height: 19px !important; top: .1rem !important; left: -2em !important; } &::before { border: 2px solid #c6c6c6 !important; box-shadow: 0 3px 14px rgba(#000, .08) !important; } &::after { background-size: 100% !important; } } &.custom-control-sm .custom-control-label { &::before, &::after { top: 0 !important; left: -2.2em !important; width: 16px !important; height: 16px !important; } } &.custom-control-lg .custom-control-label { &::before, &::after { top: .15em !important; left: -1.9em !important; width: 22px !important; height: 22px !important; } } } .custom-control-label { font-size: .955em !important; .custom-control-sm & { font-size: .8em !important; } .custom-control-lg & { font-size: 1.15em !important; } } .custom-control-input { &:checked ~ .custom-control-label::before { border-color: #5a5a5a !important; background-color: #5a5a5a !important; } &:focus { ~.custom-control-label::before { box-shadow: 0 0 0 0.2rem rgba($primary, .25), 0 3px 14px rgba(#000, .08) !important; } } } .custom-switch { padding-left: 2.8rem !important; .custom-control-input { &:focus { ~ .custom-control-label::before { border-color: transparent !important; } } &:checked { ~ .custom-control-label::after { transform: translateX(.95rem) !important; } } &[disabled], &:disabled { ~ .custom-control-label::before { border: 0 !important; } } } .custom-control-label { &::before { top: .2rem !important; width: 2.2rem !important; height: 1.3rem !important; left: -2.8rem !important; border: 2px solid #c6c6c6; border-radius: .7rem !important; background-color: #c6c6c6; box-shadow: none; } &::after { top: calc(.2rem + 3px) !important; left: calc(-2.8rem + 3px) !important; width: calc(1rem - 2px) !important; height: calc(1rem - 2px) !important; background-color: $white !important; } } &.custom-control-sm { padding-left: 2.5rem !important; .custom-control-input { &:checked { ~ .custom-control-label::after { transform: translateX(.8rem) !important; } } } .custom-control-label { &::before { top: .1rem !important; left: -2.5rem !important; width: 1.9rem !important; height: 1.1rem !important; border-radius: .6rem !important; } &::after { top: calc(.1rem + 3px) !important; left: calc(-2.5rem + 3px) !important; width: calc(1rem - 4px) !important; height: calc(1rem - 4px) !important; } } } &.custom-control-lg { padding-left: 3.4rem !important; .custom-control-input { &:checked { ~ .custom-control-label::after { transform: translateX(1.2rem) !important; } } } .custom-control-label { &::before { left: -3.4rem !important; width: 2.7rem !important; height: 1.5rem !important; border-radius: .8rem !important; } &::after { left: calc(-3.4rem + 3px) !important; width: calc(1rem + 1px) !important; height: calc(1rem + 1px) !important; } } } } .bootstrap-select { .dropdown-item { &:active, &.active, &.selected { background-color: $primary !important; outline: none; } } } /* -------------------- Textareas -------------------- */ textarea.form-control { padding-top: #{$custom-select-padding-x}; padding-bottom: #{$custom-select-padding-x}; &.form-control-sm { padding-top: #{$custom-select-padding-x-sm}; padding-bottom: #{$custom-select-padding-x-sm}; } &.form-control-lg { padding-top: #{$custom-select-padding-x-lg}; padding-bottom: #{$custom-select-padding-x-lg}; } } /* -------------------- Formulaire en lecture seule -------------------- */ form.readonly { .form-group { margin-bottom: 0; .form-control, .custom-select { padding: 0; background: none !important; background-color: transparent !important; box-shadow: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; } } } /* -------------------- Boutons -------------------- */ $btn-padding-x: 2rem; $btn-padding-y: .8rem; $btn-padding-x-sm: 1.2rem; $btn-padding-y-sm: .4rem; $btn-padding-x-lg: 2.8rem; $btn-padding-y-lg: 1.2rem; $btn-border-width: $input-border-width; $btn-font-family: $font-arquitecta-bold; $btn-font-size: 1.2em; $btn-font-size-sm: 1.05em; $btn-font-size-lg: 1.4em; .btn { text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 6px 20px rgba(0, 0, 0, .12) !important; &:hover { box-shadow: 0 3px 12px rgba(0, 0, 0, .24) !important; } &.bg-gradient { background-blend-mode: overlay; transition: $anim-300ms !important; } } /* -------------------- Badges -------------------- */ $badge-font-size: .9rem; $badge-font-weight: $font-weight-normal; $badge-padding-y: .39em; $badge-padding-x: .54em; $badge-pill-padding-x: .54em; .badge { font-family: $font-arquitecta-heavy; text-transform: uppercase; border-radius: .3rem; &.badge-sm { padding-top: .43em; padding-bottom: .37em; font-size: .75rem; } &.badge-lg { font-size: 1.1rem; } &.badge-pill { border-radius: 10rem; } } /* -------------------- Tables -------------------- */ $table-bg: #fff; $table-hover-bg: rgba($gray-800, .1); $table-dark-hover-bg: rgba($white, .3); $table-dark-bg: $dark; $table-accent-bg: rgba($black, .03); $table-dark-accent-bg: rgba($white, .08); $table-border-color: lighten($border-color, 2%); $table-dark-border-color: lighten($table-dark-bg, 10%); .table { th { font-weight: normal; } thead { border: 2px solid $table-dark-bg; th, td { padding-top: .6 * $table-cell-padding !important; padding-bottom: .6 * $table-cell-padding !important; font-family: $font-arquitecta-regular; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .02em; line-height: 1.2em; } } thead:not(.thead-dark), tbody { border: 2px solid $table-bg; } &.table-dark { thead, tbody { border: 2px solid $table-dark-bg; } } &.table-hover { tbody { tr { transition: $anim-150ms; &:hover { cursor: pointer; } } } } &.table-striped { thead, tbody { th, td { border-top-color: transparent; border-bottom-color: transparent; } } } &.table-sm { td, th { font-size: .9em; } } &.table-lg { td, th { font-size: 1.1em; } } } /* -------------------- Tooltips -------------------- */ $tooltip-font-size: .95rem; $tooltip-opacity: .85; $tooltip-bg: $gray-900; $tooltip-arrow-color: $gray-900; $tooltip-padding-y: .35rem; $tooltip-padding-x: .75rem; .tooltip { z-index: 99999 !important; .tooltip-inner { border-radius: .3rem; } &[x-placement="top"] { margin-bottom: 6px; } &[x-placement="bottom"] { margin-top: 6px; } &[x-placement="left"] { margin-right: 6px; } &[x-placement="right"] { margin-left: 6px; } } /* -------------------- Popovers -------------------- */ $popover-border-color: rgba($black, .08); $popover-box-shadow: 0 .0 1rem rgba($black, .1); $zindex-popover: 2060; .popover { max-width: calc(100vw - 100px) !important; max-height: calc(100vh - 100px); .popover-header { color: $gray-700; font-size: 1em; font-weight: bold; } .popover-body { position: relative; min-width: 50px; max-height: calc(100vh - 135px); min-height: 50px; overflow-y: auto; } html.isiPhone & { max-height: calc(100vh - 140px); margin-bottom: 40px; .popover-body { max-height: calc(100vh - 175px); } } } /* -------------------- Navs -------------------- */ $nav-link-padding-y: .8rem; $nav-link-disabled-color: $gray-500 !important; $nav-tabs-border-width: 0; $nav-tabs-link-active-bg: transparent; /* -------------------- Breadcrumbs -------------------- */ $breadcrumb-font-size: 1rem; $breadcrumb-padding-y: 0; $breadcrumb-padding-x: 0; $breadcrumb-item-padding: .6rem; $breadcrumb-margin-bottom: 0; $breadcrumb-bg: null; $breadcrumb-divider-color: #d2d2d2; $breadcrumb-divider: quote('\f061'); $breadcrumb-active-color: #bbb; @media (max-width: 575px) { .breadcrumb { li:last-child { display: none; } } } /* -------------------- Progress bars -------------------- */ $progress-height: 6px; $progress-box-shadow: none; .progress { border-radius: 3px; } /* -------------------- Modales -------------------- */ $zindex-modal-backdrop: 3000; $zindex-modal: 3010; $modal-dialog-margin: 1.3rem; $modal-content-border-width: 0; $modal-header-border-width: 0; $modal-footer-border-width: 0; $modal-backdrop-bg: #4d525f; $modal-backdrop-opacity: .7; .modal-content { box-shadow: 0 16px 44px rgba($black, .25) !important; .modal-header { padding: 1.3rem 1.3rem 1rem 1.3rem !important; .close { margin: -1.3rem -1.3rem -1rem auto !important; } } .modal-body { padding: .5rem 1.5rem !important; } .modal-footer { padding: .5rem 1.3rem 1.3rem 1.3rem !important; } } /* -------------------- Pagination -------------------- */ $pagination-color: #fff !important; $pagination-bg: rgba($primary, .5); $pagination-hover-bg: rgba($primary, .75); $pagination-active-color: #fff !important; $pagination-disabled-color: #fff !important; $pagination-active-bg: var(--primary); $pagination-disabled-bg: var(--primary); $pagination-padding-x: .9rem; $pagination-padding-x-sm: .7rem; $pagination-padding-x-lg: 1.1em; .pagination { .page-item { margin-left: 3px; margin-right: 3px; .page-link { min-width: 32px; color: #fff; font-family: $font-arquitecta-bold; font-size: 1.1rem; border-radius: 30px; border: 0; transition: $anim-300ms; } &.prev, &.next { a { color: $primary !important; background-color: transparent; &:focus { box-shadow: none; } } &.disabled { a { color: $gray-500 !important; } } } } &.pagination-sm { .page-link { min-width: 26px; font-size: .925rem; } } &.pagination-lg { .page-link { min-width: 47px; font-size: 1.25rem; } } } @import '../_lib-scss/bootstrap/root'; @import '../_lib-scss/bootstrap/reboot'; @import '../_lib-scss/bootstrap/type'; @import '../_lib-scss/bootstrap/images'; @import '../_lib-scss/bootstrap/code'; @import '../_lib-scss/bootstrap/grid'; @import '../_lib-scss/bootstrap/tables'; @import '../_lib-scss/bootstrap/forms'; @import '../_lib-scss/bootstrap/buttons'; @import '../_lib-scss/bootstrap/transitions'; @import '../_lib-scss/bootstrap/dropdown'; @import '../_lib-scss/bootstrap/button-group'; @import '../_lib-scss/bootstrap/input-group'; @import '../_lib-scss/bootstrap/custom-forms'; @import '../_lib-scss/bootstrap/nav'; /* @import '../_lib-scss/bootstrap/navbar'; */ @import '../_lib-scss/bootstrap/card'; @import '../_lib-scss/bootstrap/breadcrumb'; @import '../_lib-scss/bootstrap/pagination'; @import '../_lib-scss/bootstrap/badge'; /* @import '../_lib-scss/bootstrap/jumbotron'; */ @import '../_lib-scss/bootstrap/alert'; @import '../_lib-scss/bootstrap/progress'; @import '../_lib-scss/bootstrap/media'; @import '../_lib-scss/bootstrap/list-group'; @import '../_lib-scss/bootstrap/close'; @import '../_lib-scss/bootstrap/toasts'; @import '../_lib-scss/bootstrap/modal'; @import '../_lib-scss/bootstrap/tooltip'; @import '../_lib-scss/bootstrap/popover'; /* @import '../_lib-scss/bootstrap/carousel'; */ @import '../_lib-scss/bootstrap/spinners'; @import '../_lib-scss/bootstrap/utilities'; @import '../_lib-scss/bootstrap/print';