├── assets ├── img │ ├── dog-1.jpg │ ├── dog-2.jpg │ ├── dog-3.jpg │ ├── dog-4.jpg │ ├── dog-5.jpg │ ├── dog-6.jpg │ ├── dog-7.jpg │ ├── dog-8.jpg │ ├── dog-9.jpg │ ├── lorde.png │ ├── favicon.ico │ ├── landing.png │ ├── profile.png │ ├── purple.jpg │ ├── register.png │ ├── bb_logo_white.png │ ├── gifs │ │ ├── thinking.gif │ │ └── hearteyes.gif │ ├── presentation.jpg │ ├── landing_devices.png │ ├── logo_black.svg │ ├── logo_white.svg │ └── logo.svg ├── scss │ ├── custom │ │ ├── mixins │ │ │ ├── _typography.scss │ │ │ ├── _animations.scss │ │ │ ├── _misc.scss │ │ │ ├── _navigation.scss │ │ │ ├── _base.scss │ │ │ └── _forms.scss │ │ ├── _mixins.scss │ │ ├── _progress-bars.scss │ │ ├── _alerts.scss │ │ ├── _tables.scss │ │ ├── _modals.scss │ │ ├── _misc.scss │ │ ├── _background.scss │ │ ├── _footers.scss │ │ ├── _badges.scss │ │ ├── _cards.scss │ │ ├── _dropdown.scss │ │ ├── _navbars.scss │ │ ├── _pagination.scss │ │ ├── _tooltips.scss │ │ ├── _typography.scss │ │ ├── _popovers.scss │ │ ├── _inputs.scss │ │ ├── _buttons.scss │ │ ├── _navs.scss │ │ ├── _variables.scss │ │ ├── _checkbox-radio-toggle.scss │ │ └── _sliders.scss │ ├── lazy.scss │ └── demo.scss ├── fonts │ ├── linea │ │ ├── linea-basic-10.eot │ │ ├── linea-basic-10.ttf │ │ └── linea-basic-10.woff │ └── outline │ │ ├── untitled-font-5.eot │ │ ├── untitled-font-5.ttf │ │ └── untitled-font-5.woff ├── js │ ├── demo.js │ └── lazy.js ├── vendor │ ├── prism │ │ └── prism.css │ └── nouislider │ │ └── css │ │ ├── nouislider.min.css │ │ └── nouislider.css └── css │ └── demo.css ├── starter_template.html ├── readme.md ├── register.html ├── documentation ├── support.html ├── grid_layout.html ├── credits.html ├── license.html ├── sliders.html ├── contents.html ├── font_awesome.html ├── tooltips_popovers.html ├── badges.html ├── modals.html ├── alerts.html ├── getting_started.html └── progress_bars.html └── profile.html /assets/img/dog-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-1.jpg -------------------------------------------------------------------------------- /assets/img/dog-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-2.jpg -------------------------------------------------------------------------------- /assets/img/dog-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-3.jpg -------------------------------------------------------------------------------- /assets/img/dog-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-4.jpg -------------------------------------------------------------------------------- /assets/img/dog-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-5.jpg -------------------------------------------------------------------------------- /assets/img/dog-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-6.jpg -------------------------------------------------------------------------------- /assets/img/dog-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-7.jpg -------------------------------------------------------------------------------- /assets/img/dog-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-8.jpg -------------------------------------------------------------------------------- /assets/img/dog-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/dog-9.jpg -------------------------------------------------------------------------------- /assets/img/lorde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/lorde.png -------------------------------------------------------------------------------- /assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/favicon.ico -------------------------------------------------------------------------------- /assets/img/landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/landing.png -------------------------------------------------------------------------------- /assets/img/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/profile.png -------------------------------------------------------------------------------- /assets/img/purple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/purple.jpg -------------------------------------------------------------------------------- /assets/img/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/register.png -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_typography.scss: -------------------------------------------------------------------------------- 1 | @mixin text-color($color) { 2 | color: $color !important; 3 | } -------------------------------------------------------------------------------- /assets/img/bb_logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/bb_logo_white.png -------------------------------------------------------------------------------- /assets/img/gifs/thinking.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/gifs/thinking.gif -------------------------------------------------------------------------------- /assets/img/presentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/presentation.jpg -------------------------------------------------------------------------------- /assets/img/gifs/hearteyes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/gifs/hearteyes.gif -------------------------------------------------------------------------------- /assets/img/landing_devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/img/landing_devices.png -------------------------------------------------------------------------------- /assets/fonts/linea/linea-basic-10.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/linea/linea-basic-10.eot -------------------------------------------------------------------------------- /assets/fonts/linea/linea-basic-10.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/linea/linea-basic-10.ttf -------------------------------------------------------------------------------- /assets/fonts/linea/linea-basic-10.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/linea/linea-basic-10.woff -------------------------------------------------------------------------------- /assets/fonts/outline/untitled-font-5.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/outline/untitled-font-5.eot -------------------------------------------------------------------------------- /assets/fonts/outline/untitled-font-5.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/outline/untitled-font-5.ttf -------------------------------------------------------------------------------- /assets/fonts/outline/untitled-font-5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bootstrapbay/lazy-kit/HEAD/assets/fonts/outline/untitled-font-5.woff -------------------------------------------------------------------------------- /assets/scss/custom/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/animations.scss"; 2 | @import "mixins/base.scss"; 3 | @import "mixins/typography.scss"; 4 | @import "mixins/forms.scss"; 5 | @import "mixins/navigation.scss"; 6 | @import "mixins/misc.scss"; 7 | 8 | -------------------------------------------------------------------------------- /assets/scss/custom/_progress-bars.scss: -------------------------------------------------------------------------------- 1 | .progress { 2 | height: .375rem; 3 | margin-bottom: 1rem; 4 | .progress-bar { 5 | background-color: $bg-primary; 6 | } 7 | &.progress-sm { 8 | height: .2rem; 9 | } 10 | &.progress-lg { 11 | height: .5rem; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_animations.scss: -------------------------------------------------------------------------------- 1 | @keyframes rotate { 2 | from { 3 | transform: rotate(0deg) 4 | translate(-10px) 5 | rotate(0deg); 6 | } 7 | to { 8 | transform: rotate(360deg) 9 | translate(-10px) 10 | rotate(-360deg); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /assets/scss/custom/_alerts.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | @each $color, $value in $bg-colors { 3 | &.alert-#{$color} { 4 | background-color: $value; 5 | color: $white; 6 | border: none; 7 | } 8 | } 9 | a { 10 | color: $white !important; 11 | border-bottom: 1px solid $white !important; 12 | &:hover, 13 | &:focus, 14 | &:active { 15 | border-bottom: 2px solid $white !important; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /assets/scss/custom/_tables.scss: -------------------------------------------------------------------------------- 1 | @each $color,$value in $bg-colors { 2 | .table-#{$color} { 3 | @include table-color($value); 4 | } 5 | } 6 | 7 | .table-hover { 8 | @each $color,$value in $bg-colors { 9 | .table-#{$color} { 10 | @include table-hover($value); 11 | } 12 | } 13 | } 14 | 15 | .table-dark, 16 | .table-secondary { 17 | td, 18 | th { 19 | color: $white; 20 | } 21 | } -------------------------------------------------------------------------------- /assets/scss/custom/_modals.scss: -------------------------------------------------------------------------------- 1 | .modal { 2 | .modal-dialog { 3 | .modal-content { 4 | border: none; 5 | border-radius: 0rem; 6 | padding: 1rem; 7 | 8 | .modal-header { 9 | border-bottom: none; 10 | } 11 | .modal-footer { 12 | border-top: none; 13 | } 14 | } 15 | } 16 | } 17 | 18 | .modal-backdrop { 19 | background-color: darken($primary, 25%); 20 | &.show { 21 | opacity: 0.8; 22 | } 23 | } -------------------------------------------------------------------------------- /assets/scss/custom/_misc.scss: -------------------------------------------------------------------------------- 1 | .circle { 2 | width: .6rem; 3 | height: .6rem; 4 | border-radius: 50%; 5 | background-color: $primary; 6 | } 7 | .bubble { 8 | @include bubble(1.2rem); 9 | } 10 | .big-bubble { 11 | @include bubble(5rem); 12 | } 13 | 14 | .rotate-circle { 15 | position: absolute; 16 | animation: rotate 5s linear infinite; 17 | } 18 | 19 | .rotate-bubble { 20 | position: absolute; 21 | animation: rotate 10s linear infinite; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /assets/scss/custom/_background.scss: -------------------------------------------------------------------------------- 1 | @each $color,$value in $bg-colors { 2 | .bg-#{$color} { 3 | @include background-color($value); 4 | } 5 | } 6 | 7 | .filter { 8 | display: block; 9 | content: ""; 10 | position: absolute; 11 | top: 0; 12 | bottom: 0; 13 | left: 0; 14 | right: 0; 15 | background-color: $dark; 16 | opacity: .45; 17 | 18 | 19 | @each $color,$value in $theme-colors { 20 | &.filter-#{$color} { 21 | @include filter-color($value); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /assets/scss/custom/_footers.scss: -------------------------------------------------------------------------------- 1 | .footer-1 { 2 | padding: 2rem 0rem 1rem; 3 | .footer-menu { 4 | margin-bottom: 0rem; 5 | li { 6 | padding: 0rem .8rem; 7 | a { 8 | color: $primary !important; 9 | border-bottom: 0 !important; 10 | &:hover, 11 | &:focus, 12 | &:active { 13 | color: darken($primary, 10%) !important; 14 | } 15 | } 16 | } 17 | } 18 | .copyright { 19 | padding-top: .5rem; 20 | p { 21 | padding: .5rem; 22 | i { 23 | margin: 1rem .1rem; 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /assets/scss/custom/_badges.scss: -------------------------------------------------------------------------------- 1 | .badge { 2 | border-radius: .5rem; 3 | padding: .2rem .4rem; 4 | @each $color, $value in $theme-colors { 5 | &.badge-#{$color} { 6 | background-color: transparent; 7 | color: $value; 8 | border: 1px solid rgba($value, 0.4); 9 | } 10 | } 11 | 12 | 13 | &.badge-pill { 14 | @each $color, $value in $theme-colors { 15 | &.badge-#{$color} { 16 | background-color: $value; 17 | color: $white; 18 | } 19 | } 20 | &.badge-light { 21 | color: $dark; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /assets/scss/custom/_cards.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 0; 3 | border: none; 4 | box-shadow: 0 0 2rem rgba(0,0,0,.1); 5 | transition: transform 800ms cubic-bezier(.165,.84,.44,1); 6 | .card-header, 7 | .card-footer { 8 | background-color: transparent; 9 | border: none; 10 | padding: 1rem; 11 | border-radius: 0rem; 12 | } 13 | 14 | .card-body { 15 | padding: 1rem; 16 | } 17 | 18 | .card-img { 19 | border-radius: 0; 20 | } 21 | 22 | &:not(.no-hover){ 23 | &:hover { 24 | box-shadow: 0 0 2rem rgba(0,0,0,.19); 25 | transform: scale(1.03); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_misc.scss: -------------------------------------------------------------------------------- 1 | @mixin bubble($width) { 2 | &, 3 | &.bubble-bottom-right, 4 | &.bubble-bottom-left, 5 | &.bubble-top-right, 6 | &.bubble-top-left { 7 | width: $width; 8 | height: $width; 9 | background-color: $primary; 10 | } 11 | 12 | &, 13 | &.bubble-bottom-left { 14 | border-radius: 50% 50% 50% 0%; 15 | } 16 | 17 | &.bubble-bottom-right { 18 | border-radius: 50% 50% 0% 50%; 19 | } 20 | 21 | &.bubble-top-right { 22 | border-radius: 50% 0% 50% 50%; 23 | } 24 | 25 | &.bubble-top-left { 26 | border-radius: 0% 50% 50% 50%; 27 | } 28 | } -------------------------------------------------------------------------------- /assets/img/logo_black.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/logo_white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/js/demo.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | // javascript 3 | var slider = document.getElementById('demo-slider'); 4 | noUiSlider.create(slider, { 5 | start: '20', 6 | connect: [true, false], 7 | range: { 8 | 'min': 0, 9 | 'max': 100 10 | } 11 | }); 12 | 13 | // javascript 14 | var slider_handles = document.getElementById('demo-slider-handles'); 15 | noUiSlider.create(slider_handles, { 16 | start: ['20', '40'], 17 | connect: !0, 18 | range: { 19 | 'min': 0, 20 | 'max': 100 21 | } 22 | }); 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /assets/scss/custom/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .dropdown-toggle:focus { 2 | box-shadow: 0 none; 3 | } 4 | 5 | .dropdown-menu { 6 | border: 1px solid $grey-200; 7 | padding: .8rem; 8 | box-shadow: 0 0 2rem rgba(0,0,0,.1); 9 | transition: all .1s; 10 | a.dropdown-item { 11 | border-bottom: none !important; 12 | border-radius: .2rem; 13 | color: $dark !important; 14 | text-align: left; 15 | padding: 0.6rem; 16 | font-size: 1rem; 17 | line-height: 1rem; 18 | font-weight: 500; 19 | &:hover, 20 | &:focus, 21 | &:active { 22 | color: $info !important; 23 | background-color: $grey-100; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /assets/scss/custom/_navbars.scss: -------------------------------------------------------------------------------- 1 | .navbar { 2 | padding: 1.2rem 1rem; 3 | 4 | .navbar-brand { 5 | font-weight: 800; 6 | } 7 | 8 | .nav-link { 9 | font-weight: 500; 10 | @include opacity(0.9); 11 | } 12 | } 13 | 14 | .navbar-dark { 15 | .navbar-nav { 16 | .nav-link { 17 | color: rgba($white, 0.9); 18 | 19 | &:hover, 20 | &:active, 21 | &:focus { 22 | color: rgba($white, 1); 23 | } 24 | } 25 | } 26 | } 27 | 28 | .navbar-light { 29 | .navbar-nav { 30 | .nav-link { 31 | color: rgba($dark, 0.9); 32 | &:hover, 33 | &:active, 34 | &:focus { 35 | color: rgba($dark, 1); 36 | } 37 | } 38 | } 39 | } 40 | 41 | .navbar-transparent { 42 | background-color: transparent; 43 | } -------------------------------------------------------------------------------- /assets/scss/custom/_pagination.scss: -------------------------------------------------------------------------------- 1 | .pagination { 2 | .page-item { 3 | a.page-link { 4 | border: none; 5 | border-bottom: 0px; 6 | color: $grey-400; 7 | padding: .5rem .9rem; 8 | &:hover, 9 | &:focus { 10 | background-color: transparent; 11 | color: $primary; 12 | border-bottom: 0px; 13 | box-shadow: none; 14 | } 15 | } 16 | &.active { 17 | a.page-link { 18 | background-color: $primary; 19 | border-radius: .25rem; 20 | box-shadow: 0px 3px 5px rgba($primary, 0.2); 21 | color: $white; 22 | } 23 | } 24 | } 25 | 26 | &.pagination-lg { 27 | a.page-link { 28 | padding: .6rem 1.2rem; 29 | } 30 | } 31 | &.pagination-sm { 32 | a.page-link { 33 | padding: .2rem .6rem; 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /assets/scss/custom/_tooltips.scss: -------------------------------------------------------------------------------- 1 | .tooltip-inner { 2 | background-color: $bg-primary; 3 | border-radius: .25rem; 4 | } 5 | 6 | .tooltip.bs-tooltip-auto[x-placement^=top] .arrow::before, 7 | .tooltip.bs-tooltip-top .arrow::before { 8 | border-top-color: $bg-primary; 9 | } 10 | .tooltip.bs-tooltip-auto[x-placement^=right] .arrow::before, .tooltip.bs-tooltip-right .arrow::before { 11 | border-right-color: $bg-primary; 12 | } 13 | 14 | .tooltip.bs-tooltip-auto[x-placement^=bottom] .arrow::before, .tooltip.bs-tooltip-bottom .arrow::before { 15 | border-bottom-color: $bg-primary; 16 | } 17 | 18 | .tooltip.bs-tooltip-auto[x-placement^=left] .arrow::before, .tooltip.bs-tooltip-left .arrow::before { 19 | border-left-color: $bg-primary; 20 | } -------------------------------------------------------------------------------- /assets/scss/lazy.scss: -------------------------------------------------------------------------------- 1 | @import 'custom/variables'; 2 | @import 'custom/mixins'; 3 | 4 | // Core CSS 5 | @import "custom/background"; 6 | @import "custom/buttons"; 7 | @import "custom/inputs"; 8 | @import "custom/typography"; 9 | @import "custom/sliders"; 10 | @import "custom/checkbox-radio-toggle"; 11 | @import "custom/navbars"; 12 | @import "custom/tables"; 13 | @import "custom/navs"; 14 | @import "custom/pagination"; 15 | @import "custom/badges"; 16 | @import "custom/progress-bars"; 17 | @import "custom/alerts"; 18 | @import "custom/tooltips"; 19 | @import "custom/popovers"; 20 | @import "custom/modals"; 21 | @import "custom/cards"; 22 | @import "custom/dropdown"; 23 | 24 | //misc 25 | @import "custom/misc"; 26 | 27 | //components 28 | @import "custom/footers"; -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_navigation.scss: -------------------------------------------------------------------------------- 1 | @mixin nav-tabs-style($color) { 2 | &.active { 3 | &, 4 | &:hover { 5 | border-bottom: 2px solid $color; 6 | border-color: $color; 7 | font-weight: bold; 8 | color: $color; 9 | } 10 | i { 11 | color: $color; 12 | } 13 | } 14 | 15 | &:hover { 16 | border-bottom: 1px solid $color; 17 | color: $color; 18 | i { 19 | color: $color; 20 | } 21 | } 22 | } 23 | 24 | @mixin nav-pills-style($color) { 25 | &.active { 26 | background-color: $color; 27 | box-shadow: 0px 3px 5px rgba($color, 0.2); 28 | color: $white; 29 | font-weight: bold; 30 | &:hover, 31 | &:focus, 32 | i { 33 | color: $white !important; 34 | } 35 | } 36 | 37 | &:hover, 38 | &:focus { 39 | color: $color; 40 | i { 41 | color: $color; 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /assets/scss/custom/_typography.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Raleway:300,400,500,600,700'); 2 | 3 | body { 4 | font-weight: $font-weight-base; 5 | font-family: $font-family-sans-serif; 6 | color: $grey-800; 7 | } 8 | 9 | b { 10 | font-weight: 700; 11 | } 12 | 13 | h1,h2,h3,h4,h5,h6{ 14 | font-weight: $headings-font-weight; 15 | color: $dark; 16 | } 17 | 18 | .display-1, 19 | .display-2, 20 | .display-3, 21 | .display-4, 22 | .display-5, 23 | .display-6 { 24 | font-weight: 800; 25 | } 26 | 27 | @each $color,$value in $theme-colors { 28 | .text-#{$color} { 29 | @include text-color($value); 30 | } 31 | } 32 | 33 | //blockquote 34 | .blockquote { 35 | border-left: 0.2rem solid $primary; 36 | font-size: $blockquote-font-size; 37 | padding-left: 1.5rem; 38 | } 39 | 40 | .icon { 41 | position: relative; 42 | top: .2em; 43 | } 44 | 45 | .big-icon { 46 | font-size: 3rem; 47 | } -------------------------------------------------------------------------------- /assets/scss/custom/_popovers.scss: -------------------------------------------------------------------------------- 1 | .popover { 2 | background-color: $bg-warning; 3 | border: none; 4 | 5 | .popover-body { 6 | color: $white; 7 | } 8 | } 9 | 10 | .bs-popover-auto[x-placement^="top"], 11 | .bs-popover-top { 12 | .arrow::after{ 13 | border-top-color: $bg-warning; 14 | } 15 | .arrow::before { 16 | border-top-color: transparent 17 | } 18 | } 19 | 20 | .bs-popover-auto[x-placement^="bottom"], 21 | .bs-popover-bottom { 22 | .arrow::after{ 23 | border-bottom-color: $bg-warning; 24 | } 25 | .arrow::before { 26 | border-bottom-color: transparent 27 | } 28 | } 29 | 30 | .bs-popover-auto[x-placement^="left"], 31 | .bs-popover-left { 32 | .arrow::after{ 33 | border-left-color: $bg-warning; 34 | } 35 | .arrow::before { 36 | border-left-color: transparent 37 | } 38 | } 39 | 40 | .bs-popover-auto[x-placement^="right"], 41 | .bs-popover-right { 42 | .arrow::after{ 43 | border-right-color: $bg-warning; 44 | } 45 | .arrow::before { 46 | border-right-color: transparent 47 | } 48 | } -------------------------------------------------------------------------------- /starter_template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_base.scss: -------------------------------------------------------------------------------- 1 | @mixin transition($time, $type){ 2 | -webkit-transition: all $time $type; 3 | -moz-transition: all $time $type; 4 | -o-transition: all $time $type; 5 | -ms-transition: all $time $type; 6 | transition: all $time $type; 7 | } 8 | 9 | @mixin box-shadow($shadow...) { 10 | -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 11 | box-shadow: $shadow; 12 | } 13 | 14 | // Opacity 15 | 16 | @mixin opacity($opacity) { 17 | opacity: $opacity; 18 | // IE8 filter 19 | $opacity-ie: ($opacity * 100); 20 | filter: #{alpha(opacity=$opacity-ie)}; 21 | } 22 | 23 | @mixin background-color($color) { 24 | background-color: $color !important; 25 | } 26 | 27 | @mixin table-color($color) { 28 | tbody, 29 | tr, 30 | th, 31 | td { 32 | background-color: rgba($color, 0.3); 33 | border-color: rgba($color, 0.3); 34 | color: darken($color, 40%); 35 | } 36 | } 37 | 38 | @mixin table-hover($color) { 39 | &:hover { 40 | th, td { 41 | background-color: rgba($color, 0.35); 42 | border-color: rgba($color, 0.35); 43 | } 44 | } 45 | } 46 | 47 | @mixin background-image($x_url){ 48 | background-image: url($x_url); 49 | background-position: center center; 50 | background-size: cover; 51 | position: relative; 52 | width: 100%; 53 | z-index: 1; 54 | } 55 | 56 | @mixin filter-color($color){ 57 | background-color: darken($color, 10%); 58 | } -------------------------------------------------------------------------------- /assets/scss/custom/_inputs.scss: -------------------------------------------------------------------------------- 1 | .form-control, 2 | .custom-select, 3 | .custom-file { 4 | font-weight: $font-weight-base; 5 | height: 2.375rem; 6 | @include input-style($grey-500, $primary); 7 | @include input-size($input-btn-padding-y, $input-btn-padding-x, $input-btn-font-size, $input-btn-border-radius); 8 | @include box-shadow(none); 9 | 10 | &.form-control-lg, 11 | &.custom-select-lg { 12 | @include input-size(1rem, $input-btn-padding-x, $input-btn-font-size, $input-btn-border-radius); 13 | line-height: 2rem; 14 | height: 3rem; 15 | } 16 | 17 | &.form-control-sm, 18 | &.custom-select-sm { 19 | @include input-size(0.7rem, $input-btn-padding-x, $input-btn-font-size, $input-btn-border-radius); 20 | height: 1.95rem; 21 | } 22 | 23 | &:disabled { 24 | background-color: transparent; 25 | @include input-style($grey-200, $grey-200); 26 | } 27 | 28 | &.is-valid { 29 | color: $success; 30 | background-image: none; 31 | @include input-style(darken($success, 10%), $success); 32 | } 33 | 34 | &.is-invalid { 35 | color: $danger; 36 | background-image: none; 37 | @include input-style(darken($danger, 10%), $danger); 38 | } 39 | } 40 | 41 | .form-group { 42 | label { 43 | font-weight: 600; 44 | margin-top: .5rem; 45 | } 46 | } 47 | .valid-feedback { 48 | color: $success; 49 | } 50 | 51 | .invalid-feedback { 52 | color: $danger; 53 | } 54 | 55 | .input-group { 56 | .form-control:not(:first-child) { 57 | padding-left: 3rem; 58 | border-radius: .25rem; 59 | } 60 | .form-control:not(:last-child) { 61 | padding-right: 3rem; 62 | border-radius: .25rem; 63 | } 64 | .input-group-prepend, 65 | .input-group-append { 66 | position: absolute; 67 | top: 0; 68 | z-index: 1000; 69 | border: 0; 70 | } 71 | .input-group-prepend { 72 | left: 0; 73 | } 74 | .input-group-append { 75 | right: 0; 76 | } 77 | .input-group-text { 78 | background-color: transparent; 79 | color: rgba($primary, 0.9); 80 | border: none; 81 | padding: .7rem .8rem; 82 | &.disabled { 83 | color: rgba($primary, 0.6); 84 | } 85 | } 86 | .custom-file-label { 87 | border: 0; 88 | &::after { 89 | background-color: transparent; 90 | color: $primary; 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /assets/js/lazy.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | // NoUI Slider 4 | if ($(".input-slider-container")[0]) { 5 | $('.input-slider-container').each(function() { 6 | 7 | var slider = $(this).find('.input-slider'); 8 | var sliderId = slider.attr('id'); 9 | var minValue = slider.data('range-value-min'); 10 | var maxValue = slider.data('range-value-max'); 11 | 12 | var sliderValue = $(this).find('.range-slider-value'); 13 | var sliderValueId = sliderValue.attr('id'); 14 | var startValue = sliderValue.data('range-value-low'); 15 | 16 | var c = document.getElementById(sliderId), 17 | d = document.getElementById(sliderValueId); 18 | 19 | noUiSlider.create(c, { 20 | start: [parseInt(startValue)], 21 | connect: [true, false], 22 | // step: 1, 23 | range: { 24 | 'min': [parseInt(minValue)], 25 | 'max': [parseInt(maxValue)] 26 | } 27 | }); 28 | 29 | c.noUiSlider.on('update', function(a, b) { 30 | d.textContent = a[b]; 31 | }); 32 | }) 33 | } 34 | 35 | if ($("#input-slider-range")[0]) { 36 | var c = document.getElementById("input-slider-range"), 37 | d = document.getElementById("input-slider-range-value-low"), 38 | e = document.getElementById("input-slider-range-value-high"), 39 | f = [d, e]; 40 | 41 | noUiSlider.create(c, { 42 | start: [parseInt(d.getAttribute('data-range-value-low')), parseInt(e.getAttribute('data-range-value-high'))], 43 | connect: !0, 44 | range: { 45 | min: parseInt(c.getAttribute('data-range-value-min')), 46 | max: parseInt(c.getAttribute('data-range-value-max')) 47 | } 48 | }), c.noUiSlider.on("update", function(a, b) { 49 | f[b].textContent = a[b] 50 | }) 51 | } 52 | 53 | // Tooltip 54 | $('[data-toggle="tooltip"]').tooltip(); 55 | 56 | // Popover 57 | $('[data-toggle="popover"]').popover(); 58 | 59 | 60 | }); 61 | -------------------------------------------------------------------------------- /assets/scss/custom/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn, 2 | .navbar .navbar-nav > a.btn{ 3 | font-weight: $font-weight-bold; 4 | @include input-size($input-btn-padding-y, $input-btn-padding-x, $input-btn-font-size, $input-btn-border-radius); 5 | 6 | @include transition($fast-transition-time, linear); 7 | 8 | &:hover, 9 | &:focus{ 10 | outline: 0 !important; 11 | } 12 | &:active, 13 | &.active, 14 | .open > &.dropdown-toggle { 15 | @include box-shadow(none); 16 | outline: 0 !important; 17 | } 18 | 19 | .badge{ 20 | margin: 0; 21 | } 22 | 23 | &.btn-link { 24 | background-color: transparent; 25 | &:hover, 26 | &:focus, 27 | &:active, 28 | &:active:focus { 29 | background-color: transparent; 30 | text-decoration: none; 31 | } 32 | } 33 | 34 | &.btn-lg { 35 | @include input-size($input-btn-padding-lg-y, $input-btn-padding-lg-x, $input-btn-font-size-lg, $input-btn-border-radius-lg); 36 | } 37 | 38 | &.btn-sm { 39 | @include input-size($input-btn-padding-sm-y, $input-btn-padding-sm-x, $input-btn-font-size-sm, $input-btn-border-radius-sm); 40 | } 41 | 42 | &.btn-pill { 43 | border-radius: 4rem; 44 | } 45 | &.btn-icon { 46 | padding: .5rem .8rem ; 47 | border-radius: 4rem; 48 | &.btn-sm { 49 | padding: .3rem .55rem ; 50 | } 51 | &.btn-lg { 52 | padding: .65rem 1rem; 53 | } 54 | } 55 | } 56 | 57 | // Apply the mixin to the buttons 58 | @each $color, $value in $theme-colors { 59 | .btn-#{$color} { 60 | @include btn-style($value); 61 | } 62 | } 63 | 64 | @each $color, 65 | $value in $theme-colors { 66 | .btn-outline-#{$color} { 67 | @include btn-outline-style($value); 68 | /* 69 | &.btn-icon { 70 | @include hover-padding(.4rem, .7rem); 71 | &.btn-sm { 72 | padding: .2rem .45rem ; 73 | } 74 | &.btn-lg { 75 | padding: .5rem .9rem; 76 | } 77 | } 78 | */ 79 | } 80 | } 81 | //links 82 | a:not(.nav-link):not(.navbar-brand):not(.btn) { 83 | color: $info; 84 | font-weight: 600; 85 | border-bottom: 1px solid $info; 86 | font-weight: 500; 87 | text-decoration: none; 88 | 89 | &:hover { 90 | color: $info; 91 | border-bottom: 1.5px solid $info; 92 | } 93 | } 94 | 95 | a.text-primary { 96 | color: $primary; 97 | &:hover { 98 | color: darken($primary, 6%) !important; 99 | } 100 | } -------------------------------------------------------------------------------- /assets/scss/custom/mixins/_forms.scss: -------------------------------------------------------------------------------- 1 | @mixin hover-padding($padding-y , $padding-x) { 2 | &:hover, 3 | &:focus, 4 | &:active, 5 | &.active, 6 | &:active:focus, 7 | &:active:hover, 8 | &.active:focus, 9 | &.active:hover, 10 | .show > &.dropdown-toggle, 11 | .show > &.dropdown-toggle:focus, 12 | .show > &.dropdown-toggle:hover { 13 | padding: $padding-y $padding-x; 14 | } 15 | } 16 | 17 | @mixin btn-style($color) { 18 | background-color: $color; 19 | border: 1px solid $color; 20 | &:not(:disabled){ 21 | &:hover, 22 | &:focus, 23 | &:active, 24 | &.active, 25 | &:active:focus, 26 | &:active:hover, 27 | &.active:focus, 28 | &.active:hover, 29 | .show > &.dropdown-toggle, 30 | .show > &.dropdown-toggle:focus, 31 | .show > &.dropdown-toggle:hover { 32 | background-color: darken($color, 6%); 33 | border: 1px solid darken($color, 6%); 34 | box-shadow: none; 35 | } 36 | } 37 | &:not([data-action]):hover{ 38 | box-shadow: none; 39 | } 40 | 41 | &.disabled, 42 | &:disabled, 43 | &[disabled], 44 | fieldset[disabled] { 45 | background-color: $color; 46 | border: 1px solid $color; 47 | } 48 | } 49 | 50 | @mixin btn-outline-style($color) { 51 | border: 1px solid $color; 52 | color: $color; 53 | 54 | &:hover, 55 | &:focus, 56 | &:active, 57 | &.active, 58 | &:active:focus, 59 | &:active:hover, 60 | &.active:focus, 61 | &.active:hover, 62 | .show > &.dropdown-toggle, 63 | .show > &.dropdown-toggle:focus, 64 | .show > &.dropdown-toggle:hover { 65 | background-color: $color; 66 | border-color: $color; 67 | /* 68 | border: 2px solid $color; 69 | box-shadow: none; 70 | */ 71 | /* 72 | color: $color; 73 | padding: .4375rem .915rem; 74 | */ 75 | // font-weight: 700; 76 | } 77 | 78 | /* 79 | &.btn-lg { 80 | @include hover-padding(.4375rem, 1.05rem); 81 | } 82 | 83 | &.btn-sm { 84 | @include hover-padding(.1875rem, .6rem); 85 | } 86 | */ 87 | } 88 | 89 | @mixin input-size($padding-vertical, $padding-horizontal, $font-size, $border){ 90 | font-size: $font-size; 91 | border-radius: $border; 92 | padding: $padding-vertical $padding-horizontal; 93 | } 94 | 95 | @mixin input-style($color1, $color2) { 96 | border: 1px solid $color1; 97 | @include box-shadow(none); 98 | 99 | &:hover, 100 | &:focus, 101 | &:active{ 102 | border: 1px solid $color2; 103 | @include box-shadow(none); 104 | } 105 | } 106 | 107 | 108 | -------------------------------------------------------------------------------- /assets/scss/custom/_navs.scss: -------------------------------------------------------------------------------- 1 | .nav { 2 | &.nav-tabs { 3 | display: inline-flex; 4 | 5 | margin-bottom: 1.5rem; 6 | 7 | .nav-item { 8 | &:not(:last-child) { 9 | padding-right: .5rem; 10 | } 11 | .nav-link { 12 | color: $grey-600; 13 | padding: 0.7rem 1.3rem; 14 | font-size: 1.1rem; 15 | 16 | &, 17 | &.active, 18 | &:hover, 19 | &:focus { 20 | border-top: 0; 21 | border-left: 0; 22 | border-right: 0; 23 | } 24 | @include nav-tabs-style($primary); 25 | 26 | &.disabled { 27 | color: $grey-400; 28 | i { 29 | color: $grey-300; 30 | } 31 | } 32 | 33 | i { 34 | color: $grey-400; 35 | } 36 | } 37 | } 38 | 39 | @each $color, $value in $theme-colors { 40 | &.nav-#{$color} { 41 | .nav-item { 42 | .nav-link { 43 | @include nav-tabs-style($value); 44 | } 45 | } 46 | } 47 | } 48 | } 49 | 50 | &.nav-icons { 51 | .nav-item { 52 | .nav-link { 53 | i { 54 | font-size: 1.5rem; 55 | } 56 | } 57 | } 58 | } 59 | 60 | &.nav-pills { 61 | margin-bottom: 1.5rem; 62 | .nav-item { 63 | .nav-link { 64 | color: $grey-600; 65 | padding: 0.4rem 1rem; 66 | font-size: 0.95rem; 67 | 68 | &.active { 69 | background-color: $primary; 70 | box-shadow: 0px 3px 5px rgba($primary, 0.2); 71 | color: $white; 72 | font-weight: bold; 73 | &:hover, 74 | &:focus { 75 | &, 76 | i { 77 | color: $white; 78 | } 79 | } 80 | } 81 | 82 | &.disabled { 83 | color: $grey-400; 84 | i { 85 | color: $grey-300; 86 | } 87 | } 88 | 89 | &:hover, 90 | &:focus { 91 | color: $primary; 92 | } 93 | 94 | i { 95 | color: $grey-400; 96 | } 97 | } 98 | } 99 | 100 | @each $color, $value in $theme-colors { 101 | &.nav-#{$color} { 102 | .nav-item { 103 | .nav-link { 104 | @include nav-pills-style($value); 105 | } 106 | } 107 | } 108 | } 109 | 110 | 111 | &.nav-icons { 112 | .nav-item { 113 | .nav-link{ 114 | padding: 0.6rem 1rem; 115 | } 116 | } 117 | } 118 | } 119 | } 120 | 121 | .breadcrumb { 122 | .breadcrumb-item { 123 | a { 124 | color: $primary !important; 125 | border-bottom: 1px solid $primary !important; 126 | &:hover, 127 | &:focus { 128 | border-bottom: 2px solid $primary !important; 129 | } 130 | } 131 | } 132 | } -------------------------------------------------------------------------------- /assets/vendor/prism/prism.css: -------------------------------------------------------------------------------- 1 | /* PrismJS 1.17.1 2 | https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ 3 | /** 4 | * prism.js default theme for JavaScript, CSS and HTML 5 | * Based on dabblet (http://dabblet.com) 6 | * @author Lea Verou 7 | */ 8 | 9 | code[class*="language-"], 10 | pre[class*="language-"] { 11 | color: black; 12 | background: none; 13 | text-shadow: 0 1px white; 14 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 15 | font-size: 1em; 16 | text-align: left; 17 | white-space: pre; 18 | word-spacing: normal; 19 | word-break: normal; 20 | word-wrap: normal; 21 | line-height: 1.5; 22 | 23 | -moz-tab-size: 4; 24 | -o-tab-size: 4; 25 | tab-size: 4; 26 | 27 | -webkit-hyphens: none; 28 | -moz-hyphens: none; 29 | -ms-hyphens: none; 30 | hyphens: none; 31 | } 32 | 33 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 34 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 35 | text-shadow: none; 36 | background: #b3d4fc; 37 | } 38 | 39 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 40 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 41 | text-shadow: none; 42 | background: #b3d4fc; 43 | } 44 | 45 | @media print { 46 | code[class*="language-"], 47 | pre[class*="language-"] { 48 | text-shadow: none; 49 | } 50 | } 51 | 52 | /* Code blocks */ 53 | pre[class*="language-"] { 54 | padding: 1em; 55 | margin: .5em 0; 56 | overflow: auto; 57 | } 58 | 59 | :not(pre) > code[class*="language-"], 60 | pre[class*="language-"] { 61 | background: #f5f2f0; 62 | } 63 | 64 | /* Inline code */ 65 | :not(pre) > code[class*="language-"] { 66 | padding: .1em; 67 | border-radius: .3em; 68 | white-space: normal; 69 | } 70 | 71 | .token.comment, 72 | .token.prolog, 73 | .token.doctype, 74 | .token.cdata { 75 | color: slategray; 76 | } 77 | 78 | .token.punctuation { 79 | color: #999; 80 | } 81 | 82 | .namespace { 83 | opacity: .7; 84 | } 85 | 86 | .token.property, 87 | .token.tag, 88 | .token.boolean, 89 | .token.number, 90 | .token.constant, 91 | .token.symbol, 92 | .token.deleted { 93 | color: #905; 94 | } 95 | 96 | .token.selector, 97 | .token.attr-name, 98 | .token.string, 99 | .token.char, 100 | .token.builtin, 101 | .token.inserted { 102 | color: #690; 103 | } 104 | 105 | .token.operator, 106 | .token.entity, 107 | .token.url, 108 | .language-css .token.string, 109 | .style .token.string { 110 | color: #9a6e3a; 111 | background: hsla(0, 0%, 100%, .5); 112 | } 113 | 114 | .token.atrule, 115 | .token.attr-value, 116 | .token.keyword { 117 | color: #07a; 118 | } 119 | 120 | .token.function, 121 | .token.class-name { 122 | color: #DD4A68; 123 | } 124 | 125 | .token.regex, 126 | .token.important, 127 | .token.variable { 128 | color: #e90; 129 | } 130 | 131 | .token.important, 132 | .token.bold { 133 | font-weight: bold; 134 | } 135 | .token.italic { 136 | font-style: italic; 137 | } 138 | 139 | .token.entity { 140 | cursor: help; 141 | } 142 | 143 | -------------------------------------------------------------------------------- /assets/vendor/nouislider/css/nouislider.min.css: -------------------------------------------------------------------------------- 1 | /*! nouislider - 11.0.3 - 2018-01-21 14:04:07 */.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative;direction:ltr}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;height:100%;width:100%;-webkit-transform-origin:0 0;transform-origin:0 0}html:not([dir=rtl]) .noUi-horizontal .noUi-origin{left:auto;right:0}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{position:absolute}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;top:-17px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#3FB8AF}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB}.noUi-active{box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#B8B8B8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-large,.noUi-marker-sub{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translate(0,-50%,0);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);top:50%;right:120%} -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | Lazy Kit is a complete design system built on Bootstrap 4.
7 | It is created for all web makers that want to get a project off the ground quickly and neatly.
8 | It overwrites all Bootstrap 4 components and adds 2 more plugins. It also comes with 3 example pages.
9 |
14 | Components • 15 | Documentation • 16 | Official Page 17 |
18 | 19 |
|
|
|
32 | | ------------- |:-------------:| -----: |
33 | | [Register Page](https://bootstrapbay.github.io/lazy-kit/register.html) | [Profile Page](https://bootstrapbay.github.io/lazy-kit/profile.html) | [Landing Page](https://bootstrapbay.github.io/lazy-kit/landing.html) |
34 | Create an account to start playing.
67 |Already have an account? Log in.
90 |185 | If you find an issue, please report it on our GitHub repo. In this way, we can repair the bug and update the code base for all the people that are using the kit. 186 |
187 |188 | You can also please visit our profile page and send us a message or ask a question at contact@bootstrapbay.com. 189 |
190 | 191 | 192 | 204 | 205 |185 | Lazy Kit uses the Bootstrap 12 columns grid system. If you want to learn more about using it, please look at our Bootstrap grid system tutorial. We start from the basic structure and go more in depth over there. Learning more about Bootstrap 4 flex is also useful, as it makes aligning items much easier and it is the basis for the grid system. 186 |
187 | 188 | 189 | 201 | 202 |185 | The development of this kit was made possible by using the following resources. We thank the people behind them for their openness and constant work to keep them live and updated. 186 |
187 |
55 | 134 posts
6.6m followers
201 following
Ella Yelich-O'Connor
69 |Let's let things come out of the woodwork. I'll give you my best side, tell you all my best lies. Yeah, awesome right?
70 |Nothing saved yet.
121 |Help people tag you.
124 | Find Friends 125 |MIT License
185 | 186 |Copyright (c) 2019 BootstrapBay.
187 | 188 |Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
189 | 190 |The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
191 | 192 |THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
193 | 194 | 195 | 207 | 208 |
185 | The Lazy Kit sliders are based on the NoUiSlider library. In order to use them, you need to specifically import the nouislider.js in your file.
186 |
188 | To create a basic slider you need a <div> with an id that you can use to select it and initialize the slider plugin.
189 |
<!-- html -->
198 | <div class="wrapper">
199 | <div id="demo-slider"></div>
200 | </div>
201 |
202 | // javascript
203 | var slider = document.getElementById('demo-slider');
204 | noUiSlider.create(slider, {
205 | start: '20',
206 | connect: [true, false],
207 | range: {
208 | 'min': 0,
209 | 'max': 100
210 | }
211 | });
212 |
213 |
214 |
215 | You can add multiple handles to the slider by adding multiple values to the start option; one value for where each handle should start.
<!-- html -->
224 | <div class="wrapper">
225 | <div id="demo-slider-handles"></div>
226 | </div>
227 |
228 | // javascript
229 | var slider_handles = document.getElementById('demo-slider-handles');
230 | noUiSlider.create(slider_handles, {
231 | start: ['20', '40'],
232 | connect: !0,
233 | range: {
234 | 'min': 0,
235 | 'max': 100
236 | }
237 | });
238 |
239 |
240 | 242 | For more details on the available configuration options make sure you check out the official noUiSlider documentation. 243 |
244 | 245 | 246 | 258 | 259 |After you download the Lazy Kit archive and unzip it, you will see the following files:
185 | 186 |We have used SCSS to create the Lazy kit design. SCSS is a preprocessor scripting language that is interpreted or compiled into CSS. If you want to learn more about the advantages of working with it, you can go here.
188 | If you want to change the syling of the kit, you can create your own CSS and overwrite the default styling. Or you can modify the SCSS source files. Inside the assets/scss/custom folder you will find a file for every components. To be able to use SCSS (generate new CSS files based on your changes) on your local machine, you will need a compiler. We recommend the Scout App.
Here are the elements from Bootstrap 4 that have been restyled in the Lazy Kit:
192 |Besides overwritting the Bootstrap components, we have also added 2 new ones. These are:
210 |185 | Bootstrap 4 doesn’t come with its own pack of icons. So, if you want to use icons in your project you will need to use an outside library. We have used the Font Awesome Icons for the Lazy Kit. It is one of the most popular options and it has a free version that is usually diverse enough to support your project's needs. 186 |
187 | 188 |190 | You can place icons in almost any element without the need of adding adjustments in order for them to fit. Here is an example of an icon placed in a button. 191 |
192 |<button class="btn btn-danger btn-pill">
199 | <i class="fa fa-heart mr-1"></i>
200 | Favourite
201 | </button>
202 |
203 |
204 | 205 | And here is an example of an icon placed in an input group. 206 |
207 |<div class="input-group">
216 | <div class="input-group-prepend">
217 | <span class="input-group-text" id="basic-addon1"><i class="fas fa-user"></i></span>
218 | </div>
219 | <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
220 | </div>
221 |
222 |
223 | 225 | We have also used icons throughout our presentation, in alerts, badges, cards and navigation. Since Font Awesome is a font, all typography options apply when using it (e.g. sizing utilities, colouring utilities). If you want to see more examples, check out our Bootstrap 4 icons tutorial. 226 |
227 | 228 | 229 | 241 | 242 |185 | Tooltips and popovers require the Popper.js library. And they both need to be initialized inside your JS file. 186 |
187 | 188 | 189 |
191 | The easiest way to add a tooltip to an element is to add the data-toggle="tooltip" attribute and the data-placement="..." to place it top/bottom/left/right. The content that will be visible inside the tooltip needs to placed inside the title attribute.
192 |
<button type="button" class="btn btn-success" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
199 | Tooltip on top
200 | </button>
201 |
202 |
203 |
204 |
205 | In order for this code to work, you must specify inside your js that all elements with the data-toggle="tooltip" attribute should initialise a tooltip using the following code:
206 |
$(function () {
208 | $('[data-toggle="tooltip"]').tooltip()
209 | });
210 |
211 |
212 |
213 |
215 | If you want to add a popover to an element you need to add the data-toggle="popover" attribute and the data-placement="..." to place it top/bottom/left/right. The content that will be visible inside the popover needs to placed inside the data-content="..." attribute.
216 |
<button type="button" class="btn btn-success" data-container="body" data-toggle="popover" data-placement="right" data-content="Wherever you go, there you are.">
223 | Popover on right
224 | </button>
225 |
226 |
227 |
228 | In order for this code to work, you must specify inside your js that all elements with the data-toggle="popover" attribute should initialise a popover using the following code:
229 |
$(function () {
231 | $('[data-toggle="popover"]').popover()
232 | });
233 |
234 |
235 |
236 | 237 | If you want to see more configuration options, make sure you check out the official Bootstrap 4 documentation on tooltips and popovers. 238 |
239 | 240 | 241 | 253 | 254 |You can use the .badge class to create labels for different elements. Here is a label inside a button.
<button class="btn btn-outline-primary">
189 | Messages <span class="badge badge-success badge-pill">10</span>
190 | </button>
191 |
192 |
193 |
194 | The default styling for the badge is outlined. Badges have contextual variations that you can see below.
196 |<span class="badge badge-primary">Primary</span>
207 | <span class="badge badge-secondary">Secondary</span>
208 | <span class="badge badge-success">Success</span>
209 | <span class="badge badge-danger">Danger</span>
210 | <span class="badge badge-warning">Warning</span>
211 | <span class="badge badge-info">Info</span>
212 | <span class="badge badge-light">Light</span>
213 | <span class="badge badge-dark">Dark</span>
214 |
215 |
216 |
217 | You can get a secondary styling and have the badges filled by adding the .badge-pill class. here is how they look.
<span class="badge badge-pill badge-primary">Primary</span>
230 | <span class="badge badge-pill badge-secondary">Secondary</span>
231 | <span class="badge badge-pill badge-success">Success</span>
232 | <span class="badge badge-pill badge-danger">Danger</span>
233 | <span class="badge badge-pill badge-warning">Warning</span>
234 | <span class="badge badge-pill badge-info">Info</span>
235 | <span class="badge badge-pill badge-light">Light</span>
236 | <span class="badge badge-pill badge-dark">Dark</span>
237 |
238 |
239 |
240 |
252 |
253 | 185 | You can create a modal using the following example. If you want to see details regarding the options you have for modals and how to create them, check out our Bootstrap 4 modals tutorial. 186 |
187 |<!-- button that opens the modal -->
195 | <button type="button" class="btn btn-info" data-toggle="modal" data-target="#exampleModal">
196 | Click for More
197 | </button>
198 |
199 | <!-- the modal -->
200 | <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
201 | <div class="modal-dialog modal-dialog-centered" role="document">
202 | <div class="modal-content">
203 | <div class="modal-header">
204 | <h5 class="modal-title" id="exampleModalLabel">Here is a modal</h5>
205 | <button type="button" class="close" data-dismiss="modal" aria-label="Close">
206 | <span aria-hidden="true">×</span>
207 | </button>
208 | </div>
209 | <div class="modal-body">
210 | Modals are a simple way to display information upon request. They let you easily add another layer upon your site and give you the possibility to create popups.
211 | </div>
212 | <div class="modal-footer">
213 | <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
214 | <button type="button" class="btn btn-success">View More</button>
215 | </div>
216 | </div>
217 | </div>
218 | </div>
219 |
220 |
221 |
240 |
241 |
242 |
254 |
255 | You can create alerts using the .alert class combined with a contextual modifier class to provide colour (e.g. .alert-info).
<!-- Primary Alert -->
218 | <div class="alert alert-primary" role="alert">
219 | <strong>Primary!</strong> This is an primary alert.
220 | </div>
221 |
222 | <!-- Secondary Alert -->
223 | <div class="alert alert-secondary" role="alert">
224 | <strong>Secondary!</strong> This is an secondary alert.
225 | </div>
226 |
227 | <!-- Info Alert -->
228 | <div class="alert alert-info" role="alert">
229 | <strong>Info!</strong> This is an info alert.
230 | </div>
231 |
232 | <!-- Success Alert -->
233 | <div class="alert alert-success" role="alert">
234 | <strong>Success!</strong> This is an success alert.
235 | </div>
236 |
237 | <!-- Warning Alert -->
238 | <div class="alert alert-warning" role="alert">
239 | <strong>Warning!</strong> This is an warning alert.
240 | </div>
241 |
242 | <!-- Danger Alert -->
243 | <div class="alert alert-danger" role="alert">
244 | <strong>Danger!</strong> This is an danger alert.
245 | </div>
246 |
247 |
248 |
249 | You can also create dismissible alerts by adding the .alert-dismissible class to the alert and inserting a close button. Here is an example.
<!-- Info Dismissible Alert -->
262 | <div class="alert alert-info alert-dismissible fade show" role="alert">
263 | <button type="button" class="close" data-dismiss="alert" aria-label="Close">
264 | <span aria-hidden="true">×</span>
265 | </button>
266 | <strong>Hey!</strong> I think you should know <a href="#">this</a>.
267 | </div>
268 |
269 | Make sure you check out the official Bootstrap 4 documentation for more information on alert components.
271 | 272 | 273 | 285 | 286 |This guide will guide through the process of starting to use the Lazy Kit. 185 | We have tried to make as user-friendly and easy-to-use as possible. We hope you will have a nice time 186 | using it and it will be of help to you in your projects. 187 |
188 |To start using this UI Kit you will need to import some files in your current project or start from scratch using our starter template.
189 | 190 |After you have downloaded Lazy Kit, make sure you unzip the archive. Inside of the folder, you will find all the files necessary for it to work.
192 |Since Lazy Kit is built on top of Bootstrap 4, so you will need to include the Bootstrap stylesheet and javascript file for the kit to work. Since Bootstrap needs jQuery, you will need to include this before Bootstrap. And popper.js is used for some of the components (like tooltips and popovers, so it will also need to be included).
193 | After including the Bootstrap dependencies, you need to include the lazy.css stylesheet inside your project’s <head>.
Copy and paste the following stylesheets link inside your <head> section.
<!-- bootstrap -->
197 | <link rel="stylesheet" href="./assets/vendor/bootstrap/bootstrap.min.css">
198 |
199 | <!-- font awesome icons -->
200 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.0/css/all.css" integrity="sha384-aOkxzJ5uQz7WBObEZcHvV5JvRW3TUc2rNPA7pe3AwnsUohiw1Vj2Rgx2KSOkF5+h" crossorigin="anonymous">
201 |
202 | <!-- lazy styling -->
203 | <link rel="stylesheet" href="./assets/css/lazy.css">
204 |
205 |
206 | Place the following <script>s near the end of your pages, right before the closing </body> tag.
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
210 | <script src="./assets/vendor/jquery/jquery.min.js"></script>
211 | <script src="./assets/vendor/popper/popper.min.js"></script>
212 | <script src="./assets/vendor/bootstrap/bootstrap.min.js" ></script>
213 |
214 | <!-- lazy javascript -->
215 | <script src="./assets/js/lazy.js"></script>
216 |
217 | If you’re starting a new project from scratch, you can use the following HTML starter template:
219 |
220 | <!DOCTYPE html>
221 | <html lang="en">
222 | <head>
223 | <meta charset="utf-8">
224 | <meta name="viewport" content="width=device-width, initial-scale=1">
225 | <meta http-equiv="X-UA-Compatible" content="IE=edge" />
226 | <link rel="stylesheet" href="./assets/vendor/bootstrap/bootstrap.min.css">
227 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.0/css/all.css" integrity="sha384-aOkxzJ5uQz7WBObEZcHvV5JvRW3TUc2rNPA7pe3AwnsUohiw1Vj2Rgx2KSOkF5+h" crossorigin="anonymous">
228 | <link rel="stylesheet" href="./assets/css/lazy.css">
229 | </head>
230 | <body>
231 | <!-- your content here -->
232 |
233 | <!-- jQuery first, then Popper.js, then Bootstrap JS -->
234 | <script src="./assets/vendor/jquery/jquery.min.js"></script>
235 | <script src="./assets/vendor/popper/popper.min.js"></script>
236 | <script src="./assets/vendor/bootstrap/bootstrap.min.js" ></script>
237 |
238 | <!-- optional plugins -->
239 | <script src="./assets/vendor/nouislider/js/nouislider.min.js"></script>
240 |
241 | <!-- lazy javascript -->
242 | <script src="./assets/js/lazy.js"></script>
243 | </body>
244 | </html>
245 |
246 |
247 |
248 |
249 |
261 |
262 |
185 | You can create a simple progress bar using the .progress wrapper and the .progress-bar helper class inside.
186 |
<div class="progress">
195 | <div class="progress-bar" role="progressbar" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
196 | </div>
197 |
198 |
199 |
201 | You can create a smaller progress bar with the class .progress-sm or a larger one with the class .progress-lg.
202 |
<div class="progress progress-sm">
212 | <div class="progress-bar" role="progressbar" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
213 | </div>
214 | <div class="progress progress-lg">
215 | <div class="progress-bar" role="progressbar" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
216 | </div>
217 |
218 |
219 | 221 | You can use the background color utilities to color the progress bars. 222 |
223 |<div class="progress">
241 | <div class="progress-bar" role="progressbar" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
242 | </div>
243 | <div class="progress">
244 | <div class="progress-bar bg-success" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
245 | </div>
246 | <div class="progress">
247 | <div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
248 | </div>
249 | <div class="progress">
250 | <div class="progress-bar bg-warning" role="progressbar" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
251 | </div>
252 | <div class="progress">
253 | <div class="progress-bar bg-danger" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
254 | </div>
255 |
256 | 258 | To find out more about progress bars and their options, check out the official Bootstrap 4 documentation. 259 |
260 | 261 | 262 | 274 | 275 |