├── css ├── css │ ├── mixins │ │ └── _text-hide.css │ └── bootstrap-reboot.css ├── .DS_Store ├── ajax-loader.gif ├── owl.theme.default.min.css ├── flaticon.css ├── jquery.timepicker.css ├── owl.carousel.min.css ├── bootstrap │ └── bootstrap-reboot.css └── magnific-popup.css ├── .DS_Store ├── logoiee.png ├── scss ├── bootstrap │ ├── utilities │ │ ├── _clearfix.scss │ │ ├── _screenreaders.scss │ │ ├── _visibility.scss │ │ ├── _shadows.scss │ │ ├── _sizing.scss │ │ ├── _float.scss │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _position.scss │ │ ├── _embed.scss │ │ ├── _display.scss │ │ ├── _spacing.scss │ │ ├── _text.scss │ │ ├── _borders.scss │ │ └── _flex.scss │ ├── _media.scss │ ├── mixins │ │ ├── _box-shadow.scss │ │ ├── _clearfix.scss │ │ ├── _size.scss │ │ ├── _visibility.scss │ │ ├── _lists.scss │ │ ├── _text-truncate.scss │ │ ├── _resize.scss │ │ ├── _float.scss │ │ ├── _badge.scss │ │ ├── _alert.scss │ │ ├── _nav-divider.scss │ │ ├── _text-emphasis.scss │ │ ├── _transition.scss │ │ ├── _text-hide.scss │ │ ├── _list-group.scss │ │ ├── _pagination.scss │ │ ├── _background-variant.scss │ │ ├── _reset-text.scss │ │ ├── _table-row.scss │ │ ├── _border-radius.scss │ │ ├── _screen-reader.scss │ │ ├── _hover.scss │ │ ├── _image.scss │ │ ├── _caret.scss │ │ ├── _grid.scss │ │ ├── _grid-framework.scss │ │ ├── _gradients.scss │ │ ├── _buttons.scss │ │ ├── _forms.scss │ │ └── _breakpoints.scss │ ├── _transitions.scss │ ├── _jumbotron.scss │ ├── bootstrap-reboot.scss │ ├── _utilities.scss │ ├── _root.scss │ ├── bootstrap-grid.scss │ ├── _close.scss │ ├── _progress.scss │ ├── bootstrap.scss │ ├── _mixins.scss │ ├── _badge.scss │ ├── _grid.scss │ ├── _code.scss │ ├── _images.scss │ ├── _alert.scss │ ├── _breadcrumb.scss │ ├── _pagination.scss │ ├── _nav.scss │ ├── _type.scss │ ├── _functions.scss │ ├── _tooltip.scss │ ├── _print.scss │ ├── _list-group.scss │ ├── _buttons.scss │ ├── _tables.scss │ ├── _dropdown.scss │ ├── _button-group.scss │ ├── _popover.scss │ ├── _modal.scss │ ├── _input-group.scss │ ├── _carousel.scss │ ├── _card.scss │ └── _navbar.scss └── .DS_Store ├── images ├── ai.jpg ├── ai2.jpg ├── ani.jpg ├── emb.jpg ├── iot.jpg ├── loc.png ├── web.jpg ├── you.jpg ├── .DS_Store ├── bg_1.jpg ├── bg_2.jpg ├── bg_3.jpg ├── bg_4.jpg ├── cloud.jpg ├── cyber.jpg ├── img1.png ├── img2.png ├── img3.png ├── iot2.jpg ├── linux.jpg ├── robo.jpg ├── robo2.jpg ├── web2.jpg ├── cloud2.jpg ├── cyber2.jpg ├── image_10.jpg ├── image_11.jpg ├── image_2.jpg ├── image_6.jpg ├── linux2.png ├── person_4.jpg ├── blockchain.jpg └── blockchain2.png ├── js ├── .DS_Store ├── jquery.animateNumber.min.js ├── google-map.js ├── main.js ├── scrollax.min.js └── jquery.waypoints.min.js ├── logoiee2.png ├── fonts ├── .DS_Store ├── flaticon │ ├── .DS_Store │ ├── font │ │ ├── Flaticon.eot │ │ ├── Flaticon.ttf │ │ ├── Flaticon.woff │ │ ├── flaticon.css │ │ └── _flaticon.scss │ ├── license │ │ └── license.pdf │ └── backup.txt ├── icomoon │ ├── icomoon.eot │ ├── icomoon.ttf │ └── icomoon.woff ├── ionicons │ └── fonts │ │ ├── .DS_Store │ │ ├── ionicons.eot │ │ ├── ionicons.ttf │ │ ├── ionicons.woff │ │ └── ionicons.woff2 └── open-iconic │ ├── open-iconic.eot │ ├── open-iconic.otf │ ├── open-iconic.ttf │ └── open-iconic.woff ├── README.md └── contact.html /css/css/mixins/_text-hide.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/.DS_Store -------------------------------------------------------------------------------- /logoiee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/logoiee.png -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/css/.DS_Store -------------------------------------------------------------------------------- /images/ai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/ai.jpg -------------------------------------------------------------------------------- /images/ai2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/ai2.jpg -------------------------------------------------------------------------------- /images/ani.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/ani.jpg -------------------------------------------------------------------------------- /images/emb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/emb.jpg -------------------------------------------------------------------------------- /images/iot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/iot.jpg -------------------------------------------------------------------------------- /images/loc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/loc.png -------------------------------------------------------------------------------- /images/web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/web.jpg -------------------------------------------------------------------------------- /images/you.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/you.jpg -------------------------------------------------------------------------------- /js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/js/.DS_Store -------------------------------------------------------------------------------- /logoiee2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/logoiee2.png -------------------------------------------------------------------------------- /scss/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/scss/.DS_Store -------------------------------------------------------------------------------- /fonts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/.DS_Store -------------------------------------------------------------------------------- /images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/.DS_Store -------------------------------------------------------------------------------- /images/bg_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/bg_1.jpg -------------------------------------------------------------------------------- /images/bg_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/bg_2.jpg -------------------------------------------------------------------------------- /images/bg_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/bg_3.jpg -------------------------------------------------------------------------------- /images/bg_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/bg_4.jpg -------------------------------------------------------------------------------- /images/cloud.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/cloud.jpg -------------------------------------------------------------------------------- /images/cyber.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/cyber.jpg -------------------------------------------------------------------------------- /images/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/img1.png -------------------------------------------------------------------------------- /images/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/img2.png -------------------------------------------------------------------------------- /images/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/img3.png -------------------------------------------------------------------------------- /images/iot2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/iot2.jpg -------------------------------------------------------------------------------- /images/linux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/linux.jpg -------------------------------------------------------------------------------- /images/robo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/robo.jpg -------------------------------------------------------------------------------- /images/robo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/robo2.jpg -------------------------------------------------------------------------------- /images/web2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/web2.jpg -------------------------------------------------------------------------------- /css/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/css/ajax-loader.gif -------------------------------------------------------------------------------- /images/cloud2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/cloud2.jpg -------------------------------------------------------------------------------- /images/cyber2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/cyber2.jpg -------------------------------------------------------------------------------- /images/image_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/image_10.jpg -------------------------------------------------------------------------------- /images/image_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/image_11.jpg -------------------------------------------------------------------------------- /images/image_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/image_2.jpg -------------------------------------------------------------------------------- /images/image_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/image_6.jpg -------------------------------------------------------------------------------- /images/linux2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/linux2.png -------------------------------------------------------------------------------- /images/person_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/person_4.jpg -------------------------------------------------------------------------------- /images/blockchain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/blockchain.jpg -------------------------------------------------------------------------------- /fonts/flaticon/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/flaticon/.DS_Store -------------------------------------------------------------------------------- /images/blockchain2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/images/blockchain2.png -------------------------------------------------------------------------------- /fonts/icomoon/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/icomoon/icomoon.eot -------------------------------------------------------------------------------- /fonts/icomoon/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/icomoon/icomoon.ttf -------------------------------------------------------------------------------- /fonts/icomoon/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/icomoon/icomoon.woff -------------------------------------------------------------------------------- /fonts/ionicons/fonts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/ionicons/fonts/.DS_Store -------------------------------------------------------------------------------- /fonts/flaticon/font/Flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/flaticon/font/Flaticon.eot -------------------------------------------------------------------------------- /fonts/flaticon/font/Flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/flaticon/font/Flaticon.ttf -------------------------------------------------------------------------------- /fonts/flaticon/font/Flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/flaticon/font/Flaticon.woff -------------------------------------------------------------------------------- /fonts/flaticon/license/license.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/flaticon/license/license.pdf -------------------------------------------------------------------------------- /fonts/ionicons/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/ionicons/fonts/ionicons.eot -------------------------------------------------------------------------------- /fonts/ionicons/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/ionicons/fonts/ionicons.ttf -------------------------------------------------------------------------------- /fonts/ionicons/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/ionicons/fonts/ionicons.woff -------------------------------------------------------------------------------- /fonts/open-iconic/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/open-iconic/open-iconic.eot -------------------------------------------------------------------------------- /fonts/open-iconic/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/open-iconic/open-iconic.otf -------------------------------------------------------------------------------- /fonts/open-iconic/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/open-iconic/open-iconic.ttf -------------------------------------------------------------------------------- /fonts/open-iconic/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/open-iconic/open-iconic.woff -------------------------------------------------------------------------------- /fonts/ionicons/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amberkakkar01/Event-Scheduler/HEAD/fonts/ionicons/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /scss/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | display: flex; 3 | align-items: flex-start; 4 | } 5 | 6 | .media-body { 7 | flex: 1; 8 | } 9 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_box-shadow.scss: -------------------------------------------------------------------------------- 1 | @mixin box-shadow($shadow...) { 2 | @if $enable-shadows { 3 | box-shadow: $shadow; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height: $width) { 4 | width: $width; 5 | height: $height; 6 | } 7 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Visibility 4 | 5 | @mixin invisible($visibility) { 6 | visibility: $visibility !important; 7 | } 8 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only { 6 | @include sr-only(); 7 | } 8 | 9 | .sr-only-focusable { 10 | @include sr-only-focusable(); 11 | } 12 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Visibility utilities 3 | // 4 | 5 | .visible { 6 | @include invisible(visible); 7 | } 8 | 9 | .invisible { 10 | @include invisible(hidden); 11 | } 12 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Event-Scheduler 2 | A event scheduler is a timetable for an event , program to held along with its details. In turn, event schedule management is the process of developing, maintaining, and communicating event schedules for time and resource planning. 3 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_float.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @mixin float-left { 4 | float: left !important; 5 | } 6 | @mixin float-right { 7 | float: right !important; 8 | } 9 | @mixin float-none { 10 | float: none !important; 11 | } 12 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_shadows.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .shadow-sm { box-shadow: $box-shadow-sm !important; } 4 | .shadow { box-shadow: $box-shadow !important; } 5 | .shadow-lg { box-shadow: $box-shadow-lg !important; } 6 | .shadow-none { box-shadow: none !important; } 7 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_badge.scss: -------------------------------------------------------------------------------- 1 | @mixin badge-variant($bg) { 2 | color: color-yiq($bg); 3 | background-color: $bg; 4 | 5 | &[href] { 6 | @include hover-focus { 7 | color: color-yiq($bg); 8 | text-decoration: none; 9 | background-color: darken($bg, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: $color; 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | hr { 7 | border-top-color: darken($border, 5%); 8 | } 9 | 10 | .alert-link { 11 | color: darken($color, 10%); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) { 6 | height: 0; 7 | margin: $margin-y 0; 8 | overflow: hidden; 9 | border-top: 1px solid $color; 10 | } 11 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Typography 4 | 5 | @mixin text-emphasis-variant($parent, $color) { 6 | #{$parent} { 7 | color: $color !important; 8 | } 9 | a#{$parent} { 10 | @include hover-focus { 11 | color: darken($color, 10%) !important; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_transition.scss: -------------------------------------------------------------------------------- 1 | @mixin transition($transition...) { 2 | @if $enable-transitions { 3 | @if length($transition) == 0 { 4 | transition: $transition-base; 5 | } @else { 6 | transition: $transition; 7 | } 8 | } 9 | 10 | @media screen and (prefers-reduced-motion: reduce) { 11 | transition: none; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Width and height 4 | 5 | @each $prop, $abbrev in (width: w, height: h) { 6 | @each $size, $length in $sizes { 7 | .#{$abbrev}-#{$size} { #{$prop}: $length !important; } 8 | } 9 | } 10 | 11 | .mw-100 { max-width: 100% !important; } 12 | .mh-100 { max-height: 100% !important; } 13 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_float.scss: -------------------------------------------------------------------------------- 1 | @each $breakpoint in map-keys($grid-breakpoints) { 2 | @include media-breakpoint-up($breakpoint) { 3 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 4 | 5 | .float#{$infix}-left { @include float-left; } 6 | .float#{$infix}-right { @include float-right; } 7 | .float#{$infix}-none { @include float-none; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_text-hide.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | @mixin text-hide() { 3 | // stylelint-disable-next-line font-family-no-missing-generic-family-keyword 4 | font: 0/0 a; 5 | color: transparent; 6 | text-shadow: none; 7 | background-color: transparent; 8 | border: 0; 9 | 10 | @warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5."; 11 | } 12 | -------------------------------------------------------------------------------- /scss/bootstrap/_transitions.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | .fade { 4 | @include transition($transition-fade); 5 | 6 | &:not(.show) { 7 | opacity: 0; 8 | } 9 | } 10 | 11 | .collapse { 12 | &:not(.show) { 13 | display: none; 14 | } 15 | } 16 | 17 | .collapsing { 18 | position: relative; 19 | height: 0; 20 | overflow: hidden; 21 | @include transition($transition-collapse); 22 | } 23 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_align.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .align-baseline { vertical-align: baseline !important; } // Browser default 4 | .align-top { vertical-align: top !important; } 5 | .align-middle { vertical-align: middle !important; } 6 | .align-bottom { vertical-align: bottom !important; } 7 | .align-text-bottom { vertical-align: text-bottom !important; } 8 | .align-text-top { vertical-align: text-top !important; } 9 | -------------------------------------------------------------------------------- /scss/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | padding: $jumbotron-padding ($jumbotron-padding / 2); 3 | margin-bottom: $jumbotron-padding; 4 | background-color: $jumbotron-bg; 5 | @include border-radius($border-radius-lg); 6 | 7 | @include media-breakpoint-up(sm) { 8 | padding: ($jumbotron-padding * 2) $jumbotron-padding; 9 | } 10 | } 11 | 12 | .jumbotron-fluid { 13 | padding-right: 0; 14 | padding-left: 0; 15 | @include border-radius(0); 16 | } 17 | -------------------------------------------------------------------------------- /scss/bootstrap/bootstrap-reboot.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | 9 | @import "functions"; 10 | @import "variables"; 11 | @import "mixins"; 12 | @import "reboot"; 13 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $color, $value in $theme-colors { 4 | @include bg-variant(".bg-#{$color}", $value); 5 | } 6 | 7 | @if $enable-gradients { 8 | @each $color, $value in $theme-colors { 9 | @include bg-gradient-variant(".bg-gradient-#{$color}", $value); 10 | } 11 | } 12 | 13 | .bg-white { 14 | background-color: $white !important; 15 | } 16 | 17 | .bg-transparent { 18 | background-color: transparent !important; 19 | } 20 | -------------------------------------------------------------------------------- /scss/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/align"; 2 | @import "utilities/background"; 3 | @import "utilities/borders"; 4 | @import "utilities/clearfix"; 5 | @import "utilities/display"; 6 | @import "utilities/embed"; 7 | @import "utilities/flex"; 8 | @import "utilities/float"; 9 | @import "utilities/position"; 10 | @import "utilities/screenreaders"; 11 | @import "utilities/shadows"; 12 | @import "utilities/sizing"; 13 | @import "utilities/spacing"; 14 | @import "utilities/text"; 15 | @import "utilities/visibility"; 16 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | &.list-group-item-action { 9 | @include hover-focus { 10 | color: $color; 11 | background-color: darken($background, 5%); 12 | } 13 | 14 | &.active { 15 | color: $white; 16 | background-color: $color; 17 | border-color: $color; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /fonts/flaticon/backup.txt: -------------------------------------------------------------------------------- 1 | eyIxIjp7IklEIjoxLCJuYW1lIjoiTXkgaWNvbnMgY29sbGVjdGlvbiIsImJvb2ttYXJrX2lkIjoiZHpvejQ5Z2pvNjAwMDAwMCIsImNyZWF0ZWQiOm51bGwsInVwZGF0ZWQiOjE1MzIzNTAzNTEsImFjdGl2ZSI6MSwic291cmNlIjoibG9jYWwiLCJvcmRlciI6MCwiY29sb3IiOiIwMDAwMDAiLCJzdGF0dXMiOjF9LCJkem96NDlnam82MDAwMDAwIjpbeyJpZCI6MTAxNjMyMywidGVhbSI6MCwibmFtZSI6Imd5bSIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjF9LHsiaWQiOjY0OTQyNiwidGVhbSI6MCwibmFtZSI6InlvZ2EiLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0IjozfSx7ImlkIjoyODkzOTMsInRlYW0iOjAsIm5hbWUiOiJneW0iLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0IjoyfV19 -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 4 | .page-link { 5 | padding: $padding-y $padding-x; 6 | font-size: $font-size; 7 | line-height: $line-height; 8 | } 9 | 10 | .page-item { 11 | &:first-child { 12 | .page-link { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | .page-link { 18 | @include border-right-radius($border-radius); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Contextual backgrounds 4 | 5 | @mixin bg-variant($parent, $color) { 6 | #{$parent} { 7 | background-color: $color !important; 8 | } 9 | a#{$parent}, 10 | button#{$parent} { 11 | @include hover-focus { 12 | background-color: darken($color, 10%) !important; 13 | } 14 | } 15 | } 16 | 17 | @mixin bg-gradient-variant($parent, $color) { 18 | #{$parent} { 19 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size or word-wrap. 4 | font-style: normal; 5 | font-weight: $font-weight-normal; 6 | line-height: $line-height-base; 7 | text-align: left; // Fallback for where `start` is not supported 8 | text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties 9 | text-decoration: none; 10 | text-shadow: none; 11 | text-transform: none; 12 | letter-spacing: normal; 13 | word-break: normal; 14 | word-spacing: normal; 15 | white-space: normal; 16 | line-break: auto; 17 | } 18 | -------------------------------------------------------------------------------- /scss/bootstrap/_root.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | // Custom variable values only support SassScript inside `#{}`. 3 | @each $color, $value in $colors { 4 | --#{$color}: #{$value}; 5 | } 6 | 7 | @each $color, $value in $theme-colors { 8 | --#{$color}: #{$value}; 9 | } 10 | 11 | @each $bp, $value in $grid-breakpoints { 12 | --breakpoint-#{$bp}: #{$value}; 13 | } 14 | 15 | // Use `inspect` for lists so that quoted items keep the quotes. 16 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 17 | --font-family-sans-serif: #{inspect($font-family-sans-serif)}; 18 | --font-family-monospace: #{inspect($font-family-monospace)}; 19 | } 20 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table-#{$state} { 7 | &, 8 | > th, 9 | > td { 10 | background-color: $background; 11 | } 12 | } 13 | 14 | // Hover states for `.table-hover` 15 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 16 | .table-hover { 17 | $hover-background: darken($background, 5%); 18 | 19 | .table-#{$state} { 20 | @include hover { 21 | background-color: $hover-background; 22 | 23 | > td, 24 | > th { 25 | background-color: $hover-background; 26 | } 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scss/bootstrap/bootstrap-grid.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.1.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | @at-root { 9 | @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix 10 | } 11 | 12 | html { 13 | box-sizing: border-box; 14 | -ms-overflow-style: scrollbar; 15 | } 16 | 17 | *, 18 | *::before, 19 | *::after { 20 | box-sizing: inherit; 21 | } 22 | 23 | @import "functions"; 24 | @import "variables"; 25 | 26 | @import "mixins/breakpoints"; 27 | @import "mixins/grid-framework"; 28 | @import "mixins/grid"; 29 | 30 | @import "grid"; 31 | @import "utilities/display"; 32 | @import "utilities/flex"; 33 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_position.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Common values 4 | 5 | // Sass list not in variables since it's not intended for customization. 6 | // stylelint-disable-next-line scss/dollar-variable-default 7 | $positions: static, relative, absolute, fixed, sticky; 8 | 9 | @each $position in $positions { 10 | .position-#{$position} { position: $position !important; } 11 | } 12 | 13 | // Shorthand 14 | 15 | .fixed-top { 16 | position: fixed; 17 | top: 0; 18 | right: 0; 19 | left: 0; 20 | z-index: $zindex-fixed; 21 | } 22 | 23 | .fixed-bottom { 24 | position: fixed; 25 | right: 0; 26 | bottom: 0; 27 | left: 0; 28 | z-index: $zindex-fixed; 29 | } 30 | 31 | .sticky-top { 32 | @supports (position: sticky) { 33 | position: sticky; 34 | top: 0; 35 | z-index: $zindex-sticky; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-radius($radius: $border-radius) { 4 | @if $enable-rounded { 5 | border-radius: $radius; 6 | } 7 | } 8 | 9 | @mixin border-top-radius($radius) { 10 | @if $enable-rounded { 11 | border-top-left-radius: $radius; 12 | border-top-right-radius: $radius; 13 | } 14 | } 15 | 16 | @mixin border-right-radius($radius) { 17 | @if $enable-rounded { 18 | border-top-right-radius: $radius; 19 | border-bottom-right-radius: $radius; 20 | } 21 | } 22 | 23 | @mixin border-bottom-radius($radius) { 24 | @if $enable-rounded { 25 | border-bottom-right-radius: $radius; 26 | border-bottom-left-radius: $radius; 27 | } 28 | } 29 | 30 | @mixin border-left-radius($radius) { 31 | @if $enable-rounded { 32 | border-top-left-radius: $radius; 33 | border-bottom-left-radius: $radius; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Only display content to screen readers 2 | // 3 | // See: https://a11yproject.com/posts/how-to-hide-content/ 4 | // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ 5 | 6 | @mixin sr-only { 7 | position: absolute; 8 | width: 1px; 9 | height: 1px; 10 | padding: 0; 11 | overflow: hidden; 12 | clip: rect(0, 0, 0, 0); 13 | white-space: nowrap; 14 | border: 0; 15 | } 16 | 17 | // Use in conjunction with .sr-only to only display content when it's focused. 18 | // 19 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 20 | // 21 | // Credit: HTML5 Boilerplate 22 | 23 | @mixin sr-only-focusable { 24 | &:active, 25 | &:focus { 26 | position: static; 27 | width: auto; 28 | height: auto; 29 | overflow: visible; 30 | clip: auto; 31 | white-space: normal; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_hover.scss: -------------------------------------------------------------------------------- 1 | // Hover mixin and `$enable-hover-media-query` are deprecated. 2 | // 3 | // Origally added during our alphas and maintained during betas, this mixin was 4 | // designed to prevent `:hover` stickiness on iOS-an issue where hover styles 5 | // would persist after initial touch. 6 | // 7 | // For backward compatibility, we've kept these mixins and updated them to 8 | // always return their regular psuedo-classes instead of a shimmed media query. 9 | // 10 | // Issue: https://github.com/twbs/bootstrap/issues/25195 11 | 12 | @mixin hover { 13 | &:hover { @content; } 14 | } 15 | 16 | @mixin hover-focus { 17 | &:hover, 18 | &:focus { 19 | @content; 20 | } 21 | } 22 | 23 | @mixin plain-hover-focus { 24 | &, 25 | &:hover, 26 | &:focus { 27 | @content; 28 | } 29 | } 30 | 31 | @mixin hover-focus-active { 32 | &:hover, 33 | &:focus, 34 | &:active { 35 | @content; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_embed.scss: -------------------------------------------------------------------------------- 1 | // Credit: Nicolas Gallagher and SUIT CSS. 2 | 3 | .embed-responsive { 4 | position: relative; 5 | display: block; 6 | width: 100%; 7 | padding: 0; 8 | overflow: hidden; 9 | 10 | &::before { 11 | display: block; 12 | content: ""; 13 | } 14 | 15 | .embed-responsive-item, 16 | iframe, 17 | embed, 18 | object, 19 | video { 20 | position: absolute; 21 | top: 0; 22 | bottom: 0; 23 | left: 0; 24 | width: 100%; 25 | height: 100%; 26 | border: 0; 27 | } 28 | } 29 | 30 | .embed-responsive-21by9 { 31 | &::before { 32 | padding-top: percentage(9 / 21); 33 | } 34 | } 35 | 36 | .embed-responsive-16by9 { 37 | &::before { 38 | padding-top: percentage(9 / 16); 39 | } 40 | } 41 | 42 | .embed-responsive-4by3 { 43 | &::before { 44 | padding-top: percentage(3 / 4); 45 | } 46 | } 47 | 48 | .embed-responsive-1by1 { 49 | &::before { 50 | padding-top: percentage(1 / 1); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /scss/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | .close { 2 | float: right; 3 | font-size: $close-font-size; 4 | font-weight: $close-font-weight; 5 | line-height: 1; 6 | color: $close-color; 7 | text-shadow: $close-text-shadow; 8 | opacity: .5; 9 | 10 | @include hover-focus { 11 | color: $close-color; 12 | text-decoration: none; 13 | opacity: .75; 14 | } 15 | 16 | // Opinionated: add "hand" cursor to non-disabled .close elements 17 | &:not(:disabled):not(.disabled) { 18 | cursor: pointer; 19 | } 20 | } 21 | 22 | // Additional properties for button version 23 | // iOS requires the button element instead of an anchor tag. 24 | // If you want the anchor version, it requires `href="#"`. 25 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 26 | 27 | // stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type 28 | button.close { 29 | padding: 0; 30 | background-color: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | // stylelint-enable 35 | -------------------------------------------------------------------------------- /css/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-theme .owl-dots, 7 | .owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent} 8 | .owl-theme .owl-nav{margin-top:10px} 9 | .owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px;position: absolute;} 10 | .owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none} 11 | .owl-theme .owl-nav .disabled{opacity:.5;cursor:default} 12 | .owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px} 13 | .owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1} 14 | .owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px} 15 | .owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /scss/bootstrap/_progress.scss: -------------------------------------------------------------------------------- 1 | @keyframes progress-bar-stripes { 2 | from { background-position: $progress-height 0; } 3 | to { background-position: 0 0; } 4 | } 5 | 6 | .progress { 7 | display: flex; 8 | height: $progress-height; 9 | overflow: hidden; // force rounded corners by cropping it 10 | font-size: $progress-font-size; 11 | background-color: $progress-bg; 12 | @include border-radius($progress-border-radius); 13 | @include box-shadow($progress-box-shadow); 14 | } 15 | 16 | .progress-bar { 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: center; 20 | color: $progress-bar-color; 21 | text-align: center; 22 | white-space: nowrap; 23 | background-color: $progress-bar-bg; 24 | @include transition($progress-bar-transition); 25 | } 26 | 27 | .progress-bar-striped { 28 | @include gradient-striped(); 29 | background-size: $progress-height $progress-height; 30 | } 31 | 32 | .progress-bar-animated { 33 | animation: progress-bar-stripes $progress-bar-animation-timing; 34 | } 35 | -------------------------------------------------------------------------------- /fonts/flaticon/font/flaticon.css: -------------------------------------------------------------------------------- 1 | /* 2 | Flaticon icon font: Flaticon 3 | Creation date: 23/07/2018 14:52 4 | */ 5 | 6 | @font-face { 7 | font-family: "Flaticon"; 8 | src: url("./Flaticon.eot"); 9 | src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), 10 | url("./Flaticon.woff") format("woff"), 11 | url("./Flaticon.ttf") format("truetype"), 12 | url("./Flaticon.svg#Flaticon") format("svg"); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | @media screen and (-webkit-min-device-pixel-ratio:0) { 18 | @font-face { 19 | font-family: "Flaticon"; 20 | src: url("./Flaticon.svg#Flaticon") format("svg"); 21 | } 22 | } 23 | 24 | [class^="flaticon-"]:before, [class*=" flaticon-"]:before, 25 | [class^="flaticon-"]:after, [class*=" flaticon-"]:after { 26 | font-family: Flaticon; 27 | font-size: 20px; 28 | font-style: normal; 29 | margin-left: 20px; 30 | } 31 | 32 | .flaticon-yoga:before { content: "\f100"; } 33 | .flaticon-gym-1:before { content: "\f101"; } 34 | .flaticon-gym:before { content: "\f102"; } -------------------------------------------------------------------------------- /scss/bootstrap/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.1.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | @import "functions"; 9 | @import "variables"; 10 | @import "mixins"; 11 | @import "root"; 12 | @import "reboot"; 13 | @import "type"; 14 | @import "images"; 15 | @import "code"; 16 | @import "grid"; 17 | @import "tables"; 18 | @import "forms"; 19 | @import "buttons"; 20 | @import "transitions"; 21 | @import "dropdown"; 22 | @import "button-group"; 23 | @import "input-group"; 24 | @import "custom-forms"; 25 | @import "nav"; 26 | @import "navbar"; 27 | @import "card"; 28 | @import "breadcrumb"; 29 | @import "pagination"; 30 | @import "badge"; 31 | @import "jumbotron"; 32 | @import "alert"; 33 | @import "progress"; 34 | @import "media"; 35 | @import "list-group"; 36 | @import "close"; 37 | @import "modal"; 38 | @import "tooltip"; 39 | @import "popover"; 40 | @import "carousel"; 41 | @import "utilities"; 42 | @import "print"; 43 | -------------------------------------------------------------------------------- /scss/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Toggles 2 | // 3 | // Used in conjunction with global variables to enable certain theme features. 4 | 5 | // Utilities 6 | @import "mixins/breakpoints"; 7 | @import "mixins/hover"; 8 | @import "mixins/image"; 9 | @import "mixins/badge"; 10 | @import "mixins/resize"; 11 | @import "mixins/screen-reader"; 12 | @import "mixins/size"; 13 | @import "mixins/reset-text"; 14 | @import "mixins/text-emphasis"; 15 | @import "mixins/text-hide"; 16 | @import "mixins/text-truncate"; 17 | @import "mixins/visibility"; 18 | 19 | // // Components 20 | @import "mixins/alert"; 21 | @import "mixins/buttons"; 22 | @import "mixins/caret"; 23 | @import "mixins/pagination"; 24 | @import "mixins/lists"; 25 | @import "mixins/list-group"; 26 | @import "mixins/nav-divider"; 27 | @import "mixins/forms"; 28 | @import "mixins/table-row"; 29 | 30 | // // Skins 31 | @import "mixins/background-variant"; 32 | @import "mixins/border-radius"; 33 | @import "mixins/box-shadow"; 34 | @import "mixins/gradients"; 35 | @import "mixins/transition"; 36 | 37 | // // Layout 38 | @import "mixins/clearfix"; 39 | @import "mixins/grid-framework"; 40 | @import "mixins/grid"; 41 | @import "mixins/float"; 42 | -------------------------------------------------------------------------------- /scss/bootstrap/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | font-size: $badge-font-size; 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | 17 | // Empty badges collapse automatically 18 | &:empty { 19 | display: none; 20 | } 21 | } 22 | 23 | // Quick fix for badges in buttons 24 | .btn .badge { 25 | position: relative; 26 | top: -1px; 27 | } 28 | 29 | // Pill badges 30 | // 31 | // Make them extra rounded with a modifier to replace v3's badges. 32 | 33 | .badge-pill { 34 | padding-right: $badge-pill-padding-x; 35 | padding-left: $badge-pill-padding-x; 36 | @include border-radius($badge-pill-border-radius); 37 | } 38 | 39 | // Colors 40 | // 41 | // Contextual variations (linked badges get darker on :hover). 42 | 43 | @each $color, $value in $theme-colors { 44 | .badge-#{$color} { 45 | @include badge-variant($value); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /scss/bootstrap/_grid.scss: -------------------------------------------------------------------------------- 1 | // Container widths 2 | // 3 | // Set the container width, and override it for fixed navbars in media queries. 4 | 5 | @if $enable-grid-classes { 6 | .container { 7 | @include make-container(); 8 | @include make-container-max-widths(); 9 | } 10 | } 11 | 12 | // Fluid container 13 | // 14 | // Utilizes the mixin meant for fixed width containers, but with 100% width for 15 | // fluid, full width layouts. 16 | 17 | @if $enable-grid-classes { 18 | .container-fluid { 19 | @include make-container(); 20 | } 21 | } 22 | 23 | // Row 24 | // 25 | // Rows contain and clear the floats of your columns. 26 | 27 | @if $enable-grid-classes { 28 | .row { 29 | @include make-row(); 30 | } 31 | 32 | // Remove the negative margin from default .row, then the horizontal padding 33 | // from all immediate children columns (to prevent runaway style inheritance). 34 | .no-gutters { 35 | margin-right: 0; 36 | margin-left: 0; 37 | 38 | > .col, 39 | > [class*="col-"] { 40 | padding-right: 0; 41 | padding-left: 0; 42 | } 43 | } 44 | } 45 | 46 | // Columns 47 | // 48 | // Common styles for small and large grid columns 49 | 50 | @if $enable-grid-classes { 51 | @include make-grid-columns(); 52 | } 53 | -------------------------------------------------------------------------------- /scss/bootstrap/_code.scss: -------------------------------------------------------------------------------- 1 | // Inline and block code styles 2 | code, 3 | kbd, 4 | pre, 5 | samp { 6 | font-family: $font-family-monospace; 7 | } 8 | 9 | // Inline code 10 | code { 11 | font-size: $code-font-size; 12 | color: $code-color; 13 | word-break: break-word; 14 | 15 | // Streamline the style when inside anchors to avoid broken underline and more 16 | a > & { 17 | color: inherit; 18 | } 19 | } 20 | 21 | // User input typically entered via keyboard 22 | kbd { 23 | padding: $kbd-padding-y $kbd-padding-x; 24 | font-size: $kbd-font-size; 25 | color: $kbd-color; 26 | background-color: $kbd-bg; 27 | @include border-radius($border-radius-sm); 28 | @include box-shadow($kbd-box-shadow); 29 | 30 | kbd { 31 | padding: 0; 32 | font-size: 100%; 33 | font-weight: $nested-kbd-font-weight; 34 | @include box-shadow(none); 35 | } 36 | } 37 | 38 | // Blocks of code 39 | pre { 40 | display: block; 41 | font-size: $code-font-size; 42 | color: $pre-color; 43 | 44 | // Account for some code outputs that place code tags in pre tags 45 | code { 46 | font-size: inherit; 47 | color: inherit; 48 | word-break: normal; 49 | } 50 | } 51 | 52 | // Enable scrollable blocks of code 53 | .pre-scrollable { 54 | max-height: $pre-scrollable-max-height; 55 | overflow-y: scroll; 56 | } 57 | -------------------------------------------------------------------------------- /scss/bootstrap/_images.scss: -------------------------------------------------------------------------------- 1 | // Responsive images (ensure images don't scale beyond their parents) 2 | // 3 | // This is purposefully opt-in via an explicit class rather than being the default for all ``s. 4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2, 5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps) 6 | // which weren't expecting the images within themselves to be involuntarily resized. 7 | // See also https://github.com/twbs/bootstrap/issues/18178 8 | .img-fluid { 9 | @include img-fluid; 10 | } 11 | 12 | 13 | // Image thumbnails 14 | .img-thumbnail { 15 | padding: $thumbnail-padding; 16 | background-color: $thumbnail-bg; 17 | border: $thumbnail-border-width solid $thumbnail-border-color; 18 | @include border-radius($thumbnail-border-radius); 19 | @include box-shadow($thumbnail-box-shadow); 20 | 21 | // Keep them at most 100% wide 22 | @include img-fluid; 23 | } 24 | 25 | // 26 | // Figures 27 | // 28 | 29 | .figure { 30 | // Ensures the caption's text aligns with the image. 31 | display: inline-block; 32 | } 33 | 34 | .figure-img { 35 | margin-bottom: ($spacer / 2); 36 | line-height: 1; 37 | } 38 | 39 | .figure-caption { 40 | font-size: $figure-caption-font-size; 41 | color: $figure-caption-color; 42 | } 43 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | 10 | @mixin img-fluid { 11 | // Part 1: Set a maximum relative to the parent 12 | max-width: 100%; 13 | // Part 2: Override the height to auto, otherwise images will be stretched 14 | // when setting a width and height attribute on the img element. 15 | height: auto; 16 | } 17 | 18 | 19 | // Retina image 20 | // 21 | // Short retina mixin for setting background-image and -size. 22 | 23 | // stylelint-disable indentation, media-query-list-comma-newline-after 24 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 25 | background-image: url($file-1x); 26 | 27 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, 28 | // but doesn't convert dppx=>dpi. 29 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. 30 | // Compatibility info: https://caniuse.com/#feat=css-media-resolution 31 | @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx 32 | only screen and (min-resolution: 2dppx) { // Standardized 33 | background-image: url($file-2x); 34 | background-size: $width-1x $height-1x; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /css/flaticon.css: -------------------------------------------------------------------------------- 1 | /* 2 | Flaticon icon font: Flaticon 3 | Creation date: 23/07/2018 14:52 4 | */ 5 | 6 | @font-face { 7 | font-family: "Flaticon"; 8 | src: url("../fonts/flaticon/font/Flaticon.eot"); 9 | src: url("../fonts/flaticon/font/Flaticon.eot?#iefix") format("embedded-opentype"), 10 | url("../fonts/flaticon/font/Flaticon.woff") format("woff"), 11 | url("../fonts/flaticon/font/Flaticon.ttf") format("truetype"), 12 | url("../fonts/flaticon/font/Flaticon.svg#Flaticon") format("svg"); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | @media screen and (-webkit-min-device-pixel-ratio:0) { 18 | @font-face { 19 | font-family: "Flaticon"; 20 | src: url("../fonts/flaticon/font/Flaticon.svg#Flaticon") format("svg"); 21 | } 22 | } 23 | 24 | [class^="flaticon-"]:before, [class*=" flaticon-"]:before, 25 | [class^="flaticon-"]:after, [class*=" flaticon-"]:after { 26 | font-family: Flaticon; 27 | font-style: normal; 28 | font-weight: normal; 29 | font-variant: normal; 30 | text-transform: none; 31 | line-height: 1; 32 | 33 | /* Better Font Rendering =========== */ 34 | -webkit-font-smoothing: antialiased; 35 | -moz-osx-font-smoothing: grayscale; 36 | } 37 | 38 | .flaticon-yoga:before { content: "\f100"; } 39 | .flaticon-gym-1:before { content: "\f101"; } 40 | .flaticon-gym:before { content: "\f102"; } -------------------------------------------------------------------------------- /scss/bootstrap/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: ($close-font-size + $alert-padding-x * 2); 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /fonts/flaticon/font/_flaticon.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Flaticon icon font: Flaticon 3 | Creation date: 23/07/2018 14:52 4 | */ 5 | 6 | @font-face { 7 | font-family: "Flaticon"; 8 | src: url("./Flaticon.eot"); 9 | src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), 10 | url("./Flaticon.woff") format("woff"), 11 | url("./Flaticon.ttf") format("truetype"), 12 | url("./Flaticon.svg#Flaticon") format("svg"); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | @media screen and (-webkit-min-device-pixel-ratio:0) { 18 | @font-face { 19 | font-family: "Flaticon"; 20 | src: url("./Flaticon.svg#Flaticon") format("svg"); 21 | } 22 | } 23 | 24 | .fi:before{ 25 | display: inline-block; 26 | font-family: "Flaticon"; 27 | font-style: normal; 28 | font-weight: normal; 29 | font-variant: normal; 30 | line-height: 1; 31 | text-decoration: inherit; 32 | text-rendering: optimizeLegibility; 33 | text-transform: none; 34 | -moz-osx-font-smoothing: grayscale; 35 | -webkit-font-smoothing: antialiased; 36 | font-smoothing: antialiased; 37 | } 38 | 39 | .flaticon-yoga:before { content: "\f100"; } 40 | .flaticon-gym-1:before { content: "\f101"; } 41 | .flaticon-gym:before { content: "\f102"; } 42 | 43 | $font-Flaticon-yoga: "\f100"; 44 | $font-Flaticon-gym-1: "\f101"; 45 | $font-Flaticon-gym: "\f102"; -------------------------------------------------------------------------------- /js/jquery.animateNumber.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | jQuery animateNumber plugin v0.0.14 3 | (c) 2013, Alexandr Borisov. 4 | https://github.com/aishek/jquery-animateNumber 5 | */ 6 | (function(d){var r=function(b){return b.split("").reverse().join("")},m={numberStep:function(b,a){var e=Math.floor(b);d(a.elem).text(e)}},g=function(b){var a=b.elem;a.nodeType&&a.parentNode&&(a=a._animateNumberSetter,a||(a=m.numberStep),a(b.now,b))};d.Tween&&d.Tween.propHooks?d.Tween.propHooks.number={set:g}:d.fx.step.number=g;d.animateNumber={numberStepFactories:{append:function(b){return function(a,e){var f=Math.floor(a);d(e.elem).prop("number",a).text(f+b)}},separator:function(b,a,e){b=b||" "; 7 | a=a||3;e=e||"";return function(f,k){var u=0>f,c=Math.floor((u?-1:1)*f).toString(),n=d(k.elem);if(c.length>a){for(var h=c,l=a,m=h.split("").reverse(),c=[],p,s,q,t=0,g=Math.ceil(h.length/l);t`s. The `::before` pseudo-element generates an element 26 | // *within* the .breadcrumb-item and thereby inherits the `text-decoration`. 27 | // 28 | // To trick IE into suppressing the underline, we give the pseudo-element an 29 | // underline and then immediately remove it. 30 | + .breadcrumb-item:hover::before { 31 | text-decoration: underline; 32 | } 33 | // stylelint-disable-next-line no-duplicate-selectors 34 | + .breadcrumb-item:hover::before { 35 | text-decoration: none; 36 | } 37 | 38 | &.active { 39 | color: $breadcrumb-active-color; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_display.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Utilities for common `display` values 5 | // 6 | 7 | @each $breakpoint in map-keys($grid-breakpoints) { 8 | @include media-breakpoint-up($breakpoint) { 9 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 10 | 11 | .d#{$infix}-none { display: none !important; } 12 | .d#{$infix}-inline { display: inline !important; } 13 | .d#{$infix}-inline-block { display: inline-block !important; } 14 | .d#{$infix}-block { display: block !important; } 15 | .d#{$infix}-table { display: table !important; } 16 | .d#{$infix}-table-row { display: table-row !important; } 17 | .d#{$infix}-table-cell { display: table-cell !important; } 18 | .d#{$infix}-flex { display: flex !important; } 19 | .d#{$infix}-inline-flex { display: inline-flex !important; } 20 | } 21 | } 22 | 23 | 24 | // 25 | // Utilities for toggling `display` in print 26 | // 27 | 28 | @media print { 29 | .d-print-none { display: none !important; } 30 | .d-print-inline { display: inline !important; } 31 | .d-print-inline-block { display: inline-block !important; } 32 | .d-print-block { display: block !important; } 33 | .d-print-table { display: table !important; } 34 | .d-print-table-row { display: table-row !important; } 35 | .d-print-table-cell { display: table-cell !important; } 36 | .d-print-flex { display: flex !important; } 37 | .d-print-inline-flex { display: inline-flex !important; } 38 | } 39 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_spacing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Margin and Padding 4 | 5 | @each $breakpoint in map-keys($grid-breakpoints) { 6 | @include media-breakpoint-up($breakpoint) { 7 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 8 | 9 | @each $prop, $abbrev in (margin: m, padding: p) { 10 | @each $size, $length in $spacers { 11 | 12 | .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; } 13 | .#{$abbrev}t#{$infix}-#{$size}, 14 | .#{$abbrev}y#{$infix}-#{$size} { 15 | #{$prop}-top: $length !important; 16 | } 17 | .#{$abbrev}r#{$infix}-#{$size}, 18 | .#{$abbrev}x#{$infix}-#{$size} { 19 | #{$prop}-right: $length !important; 20 | } 21 | .#{$abbrev}b#{$infix}-#{$size}, 22 | .#{$abbrev}y#{$infix}-#{$size} { 23 | #{$prop}-bottom: $length !important; 24 | } 25 | .#{$abbrev}l#{$infix}-#{$size}, 26 | .#{$abbrev}x#{$infix}-#{$size} { 27 | #{$prop}-left: $length !important; 28 | } 29 | } 30 | } 31 | 32 | // Some special margin utils 33 | .m#{$infix}-auto { margin: auto !important; } 34 | .mt#{$infix}-auto, 35 | .my#{$infix}-auto { 36 | margin-top: auto !important; 37 | } 38 | .mr#{$infix}-auto, 39 | .mx#{$infix}-auto { 40 | margin-right: auto !important; 41 | } 42 | .mb#{$infix}-auto, 43 | .my#{$infix}-auto { 44 | margin-bottom: auto !important; 45 | } 46 | .ml#{$infix}-auto, 47 | .mx#{$infix}-auto { 48 | margin-left: auto !important; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_caret.scss: -------------------------------------------------------------------------------- 1 | @mixin caret-down { 2 | border-top: $caret-width solid; 3 | border-right: $caret-width solid transparent; 4 | border-bottom: 0; 5 | border-left: $caret-width solid transparent; 6 | } 7 | 8 | @mixin caret-up { 9 | border-top: 0; 10 | border-right: $caret-width solid transparent; 11 | border-bottom: $caret-width solid; 12 | border-left: $caret-width solid transparent; 13 | } 14 | 15 | @mixin caret-right { 16 | border-top: $caret-width solid transparent; 17 | border-right: 0; 18 | border-bottom: $caret-width solid transparent; 19 | border-left: $caret-width solid; 20 | } 21 | 22 | @mixin caret-left { 23 | border-top: $caret-width solid transparent; 24 | border-right: $caret-width solid; 25 | border-bottom: $caret-width solid transparent; 26 | } 27 | 28 | @mixin caret($direction: down) { 29 | @if $enable-caret { 30 | &::after { 31 | display: inline-block; 32 | width: 0; 33 | height: 0; 34 | margin-left: $caret-width * .85; 35 | vertical-align: $caret-width * .85; 36 | content: ""; 37 | @if $direction == down { 38 | @include caret-down; 39 | } @else if $direction == up { 40 | @include caret-up; 41 | } @else if $direction == right { 42 | @include caret-right; 43 | } 44 | } 45 | 46 | @if $direction == left { 47 | &::after { 48 | display: none; 49 | } 50 | 51 | &::before { 52 | display: inline-block; 53 | width: 0; 54 | height: 0; 55 | margin-right: $caret-width * .85; 56 | vertical-align: $caret-width * .85; 57 | content: ""; 58 | @include caret-left; 59 | } 60 | } 61 | 62 | &:empty::after { 63 | margin-left: 0; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_text.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Text 5 | // 6 | 7 | .text-monospace { font-family: $font-family-monospace; } 8 | 9 | // Alignment 10 | 11 | .text-justify { text-align: justify !important; } 12 | .text-nowrap { white-space: nowrap !important; } 13 | .text-truncate { @include text-truncate; } 14 | 15 | // Responsive alignment 16 | 17 | @each $breakpoint in map-keys($grid-breakpoints) { 18 | @include media-breakpoint-up($breakpoint) { 19 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 20 | 21 | .text#{$infix}-left { text-align: left !important; } 22 | .text#{$infix}-right { text-align: right !important; } 23 | .text#{$infix}-center { text-align: center !important; } 24 | } 25 | } 26 | 27 | // Transformation 28 | 29 | .text-lowercase { text-transform: lowercase !important; } 30 | .text-uppercase { text-transform: uppercase !important; } 31 | .text-capitalize { text-transform: capitalize !important; } 32 | 33 | // Weight and italics 34 | 35 | .font-weight-light { font-weight: $font-weight-light !important; } 36 | .font-weight-normal { font-weight: $font-weight-normal !important; } 37 | .font-weight-bold { font-weight: $font-weight-bold !important; } 38 | .font-italic { font-style: italic !important; } 39 | 40 | // Contextual colors 41 | 42 | .text-white { color: $white !important; } 43 | 44 | @each $color, $value in $theme-colors { 45 | @include text-emphasis-variant(".text-#{$color}", $value); 46 | } 47 | 48 | .text-body { color: $body-color !important; } 49 | .text-muted { color: $text-muted !important; } 50 | 51 | .text-black-50 { color: rgba($black, .5) !important; } 52 | .text-white-50 { color: rgba($white, .5) !important; } 53 | 54 | // Misc 55 | 56 | .text-hide { 57 | @include text-hide(); 58 | } 59 | -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_borders.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Border 5 | // 6 | 7 | .border { border: $border-width solid $border-color !important; } 8 | .border-top { border-top: $border-width solid $border-color !important; } 9 | .border-right { border-right: $border-width solid $border-color !important; } 10 | .border-bottom { border-bottom: $border-width solid $border-color !important; } 11 | .border-left { border-left: $border-width solid $border-color !important; } 12 | 13 | .border-0 { border: 0 !important; } 14 | .border-top-0 { border-top: 0 !important; } 15 | .border-right-0 { border-right: 0 !important; } 16 | .border-bottom-0 { border-bottom: 0 !important; } 17 | .border-left-0 { border-left: 0 !important; } 18 | 19 | @each $color, $value in $theme-colors { 20 | .border-#{$color} { 21 | border-color: $value !important; 22 | } 23 | } 24 | 25 | .border-white { 26 | border-color: $white !important; 27 | } 28 | 29 | // 30 | // Border-radius 31 | // 32 | 33 | .rounded { 34 | border-radius: $border-radius !important; 35 | } 36 | .rounded-top { 37 | border-top-left-radius: $border-radius !important; 38 | border-top-right-radius: $border-radius !important; 39 | } 40 | .rounded-right { 41 | border-top-right-radius: $border-radius !important; 42 | border-bottom-right-radius: $border-radius !important; 43 | } 44 | .rounded-bottom { 45 | border-bottom-right-radius: $border-radius !important; 46 | border-bottom-left-radius: $border-radius !important; 47 | } 48 | .rounded-left { 49 | border-top-left-radius: $border-radius !important; 50 | border-bottom-left-radius: $border-radius !important; 51 | } 52 | 53 | .rounded-circle { 54 | border-radius: 50% !important; 55 | } 56 | 57 | .rounded-0 { 58 | border-radius: 0 !important; 59 | } 60 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_grid.scss: -------------------------------------------------------------------------------- 1 | /// Grid system 2 | // 3 | // Generate semantic grid columns with these mixins. 4 | 5 | @mixin make-container() { 6 | width: 100%; 7 | padding-right: ($grid-gutter-width / 2); 8 | padding-left: ($grid-gutter-width / 2); 9 | margin-right: auto; 10 | margin-left: auto; 11 | } 12 | 13 | 14 | // For each breakpoint, define the maximum width of the container in a media query 15 | @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { 16 | @each $breakpoint, $container-max-width in $max-widths { 17 | @include media-breakpoint-up($breakpoint, $breakpoints) { 18 | max-width: $container-max-width; 19 | } 20 | } 21 | } 22 | 23 | @mixin make-row() { 24 | display: flex; 25 | flex-wrap: wrap; 26 | margin-right: ($grid-gutter-width / -2); 27 | margin-left: ($grid-gutter-width / -2); 28 | } 29 | 30 | @mixin make-col-ready() { 31 | position: relative; 32 | // Prevent columns from becoming too narrow when at smaller grid tiers by 33 | // always setting `width: 100%;`. This works because we use `flex` values 34 | // later on to override this initial width. 35 | width: 100%; 36 | min-height: 1px; // Prevent collapsing 37 | padding-right: ($grid-gutter-width / 2); 38 | padding-left: ($grid-gutter-width / 2); 39 | } 40 | 41 | @mixin make-col($size, $columns: $grid-columns) { 42 | flex: 0 0 percentage($size / $columns); 43 | // Add a `max-width` to ensure content within each column does not blow out 44 | // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari 45 | // do not appear to require this. 46 | max-width: percentage($size / $columns); 47 | } 48 | 49 | @mixin make-col-offset($size, $columns: $grid-columns) { 50 | $num: $size / $columns; 51 | margin-left: if($num == 0, 0, percentage($num)); 52 | } 53 | -------------------------------------------------------------------------------- /css/jquery.timepicker.css: -------------------------------------------------------------------------------- 1 | .ui-timepicker-wrapper { 2 | overflow-y: auto; 3 | max-height: 150px; 4 | width: 6.5em; 5 | background: #fff; 6 | border: 1px solid #ddd; 7 | -webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2); 8 | -moz-box-shadow:0 5px 10px rgba(0,0,0,0.2); 9 | box-shadow:0 5px 10px rgba(0,0,0,0.2); 10 | outline: none; 11 | z-index: 10001; 12 | margin: 0; 13 | } 14 | 15 | .ui-timepicker-wrapper.ui-timepicker-with-duration { 16 | width: 13em; 17 | } 18 | 19 | .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30, 20 | .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 { 21 | width: 11em; 22 | } 23 | 24 | .ui-timepicker-list { 25 | margin: 0; 26 | padding: 0; 27 | list-style: none; 28 | } 29 | 30 | .ui-timepicker-duration { 31 | margin-left: 5px; color: #888; 32 | } 33 | 34 | .ui-timepicker-list:hover .ui-timepicker-duration { 35 | color: #888; 36 | } 37 | 38 | .ui-timepicker-list li { 39 | padding: 3px 0 3px 5px; 40 | cursor: pointer; 41 | white-space: nowrap; 42 | color: #000; 43 | list-style: none; 44 | margin: 0; 45 | } 46 | 47 | .ui-timepicker-list:hover .ui-timepicker-selected { 48 | background: #fff; color: #000; 49 | } 50 | 51 | li.ui-timepicker-selected, 52 | .ui-timepicker-list li:hover, 53 | .ui-timepicker-list .ui-timepicker-selected:hover { 54 | background: #1980EC; color: #fff; 55 | } 56 | 57 | li.ui-timepicker-selected .ui-timepicker-duration, 58 | .ui-timepicker-list li:hover .ui-timepicker-duration { 59 | color: #ccc; 60 | } 61 | 62 | .ui-timepicker-list li.ui-timepicker-disabled, 63 | .ui-timepicker-list li.ui-timepicker-disabled:hover, 64 | .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled { 65 | color: #888; 66 | cursor: default; 67 | } 68 | 69 | .ui-timepicker-list li.ui-timepicker-disabled:hover, 70 | .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled { 71 | background: #f2f2f2; 72 | } 73 | -------------------------------------------------------------------------------- /js/google-map.js: -------------------------------------------------------------------------------- 1 | 2 | var google; 3 | 4 | function init() { 5 | // Basic options for a simple Google Map 6 | // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions 7 | // var myLatlng = new google.maps.LatLng(40.71751, -73.990922); 8 | var myLatlng = new google.maps.LatLng(40.69847032728747, -73.9514422416687); 9 | // 39.399872 10 | // -8.224454 11 | 12 | var mapOptions = { 13 | // How zoomed in you want the map to start at (always required) 14 | zoom: 7, 15 | 16 | // The latitude and longitude to center the map (always required) 17 | center: myLatlng, 18 | 19 | // How you would like to style the map. 20 | scrollwheel: false, 21 | styles: [ 22 | { 23 | "featureType": "administrative.country", 24 | "elementType": "geometry", 25 | "stylers": [ 26 | { 27 | "visibility": "simplified" 28 | }, 29 | { 30 | "hue": "#ff0000" 31 | } 32 | ] 33 | } 34 | ] 35 | }; 36 | 37 | 38 | 39 | // Get the HTML DOM element that will contain your map 40 | // We are using a div with id="map" seen below in the 41 | var mapElement = document.getElementById('map'); 42 | 43 | // Create the Google Map using out element and options defined above 44 | var map = new google.maps.Map(mapElement, mapOptions); 45 | 46 | var addresses = ['New York']; 47 | 48 | for (var x = 0; x < addresses.length; x++) { 49 | $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) { 50 | var p = data.results[0].geometry.location 51 | var latlng = new google.maps.LatLng(p.lat, p.lng); 52 | new google.maps.Marker({ 53 | position: latlng, 54 | map: map, 55 | icon: 'images/loc.png' 56 | }); 57 | 58 | }); 59 | } 60 | 61 | } 62 | google.maps.event.addDomListener(window, 'load', init); -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_grid-framework.scss: -------------------------------------------------------------------------------- 1 | // Framework grid generation 2 | // 3 | // Used only by Bootstrap to generate the correct number of grid classes given 4 | // any value of `$grid-columns`. 5 | 6 | @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) { 7 | // Common properties for all breakpoints 8 | %grid-column { 9 | position: relative; 10 | width: 100%; 11 | min-height: 1px; // Prevent columns from collapsing when empty 12 | padding-right: ($gutter / 2); 13 | padding-left: ($gutter / 2); 14 | } 15 | 16 | @each $breakpoint in map-keys($breakpoints) { 17 | $infix: breakpoint-infix($breakpoint, $breakpoints); 18 | 19 | // Allow columns to stretch full width below their breakpoints 20 | @for $i from 1 through $columns { 21 | .col#{$infix}-#{$i} { 22 | @extend %grid-column; 23 | } 24 | } 25 | .col#{$infix}, 26 | .col#{$infix}-auto { 27 | @extend %grid-column; 28 | } 29 | 30 | @include media-breakpoint-up($breakpoint, $breakpoints) { 31 | // Provide basic `.col-{bp}` classes for equal-width flexbox columns 32 | .col#{$infix} { 33 | flex-basis: 0; 34 | flex-grow: 1; 35 | max-width: 100%; 36 | } 37 | .col#{$infix}-auto { 38 | flex: 0 0 auto; 39 | width: auto; 40 | max-width: none; // Reset earlier grid tiers 41 | } 42 | 43 | @for $i from 1 through $columns { 44 | .col#{$infix}-#{$i} { 45 | @include make-col($i, $columns); 46 | } 47 | } 48 | 49 | .order#{$infix}-first { order: -1; } 50 | 51 | .order#{$infix}-last { order: $columns + 1; } 52 | 53 | @for $i from 0 through $columns { 54 | .order#{$infix}-#{$i} { order: $i; } 55 | } 56 | 57 | // `$columns - 1` because offsetting by the width of an entire row isn't possible 58 | @for $i from 0 through ($columns - 1) { 59 | @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0 60 | .offset#{$infix}-#{$i} { 61 | @include make-col-offset($i, $columns); 62 | } 63 | } 64 | } 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /scss/bootstrap/_pagination.scss: -------------------------------------------------------------------------------- 1 | .pagination { 2 | display: flex; 3 | @include list-unstyled(); 4 | @include border-radius(); 5 | } 6 | 7 | .page-link { 8 | position: relative; 9 | display: block; 10 | padding: $pagination-padding-y $pagination-padding-x; 11 | margin-left: -$pagination-border-width; 12 | line-height: $pagination-line-height; 13 | color: $pagination-color; 14 | background-color: $pagination-bg; 15 | border: $pagination-border-width solid $pagination-border-color; 16 | 17 | &:hover { 18 | z-index: 2; 19 | color: $pagination-hover-color; 20 | text-decoration: none; 21 | background-color: $pagination-hover-bg; 22 | border-color: $pagination-hover-border-color; 23 | } 24 | 25 | &:focus { 26 | z-index: 2; 27 | outline: $pagination-focus-outline; 28 | box-shadow: $pagination-focus-box-shadow; 29 | } 30 | 31 | // Opinionated: add "hand" cursor to non-disabled .page-link elements 32 | &:not(:disabled):not(.disabled) { 33 | cursor: pointer; 34 | } 35 | } 36 | 37 | .page-item { 38 | &:first-child { 39 | .page-link { 40 | margin-left: 0; 41 | @include border-left-radius($border-radius); 42 | } 43 | } 44 | &:last-child { 45 | .page-link { 46 | @include border-right-radius($border-radius); 47 | } 48 | } 49 | 50 | &.active .page-link { 51 | z-index: 1; 52 | color: $pagination-active-color; 53 | background-color: $pagination-active-bg; 54 | border-color: $pagination-active-border-color; 55 | } 56 | 57 | &.disabled .page-link { 58 | color: $pagination-disabled-color; 59 | pointer-events: none; 60 | // Opinionated: remove the "hand" cursor set previously for .page-link 61 | cursor: auto; 62 | background-color: $pagination-disabled-bg; 63 | border-color: $pagination-disabled-border-color; 64 | } 65 | } 66 | 67 | 68 | // 69 | // Sizing 70 | // 71 | 72 | .pagination-lg { 73 | @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg); 74 | } 75 | 76 | .pagination-sm { 77 | @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm); 78 | } 79 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_gradients.scss: -------------------------------------------------------------------------------- 1 | // Gradients 2 | 3 | @mixin gradient-bg($color) { 4 | @if $enable-gradients { 5 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x; 6 | } @else { 7 | background-color: $color; 8 | } 9 | } 10 | 11 | // Horizontal gradient, from left to right 12 | // 13 | // Creates two color stops, start and end, by specifying a color and position for each color stop. 14 | @mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) { 15 | background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); 16 | background-repeat: repeat-x; 17 | } 18 | 19 | // Vertical gradient, from top to bottom 20 | // 21 | // Creates two color stops, start and end, by specifying a color and position for each color stop. 22 | @mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) { 23 | background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); 24 | background-repeat: repeat-x; 25 | } 26 | 27 | @mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) { 28 | background-image: linear-gradient($deg, $start-color, $end-color); 29 | background-repeat: repeat-x; 30 | } 31 | @mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) { 32 | background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color); 33 | background-repeat: no-repeat; 34 | } 35 | @mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) { 36 | background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color); 37 | background-repeat: no-repeat; 38 | } 39 | @mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) { 40 | background-image: radial-gradient(circle, $inner-color, $outer-color); 41 | background-repeat: no-repeat; 42 | } 43 | @mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) { 44 | background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent); 45 | } 46 | -------------------------------------------------------------------------------- /scss/bootstrap/_nav.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Kickstart any navigation component with a set of style resets. Works with 4 | // ``s or ``s. 5 | 6 | .nav { 7 | display: flex; 8 | flex-wrap: wrap; 9 | padding-left: 0; 10 | margin-bottom: 0; 11 | list-style: none; 12 | } 13 | 14 | .nav-link { 15 | display: block; 16 | padding: $nav-link-padding-y $nav-link-padding-x; 17 | 18 | @include hover-focus { 19 | text-decoration: none; 20 | } 21 | 22 | // Disabled state lightens text 23 | &.disabled { 24 | color: $nav-link-disabled-color; 25 | } 26 | } 27 | 28 | // 29 | // Tabs 30 | // 31 | 32 | .nav-tabs { 33 | border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color; 34 | 35 | .nav-item { 36 | margin-bottom: -$nav-tabs-border-width; 37 | } 38 | 39 | .nav-link { 40 | border: $nav-tabs-border-width solid transparent; 41 | @include border-top-radius($nav-tabs-border-radius); 42 | 43 | @include hover-focus { 44 | border-color: $nav-tabs-link-hover-border-color; 45 | } 46 | 47 | &.disabled { 48 | color: $nav-link-disabled-color; 49 | background-color: transparent; 50 | border-color: transparent; 51 | } 52 | } 53 | 54 | .nav-link.active, 55 | .nav-item.show .nav-link { 56 | color: $nav-tabs-link-active-color; 57 | background-color: $nav-tabs-link-active-bg; 58 | border-color: $nav-tabs-link-active-border-color; 59 | } 60 | 61 | .dropdown-menu { 62 | // Make dropdown border overlap tab border 63 | margin-top: -$nav-tabs-border-width; 64 | // Remove the top rounded corners here since there is a hard edge above the menu 65 | @include border-top-radius(0); 66 | } 67 | } 68 | 69 | 70 | // 71 | // Pills 72 | // 73 | 74 | .nav-pills { 75 | .nav-link { 76 | @include border-radius($nav-pills-border-radius); 77 | } 78 | 79 | .nav-link.active, 80 | .show > .nav-link { 81 | color: $nav-pills-link-active-color; 82 | background-color: $nav-pills-link-active-bg; 83 | } 84 | } 85 | 86 | 87 | // 88 | // Justified variants 89 | // 90 | 91 | .nav-fill { 92 | .nav-item { 93 | flex: 1 1 auto; 94 | text-align: center; 95 | } 96 | } 97 | 98 | .nav-justified { 99 | .nav-item { 100 | flex-basis: 0; 101 | flex-grow: 1; 102 | text-align: center; 103 | } 104 | } 105 | 106 | 107 | // Tabbable tabs 108 | // 109 | // Hide tabbable panes to start, show them when `.active` 110 | 111 | .tab-content { 112 | > .tab-pane { 113 | display: none; 114 | } 115 | > .active { 116 | display: block; 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /scss/bootstrap/_type.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important, selector-list-comma-newline-after 2 | 3 | // 4 | // Headings 5 | // 6 | 7 | h1, h2, h3, h4, h5, h6, 8 | .h1, .h2, .h3, .h4, .h5, .h6 { 9 | margin-bottom: $headings-margin-bottom; 10 | font-family: $headings-font-family; 11 | font-weight: $headings-font-weight; 12 | line-height: $headings-line-height; 13 | color: $headings-color; 14 | } 15 | 16 | h1, .h1 { font-size: $h1-font-size; } 17 | h2, .h2 { font-size: $h2-font-size; } 18 | h3, .h3 { font-size: $h3-font-size; } 19 | h4, .h4 { font-size: $h4-font-size; } 20 | h5, .h5 { font-size: $h5-font-size; } 21 | h6, .h6 { font-size: $h6-font-size; } 22 | 23 | .lead { 24 | font-size: $lead-font-size; 25 | font-weight: $lead-font-weight; 26 | } 27 | 28 | // Type display classes 29 | .display-1 { 30 | font-size: $display1-size; 31 | font-weight: $display1-weight; 32 | line-height: $display-line-height; 33 | } 34 | .display-2 { 35 | font-size: $display2-size; 36 | font-weight: $display2-weight; 37 | line-height: $display-line-height; 38 | } 39 | .display-3 { 40 | font-size: $display3-size; 41 | font-weight: $display3-weight; 42 | line-height: $display-line-height; 43 | } 44 | .display-4 { 45 | font-size: $display4-size; 46 | font-weight: $display4-weight; 47 | line-height: $display-line-height; 48 | } 49 | 50 | 51 | // 52 | // Horizontal rules 53 | // 54 | 55 | hr { 56 | margin-top: $hr-margin-y; 57 | margin-bottom: $hr-margin-y; 58 | border: 0; 59 | border-top: $hr-border-width solid $hr-border-color; 60 | } 61 | 62 | 63 | // 64 | // Emphasis 65 | // 66 | 67 | small, 68 | .small { 69 | font-size: $small-font-size; 70 | font-weight: $font-weight-normal; 71 | } 72 | 73 | mark, 74 | .mark { 75 | padding: $mark-padding; 76 | background-color: $mark-bg; 77 | } 78 | 79 | 80 | // 81 | // Lists 82 | // 83 | 84 | .list-unstyled { 85 | @include list-unstyled; 86 | } 87 | 88 | // Inline turns list items into inline-block 89 | .list-inline { 90 | @include list-unstyled; 91 | } 92 | .list-inline-item { 93 | display: inline-block; 94 | 95 | &:not(:last-child) { 96 | margin-right: $list-inline-padding; 97 | } 98 | } 99 | 100 | 101 | // 102 | // Misc 103 | // 104 | 105 | // Builds on `abbr` 106 | .initialism { 107 | font-size: 90%; 108 | text-transform: uppercase; 109 | } 110 | 111 | // Blockquotes 112 | .blockquote { 113 | margin-bottom: $spacer; 114 | font-size: $blockquote-font-size; 115 | } 116 | 117 | .blockquote-footer { 118 | display: block; 119 | font-size: 80%; // back to default font-size 120 | color: $blockquote-small-color; 121 | 122 | &::before { 123 | content: "\2014 \00A0"; // em dash, nbsp 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /css/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /scss/bootstrap/utilities/_flex.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Flex variation 4 | // 5 | // Custom styles for additional flex alignment options. 6 | 7 | @each $breakpoint in map-keys($grid-breakpoints) { 8 | @include media-breakpoint-up($breakpoint) { 9 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 10 | 11 | .flex#{$infix}-row { flex-direction: row !important; } 12 | .flex#{$infix}-column { flex-direction: column !important; } 13 | .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; } 14 | .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; } 15 | 16 | .flex#{$infix}-wrap { flex-wrap: wrap !important; } 17 | .flex#{$infix}-nowrap { flex-wrap: nowrap !important; } 18 | .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; } 19 | .flex#{$infix}-fill { flex: 1 1 auto !important; } 20 | .flex#{$infix}-grow-0 { flex-grow: 0 !important; } 21 | .flex#{$infix}-grow-1 { flex-grow: 1 !important; } 22 | .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; } 23 | .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; } 24 | 25 | .justify-content#{$infix}-start { justify-content: flex-start !important; } 26 | .justify-content#{$infix}-end { justify-content: flex-end !important; } 27 | .justify-content#{$infix}-center { justify-content: center !important; } 28 | .justify-content#{$infix}-between { justify-content: space-between !important; } 29 | .justify-content#{$infix}-around { justify-content: space-around !important; } 30 | 31 | .align-items#{$infix}-start { align-items: flex-start !important; } 32 | .align-items#{$infix}-end { align-items: flex-end !important; } 33 | .align-items#{$infix}-center { align-items: center !important; } 34 | .align-items#{$infix}-baseline { align-items: baseline !important; } 35 | .align-items#{$infix}-stretch { align-items: stretch !important; } 36 | 37 | .align-content#{$infix}-start { align-content: flex-start !important; } 38 | .align-content#{$infix}-end { align-content: flex-end !important; } 39 | .align-content#{$infix}-center { align-content: center !important; } 40 | .align-content#{$infix}-between { align-content: space-between !important; } 41 | .align-content#{$infix}-around { align-content: space-around !important; } 42 | .align-content#{$infix}-stretch { align-content: stretch !important; } 43 | 44 | .align-self#{$infix}-auto { align-self: auto !important; } 45 | .align-self#{$infix}-start { align-self: flex-start !important; } 46 | .align-self#{$infix}-end { align-self: flex-end !important; } 47 | .align-self#{$infix}-center { align-self: center !important; } 48 | .align-self#{$infix}-baseline { align-self: baseline !important; } 49 | .align-self#{$infix}-stretch { align-self: stretch !important; } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /scss/bootstrap/_functions.scss: -------------------------------------------------------------------------------- 1 | // Bootstrap functions 2 | // 3 | // Utility mixins and functions for evalutating source code across our variables, maps, and mixins. 4 | 5 | // Ascending 6 | // Used to evaluate Sass maps like our grid breakpoints. 7 | @mixin _assert-ascending($map, $map-name) { 8 | $prev-key: null; 9 | $prev-num: null; 10 | @each $key, $num in $map { 11 | @if $prev-num == null { 12 | // Do nothing 13 | } @else if not comparable($prev-num, $num) { 14 | @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !"; 15 | } @else if $prev-num >= $num { 16 | @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !"; 17 | } 18 | $prev-key: $key; 19 | $prev-num: $num; 20 | } 21 | } 22 | 23 | // Starts at zero 24 | // Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0. 25 | @mixin _assert-starts-at-zero($map) { 26 | $values: map-values($map); 27 | $first-value: nth($values, 1); 28 | @if $first-value != 0 { 29 | @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}."; 30 | } 31 | } 32 | 33 | // Replace `$search` with `$replace` in `$string` 34 | // Used on our SVG icon backgrounds for custom forms. 35 | // 36 | // @author Hugo Giraudel 37 | // @param {String} $string - Initial string 38 | // @param {String} $search - Substring to replace 39 | // @param {String} $replace ('') - New value 40 | // @return {String} - Updated string 41 | @function str-replace($string, $search, $replace: "") { 42 | $index: str-index($string, $search); 43 | 44 | @if $index { 45 | @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); 46 | } 47 | 48 | @return $string; 49 | } 50 | 51 | // Color contrast 52 | @function color-yiq($color) { 53 | $r: red($color); 54 | $g: green($color); 55 | $b: blue($color); 56 | 57 | $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000; 58 | 59 | @if ($yiq >= $yiq-contrasted-threshold) { 60 | @return $yiq-text-dark; 61 | } @else { 62 | @return $yiq-text-light; 63 | } 64 | } 65 | 66 | // Retrieve color Sass maps 67 | @function color($key: "blue") { 68 | @return map-get($colors, $key); 69 | } 70 | 71 | @function theme-color($key: "primary") { 72 | @return map-get($theme-colors, $key); 73 | } 74 | 75 | @function gray($key: "100") { 76 | @return map-get($grays, $key); 77 | } 78 | 79 | // Request a theme color level 80 | @function theme-color-level($color-name: "primary", $level: 0) { 81 | $color: theme-color($color-name); 82 | $color-base: if($level > 0, $black, $white); 83 | $level: abs($level); 84 | 85 | @return mix($color-base, $color, $level * $theme-color-interval); 86 | } 87 | -------------------------------------------------------------------------------- /scss/bootstrap/_tooltip.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | .tooltip { 3 | position: absolute; 4 | z-index: $zindex-tooltip; 5 | display: block; 6 | margin: $tooltip-margin; 7 | // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. 8 | // So reset our font and text properties to avoid inheriting weird values. 9 | @include reset-text(); 10 | font-size: $tooltip-font-size; 11 | // Allow breaking very long words so they don't overflow the tooltip's bounds 12 | word-wrap: break-word; 13 | opacity: 0; 14 | 15 | &.show { opacity: $tooltip-opacity; } 16 | 17 | .arrow { 18 | position: absolute; 19 | display: block; 20 | width: $tooltip-arrow-width; 21 | height: $tooltip-arrow-height; 22 | 23 | &::before { 24 | position: absolute; 25 | content: ""; 26 | border-color: transparent; 27 | border-style: solid; 28 | } 29 | } 30 | } 31 | 32 | .bs-tooltip-top { 33 | padding: $tooltip-arrow-height 0; 34 | 35 | .arrow { 36 | bottom: 0; 37 | 38 | &::before { 39 | top: 0; 40 | border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0; 41 | border-top-color: $tooltip-arrow-color; 42 | } 43 | } 44 | } 45 | 46 | .bs-tooltip-right { 47 | padding: 0 $tooltip-arrow-height; 48 | 49 | .arrow { 50 | left: 0; 51 | width: $tooltip-arrow-height; 52 | height: $tooltip-arrow-width; 53 | 54 | &::before { 55 | right: 0; 56 | border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0; 57 | border-right-color: $tooltip-arrow-color; 58 | } 59 | } 60 | } 61 | 62 | .bs-tooltip-bottom { 63 | padding: $tooltip-arrow-height 0; 64 | 65 | .arrow { 66 | top: 0; 67 | 68 | &::before { 69 | bottom: 0; 70 | border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height; 71 | border-bottom-color: $tooltip-arrow-color; 72 | } 73 | } 74 | } 75 | 76 | .bs-tooltip-left { 77 | padding: 0 $tooltip-arrow-height; 78 | 79 | .arrow { 80 | right: 0; 81 | width: $tooltip-arrow-height; 82 | height: $tooltip-arrow-width; 83 | 84 | &::before { 85 | left: 0; 86 | border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height; 87 | border-left-color: $tooltip-arrow-color; 88 | } 89 | } 90 | } 91 | 92 | .bs-tooltip-auto { 93 | &[x-placement^="top"] { 94 | @extend .bs-tooltip-top; 95 | } 96 | &[x-placement^="right"] { 97 | @extend .bs-tooltip-right; 98 | } 99 | &[x-placement^="bottom"] { 100 | @extend .bs-tooltip-bottom; 101 | } 102 | &[x-placement^="left"] { 103 | @extend .bs-tooltip-left; 104 | } 105 | } 106 | 107 | // Wrapper for the tooltip content 108 | .tooltip-inner { 109 | max-width: $tooltip-max-width; 110 | padding: $tooltip-padding-y $tooltip-padding-x; 111 | color: $tooltip-color; 112 | text-align: center; 113 | background-color: $tooltip-bg; 114 | @include border-radius($tooltip-border-radius); 115 | } 116 | -------------------------------------------------------------------------------- /scss/bootstrap/_print.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important, selector-no-qualifying-type 2 | 3 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css 4 | 5 | // ========================================================================== 6 | // Print styles. 7 | // Inlined to avoid the additional HTTP request: 8 | // https://www.phpied.com/delay-loading-your-print-css/ 9 | // ========================================================================== 10 | 11 | @if $enable-print-styles { 12 | @media print { 13 | *, 14 | *::before, 15 | *::after { 16 | // Bootstrap specific; comment out `color` and `background` 17 | //color: $black !important; // Black prints faster 18 | text-shadow: none !important; 19 | //background: transparent !important; 20 | box-shadow: none !important; 21 | } 22 | 23 | a { 24 | &:not(.btn) { 25 | text-decoration: underline; 26 | } 27 | } 28 | 29 | // Bootstrap specific; comment the following selector out 30 | //a[href]::after { 31 | // content: " (" attr(href) ")"; 32 | //} 33 | 34 | abbr[title]::after { 35 | content: " (" attr(title) ")"; 36 | } 37 | 38 | // Bootstrap specific; comment the following selector out 39 | // 40 | // Don't show links that are fragment identifiers, 41 | // or use the `javascript:` pseudo protocol 42 | // 43 | 44 | //a[href^="#"]::after, 45 | //a[href^="javascript:"]::after { 46 | // content: ""; 47 | //} 48 | 49 | pre { 50 | white-space: pre-wrap !important; 51 | } 52 | pre, 53 | blockquote { 54 | border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px 55 | page-break-inside: avoid; 56 | } 57 | 58 | // 59 | // Printing Tables: 60 | // http://css-discuss.incutio.com/wiki/Printing_Tables 61 | // 62 | 63 | thead { 64 | display: table-header-group; 65 | } 66 | 67 | tr, 68 | img { 69 | page-break-inside: avoid; 70 | } 71 | 72 | p, 73 | h2, 74 | h3 { 75 | orphans: 3; 76 | widows: 3; 77 | } 78 | 79 | h2, 80 | h3 { 81 | page-break-after: avoid; 82 | } 83 | 84 | // Bootstrap specific changes start 85 | 86 | // Specify a size and min-width to make printing closer across browsers. 87 | // We don't set margin here because it breaks `size` in Chrome. We also 88 | // don't use `!important` on `size` as it breaks in Chrome. 89 | @page { 90 | size: $print-page-size; 91 | } 92 | body { 93 | min-width: $print-body-min-width !important; 94 | } 95 | .container { 96 | min-width: $print-body-min-width !important; 97 | } 98 | 99 | // Bootstrap components 100 | .navbar { 101 | display: none; 102 | } 103 | .badge { 104 | border: $border-width solid $black; 105 | } 106 | 107 | .table { 108 | border-collapse: collapse !important; 109 | 110 | td, 111 | th { 112 | background-color: $white !important; 113 | } 114 | } 115 | .table-bordered { 116 | th, 117 | td { 118 | border: 1px solid $gray-300 !important; 119 | } 120 | } 121 | 122 | // Bootstrap specific changes end 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /scss/bootstrap/_list-group.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Easily usable on , , or . 4 | 5 | .list-group { 6 | display: flex; 7 | flex-direction: column; 8 | 9 | // No need to set list-style: none; since .list-group-item is block level 10 | padding-left: 0; // reset padding because ul and ol 11 | margin-bottom: 0; 12 | } 13 | 14 | 15 | // Interactive list items 16 | // 17 | // Use anchor or button elements instead of `li`s or `div`s to create interactive 18 | // list items. Includes an extra `.active` modifier class for selected items. 19 | 20 | .list-group-item-action { 21 | width: 100%; // For ``s (anchors become 100% by default though) 22 | color: $list-group-action-color; 23 | text-align: inherit; // For ``s (anchors inherit) 24 | 25 | // Hover state 26 | @include hover-focus { 27 | color: $list-group-action-hover-color; 28 | text-decoration: none; 29 | background-color: $list-group-hover-bg; 30 | } 31 | 32 | &:active { 33 | color: $list-group-action-active-color; 34 | background-color: $list-group-action-active-bg; 35 | } 36 | } 37 | 38 | 39 | // Individual list items 40 | // 41 | // Use on `li`s or `div`s within the `.list-group` parent. 42 | 43 | .list-group-item { 44 | position: relative; 45 | display: block; 46 | padding: $list-group-item-padding-y $list-group-item-padding-x; 47 | // Place the border on the list items and negative margin up for better styling 48 | margin-bottom: -$list-group-border-width; 49 | background-color: $list-group-bg; 50 | border: $list-group-border-width solid $list-group-border-color; 51 | 52 | &:first-child { 53 | @include border-top-radius($list-group-border-radius); 54 | } 55 | 56 | &:last-child { 57 | margin-bottom: 0; 58 | @include border-bottom-radius($list-group-border-radius); 59 | } 60 | 61 | @include hover-focus { 62 | z-index: 1; // Place hover/active items above their siblings for proper border styling 63 | text-decoration: none; 64 | } 65 | 66 | &.disabled, 67 | &:disabled { 68 | color: $list-group-disabled-color; 69 | background-color: $list-group-disabled-bg; 70 | } 71 | 72 | // Include both here for ``s and ``s 73 | &.active { 74 | z-index: 2; // Place active items above their siblings for proper border styling 75 | color: $list-group-active-color; 76 | background-color: $list-group-active-bg; 77 | border-color: $list-group-active-border-color; 78 | } 79 | } 80 | 81 | 82 | // Flush list items 83 | // 84 | // Remove borders and border-radius to keep list group items edge-to-edge. Most 85 | // useful within other components (e.g., cards). 86 | 87 | .list-group-flush { 88 | .list-group-item { 89 | border-right: 0; 90 | border-left: 0; 91 | @include border-radius(0); 92 | } 93 | 94 | &:first-child { 95 | .list-group-item:first-child { 96 | border-top: 0; 97 | } 98 | } 99 | 100 | &:last-child { 101 | .list-group-item:last-child { 102 | border-bottom: 0; 103 | } 104 | } 105 | } 106 | 107 | 108 | // Contextual variants 109 | // 110 | // Add modifier classes to change text and background color on individual items. 111 | // Organizationally, this must come after the `:hover` states. 112 | 113 | @each $color, $value in $theme-colors { 114 | @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6)); 115 | } 116 | -------------------------------------------------------------------------------- /scss/bootstrap/_buttons.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | // 4 | // Base styles 5 | // 6 | 7 | .btn { 8 | display: inline-block; 9 | font-weight: $btn-font-weight; 10 | text-align: center; 11 | white-space: nowrap; 12 | vertical-align: middle; 13 | user-select: none; 14 | border: $btn-border-width solid transparent; 15 | @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius); 16 | @include transition($btn-transition); 17 | 18 | // Share hover and focus styles 19 | @include hover-focus { 20 | text-decoration: none; 21 | } 22 | 23 | &:focus, 24 | &.focus { 25 | outline: 0; 26 | box-shadow: $btn-focus-box-shadow; 27 | } 28 | 29 | // Disabled comes first so active can properly restyle 30 | &.disabled, 31 | &:disabled { 32 | opacity: $btn-disabled-opacity; 33 | @include box-shadow(none); 34 | } 35 | 36 | // Opinionated: add "hand" cursor to non-disabled .btn elements 37 | &:not(:disabled):not(.disabled) { 38 | cursor: pointer; 39 | } 40 | 41 | &:not(:disabled):not(.disabled):active, 42 | &:not(:disabled):not(.disabled).active { 43 | background-image: none; 44 | @include box-shadow($btn-active-box-shadow); 45 | 46 | &:focus { 47 | @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); 48 | } 49 | } 50 | } 51 | 52 | // Future-proof disabling of clicks on `` elements 53 | a.btn.disabled, 54 | fieldset:disabled a.btn { 55 | pointer-events: none; 56 | } 57 | 58 | 59 | // 60 | // Alternate buttons 61 | // 62 | 63 | @each $color, $value in $theme-colors { 64 | .btn-#{$color} { 65 | @include button-variant($value, $value); 66 | } 67 | } 68 | 69 | @each $color, $value in $theme-colors { 70 | .btn-outline-#{$color} { 71 | @include button-outline-variant($value); 72 | } 73 | } 74 | 75 | 76 | // 77 | // Link buttons 78 | // 79 | 80 | // Make a button look and behave like a link 81 | .btn-link { 82 | font-weight: $font-weight-normal; 83 | color: $link-color; 84 | background-color: transparent; 85 | 86 | @include hover { 87 | color: $link-hover-color; 88 | text-decoration: $link-hover-decoration; 89 | background-color: transparent; 90 | border-color: transparent; 91 | } 92 | 93 | &:focus, 94 | &.focus { 95 | text-decoration: $link-hover-decoration; 96 | border-color: transparent; 97 | box-shadow: none; 98 | } 99 | 100 | &:disabled, 101 | &.disabled { 102 | color: $btn-link-disabled-color; 103 | pointer-events: none; 104 | } 105 | 106 | // No need for an active state here 107 | } 108 | 109 | 110 | // 111 | // Button Sizes 112 | // 113 | 114 | .btn-lg { 115 | @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg); 116 | } 117 | 118 | .btn-sm { 119 | @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm); 120 | } 121 | 122 | 123 | // 124 | // Block button 125 | // 126 | 127 | .btn-block { 128 | display: block; 129 | width: 100%; 130 | 131 | // Vertically space out multiple block buttons 132 | + .btn-block { 133 | margin-top: $btn-block-spacing-y; 134 | } 135 | } 136 | 137 | // Specificity overrides 138 | input[type="submit"], 139 | input[type="reset"], 140 | input[type="button"] { 141 | &.btn-block { 142 | width: 100%; 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | @mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) { 7 | color: color-yiq($background); 8 | @include gradient-bg($background); 9 | border-color: $border; 10 | @include box-shadow($btn-box-shadow); 11 | 12 | @include hover { 13 | color: color-yiq($hover-background); 14 | @include gradient-bg($hover-background); 15 | border-color: $hover-border; 16 | } 17 | 18 | &:focus, 19 | &.focus { 20 | // Avoid using mixin so we can pass custom focus shadow properly 21 | @if $enable-shadows { 22 | box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5); 23 | } @else { 24 | box-shadow: 0 0 0 $btn-focus-width rgba($border, .5); 25 | } 26 | } 27 | 28 | // Disabled comes first so active can properly restyle 29 | &.disabled, 30 | &:disabled { 31 | color: color-yiq($background); 32 | background-color: $background; 33 | border-color: $border; 34 | } 35 | 36 | &:not(:disabled):not(.disabled):active, 37 | &:not(:disabled):not(.disabled).active, 38 | .show > &.dropdown-toggle { 39 | color: color-yiq($active-background); 40 | background-color: $active-background; 41 | @if $enable-gradients { 42 | background-image: none; // Remove the gradient for the pressed/active state 43 | } 44 | border-color: $active-border; 45 | 46 | &:focus { 47 | // Avoid using mixin so we can pass custom focus shadow properly 48 | @if $enable-shadows { 49 | box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5); 50 | } @else { 51 | box-shadow: 0 0 0 $btn-focus-width rgba($border, .5); 52 | } 53 | } 54 | } 55 | } 56 | 57 | @mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) { 58 | color: $color; 59 | background-color: transparent; 60 | background-image: none; 61 | border-color: $color; 62 | 63 | &:hover { 64 | color: $color-hover; 65 | background-color: $active-background; 66 | border-color: $active-border; 67 | } 68 | 69 | &:focus, 70 | &.focus { 71 | box-shadow: 0 0 0 $btn-focus-width rgba($color, .5); 72 | } 73 | 74 | &.disabled, 75 | &:disabled { 76 | color: $color; 77 | background-color: transparent; 78 | } 79 | 80 | &:not(:disabled):not(.disabled):active, 81 | &:not(:disabled):not(.disabled).active, 82 | .show > &.dropdown-toggle { 83 | color: color-yiq($active-background); 84 | background-color: $active-background; 85 | border-color: $active-border; 86 | 87 | &:focus { 88 | // Avoid using mixin so we can pass custom focus shadow properly 89 | @if $enable-shadows and $btn-active-box-shadow != none { 90 | box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5); 91 | } @else { 92 | box-shadow: 0 0 0 $btn-focus-width rgba($color, .5); 93 | } 94 | } 95 | } 96 | } 97 | 98 | // Button sizes 99 | @mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 100 | padding: $padding-y $padding-x; 101 | font-size: $font-size; 102 | line-height: $line-height; 103 | // Manually declare to provide an override to the browser default 104 | @if $enable-rounded { 105 | border-radius: $border-radius; 106 | } @else { 107 | border-radius: 0; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_forms.scss: -------------------------------------------------------------------------------- 1 | // Form control focus state 2 | // 3 | // Generate a customized focus state and for any input with the specified color, 4 | // which defaults to the `$input-focus-border-color` variable. 5 | // 6 | // We highly encourage you to not customize the default value, but instead use 7 | // this to tweak colors on an as-needed basis. This aesthetic change is based on 8 | // WebKit's default styles, but applicable to a wider range of browsers. Its 9 | // usability and accessibility should be taken into account with any change. 10 | // 11 | // Example usage: change the default blue border and shadow to white for better 12 | // contrast against a dark gray background. 13 | @mixin form-control-focus() { 14 | &:focus { 15 | color: $input-focus-color; 16 | background-color: $input-focus-bg; 17 | border-color: $input-focus-border-color; 18 | outline: 0; 19 | // Avoid using mixin so we can pass custom focus shadow properly 20 | @if $enable-shadows { 21 | box-shadow: $input-box-shadow, $input-focus-box-shadow; 22 | } @else { 23 | box-shadow: $input-focus-box-shadow; 24 | } 25 | } 26 | } 27 | 28 | 29 | @mixin form-validation-state($state, $color) { 30 | .#{$state}-feedback { 31 | display: none; 32 | width: 100%; 33 | margin-top: $form-feedback-margin-top; 34 | font-size: $form-feedback-font-size; 35 | color: $color; 36 | } 37 | 38 | .#{$state}-tooltip { 39 | position: absolute; 40 | top: 100%; 41 | z-index: 5; 42 | display: none; 43 | max-width: 100%; // Contain to parent when possible 44 | padding: .5rem; 45 | margin-top: .1rem; 46 | font-size: .875rem; 47 | line-height: 1; 48 | color: $white; 49 | background-color: rgba($color, .8); 50 | border-radius: .2rem; 51 | } 52 | 53 | .form-control, 54 | .custom-select { 55 | .was-validated &:#{$state}, 56 | &.is-#{$state} { 57 | border-color: $color; 58 | 59 | &:focus { 60 | border-color: $color; 61 | box-shadow: 0 0 0 $input-focus-width rgba($color, .25); 62 | } 63 | 64 | ~ .#{$state}-feedback, 65 | ~ .#{$state}-tooltip { 66 | display: block; 67 | } 68 | } 69 | } 70 | 71 | .form-check-input { 72 | .was-validated &:#{$state}, 73 | &.is-#{$state} { 74 | ~ .form-check-label { 75 | color: $color; 76 | } 77 | 78 | ~ .#{$state}-feedback, 79 | ~ .#{$state}-tooltip { 80 | display: block; 81 | } 82 | } 83 | } 84 | 85 | .custom-control-input { 86 | .was-validated &:#{$state}, 87 | &.is-#{$state} { 88 | ~ .custom-control-label { 89 | color: $color; 90 | 91 | &::before { 92 | background-color: lighten($color, 25%); 93 | } 94 | } 95 | 96 | ~ .#{$state}-feedback, 97 | ~ .#{$state}-tooltip { 98 | display: block; 99 | } 100 | 101 | &:checked { 102 | ~ .custom-control-label::before { 103 | @include gradient-bg(lighten($color, 10%)); 104 | } 105 | } 106 | 107 | &:focus { 108 | ~ .custom-control-label::before { 109 | box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25); 110 | } 111 | } 112 | } 113 | } 114 | 115 | // custom file 116 | .custom-file-input { 117 | .was-validated &:#{$state}, 118 | &.is-#{$state} { 119 | ~ .custom-file-label { 120 | border-color: $color; 121 | 122 | &::before { border-color: inherit; } 123 | } 124 | 125 | ~ .#{$state}-feedback, 126 | ~ .#{$state}-tooltip { 127 | display: block; 128 | } 129 | 130 | &:focus { 131 | ~ .custom-file-label { 132 | box-shadow: 0 0 0 $input-focus-width rgba($color, .25); 133 | } 134 | } 135 | } 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /scss/bootstrap/_tables.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Basic Bootstrap table 3 | // 4 | 5 | .table { 6 | width: 100%; 7 | max-width: 100%; 8 | margin-bottom: $spacer; 9 | background-color: $table-bg; // Reset for nesting within parents with `background-color`. 10 | 11 | th, 12 | td { 13 | padding: $table-cell-padding; 14 | vertical-align: top; 15 | border-top: $table-border-width solid $table-border-color; 16 | } 17 | 18 | thead th { 19 | vertical-align: bottom; 20 | border-bottom: (2 * $table-border-width) solid $table-border-color; 21 | } 22 | 23 | tbody + tbody { 24 | border-top: (2 * $table-border-width) solid $table-border-color; 25 | } 26 | 27 | .table { 28 | background-color: $body-bg; 29 | } 30 | } 31 | 32 | 33 | // 34 | // Condensed table w/ half padding 35 | // 36 | 37 | .table-sm { 38 | th, 39 | td { 40 | padding: $table-cell-padding-sm; 41 | } 42 | } 43 | 44 | 45 | // Border versions 46 | // 47 | // Add or remove borders all around the table and between all the columns. 48 | 49 | .table-bordered { 50 | border: $table-border-width solid $table-border-color; 51 | 52 | th, 53 | td { 54 | border: $table-border-width solid $table-border-color; 55 | } 56 | 57 | thead { 58 | th, 59 | td { 60 | border-bottom-width: (2 * $table-border-width); 61 | } 62 | } 63 | } 64 | 65 | .table-borderless { 66 | th, 67 | td, 68 | thead th, 69 | tbody + tbody { 70 | border: 0; 71 | } 72 | } 73 | 74 | // Zebra-striping 75 | // 76 | // Default zebra-stripe styles (alternating gray and transparent backgrounds) 77 | 78 | .table-striped { 79 | tbody tr:nth-of-type(#{$table-striped-order}) { 80 | background-color: $table-accent-bg; 81 | } 82 | } 83 | 84 | 85 | // Hover effect 86 | // 87 | // Placed here since it has to come after the potential zebra striping 88 | 89 | .table-hover { 90 | tbody tr { 91 | @include hover { 92 | background-color: $table-hover-bg; 93 | } 94 | } 95 | } 96 | 97 | 98 | // Table backgrounds 99 | // 100 | // Exact selectors below required to override `.table-striped` and prevent 101 | // inheritance to nested tables. 102 | 103 | @each $color, $value in $theme-colors { 104 | @include table-row-variant($color, theme-color-level($color, -9)); 105 | } 106 | 107 | @include table-row-variant(active, $table-active-bg); 108 | 109 | 110 | // Dark styles 111 | // 112 | // Same table markup, but inverted color scheme: dark background and light text. 113 | 114 | // stylelint-disable-next-line no-duplicate-selectors 115 | .table { 116 | .thead-dark { 117 | th { 118 | color: $table-dark-color; 119 | background-color: $table-dark-bg; 120 | border-color: $table-dark-border-color; 121 | } 122 | } 123 | 124 | .thead-light { 125 | th { 126 | color: $table-head-color; 127 | background-color: $table-head-bg; 128 | border-color: $table-border-color; 129 | } 130 | } 131 | } 132 | 133 | .table-dark { 134 | color: $table-dark-color; 135 | background-color: $table-dark-bg; 136 | 137 | th, 138 | td, 139 | thead th { 140 | border-color: $table-dark-border-color; 141 | } 142 | 143 | &.table-bordered { 144 | border: 0; 145 | } 146 | 147 | &.table-striped { 148 | tbody tr:nth-of-type(odd) { 149 | background-color: $table-dark-accent-bg; 150 | } 151 | } 152 | 153 | &.table-hover { 154 | tbody tr { 155 | @include hover { 156 | background-color: $table-dark-hover-bg; 157 | } 158 | } 159 | } 160 | } 161 | 162 | 163 | // Responsive tables 164 | // 165 | // Generate series of `.table-responsive-*` classes for configuring the screen 166 | // size of where your table will overflow. 167 | 168 | .table-responsive { 169 | @each $breakpoint in map-keys($grid-breakpoints) { 170 | $next: breakpoint-next($breakpoint, $grid-breakpoints); 171 | $infix: breakpoint-infix($next, $grid-breakpoints); 172 | 173 | {$infix} { 174 | @include media-breakpoint-down($breakpoint) { 175 | display: block; 176 | width: 100%; 177 | overflow-x: auto; 178 | -webkit-overflow-scrolling: touch; 179 | -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057 180 | 181 | // Prevent double border on horizontal scroll due to use of `display: block;` 182 | > .table-bordered { 183 | border: 0; 184 | } 185 | } 186 | } 187 | } 188 | } 189 | -------------------------------------------------------------------------------- /scss/bootstrap/_dropdown.scss: -------------------------------------------------------------------------------- 1 | // The dropdown wrapper (``) 2 | .dropup, 3 | .dropright, 4 | .dropdown, 5 | .dropleft { 6 | position: relative; 7 | } 8 | 9 | .dropdown-toggle { 10 | // Generate the caret automatically 11 | @include caret; 12 | } 13 | 14 | // The dropdown menu 15 | .dropdown-menu { 16 | position: absolute; 17 | top: 100%; 18 | left: 0; 19 | z-index: $zindex-dropdown; 20 | display: none; // none by default, but block on "open" of the menu 21 | float: left; 22 | min-width: $dropdown-min-width; 23 | padding: $dropdown-padding-y 0; 24 | margin: $dropdown-spacer 0 0; // override default ul 25 | font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues 26 | color: $body-color; 27 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) 28 | list-style: none; 29 | background-color: $dropdown-bg; 30 | background-clip: padding-box; 31 | border: $dropdown-border-width solid $dropdown-border-color; 32 | @include border-radius($dropdown-border-radius); 33 | @include box-shadow($dropdown-box-shadow); 34 | } 35 | 36 | .dropdown-menu-right { 37 | right: 0; 38 | left: auto; 39 | } 40 | 41 | // Allow for dropdowns to go bottom up (aka, dropup-menu) 42 | // Just add .dropup after the standard .dropdown class and you're set. 43 | .dropup { 44 | .dropdown-menu { 45 | top: auto; 46 | bottom: 100%; 47 | margin-top: 0; 48 | margin-bottom: $dropdown-spacer; 49 | } 50 | 51 | .dropdown-toggle { 52 | @include caret(up); 53 | } 54 | } 55 | 56 | .dropright { 57 | .dropdown-menu { 58 | top: 0; 59 | right: auto; 60 | left: 100%; 61 | margin-top: 0; 62 | margin-left: $dropdown-spacer; 63 | } 64 | 65 | .dropdown-toggle { 66 | @include caret(right); 67 | &::after { 68 | vertical-align: 0; 69 | } 70 | } 71 | } 72 | 73 | .dropleft { 74 | .dropdown-menu { 75 | top: 0; 76 | right: 100%; 77 | left: auto; 78 | margin-top: 0; 79 | margin-right: $dropdown-spacer; 80 | } 81 | 82 | .dropdown-toggle { 83 | @include caret(left); 84 | &::before { 85 | vertical-align: 0; 86 | } 87 | } 88 | } 89 | 90 | // When enabled Popper.js, reset basic dropdown position 91 | // stylelint-disable no-duplicate-selectors 92 | .dropdown-menu { 93 | &[x-placement^="top"], 94 | &[x-placement^="right"], 95 | &[x-placement^="bottom"], 96 | &[x-placement^="left"] { 97 | right: auto; 98 | bottom: auto; 99 | } 100 | } 101 | // stylelint-enable no-duplicate-selectors 102 | 103 | // Dividers (basically an ``) within the dropdown 104 | .dropdown-divider { 105 | @include nav-divider($dropdown-divider-bg); 106 | } 107 | 108 | // Links, buttons, and more within the dropdown menu 109 | // 110 | // ``-specific styles are denoted with `// For s` 111 | .dropdown-item { 112 | display: block; 113 | width: 100%; // For ``s 114 | padding: $dropdown-item-padding-y $dropdown-item-padding-x; 115 | clear: both; 116 | font-weight: $font-weight-normal; 117 | color: $dropdown-link-color; 118 | text-align: inherit; // For ``s 119 | white-space: nowrap; // prevent links from randomly breaking onto new lines 120 | background-color: transparent; // For ``s 121 | border: 0; // For ``s 122 | 123 | @include hover-focus { 124 | color: $dropdown-link-hover-color; 125 | text-decoration: none; 126 | @include gradient-bg($dropdown-link-hover-bg); 127 | } 128 | 129 | &.active, 130 | &:active { 131 | color: $dropdown-link-active-color; 132 | text-decoration: none; 133 | @include gradient-bg($dropdown-link-active-bg); 134 | } 135 | 136 | &.disabled, 137 | &:disabled { 138 | color: $dropdown-link-disabled-color; 139 | background-color: transparent; 140 | // Remove CSS gradients if they're enabled 141 | @if $enable-gradients { 142 | background-image: none; 143 | } 144 | } 145 | } 146 | 147 | .dropdown-menu.show { 148 | display: block; 149 | } 150 | 151 | // Dropdown section headers 152 | .dropdown-header { 153 | display: block; 154 | padding: $dropdown-padding-y $dropdown-item-padding-x; 155 | margin-bottom: 0; // for use with heading elements 156 | font-size: $font-size-sm; 157 | color: $dropdown-header-color; 158 | white-space: nowrap; // as with > li > a 159 | } 160 | 161 | // Dropdown text 162 | .dropdown-item-text { 163 | display: block; 164 | padding: $dropdown-item-padding-y $dropdown-item-padding-x; 165 | color: $dropdown-link-color; 166 | } 167 | -------------------------------------------------------------------------------- /scss/bootstrap/_button-group.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | // Make the div behave like a button 4 | .btn-group, 5 | .btn-group-vertical { 6 | position: relative; 7 | display: inline-flex; 8 | vertical-align: middle; // match .btn alignment given font-size hack above 9 | 10 | > .btn { 11 | position: relative; 12 | flex: 0 1 auto; 13 | 14 | // Bring the hover, focused, and "active" buttons to the front to overlay 15 | // the borders properly 16 | @include hover { 17 | z-index: 1; 18 | } 19 | &:focus, 20 | &:active, 21 | &.active { 22 | z-index: 1; 23 | } 24 | } 25 | 26 | // Prevent double borders when buttons are next to each other 27 | .btn + .btn, 28 | .btn + .btn-group, 29 | .btn-group + .btn, 30 | .btn-group + .btn-group { 31 | margin-left: -$btn-border-width; 32 | } 33 | } 34 | 35 | // Optional: Group multiple button groups together for a toolbar 36 | .btn-toolbar { 37 | display: flex; 38 | flex-wrap: wrap; 39 | justify-content: flex-start; 40 | 41 | .input-group { 42 | width: auto; 43 | } 44 | } 45 | 46 | .btn-group { 47 | > .btn:first-child { 48 | margin-left: 0; 49 | } 50 | 51 | // Reset rounded corners 52 | > .btn:not(:last-child):not(.dropdown-toggle), 53 | > .btn-group:not(:last-child) > .btn { 54 | @include border-right-radius(0); 55 | } 56 | 57 | > .btn:not(:first-child), 58 | > .btn-group:not(:first-child) > .btn { 59 | @include border-left-radius(0); 60 | } 61 | } 62 | 63 | // Sizing 64 | // 65 | // Remix the default button sizing classes into new ones for easier manipulation. 66 | 67 | .btn-group-sm > .btn { @extend .btn-sm; } 68 | .btn-group-lg > .btn { @extend .btn-lg; } 69 | 70 | 71 | // 72 | // Split button dropdowns 73 | // 74 | 75 | .dropdown-toggle-split { 76 | padding-right: $btn-padding-x * .75; 77 | padding-left: $btn-padding-x * .75; 78 | 79 | &::after, 80 | .dropup &::after, 81 | .dropright &::after { 82 | margin-left: 0; 83 | } 84 | 85 | .dropleft &::before { 86 | margin-right: 0; 87 | } 88 | } 89 | 90 | .btn-sm + .dropdown-toggle-split { 91 | padding-right: $btn-padding-x-sm * .75; 92 | padding-left: $btn-padding-x-sm * .75; 93 | } 94 | 95 | .btn-lg + .dropdown-toggle-split { 96 | padding-right: $btn-padding-x-lg * .75; 97 | padding-left: $btn-padding-x-lg * .75; 98 | } 99 | 100 | 101 | // The clickable button for toggling the menu 102 | // Set the same inset shadow as the :active state 103 | .btn-group.show .dropdown-toggle { 104 | @include box-shadow($btn-active-box-shadow); 105 | 106 | // Show no shadow for `.btn-link` since it has no other button styles. 107 | &.btn-link { 108 | @include box-shadow(none); 109 | } 110 | } 111 | 112 | 113 | // 114 | // Vertical button groups 115 | // 116 | 117 | .btn-group-vertical { 118 | flex-direction: column; 119 | align-items: flex-start; 120 | justify-content: center; 121 | 122 | .btn, 123 | .btn-group { 124 | width: 100%; 125 | } 126 | 127 | > .btn + .btn, 128 | > .btn + .btn-group, 129 | > .btn-group + .btn, 130 | > .btn-group + .btn-group { 131 | margin-top: -$btn-border-width; 132 | margin-left: 0; 133 | } 134 | 135 | // Reset rounded corners 136 | > .btn:not(:last-child):not(.dropdown-toggle), 137 | > .btn-group:not(:last-child) > .btn { 138 | @include border-bottom-radius(0); 139 | } 140 | 141 | > .btn:not(:first-child), 142 | > .btn-group:not(:first-child) > .btn { 143 | @include border-top-radius(0); 144 | } 145 | } 146 | 147 | 148 | // Checkbox and radio options 149 | // 150 | // In order to support the browser's form validation feedback, powered by the 151 | // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use 152 | // `display: none;` or `visibility: hidden;` as that also hides the popover. 153 | // Simply visually hiding the inputs via `opacity` would leave them clickable in 154 | // certain cases which is prevented by using `clip` and `pointer-events`. 155 | // This way, we ensure a DOM element is visible to position the popover from. 156 | // 157 | // See https://github.com/twbs/bootstrap/pull/12794 and 158 | // https://github.com/twbs/bootstrap/pull/14559 for more information. 159 | 160 | .btn-group-toggle { 161 | > .btn, 162 | > .btn-group > .btn { 163 | margin-bottom: 0; // Override default `` value 164 | 165 | input[type="radio"], 166 | input[type="checkbox"] { 167 | position: absolute; 168 | clip: rect(0, 0, 0, 0); 169 | pointer-events: none; 170 | } 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /scss/bootstrap/mixins/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | // Breakpoint viewport sizes and media queries. 2 | // 3 | // Breakpoints are defined as a map of (name: minimum width), order from small to large: 4 | // 5 | // (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px) 6 | // 7 | // The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default. 8 | 9 | // Name of the next breakpoint, or null for the last breakpoint. 10 | // 11 | // >> breakpoint-next(sm) 12 | // md 13 | // >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) 14 | // md 15 | // >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl)) 16 | // md 17 | @function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) { 18 | $n: index($breakpoint-names, $name); 19 | @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null); 20 | } 21 | 22 | // Minimum breakpoint width. Null for the smallest (first) breakpoint. 23 | // 24 | // >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) 25 | // 576px 26 | @function breakpoint-min($name, $breakpoints: $grid-breakpoints) { 27 | $min: map-get($breakpoints, $name); 28 | @return if($min != 0, $min, null); 29 | } 30 | 31 | // Maximum breakpoint width. Null for the largest (last) breakpoint. 32 | // The maximum value is calculated as the minimum of the next one less 0.02px 33 | // to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths. 34 | // See https://www.w3.org/TR/mediaqueries-4/#mq-min-max 35 | // Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari. 36 | // See https://bugs.webkit.org/show_bug.cgi?id=178261 37 | // 38 | // >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) 39 | // 767.98px 40 | @function breakpoint-max($name, $breakpoints: $grid-breakpoints) { 41 | $next: breakpoint-next($name, $breakpoints); 42 | @return if($next, breakpoint-min($next, $breakpoints) - .02px, null); 43 | } 44 | 45 | // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront. 46 | // Useful for making responsive utilities. 47 | // 48 | // >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) 49 | // "" (Returns a blank string) 50 | // >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) 51 | // "-sm" 52 | @function breakpoint-infix($name, $breakpoints: $grid-breakpoints) { 53 | @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}"); 54 | } 55 | 56 | // Media of at least the minimum breakpoint width. No query for the smallest breakpoint. 57 | // Makes the @content apply to the given breakpoint and wider. 58 | @mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) { 59 | $min: breakpoint-min($name, $breakpoints); 60 | @if $min { 61 | @media (min-width: $min) { 62 | @content; 63 | } 64 | } @else { 65 | @content; 66 | } 67 | } 68 | 69 | // Media of at most the maximum breakpoint width. No query for the largest breakpoint. 70 | // Makes the @content apply to the given breakpoint and narrower. 71 | @mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) { 72 | $max: breakpoint-max($name, $breakpoints); 73 | @if $max { 74 | @media (max-width: $max) { 75 | @content; 76 | } 77 | } @else { 78 | @content; 79 | } 80 | } 81 | 82 | // Media that spans multiple breakpoint widths. 83 | // Makes the @content apply between the min and max breakpoints 84 | @mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) { 85 | $min: breakpoint-min($lower, $breakpoints); 86 | $max: breakpoint-max($upper, $breakpoints); 87 | 88 | @if $min != null and $max != null { 89 | @media (min-width: $min) and (max-width: $max) { 90 | @content; 91 | } 92 | } @else if $max == null { 93 | @include media-breakpoint-up($lower, $breakpoints) { 94 | @content; 95 | } 96 | } @else if $min == null { 97 | @include media-breakpoint-down($upper, $breakpoints) { 98 | @content; 99 | } 100 | } 101 | } 102 | 103 | // Media between the breakpoint's minimum and maximum widths. 104 | // No minimum for the smallest breakpoint, and no maximum for the largest one. 105 | // Makes the @content apply only to the given breakpoint, not viewports any wider or narrower. 106 | @mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) { 107 | $min: breakpoint-min($name, $breakpoints); 108 | $max: breakpoint-max($name, $breakpoints); 109 | 110 | @if $min != null and $max != null { 111 | @media (min-width: $min) and (max-width: $max) { 112 | @content; 113 | } 114 | } @else if $max == null { 115 | @include media-breakpoint-up($name, $breakpoints) { 116 | @content; 117 | } 118 | } @else if $min == null { 119 | @include media-breakpoint-down($name, $breakpoints) { 120 | @content; 121 | } 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /scss/bootstrap/_popover.scss: -------------------------------------------------------------------------------- 1 | .popover { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | z-index: $zindex-popover; 6 | display: block; 7 | max-width: $popover-max-width; 8 | // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. 9 | // So reset our font and text properties to avoid inheriting weird values. 10 | @include reset-text(); 11 | font-size: $popover-font-size; 12 | // Allow breaking very long words so they don't overflow the popover's bounds 13 | word-wrap: break-word; 14 | background-color: $popover-bg; 15 | background-clip: padding-box; 16 | border: $popover-border-width solid $popover-border-color; 17 | @include border-radius($popover-border-radius); 18 | @include box-shadow($popover-box-shadow); 19 | 20 | .arrow { 21 | position: absolute; 22 | display: block; 23 | width: $popover-arrow-width; 24 | height: $popover-arrow-height; 25 | margin: 0 $border-radius-lg; 26 | 27 | &::before, 28 | &::after { 29 | position: absolute; 30 | display: block; 31 | content: ""; 32 | border-color: transparent; 33 | border-style: solid; 34 | } 35 | } 36 | } 37 | 38 | .bs-popover-top { 39 | margin-bottom: $popover-arrow-height; 40 | 41 | .arrow { 42 | bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); 43 | } 44 | 45 | .arrow::before, 46 | .arrow::after { 47 | border-width: $popover-arrow-height ($popover-arrow-width / 2) 0; 48 | } 49 | 50 | .arrow::before { 51 | bottom: 0; 52 | border-top-color: $popover-arrow-outer-color; 53 | } 54 | 55 | .arrow::after { 56 | bottom: $popover-border-width; 57 | border-top-color: $popover-arrow-color; 58 | } 59 | } 60 | 61 | .bs-popover-right { 62 | margin-left: $popover-arrow-height; 63 | 64 | .arrow { 65 | left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); 66 | width: $popover-arrow-height; 67 | height: $popover-arrow-width; 68 | margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners 69 | } 70 | 71 | .arrow::before, 72 | .arrow::after { 73 | border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0; 74 | } 75 | 76 | .arrow::before { 77 | left: 0; 78 | border-right-color: $popover-arrow-outer-color; 79 | } 80 | 81 | .arrow::after { 82 | left: $popover-border-width; 83 | border-right-color: $popover-arrow-color; 84 | } 85 | } 86 | 87 | .bs-popover-bottom { 88 | margin-top: $popover-arrow-height; 89 | 90 | .arrow { 91 | top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); 92 | } 93 | 94 | .arrow::before, 95 | .arrow::after { 96 | border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2); 97 | } 98 | 99 | .arrow::before { 100 | top: 0; 101 | border-bottom-color: $popover-arrow-outer-color; 102 | } 103 | 104 | .arrow::after { 105 | top: $popover-border-width; 106 | border-bottom-color: $popover-arrow-color; 107 | } 108 | 109 | // This will remove the popover-header's border just below the arrow 110 | .popover-header::before { 111 | position: absolute; 112 | top: 0; 113 | left: 50%; 114 | display: block; 115 | width: $popover-arrow-width; 116 | margin-left: ($popover-arrow-width / -2); 117 | content: ""; 118 | border-bottom: $popover-border-width solid $popover-header-bg; 119 | } 120 | } 121 | 122 | .bs-popover-left { 123 | margin-right: $popover-arrow-height; 124 | 125 | .arrow { 126 | right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); 127 | width: $popover-arrow-height; 128 | height: $popover-arrow-width; 129 | margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners 130 | } 131 | 132 | .arrow::before, 133 | .arrow::after { 134 | border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height; 135 | } 136 | 137 | .arrow::before { 138 | right: 0; 139 | border-left-color: $popover-arrow-outer-color; 140 | } 141 | 142 | .arrow::after { 143 | right: $popover-border-width; 144 | border-left-color: $popover-arrow-color; 145 | } 146 | } 147 | 148 | .bs-popover-auto { 149 | &[x-placement^="top"] { 150 | @extend .bs-popover-top; 151 | } 152 | &[x-placement^="right"] { 153 | @extend .bs-popover-right; 154 | } 155 | &[x-placement^="bottom"] { 156 | @extend .bs-popover-bottom; 157 | } 158 | &[x-placement^="left"] { 159 | @extend .bs-popover-left; 160 | } 161 | } 162 | 163 | 164 | // Offset the popover to account for the popover arrow 165 | .popover-header { 166 | padding: $popover-header-padding-y $popover-header-padding-x; 167 | margin-bottom: 0; // Reset the default from Reboot 168 | font-size: $font-size-base; 169 | color: $popover-header-color; 170 | background-color: $popover-header-bg; 171 | border-bottom: $popover-border-width solid darken($popover-header-bg, 5%); 172 | $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width}); 173 | @include border-top-radius($offset-border-width); 174 | 175 | &:empty { 176 | display: none; 177 | } 178 | } 179 | 180 | .popover-body { 181 | padding: $popover-body-padding-y $popover-body-padding-x; 182 | color: $popover-body-color; 183 | } 184 | -------------------------------------------------------------------------------- /scss/bootstrap/_modal.scss: -------------------------------------------------------------------------------- 1 | // .modal-open - body class for killing the scroll 2 | // .modal - container to scroll within 3 | // .modal-dialog - positioning shell for the actual modal 4 | // .modal-content - actual modal w/ bg and corners and stuff 5 | 6 | 7 | // Kill the scroll on the body 8 | .modal-open { 9 | overflow: hidden; 10 | } 11 | 12 | // Container that the modal scrolls within 13 | .modal { 14 | position: fixed; 15 | top: 0; 16 | right: 0; 17 | bottom: 0; 18 | left: 0; 19 | z-index: $zindex-modal; 20 | display: none; 21 | overflow: hidden; 22 | // Prevent Chrome on Windows from adding a focus outline. For details, see 23 | // https://github.com/twbs/bootstrap/pull/10951. 24 | outline: 0; 25 | // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a 26 | // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342 27 | // See also https://github.com/twbs/bootstrap/issues/17695 28 | 29 | .modal-open & { 30 | overflow-x: hidden; 31 | overflow-y: auto; 32 | } 33 | } 34 | 35 | // Shell div to position the modal with bottom padding 36 | .modal-dialog { 37 | position: relative; 38 | width: auto; 39 | margin: $modal-dialog-margin; 40 | // allow clicks to pass through for custom click handling to close modal 41 | pointer-events: none; 42 | 43 | // When fading in the modal, animate it to slide down 44 | .modal.fade & { 45 | @include transition($modal-transition); 46 | transform: translate(0, -25%); 47 | } 48 | .modal.show & { 49 | transform: translate(0, 0); 50 | } 51 | } 52 | 53 | .modal-dialog-centered { 54 | display: flex; 55 | align-items: center; 56 | min-height: calc(100% - (#{$modal-dialog-margin} * 2)); 57 | } 58 | 59 | // Actual modal 60 | .modal-content { 61 | position: relative; 62 | display: flex; 63 | flex-direction: column; 64 | width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog` 65 | // counteract the pointer-events: none; in the .modal-dialog 66 | pointer-events: auto; 67 | background-color: $modal-content-bg; 68 | background-clip: padding-box; 69 | border: $modal-content-border-width solid $modal-content-border-color; 70 | @include border-radius($modal-content-border-radius); 71 | @include box-shadow($modal-content-box-shadow-xs); 72 | // Remove focus outline from opened modal 73 | outline: 0; 74 | } 75 | 76 | // Modal background 77 | .modal-backdrop { 78 | position: fixed; 79 | top: 0; 80 | right: 0; 81 | bottom: 0; 82 | left: 0; 83 | z-index: $zindex-modal-backdrop; 84 | background-color: $modal-backdrop-bg; 85 | 86 | // Fade for backdrop 87 | &.fade { opacity: 0; } 88 | &.show { opacity: $modal-backdrop-opacity; } 89 | } 90 | 91 | // Modal header 92 | // Top section of the modal w/ title and dismiss 93 | .modal-header { 94 | display: flex; 95 | align-items: flex-start; // so the close btn always stays on the upper right corner 96 | justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends 97 | padding: $modal-header-padding; 98 | border-bottom: $modal-header-border-width solid $modal-header-border-color; 99 | @include border-top-radius($modal-content-border-radius); 100 | 101 | .close { 102 | padding: $modal-header-padding; 103 | // auto on the left force icon to the right even when there is no .modal-title 104 | margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto; 105 | } 106 | } 107 | 108 | // Title text within header 109 | .modal-title { 110 | margin-bottom: 0; 111 | line-height: $modal-title-line-height; 112 | } 113 | 114 | // Modal body 115 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 116 | .modal-body { 117 | position: relative; 118 | // Enable `flex-grow: 1` so that the body take up as much space as possible 119 | // when should there be a fixed height on `.modal-dialog`. 120 | flex: 1 1 auto; 121 | padding: $modal-inner-padding; 122 | } 123 | 124 | // Footer (for actions) 125 | .modal-footer { 126 | display: flex; 127 | align-items: center; // vertically center 128 | justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items 129 | padding: $modal-inner-padding; 130 | border-top: $modal-footer-border-width solid $modal-footer-border-color; 131 | 132 | // Easily place margin between footer elements 133 | > :not(:first-child) { margin-left: .25rem; } 134 | > :not(:last-child) { margin-right: .25rem; } 135 | } 136 | 137 | // Measure scrollbar width for padding body during modal show/hide 138 | .modal-scrollbar-measure { 139 | position: absolute; 140 | top: -9999px; 141 | width: 50px; 142 | height: 50px; 143 | overflow: scroll; 144 | } 145 | 146 | // Scale up the modal 147 | @include media-breakpoint-up(sm) { 148 | // Automatically set modal's width for larger viewports 149 | .modal-dialog { 150 | max-width: $modal-md; 151 | margin: $modal-dialog-margin-y-sm-up auto; 152 | } 153 | 154 | .modal-dialog-centered { 155 | min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2)); 156 | } 157 | 158 | .modal-content { 159 | @include box-shadow($modal-content-box-shadow-sm-up); 160 | } 161 | 162 | .modal-sm { max-width: $modal-sm; } 163 | 164 | } 165 | 166 | @include media-breakpoint-up(lg) { 167 | .modal-lg { max-width: $modal-lg; } 168 | } 169 | -------------------------------------------------------------------------------- /scss/bootstrap/_input-group.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | // 4 | // Base styles 5 | // 6 | 7 | .input-group { 8 | position: relative; 9 | display: flex; 10 | flex-wrap: wrap; // For form validation feedback 11 | align-items: stretch; 12 | width: 100%; 13 | 14 | > .form-control, 15 | > .custom-select, 16 | > .custom-file { 17 | position: relative; // For focus state's z-index 18 | flex: 1 1 auto; 19 | // Add width 1% and flex-basis auto to ensure that button will not wrap out 20 | // the column. Applies to IE Edge+ and Firefox. Chrome does not require this. 21 | width: 1%; 22 | margin-bottom: 0; 23 | 24 | // Bring the "active" form control to the top of surrounding elements 25 | &:focus { 26 | z-index: 3; 27 | } 28 | 29 | + .form-control, 30 | + .custom-select, 31 | + .custom-file { 32 | margin-left: -$input-border-width; 33 | } 34 | } 35 | 36 | > .form-control, 37 | > .custom-select { 38 | &:not(:last-child) { @include border-right-radius(0); } 39 | &:not(:first-child) { @include border-left-radius(0); } 40 | } 41 | 42 | // Custom file inputs have more complex markup, thus requiring different 43 | // border-radius overrides. 44 | > .custom-file { 45 | display: flex; 46 | align-items: center; 47 | 48 | &:not(:last-child) .custom-file-label, 49 | &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); } 50 | &:not(:first-child) .custom-file-label, 51 | &:not(:first-child) .custom-file-label::after { @include border-left-radius(0); } 52 | } 53 | } 54 | 55 | 56 | // Prepend and append 57 | // 58 | // While it requires one extra layer of HTML for each, dedicated prepend and 59 | // append elements allow us to 1) be less clever, 2) simplify our selectors, and 60 | // 3) support HTML5 form validation. 61 | 62 | .input-group-prepend, 63 | .input-group-append { 64 | display: flex; 65 | 66 | // Ensure buttons are always above inputs for more visually pleasing borders. 67 | // This isn't needed for `.input-group-text` since it shares the same border-color 68 | // as our inputs. 69 | .btn { 70 | position: relative; 71 | z-index: 2; 72 | } 73 | 74 | .btn + .btn, 75 | .btn + .input-group-text, 76 | .input-group-text + .input-group-text, 77 | .input-group-text + .btn { 78 | margin-left: -$input-border-width; 79 | } 80 | } 81 | 82 | .input-group-prepend { margin-right: -$input-border-width; } 83 | .input-group-append { margin-left: -$input-border-width; } 84 | 85 | 86 | // Textual addons 87 | // 88 | // Serves as a catch-all element for any text or radio/checkbox input you wish 89 | // to prepend or append to an input. 90 | 91 | .input-group-text { 92 | display: flex; 93 | align-items: center; 94 | padding: $input-padding-y $input-padding-x; 95 | margin-bottom: 0; // Allow use of elements by overriding our default margin-bottom 96 | font-size: $font-size-base; // Match inputs 97 | font-weight: $font-weight-normal; 98 | line-height: $input-line-height; 99 | color: $input-group-addon-color; 100 | text-align: center; 101 | white-space: nowrap; 102 | background-color: $input-group-addon-bg; 103 | border: $input-border-width solid $input-group-addon-border-color; 104 | @include border-radius($input-border-radius); 105 | 106 | // Nuke default margins from checkboxes and radios to vertically center within. 107 | input[type="radio"], 108 | input[type="checkbox"] { 109 | margin-top: 0; 110 | } 111 | } 112 | 113 | 114 | // Sizing 115 | // 116 | // Remix the default form control sizing classes into new ones for easier 117 | // manipulation. 118 | 119 | .input-group-lg > .form-control, 120 | .input-group-lg > .input-group-prepend > .input-group-text, 121 | .input-group-lg > .input-group-append > .input-group-text, 122 | .input-group-lg > .input-group-prepend > .btn, 123 | .input-group-lg > .input-group-append > .btn { 124 | @extend .form-control-lg; 125 | } 126 | 127 | .input-group-sm > .form-control, 128 | .input-group-sm > .input-group-prepend > .input-group-text, 129 | .input-group-sm > .input-group-append > .input-group-text, 130 | .input-group-sm > .input-group-prepend > .btn, 131 | .input-group-sm > .input-group-append > .btn { 132 | @extend .form-control-sm; 133 | } 134 | 135 | 136 | // Prepend and append rounded corners 137 | // 138 | // These rulesets must come after the sizing ones to properly override sm and lg 139 | // border-radius values when extending. They're more specific than we'd like 140 | // with the `.input-group >` part, but without it, we cannot override the sizing. 141 | 142 | 143 | .input-group > .input-group-prepend > .btn, 144 | .input-group > .input-group-prepend > .input-group-text, 145 | .input-group > .input-group-append:not(:last-child) > .btn, 146 | .input-group > .input-group-append:not(:last-child) > .input-group-text, 147 | .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), 148 | .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { 149 | @include border-right-radius(0); 150 | } 151 | 152 | .input-group > .input-group-append > .btn, 153 | .input-group > .input-group-append > .input-group-text, 154 | .input-group > .input-group-prepend:not(:first-child) > .btn, 155 | .input-group > .input-group-prepend:not(:first-child) > .input-group-text, 156 | .input-group > .input-group-prepend:first-child > .btn:not(:first-child), 157 | .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { 158 | @include border-left-radius(0); 159 | } 160 | -------------------------------------------------------------------------------- /css/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | -webkit-box-sizing: border-box; 12 | box-sizing: border-box; } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -ms-text-size-adjust: 100%; 19 | -ms-overflow-style: scrollbar; 20 | -webkit-tap-highlight-color: transparent; } 21 | 22 | @-ms-viewport { 23 | width: device-width; } 24 | 25 | article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { 26 | display: block; } 27 | 28 | body { 29 | margin: 0; 30 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 31 | font-size: 1rem; 32 | font-weight: 400; 33 | line-height: 1.5; 34 | color: #212529; 35 | text-align: left; 36 | background-color: #fff; } 37 | 38 | [tabindex="-1"]:focus { 39 | outline: 0 !important; } 40 | 41 | hr { 42 | -webkit-box-sizing: content-box; 43 | box-sizing: content-box; 44 | height: 0; 45 | overflow: visible; } 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | margin-top: 0; 49 | margin-bottom: 0.5rem; } 50 | 51 | p { 52 | margin-top: 0; 53 | margin-bottom: 1rem; } 54 | 55 | abbr[title], 56 | abbr[data-original-title] { 57 | text-decoration: underline; 58 | -webkit-text-decoration: underline dotted; 59 | text-decoration: underline dotted; 60 | cursor: help; 61 | border-bottom: 0; } 62 | 63 | address { 64 | margin-bottom: 1rem; 65 | font-style: normal; 66 | line-height: inherit; } 67 | 68 | ol, 69 | ul, 70 | dl { 71 | margin-top: 0; 72 | margin-bottom: 1rem; } 73 | 74 | ol ol, 75 | ul ul, 76 | ol ul, 77 | ul ol { 78 | margin-bottom: 0; } 79 | 80 | dt { 81 | font-weight: 700; } 82 | 83 | dd { 84 | margin-bottom: .5rem; 85 | margin-left: 0; } 86 | 87 | blockquote { 88 | margin: 0 0 1rem; } 89 | 90 | dfn { 91 | font-style: italic; } 92 | 93 | b, 94 | strong { 95 | font-weight: bolder; } 96 | 97 | small { 98 | font-size: 80%; } 99 | 100 | sub, 101 | sup { 102 | position: relative; 103 | font-size: 75%; 104 | line-height: 0; 105 | vertical-align: baseline; } 106 | 107 | sub { 108 | bottom: -.25em; } 109 | 110 | sup { 111 | top: -.5em; } 112 | 113 | a { 114 | color: #007bff; 115 | text-decoration: none; 116 | background-color: transparent; 117 | -webkit-text-decoration-skip: objects; } 118 | a:hover { 119 | color: #0056b3; 120 | text-decoration: underline; } 121 | 122 | a:not([href]):not([tabindex]) { 123 | color: inherit; 124 | text-decoration: none; } 125 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { 126 | color: inherit; 127 | text-decoration: none; } 128 | a:not([href]):not([tabindex]):focus { 129 | outline: 0; } 130 | 131 | pre, 132 | code, 133 | kbd, 134 | samp { 135 | font-family: monospace, monospace; 136 | font-size: 1em; } 137 | 138 | pre { 139 | margin-top: 0; 140 | margin-bottom: 1rem; 141 | overflow: auto; 142 | -ms-overflow-style: scrollbar; } 143 | 144 | figure { 145 | margin: 0 0 1rem; } 146 | 147 | img { 148 | vertical-align: middle; 149 | border-style: none; } 150 | 151 | svg:not(:root) { 152 | overflow: hidden; } 153 | 154 | table { 155 | border-collapse: collapse; } 156 | 157 | caption { 158 | padding-top: 0.75rem; 159 | padding-bottom: 0.75rem; 160 | color: #6c757d; 161 | text-align: left; 162 | caption-side: bottom; } 163 | 164 | th { 165 | text-align: inherit; } 166 | 167 | label { 168 | display: inline-block; 169 | margin-bottom: 0.5rem; } 170 | 171 | button { 172 | border-radius: 0; } 173 | 174 | button:focus { 175 | outline: 1px dotted; 176 | outline: 5px auto -webkit-focus-ring-color; } 177 | 178 | input, 179 | button, 180 | select, 181 | optgroup, 182 | textarea { 183 | margin: 0; 184 | font-family: inherit; 185 | font-size: inherit; 186 | line-height: inherit; } 187 | 188 | button, 189 | input { 190 | overflow: visible; } 191 | 192 | button, 193 | select { 194 | text-transform: none; } 195 | 196 | button, 197 | html [type="button"], 198 | [type="reset"], 199 | [type="submit"] { 200 | -webkit-appearance: button; } 201 | 202 | button::-moz-focus-inner, 203 | [type="button"]::-moz-focus-inner, 204 | [type="reset"]::-moz-focus-inner, 205 | [type="submit"]::-moz-focus-inner { 206 | padding: 0; 207 | border-style: none; } 208 | 209 | input[type="radio"], 210 | input[type="checkbox"] { 211 | -webkit-box-sizing: border-box; 212 | box-sizing: border-box; 213 | padding: 0; } 214 | 215 | input[type="date"], 216 | input[type="time"], 217 | input[type="datetime-local"], 218 | input[type="month"] { 219 | -webkit-appearance: listbox; } 220 | 221 | textarea { 222 | overflow: auto; 223 | resize: vertical; } 224 | 225 | fieldset { 226 | min-width: 0; 227 | padding: 0; 228 | margin: 0; 229 | border: 0; } 230 | 231 | legend { 232 | display: block; 233 | width: 100%; 234 | max-width: 100%; 235 | padding: 0; 236 | margin-bottom: .5rem; 237 | font-size: 1.5rem; 238 | line-height: inherit; 239 | color: inherit; 240 | white-space: normal; } 241 | 242 | progress { 243 | vertical-align: baseline; } 244 | 245 | [type="number"]::-webkit-inner-spin-button, 246 | [type="number"]::-webkit-outer-spin-button { 247 | height: auto; } 248 | 249 | [type="search"] { 250 | outline-offset: -2px; 251 | -webkit-appearance: none; } 252 | 253 | [type="search"]::-webkit-search-cancel-button, 254 | [type="search"]::-webkit-search-decoration { 255 | -webkit-appearance: none; } 256 | 257 | ::-webkit-file-upload-button { 258 | font: inherit; 259 | -webkit-appearance: button; } 260 | 261 | output { 262 | display: inline-block; } 263 | 264 | summary { 265 | display: list-item; 266 | cursor: pointer; } 267 | 268 | template { 269 | display: none; } 270 | 271 | [hidden] { 272 | display: none !important; } 273 | -------------------------------------------------------------------------------- /css/bootstrap/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | -webkit-box-sizing: border-box; 12 | box-sizing: border-box; } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -ms-text-size-adjust: 100%; 19 | -ms-overflow-style: scrollbar; 20 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } 21 | 22 | @-ms-viewport { 23 | width: device-width; } 24 | 25 | article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { 26 | display: block; } 27 | 28 | body { 29 | margin: 0; 30 | font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 31 | font-size: 1rem; 32 | font-weight: 400; 33 | line-height: 1.5; 34 | color: #212529; 35 | text-align: left; 36 | background-color: #fff; } 37 | 38 | [tabindex="-1"]:focus { 39 | outline: 0 !important; } 40 | 41 | hr { 42 | -webkit-box-sizing: content-box; 43 | box-sizing: content-box; 44 | height: 0; 45 | overflow: visible; } 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | margin-top: 0; 49 | margin-bottom: 0.5rem; } 50 | 51 | p { 52 | margin-top: 0; 53 | margin-bottom: 1rem; } 54 | 55 | abbr[title], 56 | abbr[data-original-title] { 57 | text-decoration: underline; 58 | -webkit-text-decoration: underline dotted; 59 | text-decoration: underline dotted; 60 | cursor: help; 61 | border-bottom: 0; } 62 | 63 | address { 64 | margin-bottom: 1rem; 65 | font-style: normal; 66 | line-height: inherit; } 67 | 68 | ol, 69 | ul, 70 | dl { 71 | margin-top: 0; 72 | margin-bottom: 1rem; } 73 | 74 | ol ol, 75 | ul ul, 76 | ol ul, 77 | ul ol { 78 | margin-bottom: 0; } 79 | 80 | dt { 81 | font-weight: 700; } 82 | 83 | dd { 84 | margin-bottom: .5rem; 85 | margin-left: 0; } 86 | 87 | blockquote { 88 | margin: 0 0 1rem; } 89 | 90 | dfn { 91 | font-style: italic; } 92 | 93 | b, 94 | strong { 95 | font-weight: bolder; } 96 | 97 | small { 98 | font-size: 80%; } 99 | 100 | sub, 101 | sup { 102 | position: relative; 103 | font-size: 75%; 104 | line-height: 0; 105 | vertical-align: baseline; } 106 | 107 | sub { 108 | bottom: -.25em; } 109 | 110 | sup { 111 | top: -.5em; } 112 | 113 | a { 114 | color: #79efb4; 115 | text-decoration: none; 116 | background-color: transparent; 117 | -webkit-text-decoration-skip: objects; } 118 | a:hover { 119 | color: #35e78e; 120 | text-decoration: underline; } 121 | 122 | a:not([href]):not([tabindex]) { 123 | color: inherit; 124 | text-decoration: none; } 125 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { 126 | color: inherit; 127 | text-decoration: none; } 128 | a:not([href]):not([tabindex]):focus { 129 | outline: 0; } 130 | 131 | pre, 132 | code, 133 | kbd, 134 | samp { 135 | font-family: monospace, monospace; 136 | font-size: 1em; } 137 | 138 | pre { 139 | margin-top: 0; 140 | margin-bottom: 1rem; 141 | overflow: auto; 142 | -ms-overflow-style: scrollbar; } 143 | 144 | figure { 145 | margin: 0 0 1rem; } 146 | 147 | img { 148 | vertical-align: middle; 149 | border-style: none; } 150 | 151 | svg:not(:root) { 152 | overflow: hidden; } 153 | 154 | table { 155 | border-collapse: collapse; } 156 | 157 | caption { 158 | padding-top: 0.75rem; 159 | padding-bottom: 0.75rem; 160 | color: #6c757d; 161 | text-align: left; 162 | caption-side: bottom; } 163 | 164 | th { 165 | text-align: inherit; } 166 | 167 | label { 168 | display: inline-block; 169 | margin-bottom: 0.5rem; } 170 | 171 | button { 172 | border-radius: 0; } 173 | 174 | button:focus { 175 | outline: 1px dotted; 176 | outline: 5px auto -webkit-focus-ring-color; } 177 | 178 | input, 179 | button, 180 | select, 181 | optgroup, 182 | textarea { 183 | margin: 0; 184 | font-family: inherit; 185 | font-size: inherit; 186 | line-height: inherit; } 187 | 188 | button, 189 | input { 190 | overflow: visible; } 191 | 192 | button, 193 | select { 194 | text-transform: none; } 195 | 196 | button, 197 | html [type="button"], 198 | [type="reset"], 199 | [type="submit"] { 200 | -webkit-appearance: button; } 201 | 202 | button::-moz-focus-inner, 203 | [type="button"]::-moz-focus-inner, 204 | [type="reset"]::-moz-focus-inner, 205 | [type="submit"]::-moz-focus-inner { 206 | padding: 0; 207 | border-style: none; } 208 | 209 | input[type="radio"], 210 | input[type="checkbox"] { 211 | -webkit-box-sizing: border-box; 212 | box-sizing: border-box; 213 | padding: 0; } 214 | 215 | input[type="date"], 216 | input[type="time"], 217 | input[type="datetime-local"], 218 | input[type="month"] { 219 | -webkit-appearance: listbox; } 220 | 221 | textarea { 222 | overflow: auto; 223 | resize: vertical; } 224 | 225 | fieldset { 226 | min-width: 0; 227 | padding: 0; 228 | margin: 0; 229 | border: 0; } 230 | 231 | legend { 232 | display: block; 233 | width: 100%; 234 | max-width: 100%; 235 | padding: 0; 236 | margin-bottom: .5rem; 237 | font-size: 1.5rem; 238 | line-height: inherit; 239 | color: inherit; 240 | white-space: normal; } 241 | 242 | progress { 243 | vertical-align: baseline; } 244 | 245 | [type="number"]::-webkit-inner-spin-button, 246 | [type="number"]::-webkit-outer-spin-button { 247 | height: auto; } 248 | 249 | [type="search"] { 250 | outline-offset: -2px; 251 | -webkit-appearance: none; } 252 | 253 | [type="search"]::-webkit-search-cancel-button, 254 | [type="search"]::-webkit-search-decoration { 255 | -webkit-appearance: none; } 256 | 257 | ::-webkit-file-upload-button { 258 | font: inherit; 259 | -webkit-appearance: button; } 260 | 261 | output { 262 | display: inline-block; } 263 | 264 | summary { 265 | display: list-item; 266 | cursor: pointer; } 267 | 268 | template { 269 | display: none; } 270 | 271 | [hidden] { 272 | display: none !important; } 273 | -------------------------------------------------------------------------------- /scss/bootstrap/_carousel.scss: -------------------------------------------------------------------------------- 1 | // Notes on the classes: 2 | // 3 | // 1. The .carousel-item-left and .carousel-item-right is used to indicate where 4 | // the active slide is heading. 5 | // 2. .active.carousel-item is the current slide. 6 | // 3. .active.carousel-item-left and .active.carousel-item-right is the current 7 | // slide in its in-transition state. Only one of these occurs at a time. 8 | // 4. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right 9 | // is the upcoming slide in transition. 10 | 11 | .carousel { 12 | position: relative; 13 | } 14 | 15 | .carousel-inner { 16 | position: relative; 17 | width: 100%; 18 | overflow: hidden; 19 | } 20 | 21 | .carousel-item { 22 | position: relative; 23 | display: none; 24 | align-items: center; 25 | width: 100%; 26 | @include transition($carousel-transition); 27 | backface-visibility: hidden; 28 | perspective: 1000px; 29 | } 30 | 31 | .carousel-item.active, 32 | .carousel-item-next, 33 | .carousel-item-prev { 34 | display: block; 35 | } 36 | 37 | .carousel-item-next, 38 | .carousel-item-prev { 39 | position: absolute; 40 | top: 0; 41 | } 42 | 43 | .carousel-item-next.carousel-item-left, 44 | .carousel-item-prev.carousel-item-right { 45 | transform: translateX(0); 46 | 47 | @supports (transform-style: preserve-3d) { 48 | transform: translate3d(0, 0, 0); 49 | } 50 | } 51 | 52 | .carousel-item-next, 53 | .active.carousel-item-right { 54 | transform: translateX(100%); 55 | 56 | @supports (transform-style: preserve-3d) { 57 | transform: translate3d(100%, 0, 0); 58 | } 59 | } 60 | 61 | .carousel-item-prev, 62 | .active.carousel-item-left { 63 | transform: translateX(-100%); 64 | 65 | @supports (transform-style: preserve-3d) { 66 | transform: translate3d(-100%, 0, 0); 67 | } 68 | } 69 | 70 | 71 | // 72 | // Alternate transitions 73 | // 74 | 75 | .carousel-fade { 76 | .carousel-item { 77 | opacity: 0; 78 | transition-duration: .6s; 79 | transition-property: opacity; 80 | } 81 | 82 | .carousel-item.active, 83 | .carousel-item-next.carousel-item-left, 84 | .carousel-item-prev.carousel-item-right { 85 | opacity: 1; 86 | } 87 | 88 | .active.carousel-item-left, 89 | .active.carousel-item-right { 90 | opacity: 0; 91 | } 92 | 93 | .carousel-item-next, 94 | .carousel-item-prev, 95 | .carousel-item.active, 96 | .active.carousel-item-left, 97 | .active.carousel-item-prev { 98 | transform: translateX(0); 99 | 100 | @supports (transform-style: preserve-3d) { 101 | transform: translate3d(0, 0, 0); 102 | } 103 | } 104 | } 105 | 106 | 107 | // 108 | // Left/right controls for nav 109 | // 110 | 111 | .carousel-control-prev, 112 | .carousel-control-next { 113 | position: absolute; 114 | top: 0; 115 | bottom: 0; 116 | // Use flex for alignment (1-3) 117 | display: flex; // 1. allow flex styles 118 | align-items: center; // 2. vertically center contents 119 | justify-content: center; // 3. horizontally center contents 120 | width: $carousel-control-width; 121 | color: $carousel-control-color; 122 | text-align: center; 123 | opacity: $carousel-control-opacity; 124 | // We can't have a transition here because WebKit cancels the carousel 125 | // animation if you trip this while in the middle of another animation. 126 | 127 | // Hover/focus state 128 | @include hover-focus { 129 | color: $carousel-control-color; 130 | text-decoration: none; 131 | outline: 0; 132 | opacity: .9; 133 | } 134 | } 135 | .carousel-control-prev { 136 | left: 0; 137 | @if $enable-gradients { 138 | background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001)); 139 | } 140 | } 141 | .carousel-control-next { 142 | right: 0; 143 | @if $enable-gradients { 144 | background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001)); 145 | } 146 | } 147 | 148 | // Icons for within 149 | .carousel-control-prev-icon, 150 | .carousel-control-next-icon { 151 | display: inline-block; 152 | width: $carousel-control-icon-width; 153 | height: $carousel-control-icon-width; 154 | background: transparent no-repeat center center; 155 | background-size: 100% 100%; 156 | } 157 | .carousel-control-prev-icon { 158 | background-image: $carousel-control-prev-icon-bg; 159 | } 160 | .carousel-control-next-icon { 161 | background-image: $carousel-control-next-icon-bg; 162 | } 163 | 164 | 165 | // Optional indicator pips 166 | // 167 | // Add an ordered list with the following class and add a list item for each 168 | // slide your carousel holds. 169 | 170 | .carousel-indicators { 171 | position: absolute; 172 | right: 0; 173 | bottom: 10px; 174 | left: 0; 175 | z-index: 15; 176 | display: flex; 177 | justify-content: center; 178 | padding-left: 0; // override default 179 | // Use the .carousel-control's width as margin so we don't overlay those 180 | margin-right: $carousel-control-width; 181 | margin-left: $carousel-control-width; 182 | list-style: none; 183 | 184 | li { 185 | position: relative; 186 | flex: 0 1 auto; 187 | width: $carousel-indicator-width; 188 | height: $carousel-indicator-height; 189 | margin-right: $carousel-indicator-spacer; 190 | margin-left: $carousel-indicator-spacer; 191 | text-indent: -999px; 192 | background-color: rgba($carousel-indicator-active-bg, .5); 193 | 194 | // Use pseudo classes to increase the hit area by 10px on top and bottom. 195 | &::before { 196 | position: absolute; 197 | top: -10px; 198 | left: 0; 199 | display: inline-block; 200 | width: 100%; 201 | height: 10px; 202 | content: ""; 203 | } 204 | &::after { 205 | position: absolute; 206 | bottom: -10px; 207 | left: 0; 208 | display: inline-block; 209 | width: 100%; 210 | height: 10px; 211 | content: ""; 212 | } 213 | } 214 | 215 | .active { 216 | background-color: $carousel-indicator-active-bg; 217 | } 218 | } 219 | 220 | 221 | // Optional captions 222 | // 223 | // 224 | 225 | .carousel-caption { 226 | position: absolute; 227 | right: ((100% - $carousel-caption-width) / 2); 228 | bottom: 20px; 229 | left: ((100% - $carousel-caption-width) / 2); 230 | z-index: 10; 231 | padding-top: 20px; 232 | padding-bottom: 20px; 233 | color: $carousel-caption-color; 234 | text-align: center; 235 | } 236 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | AOS.init({ 2 | duration: 800, 3 | easing: 'slide' 4 | }); 5 | 6 | $(document).ready(function($) { 7 | 8 | "use strict"; 9 | 10 | $(window).stellar({ 11 | responsive: false, 12 | parallaxBackgrounds: true, 13 | parallaxElements: true, 14 | horizontalScrolling: false, 15 | hideDistantElements: false, 16 | scrollProperty: 'scroll' 17 | }); 18 | 19 | // Scrollax 20 | $.Scrollax(); 21 | 22 | 23 | // loader 24 | var loader = function() { 25 | setTimeout(function() { 26 | if($('#ftco-loader').length > 0) { 27 | $('#ftco-loader').removeClass('show'); 28 | } 29 | }, 1); 30 | }; 31 | loader(); 32 | 33 | var carousel = function() { 34 | $('.home-slider').owlCarousel({ 35 | loop:true, 36 | autoplay: true, 37 | margin:0, 38 | animateOut: 'fadeOut', 39 | animateIn: 'fadeIn', 40 | nav:false, 41 | autoplayHoverPause: false, 42 | items: 1, 43 | navText : ["",""], 44 | responsive:{ 45 | 0:{ 46 | items:1, 47 | nav:false 48 | }, 49 | 600:{ 50 | items:1, 51 | nav:false 52 | }, 53 | 1000:{ 54 | items:1, 55 | nav:false 56 | } 57 | } 58 | }); 59 | 60 | 61 | $('.carousel').owlCarousel({ 62 | animateOut: 'fadeOut', 63 | animateIn: 'fadeIn', 64 | center: true, 65 | loop: true, 66 | items:1, 67 | margin: 30, 68 | stagePadding: 0, 69 | nav: false, 70 | navText: ['', ''], 71 | responsive:{ 72 | 0:{ 73 | items: 1 74 | }, 75 | 600:{ 76 | items: 1 77 | }, 78 | 1000:{ 79 | items: 1 80 | } 81 | } 82 | }); 83 | 84 | $('.carousel1').owlCarousel({ 85 | loop: false, 86 | items:1, 87 | margin: 30, 88 | stagePadding: 10, 89 | nav: false, 90 | navText: ['', ''], 91 | responsive:{ 92 | 0:{ 93 | items: 1 94 | }, 95 | 600:{ 96 | items: 2 97 | }, 98 | 1000:{ 99 | items: 3 100 | } 101 | } 102 | }); 103 | 104 | $('.carousel-engine').owlCarousel({ 105 | loop: false, 106 | items:1, 107 | margin: 30, 108 | stagePadding: 0, 109 | nav: false, 110 | navText: ['', ''], 111 | responsive:{ 112 | 0:{ 113 | items: 1 114 | }, 115 | 600:{ 116 | items: 2 117 | }, 118 | 1000:{ 119 | items: 4 120 | } 121 | } 122 | }); 123 | }; 124 | carousel(); 125 | 126 | var fullHeight = function() { 127 | 128 | $('.js-fullheight').css('height', $(window).height()); 129 | $(window).resize(function(){ 130 | $('.js-fullheight').css('height', $(window).height()); 131 | }); 132 | 133 | }; 134 | fullHeight(); 135 | 136 | var burgerMenu = function() { 137 | 138 | $('.js-colorlib-nav-toggle').on('click', function(event) { 139 | event.preventDefault(); 140 | var $this = $(this); 141 | if( $('body').hasClass('menu-show') ) { 142 | $('body').removeClass('menu-show'); 143 | $('#colorlib-main-nav > .js-colorlib-nav-toggle').removeClass('show'); 144 | } else { 145 | $('body').addClass('menu-show'); 146 | setTimeout(function(){ 147 | $('#colorlib-main-nav > .js-colorlib-nav-toggle').addClass('show'); 148 | }, 900); 149 | } 150 | }) 151 | }; 152 | burgerMenu(); 153 | 154 | var counter = function() { 155 | 156 | $('#section-counter').waypoint( function( direction ) { 157 | 158 | if( direction === 'down' && !$(this.element).hasClass('ftco-animated') ) { 159 | 160 | var comma_separator_number_step = $.animateNumber.numberStepFactories.separator(',') 161 | $('.number').each(function(){ 162 | var $this = $(this), 163 | num = $this.data('number'); 164 | console.log(num); 165 | $this.animateNumber( 166 | { 167 | number: num, 168 | numberStep: comma_separator_number_step 169 | }, 7000 170 | ); 171 | }); 172 | 173 | } 174 | 175 | } , { offset: '95%' } ); 176 | 177 | } 178 | counter(); 179 | 180 | var contentWayPoint = function() { 181 | var i = 0; 182 | $('.ftco-animate').waypoint( function( direction ) { 183 | 184 | if( direction === 'down' && !$(this.element).hasClass('ftco-animated') ) { 185 | 186 | i++; 187 | 188 | $(this.element).addClass('item-animate'); 189 | setTimeout(function(){ 190 | 191 | $('body .ftco-animate.item-animate').each(function(k){ 192 | var el = $(this); 193 | setTimeout( function () { 194 | var effect = el.data('animate-effect'); 195 | if ( effect === 'fadeIn') { 196 | el.addClass('fadeIn ftco-animated'); 197 | } else if ( effect === 'fadeInLeft') { 198 | el.addClass('fadeInLeft ftco-animated'); 199 | } else if ( effect === 'fadeInRight') { 200 | el.addClass('fadeInRight ftco-animated'); 201 | } else { 202 | el.addClass('fadeInUp ftco-animated'); 203 | } 204 | el.removeClass('item-animate'); 205 | }, k * 50, 'easeInOutExpo' ); 206 | }); 207 | 208 | }, 100); 209 | 210 | } 211 | 212 | } , { offset: '95%' } ); 213 | }; 214 | contentWayPoint(); 215 | 216 | 217 | // navigation 218 | var OnePageNav = function() { 219 | $(".smoothscroll[href^='#'], #ftco-nav ul li a[href^='#']").on('click', function(e) { 220 | e.preventDefault(); 221 | 222 | var hash = this.hash, 223 | navToggler = $('.navbar-toggler'); 224 | $('html, body').animate({ 225 | scrollTop: $(hash).offset().top 226 | }, 700, 'easeInOutExpo', function(){ 227 | window.location.hash = hash; 228 | }); 229 | 230 | 231 | if ( navToggler.is(':visible') ) { 232 | navToggler.click(); 233 | } 234 | }); 235 | $('body').on('activate.bs.scrollspy', function () { 236 | console.log('nice'); 237 | }) 238 | }; 239 | OnePageNav(); 240 | 241 | 242 | // magnific popup 243 | $('.image-popup').magnificPopup({ 244 | type: 'image', 245 | closeOnContentClick: true, 246 | closeBtnInside: false, 247 | fixedContentPos: true, 248 | mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side 249 | gallery: { 250 | enabled: true, 251 | navigateByImgClick: true, 252 | preload: [0,1] // Will preload 0 - before current, and 1 after the current image 253 | }, 254 | image: { 255 | verticalFit: true 256 | }, 257 | zoom: { 258 | enabled: true, 259 | duration: 300 // don't foget to change the duration also in CSS 260 | } 261 | }); 262 | 263 | $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({ 264 | disableOn: 700, 265 | type: 'iframe', 266 | mainClass: 'mfp-fade', 267 | removalDelay: 160, 268 | preloader: false, 269 | 270 | fixedContentPos: false 271 | }); 272 | 273 | }); 274 | 275 | -------------------------------------------------------------------------------- /js/scrollax.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * _______ _______ ______ _____ _______ _ _ 3 | * |______ | |_____/ | | | | |_____| \___/ 4 | * ______| |_____ | \_ |_____| |_____ |_____ | | _/ \_ 5 | * 6 | * Parallax Scrolling Library 7 | * http://iprodev.github.io/Scrollax.js 8 | * 9 | * @version: 1.0.0 10 | * @released: July 21, 2015 11 | * 12 | * @author: iProDev (Hemn Chawroka) 13 | * http://iprodev.com/ 14 | * 15 | * Licensed under the MIT license. 16 | * http://opensource.org/licenses/MIT 17 | * 18 | */ 19 | (function(e){"function"===typeof define&&define.amd?define(["jquery"],e):"undefined"!==typeof exports?module.exports=e(require("jquery")):e(jQuery)})(function(e){function W(a){if(console&&console.warn)console.warn("Scrollax: "+a);else throw"Scrollax: "+a;}function ka(a){var g=!!("pageYOffset"in a);return{width:g?window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth:a.offsetWidth,height:g?window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight: 20 | a.offsetHeight,left:a[g?"pageXOffset":"scrollLeft"],top:a[g?"pageYOffset":"scrollTop"]}}function X(a){return(a=a.data("scrollax"))&&eval("({"+a+"})")||{}}function Y(a){var g,c;return!!(a&&"object"===typeof a&&"object"===typeof a.window&&a.window==a&&a.setTimeout&&a.alert&&(g=a.document)&&"object"===typeof g&&(c=g.defaultView||g.parentWindow)&&"object"===typeof c&&c==a)}var v=Array.prototype,C=v.push,Z=v.splice,aa=Object.prototype.hasOwnProperty,la=/[-+]?\d+(\.\d+)?/g,ma="translateX translateY rotate rotateX rotateY rotateZ skewX skewY scaleX scaleY".split(" "), 21 | ba=e(window),ca=e(document.body),da,ea,L,M,N,q=function(a,g,c){function k(){O=fa?ca.find(ga):P.find(ga);x.length=0;r=!!t.horizontal;O.each(na);d();t.performanceTrick&&(F=fa?ca:P);u("load");return f}function l(){G&&(G=clearTimeout(G));G=setTimeout(function(){f.reload()})}function d(){var ha=x.length;t.performanceTrick&&F&&(clearTimeout(ia),Q||(F.addClass("scrollax-performance"),Q=!0),ia=setTimeout(function(){F.removeClass("scrollax-performance");Q=!1},100));if(ha){H=ka(a);for(var c=0;cy[r?"right":"bottom"]||y[r?"left":"top"]>H[r?"width":"height"]||(ja=I.options,R=ja.offset||t.offset||0,J=y[r?"right":"bottom"],z=y[r?"width":"height"],A=(z-J+R)/z,0>A&&(J=y[r?"left":"top"],z=H[r?"width":"height"],A=-1+(z-J+R)/z),1A||b(I,A,r));u("scroll",H)}}function b(a,b){S=a.parallaxElements;var c=S.length;if(c)for(var f=0;fd?1+n:1-n,h=0>h?0:1 hr { 17 | margin-right: 0; 18 | margin-left: 0; 19 | } 20 | 21 | > .list-group:first-child { 22 | .list-group-item:first-child { 23 | @include border-top-radius($card-border-radius); 24 | } 25 | } 26 | 27 | > .list-group:last-child { 28 | .list-group-item:last-child { 29 | @include border-bottom-radius($card-border-radius); 30 | } 31 | } 32 | } 33 | 34 | .card-body { 35 | // Enable `flex-grow: 1` for decks and groups so that card blocks take up 36 | // as much space as possible, ensuring footers are aligned to the bottom. 37 | flex: 1 1 auto; 38 | padding: $card-spacer-x; 39 | } 40 | 41 | .card-title { 42 | margin-bottom: $card-spacer-y; 43 | } 44 | 45 | .card-subtitle { 46 | margin-top: -($card-spacer-y / 2); 47 | margin-bottom: 0; 48 | } 49 | 50 | .card-text:last-child { 51 | margin-bottom: 0; 52 | } 53 | 54 | .card-link { 55 | @include hover { 56 | text-decoration: none; 57 | } 58 | 59 | + .card-link { 60 | margin-left: $card-spacer-x; 61 | } 62 | } 63 | 64 | // 65 | // Optional textual caps 66 | // 67 | 68 | .card-header { 69 | padding: $card-spacer-y $card-spacer-x; 70 | margin-bottom: 0; // Removes the default margin-bottom of 71 | background-color: $card-cap-bg; 72 | border-bottom: $card-border-width solid $card-border-color; 73 | 74 | &:first-child { 75 | @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0); 76 | } 77 | 78 | + .list-group { 79 | .list-group-item:first-child { 80 | border-top: 0; 81 | } 82 | } 83 | } 84 | 85 | .card-footer { 86 | padding: $card-spacer-y $card-spacer-x; 87 | background-color: $card-cap-bg; 88 | border-top: $card-border-width solid $card-border-color; 89 | 90 | &:last-child { 91 | @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius); 92 | } 93 | } 94 | 95 | 96 | // 97 | // Header navs 98 | // 99 | 100 | .card-header-tabs { 101 | margin-right: -($card-spacer-x / 2); 102 | margin-bottom: -$card-spacer-y; 103 | margin-left: -($card-spacer-x / 2); 104 | border-bottom: 0; 105 | } 106 | 107 | .card-header-pills { 108 | margin-right: -($card-spacer-x / 2); 109 | margin-left: -($card-spacer-x / 2); 110 | } 111 | 112 | // Card image 113 | .card-img-overlay { 114 | position: absolute; 115 | top: 0; 116 | right: 0; 117 | bottom: 0; 118 | left: 0; 119 | padding: $card-img-overlay-padding; 120 | } 121 | 122 | .card-img { 123 | width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch 124 | @include border-radius($card-inner-border-radius); 125 | } 126 | 127 | // Card image caps 128 | .card-img-top { 129 | width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch 130 | @include border-top-radius($card-inner-border-radius); 131 | } 132 | 133 | .card-img-bottom { 134 | width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch 135 | @include border-bottom-radius($card-inner-border-radius); 136 | } 137 | 138 | 139 | // Card deck 140 | 141 | .card-deck { 142 | display: flex; 143 | flex-direction: column; 144 | 145 | .card { 146 | margin-bottom: $card-deck-margin; 147 | } 148 | 149 | @include media-breakpoint-up(sm) { 150 | flex-flow: row wrap; 151 | margin-right: -$card-deck-margin; 152 | margin-left: -$card-deck-margin; 153 | 154 | .card { 155 | display: flex; 156 | // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4 157 | flex: 1 0 0%; 158 | flex-direction: column; 159 | margin-right: $card-deck-margin; 160 | margin-bottom: 0; // Override the default 161 | margin-left: $card-deck-margin; 162 | } 163 | } 164 | } 165 | 166 | 167 | // 168 | // Card groups 169 | // 170 | 171 | .card-group { 172 | display: flex; 173 | flex-direction: column; 174 | 175 | // The child selector allows nested `.card` within `.card-group` 176 | // to display properly. 177 | > .card { 178 | margin-bottom: $card-group-margin; 179 | } 180 | 181 | @include media-breakpoint-up(sm) { 182 | flex-flow: row wrap; 183 | // The child selector allows nested `.card` within `.card-group` 184 | // to display properly. 185 | > .card { 186 | // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4 187 | flex: 1 0 0%; 188 | margin-bottom: 0; 189 | 190 | + .card { 191 | margin-left: 0; 192 | border-left: 0; 193 | } 194 | 195 | // Handle rounded corners 196 | @if $enable-rounded { 197 | &:first-child { 198 | @include border-right-radius(0); 199 | 200 | .card-img-top, 201 | .card-header { 202 | border-top-right-radius: 0; 203 | } 204 | .card-img-bottom, 205 | .card-footer { 206 | border-bottom-right-radius: 0; 207 | } 208 | } 209 | 210 | &:last-child { 211 | @include border-left-radius(0); 212 | 213 | .card-img-top, 214 | .card-header { 215 | border-top-left-radius: 0; 216 | } 217 | .card-img-bottom, 218 | .card-footer { 219 | border-bottom-left-radius: 0; 220 | } 221 | } 222 | 223 | &:only-child { 224 | @include border-radius($card-border-radius); 225 | 226 | .card-img-top, 227 | .card-header { 228 | @include border-top-radius($card-border-radius); 229 | } 230 | .card-img-bottom, 231 | .card-footer { 232 | @include border-bottom-radius($card-border-radius); 233 | } 234 | } 235 | 236 | &:not(:first-child):not(:last-child):not(:only-child) { 237 | @include border-radius(0); 238 | 239 | .card-img-top, 240 | .card-img-bottom, 241 | .card-header, 242 | .card-footer { 243 | @include border-radius(0); 244 | } 245 | } 246 | } 247 | } 248 | } 249 | } 250 | 251 | 252 | // 253 | // Columns 254 | // 255 | 256 | .card-columns { 257 | .card { 258 | margin-bottom: $card-columns-margin; 259 | } 260 | 261 | @include media-breakpoint-up(sm) { 262 | column-count: $card-columns-count; 263 | column-gap: $card-columns-gap; 264 | orphans: 1; 265 | widows: 1; 266 | 267 | .card { 268 | display: inline-block; // Don't let them vertically span multiple columns 269 | width: 100%; // Don't let their width change 270 | } 271 | } 272 | } 273 | 274 | 275 | // 276 | // Accordion 277 | // 278 | 279 | .accordion { 280 | .card:not(:first-of-type):not(:last-of-type) { 281 | border-bottom: 0; 282 | border-radius: 0; 283 | } 284 | 285 | .card:not(:first-of-type) { 286 | .card-header:first-child { 287 | border-radius: 0; 288 | } 289 | } 290 | 291 | .card:first-of-type { 292 | border-bottom: 0; 293 | border-bottom-right-radius: 0; 294 | border-bottom-left-radius: 0; 295 | } 296 | 297 | .card:last-of-type { 298 | border-top-left-radius: 0; 299 | border-top-right-radius: 0; 300 | } 301 | } 302 | -------------------------------------------------------------------------------- /scss/bootstrap/_navbar.scss: -------------------------------------------------------------------------------- 1 | // Contents 2 | // 3 | // Navbar 4 | // Navbar brand 5 | // Navbar nav 6 | // Navbar text 7 | // Navbar divider 8 | // Responsive navbar 9 | // Navbar position 10 | // Navbar themes 11 | 12 | 13 | // Navbar 14 | // 15 | // Provide a static navbar from which we expand to create full-width, fixed, and 16 | // other navbar variations. 17 | 18 | .navbar { 19 | position: relative; 20 | display: flex; 21 | flex-wrap: wrap; // allow us to do the line break for collapsing content 22 | align-items: center; 23 | justify-content: space-between; // space out brand from logo 24 | padding: $navbar-padding-y $navbar-padding-x; 25 | 26 | // Because flex properties aren't inherited, we need to redeclare these first 27 | // few properities so that content nested within behave properly. 28 | > .container, 29 | > .container-fluid { 30 | display: flex; 31 | flex-wrap: wrap; 32 | align-items: center; 33 | justify-content: space-between; 34 | } 35 | } 36 | 37 | 38 | // Navbar brand 39 | // 40 | // Used for brand, project, or site names. 41 | 42 | .navbar-brand { 43 | display: inline-block; 44 | padding-top: $navbar-brand-padding-y; 45 | padding-bottom: $navbar-brand-padding-y; 46 | margin-right: $navbar-padding-x; 47 | font-size: $navbar-brand-font-size; 48 | line-height: inherit; 49 | white-space: nowrap; 50 | 51 | @include hover-focus { 52 | text-decoration: none; 53 | } 54 | } 55 | 56 | 57 | // Navbar nav 58 | // 59 | // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`). 60 | 61 | .navbar-nav { 62 | display: flex; 63 | flex-direction: column; // cannot use `inherit` to get the `.navbar`s value 64 | padding-left: 0; 65 | margin-bottom: 0; 66 | list-style: none; 67 | 68 | .nav-link { 69 | padding-right: 0; 70 | padding-left: 0; 71 | } 72 | 73 | .dropdown-menu { 74 | position: static; 75 | float: none; 76 | } 77 | } 78 | 79 | 80 | // Navbar text 81 | // 82 | // 83 | 84 | .navbar-text { 85 | display: inline-block; 86 | padding-top: $nav-link-padding-y; 87 | padding-bottom: $nav-link-padding-y; 88 | } 89 | 90 | 91 | // Responsive navbar 92 | // 93 | // Custom styles for responsive collapsing and toggling of navbar contents. 94 | // Powered by the collapse Bootstrap JavaScript plugin. 95 | 96 | // When collapsed, prevent the toggleable navbar contents from appearing in 97 | // the default flexbox row orienation. Requires the use of `flex-wrap: wrap` 98 | // on the `.navbar` parent. 99 | .navbar-collapse { 100 | flex-basis: 100%; 101 | flex-grow: 1; 102 | // For always expanded or extra full navbars, ensure content aligns itself 103 | // properly vertically. Can be easily overridden with flex utilities. 104 | align-items: center; 105 | } 106 | 107 | // Button for toggling the navbar when in its collapsed state 108 | .navbar-toggler { 109 | padding: $navbar-toggler-padding-y $navbar-toggler-padding-x; 110 | font-size: $navbar-toggler-font-size; 111 | line-height: 1; 112 | background-color: transparent; // remove default button style 113 | border: $border-width solid transparent; // remove default button style 114 | @include border-radius($navbar-toggler-border-radius); 115 | 116 | @include hover-focus { 117 | text-decoration: none; 118 | } 119 | 120 | // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements 121 | &:not(:disabled):not(.disabled) { 122 | cursor: pointer; 123 | } 124 | } 125 | 126 | // Keep as a separate element so folks can easily override it with another icon 127 | // or image file as needed. 128 | .navbar-toggler-icon { 129 | display: inline-block; 130 | width: 1.5em; 131 | height: 1.5em; 132 | vertical-align: middle; 133 | content: ""; 134 | background: no-repeat center center; 135 | background-size: 100% 100%; 136 | } 137 | 138 | // Generate series of `.navbar-expand-*` responsive classes for configuring 139 | // where your navbar collapses. 140 | .navbar-expand { 141 | @each $breakpoint in map-keys($grid-breakpoints) { 142 | $next: breakpoint-next($breakpoint, $grid-breakpoints); 143 | $infix: breakpoint-infix($next, $grid-breakpoints); 144 | 145 | {$infix} { 146 | @include media-breakpoint-down($breakpoint) { 147 | > .container, 148 | > .container-fluid { 149 | padding-right: 0; 150 | padding-left: 0; 151 | } 152 | } 153 | 154 | @include media-breakpoint-up($next) { 155 | flex-flow: row nowrap; 156 | justify-content: flex-start; 157 | 158 | .navbar-nav { 159 | flex-direction: row; 160 | 161 | .dropdown-menu { 162 | position: absolute; 163 | } 164 | 165 | .nav-link { 166 | padding-right: $navbar-nav-link-padding-x; 167 | padding-left: $navbar-nav-link-padding-x; 168 | } 169 | } 170 | 171 | // For nesting containers, have to redeclare for alignment purposes 172 | > .container, 173 | > .container-fluid { 174 | flex-wrap: nowrap; 175 | } 176 | 177 | .navbar-collapse { 178 | display: flex !important; // stylelint-disable-line declaration-no-important 179 | 180 | // Changes flex-bases to auto because of an IE10 bug 181 | flex-basis: auto; 182 | } 183 | 184 | .navbar-toggler { 185 | display: none; 186 | } 187 | } 188 | } 189 | } 190 | } 191 | 192 | 193 | // Navbar themes 194 | // 195 | // Styles for switching between navbars with light or dark background. 196 | 197 | // Dark links against a light background 198 | .navbar-light { 199 | .navbar-brand { 200 | color: $navbar-light-active-color; 201 | 202 | @include hover-focus { 203 | color: $navbar-light-active-color; 204 | } 205 | } 206 | 207 | .navbar-nav { 208 | .nav-link { 209 | color: $navbar-light-color; 210 | 211 | @include hover-focus { 212 | color: $navbar-light-hover-color; 213 | } 214 | 215 | &.disabled { 216 | color: $navbar-light-disabled-color; 217 | } 218 | } 219 | 220 | .show > .nav-link, 221 | .active > .nav-link, 222 | .nav-link.show, 223 | .nav-link.active { 224 | color: $navbar-light-active-color; 225 | } 226 | } 227 | 228 | .navbar-toggler { 229 | color: $navbar-light-color; 230 | border-color: $navbar-light-toggler-border-color; 231 | } 232 | 233 | .navbar-toggler-icon { 234 | background-image: $navbar-light-toggler-icon-bg; 235 | } 236 | 237 | .navbar-text { 238 | color: $navbar-light-color; 239 | a { 240 | color: $navbar-light-active-color; 241 | 242 | @include hover-focus { 243 | color: $navbar-light-active-color; 244 | } 245 | } 246 | } 247 | } 248 | 249 | // White links against a dark background 250 | .navbar-dark { 251 | .navbar-brand { 252 | color: $navbar-dark-active-color; 253 | 254 | @include hover-focus { 255 | color: $navbar-dark-active-color; 256 | } 257 | } 258 | 259 | .navbar-nav { 260 | .nav-link { 261 | color: $navbar-dark-color; 262 | 263 | @include hover-focus { 264 | color: $navbar-dark-hover-color; 265 | } 266 | 267 | &.disabled { 268 | color: $navbar-dark-disabled-color; 269 | } 270 | } 271 | 272 | .show > .nav-link, 273 | .active > .nav-link, 274 | .nav-link.show, 275 | .nav-link.active { 276 | color: $navbar-dark-active-color; 277 | } 278 | } 279 | 280 | .navbar-toggler { 281 | color: $navbar-dark-color; 282 | border-color: $navbar-dark-toggler-border-color; 283 | } 284 | 285 | .navbar-toggler-icon { 286 | background-image: $navbar-dark-toggler-icon-bg; 287 | } 288 | 289 | .navbar-text { 290 | color: $navbar-dark-color; 291 | a { 292 | color: $navbar-dark-active-color; 293 | 294 | @include hover-focus { 295 | color: $navbar-dark-active-color; 296 | } 297 | } 298 | } 299 | } 300 | -------------------------------------------------------------------------------- /js/jquery.waypoints.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Waypoints - 4.0.0 3 | Copyright © 2011-2015 Caleb Troughton 4 | Licensed under the MIT license. 5 | https://github.com/imakewebthings/waypoints/blog/master/licenses.txt 6 | */ 7 | !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}(); -------------------------------------------------------------------------------- /css/magnific-popup.css: -------------------------------------------------------------------------------- 1 | /* Magnific Popup CSS */ 2 | .mfp-bg { 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | z-index: 1042; 8 | overflow: hidden; 9 | position: fixed; 10 | background: #0b0b0b; 11 | opacity: 0.8; } 12 | 13 | .mfp-wrap { 14 | top: 0; 15 | left: 0; 16 | width: 100%; 17 | height: 100%; 18 | z-index: 1043; 19 | position: fixed; 20 | outline: none !important; 21 | -webkit-backface-visibility: hidden; } 22 | 23 | .mfp-container { 24 | text-align: center; 25 | position: absolute; 26 | width: 100%; 27 | height: 100%; 28 | left: 0; 29 | top: 0; 30 | padding: 0 8px; 31 | box-sizing: border-box; } 32 | 33 | .mfp-container:before { 34 | content: ''; 35 | display: inline-block; 36 | height: 100%; 37 | vertical-align: middle; } 38 | 39 | .mfp-align-top .mfp-container:before { 40 | display: none; } 41 | 42 | .mfp-content { 43 | position: relative; 44 | display: inline-block; 45 | vertical-align: middle; 46 | margin: 0 auto; 47 | text-align: left; 48 | z-index: 1045; } 49 | 50 | .mfp-inline-holder .mfp-content, 51 | .mfp-ajax-holder .mfp-content { 52 | width: 100%; 53 | cursor: auto; } 54 | 55 | .mfp-ajax-cur { 56 | cursor: progress; } 57 | 58 | .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { 59 | cursor: -moz-zoom-out; 60 | cursor: -webkit-zoom-out; 61 | cursor: zoom-out; } 62 | 63 | .mfp-zoom { 64 | cursor: pointer; 65 | cursor: -webkit-zoom-in; 66 | cursor: -moz-zoom-in; 67 | cursor: zoom-in; } 68 | 69 | .mfp-auto-cursor .mfp-content { 70 | cursor: auto; } 71 | 72 | .mfp-close, 73 | .mfp-arrow, 74 | .mfp-preloader, 75 | .mfp-counter { 76 | -webkit-user-select: none; 77 | -moz-user-select: none; 78 | user-select: none; } 79 | 80 | .mfp-loading.mfp-figure { 81 | display: none; } 82 | 83 | .mfp-hide { 84 | display: none !important; } 85 | 86 | .mfp-preloader { 87 | color: #CCC; 88 | position: absolute; 89 | top: 50%; 90 | width: auto; 91 | text-align: center; 92 | margin-top: -0.8em; 93 | left: 8px; 94 | right: 8px; 95 | z-index: 1044; } 96 | .mfp-preloader a { 97 | color: #CCC; } 98 | .mfp-preloader a:hover { 99 | color: #FFF; } 100 | 101 | .mfp-s-ready .mfp-preloader { 102 | display: none; } 103 | 104 | .mfp-s-error .mfp-content { 105 | display: none; } 106 | 107 | button.mfp-close, 108 | button.mfp-arrow { 109 | overflow: visible; 110 | cursor: pointer; 111 | background: transparent; 112 | border: 0; 113 | -webkit-appearance: none; 114 | display: block; 115 | outline: none; 116 | padding: 0; 117 | z-index: 1046; 118 | box-shadow: none; 119 | touch-action: manipulation; } 120 | 121 | button::-moz-focus-inner { 122 | padding: 0; 123 | border: 0; } 124 | 125 | .mfp-close { 126 | width: 44px; 127 | height: 44px; 128 | line-height: 44px; 129 | position: absolute; 130 | right: 0; 131 | top: 0; 132 | text-decoration: none; 133 | text-align: center; 134 | opacity: 0.65; 135 | padding: 0 0 18px 10px; 136 | color: #FFF; 137 | font-style: normal; 138 | font-size: 28px; 139 | font-family: Arial, Baskerville, monospace; } 140 | .mfp-close:hover, 141 | .mfp-close:focus { 142 | opacity: 1; } 143 | .mfp-close:active { 144 | top: 1px; } 145 | 146 | .mfp-close-btn-in .mfp-close { 147 | color: #333; } 148 | 149 | .mfp-image-holder .mfp-close, 150 | .mfp-iframe-holder .mfp-close { 151 | color: #FFF; 152 | right: -6px; 153 | text-align: right; 154 | padding-right: 6px; 155 | width: 100%; } 156 | 157 | .mfp-counter { 158 | position: absolute; 159 | top: 0; 160 | right: 0; 161 | color: #CCC; 162 | font-size: 12px; 163 | line-height: 18px; 164 | white-space: nowrap; } 165 | 166 | .mfp-arrow { 167 | position: absolute; 168 | opacity: 0.65; 169 | margin: 0; 170 | top: 50%; 171 | margin-top: -55px; 172 | padding: 0; 173 | width: 90px; 174 | height: 110px; 175 | -webkit-tap-highlight-color: transparent; } 176 | .mfp-arrow:active { 177 | margin-top: -54px; } 178 | .mfp-arrow:hover, 179 | .mfp-arrow:focus { 180 | opacity: 1; } 181 | .mfp-arrow:before, 182 | .mfp-arrow:after { 183 | content: ''; 184 | display: block; 185 | width: 0; 186 | height: 0; 187 | position: absolute; 188 | left: 0; 189 | top: 0; 190 | margin-top: 35px; 191 | margin-left: 35px; 192 | border: medium inset transparent; } 193 | .mfp-arrow:after { 194 | border-top-width: 13px; 195 | border-bottom-width: 13px; 196 | top: 8px; } 197 | .mfp-arrow:before { 198 | border-top-width: 21px; 199 | border-bottom-width: 21px; 200 | opacity: 0.7; } 201 | 202 | .mfp-arrow-left { 203 | left: 0; } 204 | .mfp-arrow-left:after { 205 | border-right: 17px solid #FFF; 206 | margin-left: 31px; } 207 | .mfp-arrow-left:before { 208 | margin-left: 25px; 209 | border-right: 27px solid #3F3F3F; } 210 | 211 | .mfp-arrow-right { 212 | right: 0; } 213 | .mfp-arrow-right:after { 214 | border-left: 17px solid #FFF; 215 | margin-left: 39px; } 216 | .mfp-arrow-right:before { 217 | border-left: 27px solid #3F3F3F; } 218 | 219 | .mfp-iframe-holder { 220 | padding-top: 40px; 221 | padding-bottom: 40px; } 222 | .mfp-iframe-holder .mfp-content { 223 | line-height: 0; 224 | width: 100%; 225 | max-width: 900px; } 226 | .mfp-iframe-holder .mfp-close { 227 | top: -40px; } 228 | 229 | .mfp-iframe-scaler { 230 | width: 100%; 231 | height: 0; 232 | overflow: hidden; 233 | padding-top: 56.25%; } 234 | .mfp-iframe-scaler iframe { 235 | position: absolute; 236 | display: block; 237 | top: 0; 238 | left: 0; 239 | width: 100%; 240 | height: 100%; 241 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); 242 | background: #000; } 243 | 244 | /* Main image in popup */ 245 | img.mfp-img { 246 | width: auto; 247 | max-width: 100%; 248 | height: auto; 249 | display: block; 250 | line-height: 0; 251 | box-sizing: border-box; 252 | padding: 40px 0 40px; 253 | margin: 0 auto; } 254 | 255 | /* The shadow behind the image */ 256 | .mfp-figure { 257 | line-height: 0; } 258 | .mfp-figure:after { 259 | content: ''; 260 | position: absolute; 261 | left: 0; 262 | top: 40px; 263 | bottom: 40px; 264 | display: block; 265 | right: 0; 266 | width: auto; 267 | height: auto; 268 | z-index: -1; 269 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); 270 | background: #444; } 271 | .mfp-figure small { 272 | color: #BDBDBD; 273 | display: block; 274 | font-size: 12px; 275 | line-height: 14px; } 276 | .mfp-figure figure { 277 | margin: 0; } 278 | 279 | .mfp-bottom-bar { 280 | margin-top: -36px; 281 | position: absolute; 282 | top: 100%; 283 | left: 0; 284 | width: 100%; 285 | cursor: auto; } 286 | 287 | .mfp-title { 288 | text-align: left; 289 | line-height: 18px; 290 | color: #F3F3F3; 291 | word-wrap: break-word; 292 | padding-right: 36px; } 293 | 294 | .mfp-image-holder .mfp-content { 295 | max-width: 100%; } 296 | 297 | .mfp-gallery .mfp-image-holder .mfp-figure { 298 | cursor: pointer; } 299 | 300 | @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { 301 | /** 302 | * Remove all paddings around the image on small screen 303 | */ 304 | .mfp-img-mobile .mfp-image-holder { 305 | padding-left: 0; 306 | padding-right: 0; } 307 | .mfp-img-mobile img.mfp-img { 308 | padding: 0; } 309 | .mfp-img-mobile .mfp-figure:after { 310 | top: 0; 311 | bottom: 0; } 312 | .mfp-img-mobile .mfp-figure small { 313 | display: inline; 314 | margin-left: 5px; } 315 | .mfp-img-mobile .mfp-bottom-bar { 316 | background: rgba(0, 0, 0, 0.6); 317 | bottom: 0; 318 | margin: 0; 319 | top: auto; 320 | padding: 3px 5px; 321 | position: fixed; 322 | box-sizing: border-box; } 323 | .mfp-img-mobile .mfp-bottom-bar:empty { 324 | padding: 0; } 325 | .mfp-img-mobile .mfp-counter { 326 | right: 5px; 327 | top: 3px; } 328 | .mfp-img-mobile .mfp-close { 329 | top: 0; 330 | right: 0; 331 | width: 35px; 332 | height: 35px; 333 | line-height: 35px; 334 | background: rgba(0, 0, 0, 0.6); 335 | position: fixed; 336 | text-align: center; 337 | padding: 0; } } 338 | 339 | @media all and (max-width: 900px) { 340 | .mfp-arrow { 341 | -webkit-transform: scale(0.75); 342 | transform: scale(0.75); } 343 | .mfp-arrow-left { 344 | -webkit-transform-origin: 0; 345 | transform-origin: 0; } 346 | .mfp-arrow-right { 347 | -webkit-transform-origin: 100%; 348 | transform-origin: 100%; } 349 | .mfp-container { 350 | padding-left: 6px; 351 | padding-right: 6px; } } -------------------------------------------------------------------------------- /contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Contact US 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | Home 69 | About 70 | Contact US 71 | 72 | 73 | 74 | Powered By IEEE Student Branch 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | Contact Information 116 | 117 | 118 | 119 | Address: Mussoorie, Diversion Road, Makka Wala, Uttarakhand 248009 120 | 121 | 122 | Email: ieee.student.dit@gmail.com 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | Website wwww.ieeeditu.org 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | --------------------------------------------------------------------------------
Powered By IEEE Student Branch
Address: Mussoorie, Diversion Road, Makka Wala, Uttarakhand 248009
Email: ieee.student.dit@gmail.com
126 | 127 |
Website wwww.ieeeditu.org