Add responsiveness for footer. Update gulpjs, package.json and bootstrap sass
This commit is contained in:
12
static/assets/bootstrap/sass/mixins/_alert.sass
Normal file
12
static/assets/bootstrap/sass/mixins/_alert.sass
Normal file
@@ -0,0 +1,12 @@
|
||||
=alert-variant($background, $border, $color)
|
||||
color: $color
|
||||
|
||||
+gradient-bg($background)
|
||||
|
||||
border-color: $border
|
||||
|
||||
hr
|
||||
border-top-color: darken($border, 5%)
|
||||
|
||||
.alert-link
|
||||
color: darken($color, 10%)
|
16
static/assets/bootstrap/sass/mixins/_background-variant.sass
Normal file
16
static/assets/bootstrap/sass/mixins/_background-variant.sass
Normal file
@@ -0,0 +1,16 @@
|
||||
// stylelint-disable declaration-no-important
|
||||
|
||||
// Contextual backgrounds
|
||||
|
||||
=bg-variant($parent, $color)
|
||||
#{$parent}
|
||||
background-color: $color !important
|
||||
|
||||
a#{$parent},
|
||||
button#{$parent}
|
||||
+hover-focus
|
||||
background-color: darken($color, 10%) !important
|
||||
|
||||
=bg-gradient-variant($parent, $color)
|
||||
#{$parent}
|
||||
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important
|
9
static/assets/bootstrap/sass/mixins/_badge.sass
Normal file
9
static/assets/bootstrap/sass/mixins/_badge.sass
Normal file
@@ -0,0 +1,9 @@
|
||||
=badge-variant($bg)
|
||||
color: color-yiq($bg)
|
||||
background-color: $bg
|
||||
|
||||
&[href]
|
||||
+hover-focus
|
||||
color: color-yiq($bg)
|
||||
text-decoration: none
|
||||
background-color: darken($bg, 10%)
|
25
static/assets/bootstrap/sass/mixins/_border-radius.sass
Normal file
25
static/assets/bootstrap/sass/mixins/_border-radius.sass
Normal file
@@ -0,0 +1,25 @@
|
||||
// Single side border-radius
|
||||
|
||||
=border-radius($radius: $border-radius)
|
||||
@if $enable-rounded
|
||||
border-radius: $radius
|
||||
|
||||
=border-top-radius($radius)
|
||||
@if $enable-rounded
|
||||
border-top-left-radius: $radius
|
||||
border-top-right-radius: $radius
|
||||
|
||||
=border-right-radius($radius)
|
||||
@if $enable-rounded
|
||||
border-top-right-radius: $radius
|
||||
border-bottom-right-radius: $radius
|
||||
|
||||
=border-bottom-radius($radius)
|
||||
@if $enable-rounded
|
||||
border-bottom-right-radius: $radius
|
||||
border-bottom-left-radius: $radius
|
||||
|
||||
=border-left-radius($radius)
|
||||
@if $enable-rounded
|
||||
border-top-left-radius: $radius
|
||||
border-bottom-left-radius: $radius
|
3
static/assets/bootstrap/sass/mixins/_box-shadow.sass
Normal file
3
static/assets/bootstrap/sass/mixins/_box-shadow.sass
Normal file
@@ -0,0 +1,3 @@
|
||||
=box-shadow($shadow...)
|
||||
@if $enable-shadows
|
||||
box-shadow: $shadow
|
108
static/assets/bootstrap/sass/mixins/_breakpoints.sass
Normal file
108
static/assets/bootstrap/sass/mixins/_breakpoints.sass
Normal file
@@ -0,0 +1,108 @@
|
||||
// Breakpoint viewport sizes and media queries.
|
||||
//
|
||||
// Breakpoints are defined as a map of (name: minimum width), order from small to large:
|
||||
//
|
||||
// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
|
||||
//
|
||||
// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
|
||||
|
||||
// Name of the next breakpoint, or null for the last breakpoint.
|
||||
//
|
||||
// >> breakpoint-next(sm)
|
||||
// md
|
||||
// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
|
||||
// md
|
||||
// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
|
||||
// md
|
||||
@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints))
|
||||
$n: index($breakpoint-names, $name)
|
||||
|
||||
@return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null)
|
||||
|
||||
// Minimum breakpoint width. Null for the smallest (first) breakpoint.
|
||||
//
|
||||
// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
|
||||
// 576px
|
||||
@function breakpoint-min($name, $breakpoints: $grid-breakpoints)
|
||||
$min: map-get($breakpoints, $name)
|
||||
|
||||
@return if($min != 0, $min, null)
|
||||
|
||||
// Maximum breakpoint width. Null for the largest (last) breakpoint.
|
||||
// The maximum value is calculated as the minimum of the next one less 0.02px
|
||||
// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
|
||||
// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
|
||||
// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
|
||||
// See https://bugs.webkit.org/show_bug.cgi?id=178261
|
||||
//
|
||||
// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
|
||||
// 767.98px
|
||||
@function breakpoint-max($name, $breakpoints: $grid-breakpoints)
|
||||
$next: breakpoint-next($name, $breakpoints)
|
||||
|
||||
@return if($next, breakpoint-min($next, $breakpoints) - 0.02px, null)
|
||||
|
||||
// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
|
||||
// Useful for making responsive utilities.
|
||||
//
|
||||
// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
|
||||
// "" (Returns a blank string)
|
||||
// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
|
||||
// "-sm"
|
||||
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints)
|
||||
@return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}")
|
||||
|
||||
// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
|
||||
// Makes the @content apply to the given breakpoint and wider.
|
||||
=media-breakpoint-up($name, $breakpoints: $grid-breakpoints)
|
||||
$min: breakpoint-min($name, $breakpoints)
|
||||
|
||||
@if $min
|
||||
@media (min-width: $min)
|
||||
@content
|
||||
@else
|
||||
@content
|
||||
|
||||
// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
|
||||
// Makes the @content apply to the given breakpoint and narrower.
|
||||
=media-breakpoint-down($name, $breakpoints: $grid-breakpoints)
|
||||
$max: breakpoint-max($name, $breakpoints)
|
||||
|
||||
@if $max
|
||||
@media (max-width: $max)
|
||||
@content
|
||||
@else
|
||||
@content
|
||||
|
||||
// Media that spans multiple breakpoint widths.
|
||||
// Makes the @content apply between the min and max breakpoints
|
||||
=media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints)
|
||||
$min: breakpoint-min($lower, $breakpoints)
|
||||
$max: breakpoint-max($upper, $breakpoints)
|
||||
|
||||
@if $min != null and $max != null
|
||||
@media (min-width: $min) and (max-width: $max)
|
||||
@content
|
||||
@else if $max == null
|
||||
+media-breakpoint-up($lower, $breakpoints)
|
||||
@content
|
||||
@else if $min == null
|
||||
+media-breakpoint-down($upper, $breakpoints)
|
||||
@content
|
||||
|
||||
// Media between the breakpoint's minimum and maximum widths.
|
||||
// No minimum for the smallest breakpoint, and no maximum for the largest one.
|
||||
// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
|
||||
=media-breakpoint-only($name, $breakpoints: $grid-breakpoints)
|
||||
$min: breakpoint-min($name, $breakpoints)
|
||||
$max: breakpoint-max($name, $breakpoints)
|
||||
|
||||
@if $min != null and $max != null
|
||||
@media (min-width: $min) and (max-width: $max)
|
||||
@content
|
||||
@else if $max == null
|
||||
+media-breakpoint-up($name, $breakpoints)
|
||||
@content
|
||||
@else if $min == null
|
||||
+media-breakpoint-down($name, $breakpoints)
|
||||
@content
|
102
static/assets/bootstrap/sass/mixins/_buttons.sass
Normal file
102
static/assets/bootstrap/sass/mixins/_buttons.sass
Normal file
@@ -0,0 +1,102 @@
|
||||
// Button variants
|
||||
//
|
||||
// Easily pump out default styles, as well as :hover, :focus, :active,
|
||||
// and disabled options for all buttons
|
||||
|
||||
=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%))
|
||||
color: color-yiq($background)
|
||||
|
||||
+gradient-bg($background)
|
||||
|
||||
border-color: $border
|
||||
|
||||
+box-shadow($btn-box-shadow)
|
||||
|
||||
+hover
|
||||
color: color-yiq($hover-background)
|
||||
|
||||
+gradient-bg($hover-background)
|
||||
|
||||
border-color: $hover-border
|
||||
|
||||
|
||||
&:focus,
|
||||
&.focus
|
||||
// Avoid using mixin so we can pass custom focus shadow properly
|
||||
@if $enable-shadows
|
||||
box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, 0.5)
|
||||
@else
|
||||
box-shadow: 0 0 0 $btn-focus-width rgba($border, 0.5)
|
||||
|
||||
// Disabled comes first so active can properly restyle
|
||||
&.disabled,
|
||||
&:disabled
|
||||
color: color-yiq($background)
|
||||
background-color: $background
|
||||
border-color: $border
|
||||
|
||||
&:not(:disabled):not(.disabled):active,
|
||||
&:not(:disabled):not(.disabled).active,
|
||||
.show > &.dropdown-toggle
|
||||
color: color-yiq($active-background)
|
||||
background-color: $active-background
|
||||
|
||||
@if $enable-gradients
|
||||
background-image: none
|
||||
|
||||
// Remove the gradient for the pressed/active state
|
||||
|
||||
border-color: $active-border
|
||||
|
||||
&:focus
|
||||
// Avoid using mixin so we can pass custom focus shadow properly
|
||||
@if $enable-shadows
|
||||
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, 0.5)
|
||||
@else
|
||||
box-shadow: 0 0 0 $btn-focus-width rgba($border, 0.5)
|
||||
|
||||
=button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color)
|
||||
color: $color
|
||||
background-color: transparent
|
||||
background-image: none
|
||||
border-color: $color
|
||||
|
||||
&:hover
|
||||
color: $color-hover
|
||||
background-color: $active-background
|
||||
border-color: $active-border
|
||||
|
||||
&:focus,
|
||||
&.focus
|
||||
box-shadow: 0 0 0 $btn-focus-width rgba($color, 0.5)
|
||||
|
||||
&.disabled,
|
||||
&:disabled
|
||||
color: $color
|
||||
background-color: transparent
|
||||
|
||||
&:not(:disabled):not(.disabled):active,
|
||||
&:not(:disabled):not(.disabled).active,
|
||||
.show > &.dropdown-toggle
|
||||
color: color-yiq($active-background)
|
||||
background-color: $active-background
|
||||
border-color: $active-border
|
||||
|
||||
&:focus
|
||||
// Avoid using mixin so we can pass custom focus shadow properly
|
||||
@if $enable-shadows and $btn-active-box-shadow != none
|
||||
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, 0.5)
|
||||
@else
|
||||
box-shadow: 0 0 0 $btn-focus-width rgba($color, 0.5)
|
||||
|
||||
// Button sizes
|
||||
=button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius)
|
||||
padding: $padding-y $padding-x
|
||||
font-size: $font-size
|
||||
line-height: $line-height
|
||||
|
||||
// Manually declare to provide an override to the browser default
|
||||
@if $enable-rounded
|
||||
border-radius: $border-radius
|
||||
@else
|
||||
border-radius: 0
|
56
static/assets/bootstrap/sass/mixins/_caret.sass
Normal file
56
static/assets/bootstrap/sass/mixins/_caret.sass
Normal file
@@ -0,0 +1,56 @@
|
||||
=caret-down
|
||||
border-top: $caret-width solid
|
||||
border-right: $caret-width solid transparent
|
||||
border-bottom: 0
|
||||
border-left: $caret-width solid transparent
|
||||
|
||||
=caret-up
|
||||
border-top: 0
|
||||
border-right: $caret-width solid transparent
|
||||
border-bottom: $caret-width solid
|
||||
border-left: $caret-width solid transparent
|
||||
|
||||
=caret-right
|
||||
border-top: $caret-width solid transparent
|
||||
border-right: 0
|
||||
border-bottom: $caret-width solid transparent
|
||||
border-left: $caret-width solid
|
||||
|
||||
=caret-left
|
||||
border-top: $caret-width solid transparent
|
||||
border-right: $caret-width solid
|
||||
border-bottom: $caret-width solid transparent
|
||||
|
||||
=caret($direction: down)
|
||||
@if $enable-caret
|
||||
&::after
|
||||
display: inline-block
|
||||
width: 0
|
||||
height: 0
|
||||
margin-left: $caret-width * 0.85
|
||||
vertical-align: $caret-width * 0.85
|
||||
content: ""
|
||||
|
||||
@if $direction == down
|
||||
+caret-down
|
||||
@else if $direction == up
|
||||
+caret-up
|
||||
@else if $direction == right
|
||||
+caret-right
|
||||
|
||||
@if $direction == left
|
||||
&::after
|
||||
display: none
|
||||
|
||||
&::before
|
||||
display: inline-block
|
||||
width: 0
|
||||
height: 0
|
||||
margin-right: $caret-width * 0.85
|
||||
vertical-align: $caret-width * 0.85
|
||||
content: ""
|
||||
|
||||
+caret-left
|
||||
|
||||
&:empty::after
|
||||
margin-left: 0
|
5
static/assets/bootstrap/sass/mixins/_clearfix.sass
Normal file
5
static/assets/bootstrap/sass/mixins/_clearfix.sass
Normal file
@@ -0,0 +1,5 @@
|
||||
=clearfix
|
||||
&::after
|
||||
display: block
|
||||
clear: both
|
||||
content: ""
|
10
static/assets/bootstrap/sass/mixins/_float.sass
Normal file
10
static/assets/bootstrap/sass/mixins/_float.sass
Normal file
@@ -0,0 +1,10 @@
|
||||
// stylelint-disable declaration-no-important
|
||||
|
||||
=float-left
|
||||
float: left !important
|
||||
|
||||
=float-right
|
||||
float: right !important
|
||||
|
||||
=float-none
|
||||
float: none !important
|
118
static/assets/bootstrap/sass/mixins/_forms.sass
Normal file
118
static/assets/bootstrap/sass/mixins/_forms.sass
Normal file
@@ -0,0 +1,118 @@
|
||||
// Form control focus state
|
||||
//
|
||||
// Generate a customized focus state and for any input with the specified color,
|
||||
// which defaults to the `$input-focus-border-color` variable.
|
||||
//
|
||||
// We highly encourage you to not customize the default value, but instead use
|
||||
// this to tweak colors on an as-needed basis. This aesthetic change is based on
|
||||
// WebKit's default styles, but applicable to a wider range of browsers. Its
|
||||
// usability and accessibility should be taken into account with any change.
|
||||
//
|
||||
// Example usage: change the default blue border and shadow to white for better
|
||||
// contrast against a dark gray background.
|
||||
=form-control-focus
|
||||
&:focus
|
||||
color: $input-focus-color
|
||||
background-color: $input-focus-bg
|
||||
border-color: $input-focus-border-color
|
||||
outline: 0
|
||||
|
||||
// Avoid using mixin so we can pass custom focus shadow properly
|
||||
@if $enable-shadows
|
||||
box-shadow: $input-box-shadow, $input-focus-box-shadow
|
||||
@else
|
||||
box-shadow: $input-focus-box-shadow
|
||||
|
||||
=form-validation-state($state, $color)
|
||||
.#{$state}-feedback
|
||||
display: none
|
||||
width: 100%
|
||||
margin-top: $form-feedback-margin-top
|
||||
font-size: $form-feedback-font-size
|
||||
color: $color
|
||||
|
||||
.#{$state}-tooltip
|
||||
position: absolute
|
||||
top: 100%
|
||||
z-index: 5
|
||||
display: none
|
||||
max-width: 100%
|
||||
|
||||
// Contain to parent when possible
|
||||
padding: .5rem
|
||||
margin-top: .1rem
|
||||
font-size: .875rem
|
||||
line-height: 1
|
||||
color: $white
|
||||
background-color: rgba($color, 0.8)
|
||||
border-radius: .2rem
|
||||
|
||||
.form-control,
|
||||
.custom-select
|
||||
.was-validated &:#{$state},
|
||||
&.is-#{$state}
|
||||
border-color: $color
|
||||
|
||||
&:focus
|
||||
border-color: $color
|
||||
box-shadow: 0 0 0 $input-focus-width rgba($color, 0.25)
|
||||
|
||||
~ .#{$state}-feedback,
|
||||
~ .#{$state}-tooltip
|
||||
display: block
|
||||
|
||||
.form-control-file
|
||||
.was-validated &:#{$state},
|
||||
&.is-#{$state}
|
||||
~ .#{$state}-feedback,
|
||||
~ .#{$state}-tooltip
|
||||
display: block
|
||||
|
||||
.form-check-input
|
||||
.was-validated &:#{$state},
|
||||
&.is-#{$state}
|
||||
~ .form-check-label
|
||||
color: $color
|
||||
|
||||
~ .#{$state}-feedback,
|
||||
~ .#{$state}-tooltip
|
||||
display: block
|
||||
|
||||
.custom-control-input
|
||||
.was-validated &:#{$state},
|
||||
&.is-#{$state}
|
||||
~ .custom-control-label
|
||||
color: $color
|
||||
|
||||
&::before
|
||||
background-color: lighten($color, 25%)
|
||||
|
||||
~ .#{$state}-feedback,
|
||||
~ .#{$state}-tooltip
|
||||
display: block
|
||||
|
||||
&:checked
|
||||
~ .custom-control-label::before
|
||||
+gradient-bg(lighten($color, 10%))
|
||||
|
||||
&:focus
|
||||
~ .custom-control-label::before
|
||||
box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, 0.25)
|
||||
|
||||
// custom file
|
||||
.custom-file-input
|
||||
.was-validated &:#{$state},
|
||||
&.is-#{$state}
|
||||
~ .custom-file-label
|
||||
border-color: $color
|
||||
|
||||
&::before
|
||||
border-color: inherit
|
||||
|
||||
~ .#{$state}-feedback,
|
||||
~ .#{$state}-tooltip
|
||||
display: block
|
||||
|
||||
&:focus
|
||||
~ .custom-file-label
|
||||
box-shadow: 0 0 0 $input-focus-width rgba($color, 0.25)
|
40
static/assets/bootstrap/sass/mixins/_gradients.sass
Normal file
40
static/assets/bootstrap/sass/mixins/_gradients.sass
Normal file
@@ -0,0 +1,40 @@
|
||||
// Gradients
|
||||
|
||||
=gradient-bg($color)
|
||||
@if $enable-gradients
|
||||
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x
|
||||
@else
|
||||
background-color: $color
|
||||
|
||||
// Horizontal gradient, from left to right
|
||||
//
|
||||
// Creates two color stops, start and end, by specifying a color and position for each color stop.
|
||||
=gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%)
|
||||
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent)
|
||||
background-repeat: repeat-x
|
||||
|
||||
// Vertical gradient, from top to bottom
|
||||
//
|
||||
// Creates two color stops, start and end, by specifying a color and position for each color stop.
|
||||
=gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%)
|
||||
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent)
|
||||
background-repeat: repeat-x
|
||||
|
||||
=gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg)
|
||||
background-image: linear-gradient($deg, $start-color, $end-color)
|
||||
background-repeat: repeat-x
|
||||
|
||||
=gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red)
|
||||
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color)
|
||||
background-repeat: no-repeat
|
||||
|
||||
=gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red)
|
||||
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color)
|
||||
background-repeat: no-repeat
|
||||
|
||||
=gradient-radial($inner-color: $gray-700, $outer-color: $gray-800)
|
||||
background-image: radial-gradient(circle, $inner-color, $outer-color)
|
||||
background-repeat: no-repeat
|
||||
|
||||
=gradient-striped($color: rgba($white, 0.15), $angle: 45deg)
|
||||
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent)
|
62
static/assets/bootstrap/sass/mixins/_grid-framework.sass
Normal file
62
static/assets/bootstrap/sass/mixins/_grid-framework.sass
Normal file
@@ -0,0 +1,62 @@
|
||||
// Framework grid generation
|
||||
//
|
||||
// Used only by Bootstrap to generate the correct number of grid classes given
|
||||
// any value of `$grid-columns`.
|
||||
|
||||
=make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints)
|
||||
// Common properties for all breakpoints
|
||||
%grid-column
|
||||
position: relative
|
||||
width: 100%
|
||||
min-height: 1px
|
||||
|
||||
// Prevent columns from collapsing when empty
|
||||
padding-right: $gutter / 2
|
||||
padding-left: $gutter / 2
|
||||
|
||||
@each $breakpoint in map-keys($breakpoints)
|
||||
$infix: breakpoint-infix($breakpoint, $breakpoints)
|
||||
|
||||
// Allow columns to stretch full width below their breakpoints
|
||||
@for $i from 1 through $columns
|
||||
.col#{$infix}-#{$i}
|
||||
@extend %grid-column
|
||||
|
||||
.col#{$infix},
|
||||
.col#{$infix}-auto
|
||||
@extend %grid-column
|
||||
|
||||
+media-breakpoint-up($breakpoint, $breakpoints)
|
||||
// Provide basic `.col-{bp}` classes for equal-width flexbox columns
|
||||
.col#{$infix}
|
||||
flex-basis: 0
|
||||
flex-grow: 1
|
||||
max-width: 100%
|
||||
|
||||
.col#{$infix}-auto
|
||||
flex: 0 0 auto
|
||||
width: auto
|
||||
max-width: none
|
||||
|
||||
// Reset earlier grid tiers
|
||||
|
||||
@for $i from 1 through $columns
|
||||
.col#{$infix}-#{$i}
|
||||
+make-col($i, $columns)
|
||||
|
||||
.order#{$infix}-first
|
||||
order: -1
|
||||
|
||||
.order#{$infix}-last
|
||||
order: $columns + 1
|
||||
|
||||
@for $i from 0 through $columns
|
||||
.order#{$infix}-#{$i}
|
||||
order: $i
|
||||
|
||||
// `$columns - 1` because offsetting by the width of an entire row isn't possible
|
||||
@for $i from 0 through $columns - 1
|
||||
@if not ($infix == "" and $i == 0)
|
||||
// Avoid emitting useless .offset-0
|
||||
.offset#{$infix}-#{$i}
|
||||
+make-col-offset($i, $columns)
|
48
static/assets/bootstrap/sass/mixins/_grid.sass
Normal file
48
static/assets/bootstrap/sass/mixins/_grid.sass
Normal file
@@ -0,0 +1,48 @@
|
||||
/// Grid system
|
||||
//
|
||||
// Generate semantic grid columns with these mixins.
|
||||
|
||||
=make-container
|
||||
width: 100%
|
||||
padding-right: $grid-gutter-width / 2
|
||||
padding-left: $grid-gutter-width / 2
|
||||
margin-right: auto
|
||||
margin-left: auto
|
||||
|
||||
// For each breakpoint, define the maximum width of the container in a media query
|
||||
=make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints)
|
||||
@each $breakpoint, $container-max-width in $max-widths
|
||||
+media-breakpoint-up($breakpoint, $breakpoints)
|
||||
max-width: $container-max-width
|
||||
|
||||
=make-row
|
||||
display: flex
|
||||
flex-wrap: wrap
|
||||
margin-right: $grid-gutter-width / -2
|
||||
margin-left: $grid-gutter-width / -2
|
||||
|
||||
=make-col-ready
|
||||
position: relative
|
||||
|
||||
// Prevent columns from becoming too narrow when at smaller grid tiers by
|
||||
// always setting `width: 100%;`. This works because we use `flex` values
|
||||
// later on to override this initial width.
|
||||
width: 100%
|
||||
min-height: 1px
|
||||
|
||||
// Prevent collapsing
|
||||
padding-right: $grid-gutter-width / 2
|
||||
padding-left: $grid-gutter-width / 2
|
||||
|
||||
=make-col($size, $columns: $grid-columns)
|
||||
flex: 0 0 percentage($size / $columns)
|
||||
|
||||
// Add a `max-width` to ensure content within each column does not blow out
|
||||
// the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
|
||||
// do not appear to require this.
|
||||
max-width: percentage($size / $columns)
|
||||
|
||||
=make-col-offset($size, $columns: $grid-columns)
|
||||
$num: $size / $columns
|
||||
|
||||
margin-left: if($num == 0, 0, percentage($num))
|
31
static/assets/bootstrap/sass/mixins/_hover.sass
Normal file
31
static/assets/bootstrap/sass/mixins/_hover.sass
Normal file
@@ -0,0 +1,31 @@
|
||||
// Hover mixin and `$enable-hover-media-query` are deprecated.
|
||||
//
|
||||
// Originally added during our alphas and maintained during betas, this mixin was
|
||||
// designed to prevent `:hover` stickiness on iOS-an issue where hover styles
|
||||
// would persist after initial touch.
|
||||
//
|
||||
// For backward compatibility, we've kept these mixins and updated them to
|
||||
// always return their regular pseudo-classes instead of a shimmed media query.
|
||||
//
|
||||
// Issue: https://github.com/twbs/bootstrap/issues/25195
|
||||
|
||||
=hover
|
||||
&:hover
|
||||
@content
|
||||
|
||||
=hover-focus
|
||||
&:hover,
|
||||
&:focus
|
||||
@content
|
||||
|
||||
=plain-hover-focus
|
||||
&,
|
||||
&:hover,
|
||||
&:focus
|
||||
@content
|
||||
|
||||
=hover-focus-active
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active
|
||||
@content
|
32
static/assets/bootstrap/sass/mixins/_image.sass
Normal file
32
static/assets/bootstrap/sass/mixins/_image.sass
Normal file
@@ -0,0 +1,32 @@
|
||||
// Image Mixins
|
||||
// - Responsive image
|
||||
// - Retina image
|
||||
|
||||
// Responsive image
|
||||
//
|
||||
// Keep images from scaling beyond the width of their parents.
|
||||
|
||||
=img-fluid
|
||||
// Part 1: Set a maximum relative to the parent
|
||||
max-width: 100%
|
||||
|
||||
// Part 2: Override the height to auto, otherwise images will be stretched
|
||||
// when setting a width and height attribute on the img element.
|
||||
height: auto
|
||||
|
||||
// Retina image
|
||||
//
|
||||
// Short retina mixin for setting background-image and -size.
|
||||
|
||||
// stylelint-disable indentation, media-query-list-comma-newline-after
|
||||
=img-retina($file-1x, $file-2x, $width-1x, $height-1x)
|
||||
background-image: url($file-1x)
|
||||
|
||||
// Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
|
||||
// but doesn't convert dppx=>dpi.
|
||||
// There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
|
||||
// Compatibility info: https://caniuse.com/#feat=css-media-resolution
|
||||
@media only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)
|
||||
// Standardized
|
||||
background-image: url($file-2x)
|
||||
background-size: $width-1x $height-1x
|
17
static/assets/bootstrap/sass/mixins/_list-group.sass
Normal file
17
static/assets/bootstrap/sass/mixins/_list-group.sass
Normal file
@@ -0,0 +1,17 @@
|
||||
// List Groups
|
||||
|
||||
=list-group-item-variant($state, $background, $color)
|
||||
.list-group-item-#{$state}
|
||||
color: $color
|
||||
background-color: $background
|
||||
|
||||
&.list-group-item-action
|
||||
+hover-focus
|
||||
color: $color
|
||||
background-color: darken($background, 5%)
|
||||
|
||||
|
||||
&.active
|
||||
color: $white
|
||||
background-color: $color
|
||||
border-color: $color
|
6
static/assets/bootstrap/sass/mixins/_lists.sass
Normal file
6
static/assets/bootstrap/sass/mixins/_lists.sass
Normal file
@@ -0,0 +1,6 @@
|
||||
// Lists
|
||||
|
||||
// Unstyled keeps list items block level, just removes default browser padding and list-style
|
||||
=list-unstyled
|
||||
padding-left: 0
|
||||
list-style: none
|
9
static/assets/bootstrap/sass/mixins/_nav-divider.sass
Normal file
9
static/assets/bootstrap/sass/mixins/_nav-divider.sass
Normal file
@@ -0,0 +1,9 @@
|
||||
// Horizontal dividers
|
||||
//
|
||||
// Dividers (basically an hr) within dropdowns and nav lists
|
||||
|
||||
=nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y)
|
||||
height: 0
|
||||
margin: $margin-y 0
|
||||
overflow: hidden
|
||||
border-top: 1px solid $color
|
16
static/assets/bootstrap/sass/mixins/_pagination.sass
Normal file
16
static/assets/bootstrap/sass/mixins/_pagination.sass
Normal file
@@ -0,0 +1,16 @@
|
||||
// Pagination
|
||||
|
||||
=pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius)
|
||||
.page-link
|
||||
padding: $padding-y $padding-x
|
||||
font-size: $font-size
|
||||
line-height: $line-height
|
||||
|
||||
.page-item
|
||||
&:first-child
|
||||
.page-link
|
||||
+border-left-radius($border-radius)
|
||||
|
||||
&:last-child
|
||||
.page-link
|
||||
+border-right-radius($border-radius)
|
21
static/assets/bootstrap/sass/mixins/_reset-text.sass
Normal file
21
static/assets/bootstrap/sass/mixins/_reset-text.sass
Normal file
@@ -0,0 +1,21 @@
|
||||
=reset-text
|
||||
font-family: $font-family-base
|
||||
|
||||
// We deliberately do NOT reset font-size or word-wrap.
|
||||
font-style: normal
|
||||
font-weight: $font-weight-normal
|
||||
line-height: $line-height-base
|
||||
text-align: left
|
||||
|
||||
// Fallback for where `start` is not supported
|
||||
text-align: start
|
||||
|
||||
// stylelint-disable-line declaration-block-no-duplicate-properties
|
||||
text-decoration: none
|
||||
text-shadow: none
|
||||
text-transform: none
|
||||
letter-spacing: normal
|
||||
word-break: normal
|
||||
word-spacing: normal
|
||||
white-space: normal
|
||||
line-break: auto
|
9
static/assets/bootstrap/sass/mixins/_resize.sass
Normal file
9
static/assets/bootstrap/sass/mixins/_resize.sass
Normal file
@@ -0,0 +1,9 @@
|
||||
// Resize anything
|
||||
|
||||
=resizable($direction)
|
||||
overflow: auto
|
||||
|
||||
// Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
|
||||
resize: $direction
|
||||
|
||||
// Options: horizontal, vertical, both
|
30
static/assets/bootstrap/sass/mixins/_screen-reader.sass
Normal file
30
static/assets/bootstrap/sass/mixins/_screen-reader.sass
Normal file
@@ -0,0 +1,30 @@
|
||||
// Only display content to screen readers
|
||||
//
|
||||
// See: https://a11yproject.com/posts/how-to-hide-content/
|
||||
// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
|
||||
|
||||
=sr-only
|
||||
position: absolute
|
||||
width: 1px
|
||||
height: 1px
|
||||
padding: 0
|
||||
overflow: hidden
|
||||
clip: rect(0, 0, 0, 0)
|
||||
white-space: nowrap
|
||||
border: 0
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
=sr-only-focusable
|
||||
&:active,
|
||||
&:focus
|
||||
position: static
|
||||
width: auto
|
||||
height: auto
|
||||
overflow: visible
|
||||
clip: auto
|
||||
white-space: normal
|
5
static/assets/bootstrap/sass/mixins/_size.sass
Normal file
5
static/assets/bootstrap/sass/mixins/_size.sass
Normal file
@@ -0,0 +1,5 @@
|
||||
// Sizing shortcuts
|
||||
|
||||
=size($width, $height: $width)
|
||||
width: $width
|
||||
height: $height
|
23
static/assets/bootstrap/sass/mixins/_table-row.sass
Normal file
23
static/assets/bootstrap/sass/mixins/_table-row.sass
Normal file
@@ -0,0 +1,23 @@
|
||||
// Tables
|
||||
|
||||
=table-row-variant($state, $background)
|
||||
// Exact selectors below required to override `.table-striped` and prevent
|
||||
// inheritance to nested tables.
|
||||
.table-#{$state}
|
||||
&,
|
||||
> th,
|
||||
> td
|
||||
background-color: $background
|
||||
|
||||
// Hover states for `.table-hover`
|
||||
// Note: this is not available for cells or rows within `thead` or `tfoot`.
|
||||
.table-hover
|
||||
$hover-background: darken($background, 5%)
|
||||
|
||||
.table-#{$state}
|
||||
+hover
|
||||
background-color: $hover-background
|
||||
|
||||
> td,
|
||||
> th
|
||||
background-color: $hover-background
|
11
static/assets/bootstrap/sass/mixins/_text-emphasis.sass
Normal file
11
static/assets/bootstrap/sass/mixins/_text-emphasis.sass
Normal file
@@ -0,0 +1,11 @@
|
||||
// stylelint-disable declaration-no-important
|
||||
|
||||
// Typography
|
||||
|
||||
=text-emphasis-variant($parent, $color)
|
||||
#{$parent}
|
||||
color: $color !important
|
||||
|
||||
a#{$parent}
|
||||
+hover-focus
|
||||
color: darken($color, 10%) !important
|
11
static/assets/bootstrap/sass/mixins/_text-hide.sass
Normal file
11
static/assets/bootstrap/sass/mixins/_text-hide.sass
Normal file
@@ -0,0 +1,11 @@
|
||||
// CSS image replacement
|
||||
=text-hide($ignore-warning: false)
|
||||
// stylelint-disable-next-line font-family-no-missing-generic-family-keyword
|
||||
font: 0/0 a
|
||||
color: transparent
|
||||
text-shadow: none
|
||||
background-color: transparent
|
||||
border: 0
|
||||
|
||||
@if $ignore-warning != true
|
||||
@warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5."
|
7
static/assets/bootstrap/sass/mixins/_text-truncate.sass
Normal file
7
static/assets/bootstrap/sass/mixins/_text-truncate.sass
Normal file
@@ -0,0 +1,7 @@
|
||||
// Text truncate
|
||||
// Requires inline-block or block for proper styling
|
||||
|
||||
=text-truncate
|
||||
overflow: hidden
|
||||
text-overflow: ellipsis
|
||||
white-space: nowrap
|
9
static/assets/bootstrap/sass/mixins/_transition.sass
Normal file
9
static/assets/bootstrap/sass/mixins/_transition.sass
Normal file
@@ -0,0 +1,9 @@
|
||||
=transition($transition...)
|
||||
@if $enable-transitions
|
||||
@if length($transition) == 0
|
||||
transition: $transition-base
|
||||
@else
|
||||
transition: $transition
|
||||
|
||||
@media screen and (prefers-reduced-motion: reduce)
|
||||
transition: none
|
6
static/assets/bootstrap/sass/mixins/_visibility.sass
Normal file
6
static/assets/bootstrap/sass/mixins/_visibility.sass
Normal file
@@ -0,0 +1,6 @@
|
||||
// stylelint-disable declaration-no-important
|
||||
|
||||
// Visibility
|
||||
|
||||
=invisible($visibility)
|
||||
visibility: $visibility !important
|
Reference in New Issue
Block a user