Browse Source

Upgrade to Bootstrap 3.4.1

master
Pēteris Caune 3 years ago
parent
commit
148894bd9e
No known key found for this signature in database GPG Key ID: E28D7679E9A9EDE2
62 changed files with 849 additions and 792 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +227
    -240
      static/css/bootstrap.css
  3. +3
    -4
      static/js/bootstrap.min.js
  4. +3
    -3
      stuff/bootstrap/alerts.less
  5. +3
    -3
      stuff/bootstrap/badges.less
  6. +3
    -3
      stuff/bootstrap/bootstrap.less
  7. +1
    -1
      stuff/bootstrap/breadcrumbs.less
  8. +8
    -6
      stuff/bootstrap/button-groups.less
  9. +6
    -4
      stuff/bootstrap/buttons.less
  10. +30
    -27
      stuff/bootstrap/carousel.less
  11. +3
    -0
      stuff/bootstrap/close.less
  12. +3
    -3
      stuff/bootstrap/code.less
  13. +3
    -0
      stuff/bootstrap/component-animations.less
  14. +21
    -23
      stuff/bootstrap/dropdowns.less
  15. +50
    -58
      stuff/bootstrap/forms.less
  16. +11
    -9
      stuff/bootstrap/glyphicons.less
  17. +10
    -0
      stuff/bootstrap/grid.less
  18. +5
    -3
      stuff/bootstrap/input-groups.less
  19. +5
    -5
      stuff/bootstrap/jumbotron.less
  20. +1
    -1
      stuff/bootstrap/labels.less
  21. +32
    -32
      stuff/bootstrap/list-group.less
  22. +1
    -0
      stuff/bootstrap/media.less
  23. +1
    -0
      stuff/bootstrap/mixins.less
  24. +2
    -1
      stuff/bootstrap/mixins/alerts.less
  25. +4
    -4
      stuff/bootstrap/mixins/border-radius.less
  26. +6
    -10
      stuff/bootstrap/mixins/buttons.less
  27. +1
    -1
      stuff/bootstrap/mixins/center-block.less
  28. +1
    -1
      stuff/bootstrap/mixins/clearfix.less
  29. +4
    -4
      stuff/bootstrap/mixins/forms.less
  30. +7
    -7
      stuff/bootstrap/mixins/gradients.less
  31. +1
    -1
      stuff/bootstrap/mixins/grid-framework.less
  32. +7
    -7
      stuff/bootstrap/mixins/grid.less
  33. +2
    -0
      stuff/bootstrap/mixins/hide-text.less
  34. +6
    -9
      stuff/bootstrap/mixins/image.less
  35. +2
    -0
      stuff/bootstrap/mixins/opacity.less
  36. +8
    -0
      stuff/bootstrap/mixins/reset-filter.less
  37. +4
    -4
      stuff/bootstrap/mixins/reset-text.less
  38. +1
    -1
      stuff/bootstrap/mixins/resize.less
  39. +1
    -3
      stuff/bootstrap/mixins/responsive-visibility.less
  40. +3
    -3
      stuff/bootstrap/mixins/tab-focus.less
  41. +2
    -0
      stuff/bootstrap/mixins/vendor-prefixes.less
  42. +7
    -7
      stuff/bootstrap/modals.less
  43. +30
    -38
      stuff/bootstrap/navbar.less
  44. +6
    -4
      stuff/bootstrap/navs.less
  45. +7
    -2
      stuff/bootstrap/normalize.less
  46. +2
    -2
      stuff/bootstrap/pager.less
  47. +12
    -15
      stuff/bootstrap/pagination.less
  48. +7
    -5
      stuff/bootstrap/panels.less
  49. +47
    -52
      stuff/bootstrap/popovers.less
  50. +92
    -92
      stuff/bootstrap/print.less
  51. +5
    -3
      stuff/bootstrap/progress-bars.less
  52. +2
    -2
      stuff/bootstrap/responsive-embed.less
  53. +23
    -0
      stuff/bootstrap/responsive-utilities.less
  54. +7
    -7
      stuff/bootstrap/scaffolding.less
  55. +25
    -23
      stuff/bootstrap/tables.less
  56. +25
    -19
      stuff/bootstrap/theme.less
  57. +3
    -1
      stuff/bootstrap/thumbnails.less
  58. +38
    -27
      stuff/bootstrap/tooltip.less
  59. +12
    -10
      stuff/bootstrap/type.less
  60. +2
    -0
      stuff/bootstrap/utilities.less
  61. +2
    -0
      stuff/bootstrap/variables.less
  62. +2
    -2
      stuff/bootstrap/wells.less

+ 1
- 0
CHANGELOG.md View File

@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- Add ability to edit existing email, Signal, SMS, WhatsApp integrations - Add ability to edit existing email, Signal, SMS, WhatsApp integrations
- Add new ping URL format: /{ping_key}/{slug} (#491) - Add new ping URL format: /{ping_key}/{slug} (#491)
- Reduce Docker image size by using slim base image and multi-stage Dockerfile - Reduce Docker image size by using slim base image and multi-stage Dockerfile
- Upgrade to Bootstrap 3.4.1
### Bug Fixes ### Bug Fixes
- Add handling for non-latin-1 characters in webhook headers - Add handling for non-latin-1 characters in webhook headers


+ 227
- 240
static/css/bootstrap.css
File diff suppressed because it is too large
View File


+ 3
- 4
static/js/bootstrap.min.js
File diff suppressed because it is too large
View File


+ 3
- 3
stuff/bootstrap/alerts.less View File

@ -15,8 +15,7 @@
// Headings for larger alerts // Headings for larger alerts
h4 { h4 {
margin-top: 0; margin-top: 0;
// Specified for the h4 to prevent conflicts of changing @headings-color
color: inherit;
color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color
} }
// Provide class for links that match alerts // Provide class for links that match alerts
@ -39,7 +38,8 @@
// //
// Expand the right padding and account for the close button's positioning. // Expand the right padding and account for the close button's positioning.
.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
// The misspelled .alert-dismissable was deprecated in 3.2.0.
.alert-dismissable,
.alert-dismissible { .alert-dismissible {
padding-right: (@alert-padding + 20); padding-right: (@alert-padding + 20);


+ 3
- 3
stuff/bootstrap/badges.less View File

@ -10,11 +10,11 @@
padding: 3px 7px; padding: 3px 7px;
font-size: @font-size-small; font-size: @font-size-small;
font-weight: @badge-font-weight; font-weight: @badge-font-weight;
color: @badge-color;
line-height: @badge-line-height; line-height: @badge-line-height;
vertical-align: middle;
white-space: nowrap;
color: @badge-color;
text-align: center; text-align: center;
white-space: nowrap;
vertical-align: middle;
background-color: @badge-bg; background-color: @badge-bg;
border-radius: @badge-border-radius; border-radius: @badge-border-radius;


+ 3
- 3
stuff/bootstrap/bootstrap.less View File

@ -1,7 +1,7 @@
/*! /*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Bootstrap v3.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)
*/ */
// Core variables and mixins // Core variables and mixins


+ 1
- 1
stuff/bootstrap/breadcrumbs.less View File

@ -14,9 +14,9 @@
display: inline-block; display: inline-block;
+ li:before { + li:before {
content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
padding: 0 5px; padding: 0 5px;
color: @breadcrumb-color; color: @breadcrumb-color;
content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
} }
} }


+ 8
- 6
stuff/bootstrap/button-groups.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// Button groups // Button groups
// -------------------------------------------------- // --------------------------------------------------
@ -59,7 +61,7 @@
.border-right-radius(0); .border-right-radius(0);
} }
} }
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
.btn-group > .btn:last-child:not(:first-child), .btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) { .btn-group > .dropdown-toggle:not(:first-child) {
.border-left-radius(0); .border-left-radius(0);
@ -103,18 +105,18 @@
// Give the line between buttons some depth // Give the line between buttons some depth
.btn-group > .btn + .dropdown-toggle { .btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px; padding-right: 8px;
padding-left: 8px;
} }
.btn-group > .btn-lg + .dropdown-toggle { .btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px; padding-right: 12px;
padding-left: 12px;
} }
// The clickable button for toggling the menu // The clickable button for toggling the menu
// Remove the gradient and set the same inset shadow as the :active state // Remove the gradient and set the same inset shadow as the :active state
.btn-group.open .dropdown-toggle { .btn-group.open .dropdown-toggle {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
.box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));
// Show no shadow for `.btn-link` since it has no other button styles. // Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link { &.btn-link {
@ -205,8 +207,8 @@
border-collapse: separate; border-collapse: separate;
> .btn, > .btn,
> .btn-group { > .btn-group {
float: none;
display: table-cell; display: table-cell;
float: none;
width: 1%; width: 1%;
} }
> .btn-group .btn { > .btn-group .btn {
@ -237,7 +239,7 @@
input[type="radio"], input[type="radio"],
input[type="checkbox"] { input[type="checkbox"] {
position: absolute; position: absolute;
clip: rect(0,0,0,0);
clip: rect(0, 0, 0, 0);
pointer-events: none; pointer-events: none;
} }
} }


+ 6
- 4
stuff/bootstrap/buttons.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// Buttons // Buttons
// -------------------------------------------------- // --------------------------------------------------
@ -11,12 +13,12 @@
margin-bottom: 0; // For input.btn margin-bottom: 0; // For input.btn
font-weight: @btn-font-weight; font-weight: @btn-font-weight;
text-align: center; text-align: center;
white-space: nowrap;
vertical-align: middle; vertical-align: middle;
touch-action: manipulation; touch-action: manipulation;
cursor: pointer; cursor: pointer;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent; border: 1px solid transparent;
white-space: nowrap;
.button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
.user-select(none); .user-select(none);
@ -38,9 +40,9 @@
&:active, &:active,
&.active { &.active {
outline: 0;
background-image: none; background-image: none;
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
outline: 0;
.box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));
} }
&.disabled, &.disabled,
@ -92,8 +94,8 @@
// Make a button look and behave like a link // Make a button look and behave like a link
.btn-link { .btn-link {
font-weight: 400;
color: @link-color; color: @link-color;
font-weight: normal;
border-radius: 0; border-radius: 0;
&, &,


+ 30
- 27
stuff/bootstrap/carousel.less View File

@ -1,3 +1,5 @@
// stylelint-disable media-feature-name-no-unknown
// //
// Carousel // Carousel
// -------------------------------------------------- // --------------------------------------------------
@ -10,12 +12,12 @@
.carousel-inner { .carousel-inner {
position: relative; position: relative;
overflow: hidden;
width: 100%; width: 100%;
overflow: hidden;
> .item { > .item {
display: none;
position: relative; position: relative;
display: none;
.transition(.6s ease-in-out left); .transition(.6s ease-in-out left);
// Account for jankitude on images // Account for jankitude on images
@ -27,8 +29,8 @@
// WebKit CSS3 transforms for supported devices // WebKit CSS3 transforms for supported devices
@media all and (transform-3d), (-webkit-transform-3d) { @media all and (transform-3d), (-webkit-transform-3d) {
.transition-transform(~'0.6s ease-in-out');
.backface-visibility(~'hidden');
.transition-transform(~"0.6s ease-in-out");
.backface-visibility(~"hidden");
.perspective(1000px); .perspective(1000px);
&.next, &.next,
@ -93,34 +95,34 @@
.carousel-control { .carousel-control {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0;
bottom: 0; bottom: 0;
left: 0;
width: @carousel-control-width; width: @carousel-control-width;
.opacity(@carousel-control-opacity);
font-size: @carousel-control-font-size; font-size: @carousel-control-font-size;
color: @carousel-control-color; color: @carousel-control-color;
text-align: center; text-align: center;
text-shadow: @carousel-text-shadow; text-shadow: @carousel-text-shadow;
background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
.opacity(@carousel-control-opacity);
// We can't have this transition here because WebKit cancels the carousel // We can't have this transition here because WebKit cancels the carousel
// animation if you trip this while in the middle of another animation. // animation if you trip this while in the middle of another animation.
// Set gradients for backgrounds // Set gradients for backgrounds
&.left { &.left {
#gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
#gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001));
} }
&.right { &.right {
left: auto;
right: 0; right: 0;
#gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
left: auto;
#gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5));
} }
// Hover/focus state // Hover/focus state
&:hover, &:hover,
&:focus { &:focus {
outline: 0;
color: @carousel-control-color; color: @carousel-control-color;
text-decoration: none; text-decoration: none;
outline: 0;
.opacity(.9); .opacity(.9);
} }
@ -131,9 +133,9 @@
.glyphicon-chevron-right { .glyphicon-chevron-right {
position: absolute; position: absolute;
top: 50%; top: 50%;
margin-top: -10px;
z-index: 5; z-index: 5;
display: inline-block; display: inline-block;
margin-top: -10px;
} }
.icon-prev, .icon-prev,
.glyphicon-chevron-left { .glyphicon-chevron-left {
@ -147,21 +149,20 @@
} }
.icon-prev, .icon-prev,
.icon-next { .icon-next {
width: 20px;
width: 20px;
height: 20px; height: 20px;
line-height: 1;
font-family: serif; font-family: serif;
line-height: 1;
} }
.icon-prev { .icon-prev {
&:before { &:before {
content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
} }
} }
.icon-next { .icon-next {
&:before { &:before {
content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
} }
} }
} }
@ -177,21 +178,18 @@
left: 50%; left: 50%;
z-index: 15; z-index: 15;
width: 60%; width: 60%;
margin-left: -30%;
padding-left: 0; padding-left: 0;
list-style: none;
margin-left: -30%;
text-align: center; text-align: center;
list-style: none;
li { li {
display: inline-block; display: inline-block;
width: 10px;
width: 10px;
height: 10px; height: 10px;
margin: 1px; margin: 1px;
text-indent: -999px; text-indent: -999px;
border: 1px solid @carousel-indicator-border-color;
border-radius: 10px;
cursor: pointer; cursor: pointer;
// IE8-9 hack for event handling // IE8-9 hack for event handling
// //
// Internet Explorer 8-9 does not support clicks on elements without a set // Internet Explorer 8-9 does not support clicks on elements without a set
@ -202,12 +200,16 @@
// For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
// set alpha transparency for the best results possible. // set alpha transparency for the best results possible.
background-color: #000 \9; // IE8 background-color: #000 \9; // IE8
background-color: rgba(0,0,0,0); // IE9
background-color: rgba(0, 0, 0, 0); // IE9
border: 1px solid @carousel-indicator-border-color;
border-radius: 10px;
} }
.active { .active {
margin: 0;
width: 12px;
width: 12px;
height: 12px; height: 12px;
margin: 0;
background-color: @carousel-indicator-active-bg; background-color: @carousel-indicator-active-bg;
} }
} }
@ -217,15 +219,16 @@
// Hidden by default for smaller viewports // Hidden by default for smaller viewports
.carousel-caption { .carousel-caption {
position: absolute; position: absolute;
left: 15%;
right: 15%; right: 15%;
bottom: 20px; bottom: 20px;
left: 15%;
z-index: 10; z-index: 10;
padding-top: 20px; padding-top: 20px;
padding-bottom: 20px; padding-bottom: 20px;
color: @carousel-caption-color; color: @carousel-caption-color;
text-align: center; text-align: center;
text-shadow: @carousel-text-shadow; text-shadow: @carousel-text-shadow;
& .btn { & .btn {
text-shadow: none; // No shadow for button elements in carousel-caption text-shadow: none; // No shadow for button elements in carousel-caption
} }
@ -258,8 +261,8 @@
// Show and left align the captions // Show and left align the captions
.carousel-caption { .carousel-caption {
left: 20%;
right: 20%; right: 20%;
left: 20%;
padding-bottom: 30px; padding-bottom: 30px;
} }


+ 3
- 0
stuff/bootstrap/close.less View File

@ -1,3 +1,5 @@
// stylelint-disable property-no-vendor-prefix
// //
// Close icons // Close icons
// -------------------------------------------------- // --------------------------------------------------
@ -30,5 +32,6 @@
background: transparent; background: transparent;
border: 0; border: 0;
-webkit-appearance: none; -webkit-appearance: none;
appearance: none;
} }
} }

+ 3
- 3
stuff/bootstrap/code.less View File

@ -27,12 +27,12 @@ kbd {
color: @kbd-color; color: @kbd-color;
background-color: @kbd-bg; background-color: @kbd-bg;
border-radius: @border-radius-small; border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
kbd { kbd {
padding: 0; padding: 0;
font-size: 100%; font-size: 100%;
font-weight: bold;
font-weight: 700;
box-shadow: none; box-shadow: none;
} }
} }
@ -44,9 +44,9 @@ pre {
margin: 0 0 (@line-height-computed / 2); margin: 0 0 (@line-height-computed / 2);
font-size: (@font-size-base - 1); // 14px to 13px font-size: (@font-size-base - 1); // 14px to 13px
line-height: @line-height-base; line-height: @line-height-base;
color: @pre-color;
word-break: break-all; word-break: break-all;
word-wrap: break-word; word-wrap: break-word;
color: @pre-color;
background-color: @pre-bg; background-color: @pre-bg;
border: 1px solid @pre-border-color; border: 1px solid @pre-border-color;
border-radius: @border-radius-base; border-radius: @border-radius-base;


+ 3
- 0
stuff/bootstrap/component-animations.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// Component animations // Component animations
// -------------------------------------------------- // --------------------------------------------------
@ -10,6 +12,7 @@
.fade { .fade {
opacity: 0; opacity: 0;
.transition(opacity .15s linear); .transition(opacity .15s linear);
&.in { &.in {
opacity: 1; opacity: 1;
} }


+ 21
- 23
stuff/bootstrap/dropdowns.less View File

@ -10,10 +10,10 @@
height: 0; height: 0;
margin-left: 2px; margin-left: 2px;
vertical-align: middle; vertical-align: middle;
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~"\9"; // IE8
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~"\9"; // IE8
border-right: @caret-width-base solid transparent; border-right: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
} }
// The dropdown wrapper (div) // The dropdown wrapper (div)
@ -38,15 +38,15 @@
min-width: 160px; min-width: 160px;
padding: 5px 0; padding: 5px 0;
margin: 2px 0 0; // override default ul margin: 2px 0 0; // override default ul
list-style: none;
font-size: @font-size-base; font-size: @font-size-base;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
list-style: none;
background-color: @dropdown-bg; background-color: @dropdown-bg;
background-clip: padding-box;
border: 1px solid @dropdown-fallback-border; // IE8 fallback border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border; border: 1px solid @dropdown-border;
border-radius: @border-radius-base; border-radius: @border-radius-base;
.box-shadow(0 6px 12px rgba(0,0,0,.175));
background-clip: padding-box;
.box-shadow(0 6px 12px rgba(0, 0, 0, .175));
// Aligns the dropdown menu to right // Aligns the dropdown menu to right
// //
@ -66,20 +66,17 @@
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
clear: both; clear: both;
font-weight: normal;
font-weight: 400;
line-height: @line-height-base; line-height: @line-height-base;
color: @dropdown-link-color; color: @dropdown-link-color;
white-space: nowrap; // prevent links from randomly breaking onto new lines white-space: nowrap; // prevent links from randomly breaking onto new lines
}
}
// Hover/Focus state
.dropdown-menu > li > a {
&:hover,
&:focus {
text-decoration: none;
color: @dropdown-link-hover-color;
background-color: @dropdown-link-hover-bg;
&:hover,
&:focus {
color: @dropdown-link-hover-color;
text-decoration: none;
background-color: @dropdown-link-hover-bg;
}
} }
} }
@ -90,8 +87,8 @@
&:focus { &:focus {
color: @dropdown-link-active-color; color: @dropdown-link-active-color;
text-decoration: none; text-decoration: none;
outline: 0;
background-color: @dropdown-link-active-bg; background-color: @dropdown-link-active-bg;
outline: 0;
} }
} }
@ -110,9 +107,10 @@
&:hover, &:hover,
&:focus { &:focus {
text-decoration: none; text-decoration: none;
cursor: @cursor-disabled;
background-color: transparent; background-color: transparent;
background-image: none; // Remove CSS gradient background-image: none; // Remove CSS gradient
cursor: @cursor-disabled;
.reset-filter();
} }
} }
@ -134,8 +132,8 @@
// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
// menu with the parent. // menu with the parent.
.dropdown-menu-right { .dropdown-menu-right {
left: auto; // Reset the default from `.dropdown-menu`
right: 0; right: 0;
left: auto; // Reset the default from `.dropdown-menu`
} }
// With v3, we enabled auto-flipping if you have a dropdown within a right // With v3, we enabled auto-flipping if you have a dropdown within a right
// aligned nav component. To enable the undoing of that, we provide an override // aligned nav component. To enable the undoing of that, we provide an override
@ -144,8 +142,8 @@
// This is only for left-aligning a dropdown menu within a `.navbar-right` or // This is only for left-aligning a dropdown menu within a `.navbar-right` or
// `.pull-right` nav component. // `.pull-right` nav component.
.dropdown-menu-left { .dropdown-menu-left {
left: 0;
right: auto; right: auto;
left: 0;
} }
// Dropdown section headers // Dropdown section headers
@ -161,10 +159,10 @@
// Backdrop to catch body clicks on mobile, etc. // Backdrop to catch body clicks on mobile, etc.
.dropdown-backdrop { .dropdown-backdrop {
position: fixed; position: fixed;
left: 0;
top: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
top: 0;
left: 0;
z-index: (@zindex-dropdown - 10); z-index: (@zindex-dropdown - 10);
} }
@ -183,10 +181,10 @@
.navbar-fixed-bottom .dropdown { .navbar-fixed-bottom .dropdown {
// Reverse the caret // Reverse the caret
.caret { .caret {
content: "";
border-top: 0; border-top: 0;
border-bottom: @caret-width-base dashed; border-bottom: @caret-width-base dashed;
border-bottom: @caret-width-base solid ~"\9"; // IE8 border-bottom: @caret-width-base solid ~"\9"; // IE8
content: "";
} }
// Different positioning for bottom up menu // Different positioning for bottom up menu
.dropdown-menu { .dropdown-menu {


+ 50
- 58
stuff/bootstrap/forms.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix
// //
// Forms // Forms
// -------------------------------------------------- // --------------------------------------------------
@ -8,13 +10,13 @@
// Restyle and baseline non-control form elements. // Restyle and baseline non-control form elements.
fieldset { fieldset {
padding: 0;
margin: 0;
border: 0;
// Chrome and Firefox set a `min-width: min-content;` on fieldsets, // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
// so we reset that to ensure it behaves more like a standard block element. // so we reset that to ensure it behaves more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359. // See https://github.com/twbs/bootstrap/issues/12359.
min-width: 0; min-width: 0;
padding: 0;
margin: 0;
border: 0;
} }
legend { legend {
@ -33,7 +35,7 @@ label {
display: inline-block; display: inline-block;
max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
margin-bottom: 5px; margin-bottom: 5px;
font-weight: bold;
font-weight: 700;
} }
@ -43,9 +45,18 @@ label {
// is required to ensure optimum display with or without those classes to better // is required to ensure optimum display with or without those classes to better
// address browser inconsistencies. // address browser inconsistencies.
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] { input[type="search"] {
// Override content-box in Normalize (* isn't specific enough)
.box-sizing(border-box); .box-sizing(border-box);
// Search inputs in iOS
//
// This overrides the extra rounded corners on search inputs in iOS so that our
// `.form-control` class can properly style them. Note that this cannot simply
// be added to `.form-control` as it's not specific enough. For details, see
// https://github.com/twbs/bootstrap/issues/11586.
-webkit-appearance: none;
appearance: none;
} }
// Position radios and checkboxes better // Position radios and checkboxes better
@ -54,6 +65,16 @@ input[type="checkbox"] {
margin: 4px 0 0; margin: 4px 0 0;
margin-top: 1px \9; // IE8-9 margin-top: 1px \9; // IE8-9
line-height: normal; line-height: normal;
// Apply same disabled cursor tweak as for inputs
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
&[disabled],
&.disabled,
fieldset[disabled] & {
cursor: @cursor-disabled;
}
} }
input[type="file"] { input[type="file"] {
@ -123,7 +144,7 @@ output {
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid @input-border; border: 1px solid @input-border;
border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS. border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));
// Customize the `:focus` state to imitate native WebKit styles. // Customize the `:focus` state to imitate native WebKit styles.
.form-control-focus(); .form-control-focus();
@ -133,8 +154,8 @@ output {
// Unstyle the caret on `<select>`s in IE10+. // Unstyle the caret on `<select>`s in IE10+.
&::-ms-expand { &::-ms-expand {
border: 0;
background-color: transparent; background-color: transparent;
border: 0;
} }
// Disabled and read-only inputs // Disabled and read-only inputs
@ -161,18 +182,6 @@ output {
} }
// Search inputs in iOS
//
// This overrides the extra rounded corners on search inputs in iOS so that our
// `.form-control` class can properly style them. Note that this cannot simply
// be added to `.form-control` as it's not specific enough. For details, see
// https://github.com/twbs/bootstrap/issues/11586.
input[type="search"] {
-webkit-appearance: none;
}
// Special styles for iOS temporal inputs // Special styles for iOS temporal inputs
// //
// In Mobile Safari, setting `display: block` on temporal inputs causes the // In Mobile Safari, setting `display: block` on temporal inputs causes the
@ -180,7 +189,7 @@ input[type="search"] {
// set a pixel line-height that matches the given height of the input, but only // set a pixel line-height that matches the given height of the input, but only
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
// //
// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
// Note that as of 9.3, iOS doesn't support `week`.
@media screen and (-webkit-min-device-pixel-ratio: 0) { @media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"], input[type="date"],
@ -225,11 +234,19 @@ input[type="search"] {
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
// These are used on elements with <label> descendants
&.disabled,
fieldset[disabled] & {
label {
cursor: @cursor-disabled;
}
}
label { label {
min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
padding-left: 20px; padding-left: 20px;
margin-bottom: 0; margin-bottom: 0;
font-weight: normal;
font-weight: 400;
cursor: pointer; cursor: pointer;
} }
} }
@ -238,8 +255,8 @@ input[type="search"] {
.checkbox input[type="checkbox"], .checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] { .checkbox-inline input[type="checkbox"] {
position: absolute; position: absolute;
margin-left: -20px;
margin-top: 4px \9; margin-top: 4px \9;
margin-left: -20px;
} }
.radio + .radio, .radio + .radio,
@ -254,45 +271,20 @@ input[type="search"] {
display: inline-block; display: inline-block;
padding-left: 20px; padding-left: 20px;
margin-bottom: 0; margin-bottom: 0;
font-weight: 400;
vertical-align: middle; vertical-align: middle;
font-weight: normal;
cursor: pointer; cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px; // space out consecutive inline controls
}
// Apply same disabled cursor tweak as for inputs
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
input[type="checkbox"] {
&[disabled],
// These are used directly on <label>s
&.disabled, &.disabled,
fieldset[disabled] & { fieldset[disabled] & {
cursor: @cursor-disabled; cursor: @cursor-disabled;
} }
} }
// These classes are used directly on <label>s
.radio-inline,
.checkbox-inline {
&.disabled,
fieldset[disabled] & {
cursor: @cursor-disabled;
}
}
// These classes are used on elements with <label> descendants
.radio,
.checkbox {
&.disabled,
fieldset[disabled] & {
label {
cursor: @cursor-disabled;
}
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px; // space out consecutive inline controls
} }
@ -302,17 +294,17 @@ input[type="checkbox"] {
// a horizontal form layout. // a horizontal form layout.
.form-control-static { .form-control-static {
min-height: (@line-height-computed + @font-size-base);
// Size it appropriately next to real form controls // Size it appropriately next to real form controls
padding-top: (@padding-base-vertical + 1); padding-top: (@padding-base-vertical + 1);
padding-bottom: (@padding-base-vertical + 1); padding-bottom: (@padding-base-vertical + 1);
// Remove default margin from `p` // Remove default margin from `p`
margin-bottom: 0; margin-bottom: 0;
min-height: (@line-height-computed + @font-size-base);
&.input-lg, &.input-lg,
&.input-sm { &.input-sm {
padding-left: 0;
padding-right: 0; padding-right: 0;
padding-left: 0;
} }
} }
@ -555,9 +547,9 @@ input[type="checkbox"] {
.checkbox, .checkbox,
.radio-inline, .radio-inline,
.checkbox-inline { .checkbox-inline {
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
} }
// Account for padding we're adding to ensure the alignment and of help text // Account for padding we're adding to ensure the alignment and of help text
// and other content below items // and other content below items
@ -575,9 +567,9 @@ input[type="checkbox"] {
// labels on narrow viewports stack the same as a default form example. // labels on narrow viewports stack the same as a default form example.
@media (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
.control-label { .control-label {
text-align: right;
margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border padding-top: (@padding-base-vertical + 1); // Default padding plus a border
margin-bottom: 0;
text-align: right;
} }
} }


+ 11
- 9
stuff/bootstrap/glyphicons.less View File

@ -1,3 +1,5 @@
// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword
// //
// Glyphicons for Bootstrap // Glyphicons for Bootstrap
// //
@ -9,13 +11,13 @@
// Import the fonts // Import the fonts
@font-face { @font-face {
font-family: 'Glyphicons Halflings';
src: url('@{icon-font-path}@{icon-font-name}.eot');
src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),
url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
font-family: "Glyphicons Halflings";
src: url("@{icon-font-path}@{icon-font-name}.eot");
src: url("@{icon-font-path}@{icon-font-name}.eot?#iefix") format("embedded-opentype"),
url("@{icon-font-path}@{icon-font-name}.woff2") format("woff2"),
url("@{icon-font-path}@{icon-font-name}.woff") format("woff"),
url("@{icon-font-path}@{icon-font-name}.ttf") format("truetype"),
url("@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}") format("svg");
} }
// Catchall baseclass // Catchall baseclass
@ -23,9 +25,9 @@
position: relative; position: relative;
top: 1px; top: 1px;
display: inline-block; display: inline-block;
font-family: 'Glyphicons Halflings';
font-family: "Glyphicons Halflings";
font-style: normal; font-style: normal;
font-weight: normal;
font-weight: 400;
line-height: 1; line-height: 1;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;


+ 10
- 0
stuff/bootstrap/grid.less View File

@ -40,6 +40,16 @@
.make-row(); .make-row();
} }
.row-no-gutters {
margin-right: 0;
margin-left: 0;
[class*="col-"] {
padding-right: 0;
padding-left: 0;
}
}
// Columns // Columns
// //


+ 5
- 3
stuff/bootstrap/input-groups.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// Input groups // Input groups
// -------------------------------------------------- // --------------------------------------------------
@ -12,8 +14,8 @@
// Undo padding and float of grid classes // Undo padding and float of grid classes
&[class*="col-"] { &[class*="col-"] {
float: none; float: none;
padding-left: 0;
padding-right: 0; padding-right: 0;
padding-left: 0;
} }
.form-control { .form-control {
@ -29,7 +31,7 @@
width: 100%; width: 100%;
margin-bottom: 0; margin-bottom: 0;
&:focus { &:focus {
z-index: 3; z-index: 3;
} }
@ -77,7 +79,7 @@
.input-group-addon { .input-group-addon {
padding: @padding-base-vertical @padding-base-horizontal; padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base; font-size: @font-size-base;
font-weight: normal;
font-weight: 400;
line-height: 1; line-height: 1;
color: @input-color; color: @input-color;
text-align: center; text-align: center;


+ 5
- 5
stuff/bootstrap/jumbotron.less View File

@ -4,7 +4,7 @@
.jumbotron { .jumbotron {
padding-top: @jumbotron-padding;
padding-top: @jumbotron-padding;
padding-bottom: @jumbotron-padding; padding-bottom: @jumbotron-padding;
margin-bottom: @jumbotron-padding; margin-bottom: @jumbotron-padding;
color: @jumbotron-color; color: @jumbotron-color;
@ -23,9 +23,9 @@
.container &, .container &,
.container-fluid & { .container-fluid & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2);
padding-left: (@grid-gutter-width / 2);
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
} }
.container { .container {
@ -33,13 +33,13 @@
} }
@media screen and (min-width: @screen-sm-min) { @media screen and (min-width: @screen-sm-min) {
padding-top: (@jumbotron-padding * 1.6);
padding-top: (@jumbotron-padding * 1.6);
padding-bottom: (@jumbotron-padding * 1.6); padding-bottom: (@jumbotron-padding * 1.6);
.container &, .container &,
.container-fluid & { .container-fluid & {
padding-left: (@jumbotron-padding * 2);
padding-right: (@jumbotron-padding * 2); padding-right: (@jumbotron-padding * 2);
padding-left: (@jumbotron-padding * 2);
} }
h1, h1,


+ 1
- 1
stuff/bootstrap/labels.less View File

@ -6,7 +6,7 @@
display: inline; display: inline;
padding: .2em .6em .3em; padding: .2em .6em .3em;
font-size: 75%; font-size: 75%;
font-weight: bold;
font-weight: 700;
line-height: 1; line-height: 1;
color: @label-color; color: @label-color;
text-align: center; text-align: center;


+ 32
- 32
stuff/bootstrap/list-group.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// List groups // List groups
// -------------------------------------------------- // --------------------------------------------------
@ -9,8 +11,8 @@
.list-group { .list-group {
// No need to set list-style: none; since .list-group-item is block level // No need to set list-style: none; since .list-group-item is block level
margin-bottom: 20px;
padding-left: 0; // reset padding because ul and ol padding-left: 0; // reset padding because ul and ol
margin-bottom: 20px;
} }
@ -35,44 +37,14 @@
margin-bottom: 0; margin-bottom: 0;
.border-bottom-radius(@list-group-border-radius); .border-bottom-radius(@list-group-border-radius);
} }
}
// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
// Includes an extra `.active` modifier class for showing selected items.
a.list-group-item,
button.list-group-item {
color: @list-group-link-color;
.list-group-item-heading {
color: @list-group-link-heading-color;
}
// Hover state
&:hover,
&:focus {
text-decoration: none;
color: @list-group-link-hover-color;
background-color: @list-group-hover-bg;
}
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item {
// Disabled state // Disabled state
&.disabled, &.disabled,
&.disabled:hover, &.disabled:hover,
&.disabled:focus { &.disabled:focus {
background-color: @list-group-disabled-bg;
color: @list-group-disabled-color; color: @list-group-disabled-color;
cursor: @cursor-disabled; cursor: @cursor-disabled;
background-color: @list-group-disabled-bg;
// Force color to inherit for custom content // Force color to inherit for custom content
.list-group-item-heading { .list-group-item-heading {
@ -105,6 +77,34 @@ button.list-group-item {
} }
// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
// Includes an extra `.active` modifier class for showing selected items.
a.list-group-item,
button.list-group-item {
color: @list-group-link-color;
.list-group-item-heading {
color: @list-group-link-heading-color;
}
// Hover state
&:hover,
&:focus {
color: @list-group-link-hover-color;
text-decoration: none;
background-color: @list-group-hover-bg;
}
}
button.list-group-item {
width: 100%;
text-align: left;
}
// Contextual variants // Contextual variants
// //
// Add modifier classes to change text and background color on individual items. // Add modifier classes to change text and background color on individual items.


+ 1
- 0
stuff/bootstrap/media.less View File

@ -10,6 +10,7 @@
.media, .media,
.media-body { .media-body {
overflow: hidden; overflow: hidden;
zoom: 1;
} }
.media-body { .media-body {


+ 1
- 0
stuff/bootstrap/mixins.less View File

@ -6,6 +6,7 @@
@import "mixins/opacity.less"; @import "mixins/opacity.less";
@import "mixins/image.less"; @import "mixins/image.less";
@import "mixins/labels.less"; @import "mixins/labels.less";
@import "mixins/reset-filter.less";
@import "mixins/resize.less"; @import "mixins/resize.less";
@import "mixins/responsive-visibility.less"; @import "mixins/responsive-visibility.less";
@import "mixins/size.less"; @import "mixins/size.less";


+ 2
- 1
stuff/bootstrap/mixins/alerts.less View File

@ -1,13 +1,14 @@
// Alerts // Alerts
.alert-variant(@background; @border; @text-color) { .alert-variant(@background; @border; @text-color) {
color: @text-color;
background-color: @background; background-color: @background;
border-color: @border; border-color: @border;
color: @text-color;
hr { hr {
border-top-color: darken(@border, 5%); border-top-color: darken(@border, 5%);
} }
.alert-link { .alert-link {
color: darken(@text-color, 10%); color: darken(@text-color, 10%);
} }


+ 4
- 4
stuff/bootstrap/mixins/border-radius.less View File

@ -1,18 +1,18 @@
// Single side border-radius // Single side border-radius
.border-top-radius(@radius) { .border-top-radius(@radius) {
border-top-left-radius: @radius;
border-top-right-radius: @radius; border-top-right-radius: @radius;
border-top-left-radius: @radius;
} }
.border-right-radius(@radius) { .border-right-radius(@radius) {
border-top-right-radius: @radius;
border-bottom-right-radius: @radius; border-bottom-right-radius: @radius;
border-top-right-radius: @radius;
} }
.border-bottom-radius(@radius) { .border-bottom-radius(@radius) {
border-bottom-right-radius: @radius; border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius;
border-bottom-left-radius: @radius;
} }
.border-left-radius(@radius) { .border-left-radius(@radius) {
border-top-left-radius: @radius;
border-bottom-left-radius: @radius; border-bottom-left-radius: @radius;
border-top-left-radius: @radius;
} }

+ 6
- 10
stuff/bootstrap/mixins/buttons.less View File

@ -12,33 +12,29 @@
&.focus { &.focus {
color: @color; color: @color;
background-color: darken(@background, 10%); background-color: darken(@background, 10%);
border-color: darken(@border, 25%);
border-color: darken(@border, 25%);
} }
&:hover { &:hover {
color: @color; color: @color;
background-color: darken(@background, 10%); background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
border-color: darken(@border, 12%);
} }
&:active, &:active,
&.active, &.active,
.open > .dropdown-toggle& { .open > .dropdown-toggle& {
color: @color; color: @color;
background-color: darken(@background, 10%); background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
background-image: none;
border-color: darken(@border, 12%);
&:hover, &:hover,
&:focus, &:focus,
&.focus { &.focus {
color: @color; color: @color;
background-color: darken(@background, 17%); background-color: darken(@background, 17%);
border-color: darken(@border, 25%);
border-color: darken(@border, 25%);
} }
} }
&:active,
&.active,
.open > .dropdown-toggle& {
background-image: none;
}
&.disabled, &.disabled,
&[disabled], &[disabled],
fieldset[disabled] & { fieldset[disabled] & {
@ -46,7 +42,7 @@
&:focus, &:focus,
&.focus { &.focus {
background-color: @background; background-color: @background;
border-color: @border;
border-color: @border;
} }
} }


+ 1
- 1
stuff/bootstrap/mixins/center-block.less View File

@ -2,6 +2,6 @@
.center-block() { .center-block() {
display: block; display: block;
margin-left: auto;
margin-right: auto; margin-right: auto;
margin-left: auto;
} }

+ 1
- 1
stuff/bootstrap/mixins/clearfix.less View File

@ -13,8 +13,8 @@
.clearfix() { .clearfix() {
&:before, &:before,
&:after { &:after {
content: " "; // 1
display: table; // 2 display: table; // 2
content: " "; // 1
} }
&:after { &:after {
clear: both; clear: both;


+ 4
- 4
stuff/bootstrap/mixins/forms.less View File

@ -20,19 +20,19 @@
// Set the border and box shadow on specific inputs to match // Set the border and box shadow on specific inputs to match
.form-control { .form-control {
border-color: @border-color; border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
.box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work
&:focus { &:focus {
@color-rgba: rgba(red(@border-color), green(@border-color), blue(@border-color), .2); @color-rgba: rgba(red(@border-color), green(@border-color), blue(@border-color), .2);
border-color: darken(@border-color, 10%); border-color: darken(@border-color, 10%);
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px @color-rgba;
@shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 4px @color-rgba;
.box-shadow(@shadow); .box-shadow(@shadow);
} }
} }
// Set validation states also for addons // Set validation states also for addons
.input-group-addon { .input-group-addon {
color: @text-color; color: @text-color;
border-color: @border-color;
background-color: @background-color; background-color: @background-color;
border-color: @border-color;
} }
// Optional feedback icon // Optional feedback icon
.form-control-feedback { .form-control-feedback {
@ -58,7 +58,7 @@
&:focus { &:focus {
border-color: @color; border-color: @color;
outline: 0; outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px @{color-rgba}");
.box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 4px @{color-rgba}");
} }
} }


+ 7
- 7
stuff/bootstrap/mixins/gradients.less View File

@ -1,4 +1,4 @@
// Gradients
// stylelint-disable value-no-vendor-prefix, selector-max-id
#gradient { #gradient {
@ -10,8 +10,8 @@
background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down
background-repeat: repeat-x; background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
} }
// Vertical gradient, from top to bottom // Vertical gradient, from top to bottom
@ -22,36 +22,36 @@
background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down
background-repeat: repeat-x; background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
} }
.directional(@start-color: #555; @end-color: #333; @deg: 45deg) { .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12 background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-repeat: repeat-x;
} }
.horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.radial(@inner-color: #555; @outer-color: #333) { .radial(@inner-color: #555; @outer-color: #333) {
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color); background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
.striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {
background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);


+ 1
- 1
stuff/bootstrap/mixins/grid-framework.less View File

@ -19,8 +19,8 @@
// Prevent columns from collapsing when empty // Prevent columns from collapsing when empty
min-height: 1px; min-height: 1px;
// Inner gutter via padding // Inner gutter via padding
padding-left: ceil((@grid-gutter-width / 2));
padding-right: floor((@grid-gutter-width / 2)); padding-right: floor((@grid-gutter-width / 2));
padding-left: ceil((@grid-gutter-width / 2));
} }
} }
.col(1); // kickstart it .col(1); // kickstart it


+ 7
- 7
stuff/bootstrap/mixins/grid.less View File

@ -4,17 +4,17 @@
// Centered container element // Centered container element
.container-fixed(@gutter: @grid-gutter-width) { .container-fixed(@gutter: @grid-gutter-width) {
padding-right: ceil((@gutter / 2));
padding-left: floor((@gutter / 2));
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
padding-left: floor((@gutter / 2));
padding-right: ceil((@gutter / 2));
&:extend(.clearfix all); &:extend(.clearfix all);
} }
// Creates a wrapper for a series of columns // Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) { .make-row(@gutter: @grid-gutter-width) {
margin-left: ceil((@gutter / -2));
margin-right: floor((@gutter / -2)); margin-right: floor((@gutter / -2));
margin-left: ceil((@gutter / -2));
&:extend(.clearfix all); &:extend(.clearfix all);
} }
@ -24,8 +24,8 @@
float: left; float: left;
width: percentage((@columns / @grid-columns)); width: percentage((@columns / @grid-columns));
min-height: 1px; min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
padding-left: (@gutter / 2);
} }
.make-xs-column-offset(@columns) { .make-xs-column-offset(@columns) {
margin-left: percentage((@columns / @grid-columns)); margin-left: percentage((@columns / @grid-columns));
@ -41,8 +41,8 @@
.make-sm-column(@columns; @gutter: @grid-gutter-width) { .make-sm-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
min-height: 1px; min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
padding-left: (@gutter / 2);
@media (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
float: left; float: left;
@ -69,8 +69,8 @@
.make-md-column(@columns; @gutter: @grid-gutter-width) { .make-md-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
min-height: 1px; min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
padding-left: (@gutter / 2);
@media (min-width: @screen-md-min) { @media (min-width: @screen-md-min) {
float: left; float: left;
@ -97,8 +97,8 @@
.make-lg-column(@columns; @gutter: @grid-gutter-width) { .make-lg-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
min-height: 1px; min-height: 1px;
padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
padding-left: (@gutter / 2);
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
float: left; float: left;


+ 2
- 0
stuff/bootstrap/mixins/hide-text.less View File

@ -1,3 +1,5 @@
// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword
// CSS image replacement // CSS image replacement
// //
// Heads up! v3 launched with only `.hide-text()`, but per our pattern for // Heads up! v3 launched with only `.hide-text()`, but per our pattern for


+ 6
- 9
stuff/bootstrap/mixins/image.less View File

@ -1,7 +1,4 @@
// Image Mixins
// - Responsive image
// - Retina image
// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after
// Responsive image // Responsive image
// //
@ -22,11 +19,11 @@
@media @media
only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
background-image: url("@{file-2x}"); background-image: url("@{file-2x}");
background-size: @width-1x @height-1x; background-size: @width-1x @height-1x;
} }


+ 2
- 0
stuff/bootstrap/mixins/opacity.less View File

@ -1,5 +1,7 @@
// Opacity // Opacity
.opacity(@opacity) { .opacity(@opacity) {
@opacity-ie: (@opacity * 100); // IE8 filter
filter: ~"alpha(opacity=@{opacity-ie})";
opacity: @opacity; opacity: @opacity;
} }

+ 8
- 0
stuff/bootstrap/mixins/reset-filter.less View File

@ -0,0 +1,8 @@
// Reset filters for IE
//
// When you need to remove a gradient background, do not forget to use this to reset
// the IE filter for IE9 and below.
.reset-filter() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}

+ 4
- 4
stuff/bootstrap/mixins/reset-text.less View File

@ -2,17 +2,17 @@
font-family: @font-family-base; font-family: @font-family-base;
// We deliberately do NOT reset font-size. // We deliberately do NOT reset font-size.
font-style: normal; font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
font-weight: 400;
line-height: @line-height-base; line-height: @line-height-base;
line-break: auto;
text-align: left; // Fallback for where `start` is not supported text-align: left; // Fallback for where `start` is not supported
text-align: start; text-align: start;
text-decoration: none; text-decoration: none;
text-shadow: none; text-shadow: none;
text-transform: none; text-transform: none;
white-space: normal;
letter-spacing: normal;
word-break: normal; word-break: normal;
word-spacing: normal; word-spacing: normal;
word-wrap: normal; word-wrap: normal;
white-space: normal;
} }

+ 1
- 1
stuff/bootstrap/mixins/resize.less View File

@ -1,6 +1,6 @@
// Resize anything // Resize anything
.resizable(@direction) { .resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
resize: @direction; // Options: horizontal, vertical, both
} }

+ 1
- 3
stuff/bootstrap/mixins/responsive-visibility.less View File

@ -1,7 +1,5 @@
// Responsive utilities
// stylelint-disable declaration-no-important
//
// More easily include all the states for responsive-utilities.less.
.responsive-visibility() { .responsive-visibility() {
display: block !important; display: block !important;
table& { display: table !important; } table& { display: table !important; }


+ 3
- 3
stuff/bootstrap/mixins/tab-focus.less View File

@ -1,9 +1,9 @@
// WebKit-style focus // WebKit-style focus
.tab-focus() { .tab-focus() {
// Default
outline: thin dotted;
// WebKit
// WebKit-specific. Other browsers will keep their default outline style.
// (Initially tried to also force default via `outline: initial`,
// but that seems to erroneously remove the outline in Firefox altogether.)
outline: 5px auto -webkit-focus-ring-color; outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px; outline-offset: -2px;
} }

+ 2
- 0
stuff/bootstrap/mixins/vendor-prefixes.less View File

@ -1,3 +1,5 @@
// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix
// Vendor Prefixes // Vendor Prefixes
// //
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of // All vendor mixins are deprecated as of v3.2.0 due to the introduction of


+ 7
- 7
stuff/bootstrap/modals.less View File

@ -14,14 +14,14 @@
// Container that the modal scrolls within // Container that the modal scrolls within
.modal { .modal {
display: none;
overflow: hidden;
position: fixed; position: fixed;
top: 0; top: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: @zindex-modal; z-index: @zindex-modal;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
// Prevent Chrome on Windows from adding a focus outline. For details, see // Prevent Chrome on Windows from adding a focus outline. For details, see
@ -33,7 +33,7 @@
.translate(0, -25%); .translate(0, -25%);
.transition-transform(~"0.3s ease-out"); .transition-transform(~"0.3s ease-out");
} }
&.in .modal-dialog { .translate(0, 0) }
&.in .modal-dialog { .translate(0, 0); }
} }
.modal-open .modal { .modal-open .modal {
overflow-x: hidden; overflow-x: hidden;
@ -51,11 +51,11 @@
.modal-content { .modal-content {
position: relative; position: relative;
background-color: @modal-content-bg; background-color: @modal-content-bg;
background-clip: padding-box;
border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
border: 1px solid @modal-content-border-color; border: 1px solid @modal-content-border-color;
border-radius: @border-radius-large; border-radius: @border-radius-large;
.box-shadow(0 3px 9px rgba(0,0,0,.5));
background-clip: padding-box;
.box-shadow(0 3px 9px rgba(0, 0, 0, .5));
// Remove focus outline from opened modal // Remove focus outline from opened modal
outline: 0; outline: 0;
} }
@ -108,8 +108,8 @@
// Properly space out buttons // Properly space out buttons
.btn + .btn { .btn + .btn {
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
margin-left: 5px;
} }
// but override that for button groups // but override that for button groups
.btn-group .btn + .btn { .btn-group .btn + .btn {
@ -138,7 +138,7 @@
margin: 30px auto; margin: 30px auto;
} }
.modal-content { .modal-content {
.box-shadow(0 5px 15px rgba(0,0,0,.5));
.box-shadow(0 5px 15px rgba(0, 0, 0, .5));
} }
// Modal sizes // Modal sizes


+ 30
- 38
stuff/bootstrap/navbar.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type
// //
// Navbars // Navbars
// -------------------------------------------------- // --------------------------------------------------
@ -48,11 +50,11 @@
// content for the user's viewport. // content for the user's viewport.
.navbar-collapse { .navbar-collapse {
overflow-x: visible;
padding-right: @navbar-padding-horizontal; padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
overflow-x: visible;
border-top: 1px solid transparent; border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
&:extend(.clearfix all); &:extend(.clearfix all);
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
@ -76,14 +78,6 @@
overflow-y: visible; overflow-y: visible;
} }
// Undo the collapse side padding for navbars with containers to ensure
// alignment of right-aligned contents.
.navbar-fixed-top &,
.navbar-static-top &,
.navbar-fixed-bottom & {
padding-left: 0;
padding-right: 0;
}
} }
} }
@ -96,11 +90,11 @@
> .navbar-header, > .navbar-header,
> .navbar-collapse { > .navbar-collapse {
margin-right: -@navbar-padding-horizontal; margin-right: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
margin-right: 0; margin-right: 0;
margin-left: 0;
margin-left: 0;
} }
} }
} }
@ -109,10 +103,10 @@
.navbar-brand { .navbar-brand {
float: left; float: left;
height: @navbar-height;
padding: @navbar-padding-vertical @navbar-padding-horizontal; padding: @navbar-padding-vertical @navbar-padding-horizontal;
font-size: @font-size-large; font-size: @font-size-large;
line-height: @line-height-computed; line-height: @line-height-computed;
height: @navbar-height;
&:hover, &:hover,
&:focus { &:focus {
@ -140,8 +134,8 @@
.navbar-toggle { .navbar-toggle {
position: relative; position: relative;
float: right; float: right;
margin-right: @navbar-padding-horizontal;
padding: 9px 10px; padding: 9px 10px;
margin-right: @navbar-padding-horizontal;
.navbar-vertical-align(34px); .navbar-vertical-align(34px);
background-color: transparent; background-color: transparent;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
@ -180,7 +174,7 @@
margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
> li > a { > li > a {
padding-top: 10px;
padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
line-height: @line-height-computed; line-height: @line-height-computed;
} }
@ -217,7 +211,7 @@
> li { > li {
float: left; float: left;
> a { > a {
padding-top: @navbar-padding-vertical;
padding-top: @navbar-padding-vertical;
padding-bottom: @navbar-padding-vertical; padding-bottom: @navbar-padding-vertical;
} }
} }
@ -258,8 +252,8 @@
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
float: left; float: left;
margin-left: @navbar-padding-horizontal;
margin-right: @navbar-padding-horizontal; margin-right: @navbar-padding-horizontal;
margin-left: @navbar-padding-horizontal;
} }
} }
@ -332,33 +326,15 @@
background-color: @navbar-default-link-disabled-bg; background-color: @navbar-default-link-disabled-bg;
} }
} }
}
.navbar-toggle {
border-color: @navbar-default-toggle-border-color;
&:hover,
&:focus {
background-color: @navbar-default-toggle-hover-bg;
}
.icon-bar {
background-color: @navbar-default-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
border-color: @navbar-default-border;
}
// Dropdown menu items
.navbar-nav {
// Dropdown menu items
// Remove background color from open dropdown // Remove background color from open dropdown
> .open > a { > .open > a {
&, &,
&:hover, &:hover,
&:focus { &:focus {
background-color: @navbar-default-link-active-bg;
color: @navbar-default-link-active-color; color: @navbar-default-link-active-color;
background-color: @navbar-default-link-active-bg;
} }
} }
@ -393,6 +369,22 @@
} }
} }
.navbar-toggle {
border-color: @navbar-default-toggle-border-color;
&:hover,
&:focus {
background-color: @navbar-default-toggle-hover-bg;
}
.icon-bar {
background-color: @navbar-default-toggle-icon-bar-bg;
}
}
.navbar-collapse,
.navbar-form {
border-color: @navbar-default-border;
}
// Links in navbars // Links in navbars
// //


+ 6
- 4
stuff/bootstrap/navs.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type, selector-max-type
// //
// Navs // Navs
// -------------------------------------------------- // --------------------------------------------------
@ -7,8 +9,8 @@
// -------------------------------------------------- // --------------------------------------------------
.nav { .nav {
margin-bottom: 0;
padding-left: 0; // Override default ul/ol padding-left: 0; // Override default ul/ol
margin-bottom: 0;
list-style: none; list-style: none;
&:extend(.clearfix all); &:extend(.clearfix all);
@ -35,8 +37,8 @@
&:focus { &:focus {
color: @nav-disabled-link-hover-color; color: @nav-disabled-link-hover-color;
text-decoration: none; text-decoration: none;
background-color: transparent;
cursor: @cursor-disabled; cursor: @cursor-disabled;
background-color: transparent;
} }
} }
} }
@ -97,10 +99,10 @@
&:hover, &:hover,
&:focus { &:focus {
color: @nav-tabs-active-link-hover-color; color: @nav-tabs-active-link-hover-color;
cursor: default;
background-color: @nav-tabs-active-link-hover-bg; background-color: @nav-tabs-active-link-hover-bg;
border: 1px solid @nav-tabs-active-link-hover-border-color; border: 1px solid @nav-tabs-active-link-hover-border-color;
border-bottom-color: transparent; border-bottom-color: transparent;
cursor: default;
} }
} }
} }
@ -163,8 +165,8 @@
> li { > li {
float: none; float: none;
> a { > a {
text-align: center;
margin-bottom: 5px; margin-bottom: 5px;
text-align: center;
} }
} }


+ 7
- 2
stuff/bootstrap/normalize.less View File

@ -1,3 +1,5 @@
// stylelint-disable
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
// //
@ -104,11 +106,14 @@ a:hover {
// ========================================================================== // ==========================================================================
// //
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
// 1. Remove the bottom border in Chrome 57- and Firefox 39-.
// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
// //
abbr[title] { abbr[title] {
border-bottom: 1px dotted;
border-bottom: none; // 1
text-decoration: underline; // 2
text-decoration: underline dotted; // 2
} }
// //


+ 2
- 2
stuff/bootstrap/pager.less View File

@ -6,8 +6,8 @@
.pager { .pager {
padding-left: 0; padding-left: 0;
margin: @line-height-computed 0; margin: @line-height-computed 0;
list-style: none;
text-align: center; text-align: center;
list-style: none;
&:extend(.clearfix all); &:extend(.clearfix all);
li { li {
display: inline; display: inline;
@ -47,8 +47,8 @@
> a:focus, > a:focus,
> span { > span {
color: @pager-disabled-color; color: @pager-disabled-color;
background-color: @pager-bg;
cursor: @cursor-disabled; cursor: @cursor-disabled;
background-color: @pager-bg;
} }
} }
} }

+ 12
- 15
stuff/bootstrap/pagination.less View File

@ -14,12 +14,20 @@
position: relative; position: relative;
float: left; // Collapse white-space float: left; // Collapse white-space
padding: @padding-base-vertical @padding-base-horizontal; padding: @padding-base-vertical @padding-base-horizontal;
margin-left: -1px;
line-height: @line-height-base; line-height: @line-height-base;
text-decoration: none;
color: @pagination-color; color: @pagination-color;
text-decoration: none;
background-color: @pagination-bg; background-color: @pagination-bg;
border: 1px solid @pagination-border; border: 1px solid @pagination-border;
margin-left: -1px;
&:hover,
&:focus {
z-index: 2;
color: @pagination-hover-color;
background-color: @pagination-hover-bg;
border-color: @pagination-hover-border;
}
} }
&:first-child { &:first-child {
> a, > a,
@ -36,17 +44,6 @@
} }
} }
> li > a,
> li > span {
&:hover,
&:focus {
z-index: 2;
color: @pagination-hover-color;
background-color: @pagination-hover-bg;
border-color: @pagination-hover-border;
}
}
> .active > a, > .active > a,
> .active > span { > .active > span {
&, &,
@ -54,9 +51,9 @@
&:focus { &:focus {
z-index: 3; z-index: 3;
color: @pagination-active-color; color: @pagination-active-color;
cursor: default;
background-color: @pagination-active-bg; background-color: @pagination-active-bg;
border-color: @pagination-active-border; border-color: @pagination-active-border;
cursor: default;
} }
} }
@ -68,9 +65,9 @@
> a:hover, > a:hover,
> a:focus { > a:focus {
color: @pagination-disabled-color; color: @pagination-disabled-color;
cursor: @cursor-disabled;
background-color: @pagination-disabled-bg; background-color: @pagination-disabled-bg;
border-color: @pagination-disabled-border; border-color: @pagination-disabled-border;
cursor: @cursor-disabled;
} }
} }
} }


+ 7
- 5
stuff/bootstrap/panels.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors
// //
// Panels // Panels
// -------------------------------------------------- // --------------------------------------------------
@ -9,7 +11,7 @@
background-color: @panel-bg; background-color: @panel-bg;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: @panel-border-radius; border-radius: @panel-border-radius;
.box-shadow(0 1px 1px rgba(0,0,0,.05));
.box-shadow(0 1px 1px rgba(0, 0, 0, .05));
} }
// Panel contents // Panel contents
@ -113,8 +115,8 @@
margin-bottom: 0; margin-bottom: 0;
caption { caption {
padding-left: @panel-body-padding;
padding-right: @panel-body-padding; padding-right: @panel-body-padding;
padding-left: @panel-body-padding;
} }
} }
// Add border top radius for first one // Add border top radius for first one
@ -147,8 +149,8 @@
> tbody:last-child, > tbody:last-child,
> tfoot:last-child { > tfoot:last-child {
> tr:last-child { > tr:last-child {
border-bottom-left-radius: (@panel-border-radius - 1);
border-bottom-right-radius: (@panel-border-radius - 1); border-bottom-right-radius: (@panel-border-radius - 1);
border-bottom-left-radius: (@panel-border-radius - 1);
td:first-child, td:first-child,
th:first-child { th:first-child {
@ -208,13 +210,13 @@
} }
} }
> .table-responsive { > .table-responsive {
border: 0;
margin-bottom: 0; margin-bottom: 0;
border: 0;
} }
} }
// Collapsable panels (aka, accordion)
// Collapsible panels (aka, accordion)
// //
// Wrap a series of panels in `.panel-group` to turn them into an accordion with // Wrap a series of panels in `.panel-group` to turn them into an accordion with
// the help of our collapse JavaScript plugin. // the help of our collapse JavaScript plugin.


+ 47
- 52
stuff/bootstrap/popovers.less View File

@ -15,99 +15,81 @@
// So reset our font and text properties to avoid inheriting weird values. // So reset our font and text properties to avoid inheriting weird values.
.reset-text(); .reset-text();
font-size: @font-size-base; font-size: @font-size-base;
background-color: @popover-bg; background-color: @popover-bg;
background-clip: padding-box; background-clip: padding-box;
border: 1px solid @popover-fallback-border-color; border: 1px solid @popover-fallback-border-color;
border: 1px solid @popover-border-color; border: 1px solid @popover-border-color;
border-radius: @border-radius-large; border-radius: @border-radius-large;
.box-shadow(0 5px 10px rgba(0,0,0,.2));
.box-shadow(0 5px 10px rgba(0, 0, 0, .2));
// Offset the popover to account for the popover arrow // Offset the popover to account for the popover arrow
&.top { margin-top: -@popover-arrow-width; }
&.right { margin-left: @popover-arrow-width; }
&.bottom { margin-top: @popover-arrow-width; }
&.left { margin-left: -@popover-arrow-width; }
}
&.top { margin-top: -@popover-arrow-width; }
&.right { margin-left: @popover-arrow-width; }
&.bottom { margin-top: @popover-arrow-width; }
&.left { margin-left: -@popover-arrow-width; }
.popover-title {
margin: 0; // reset heading margin
padding: 8px 14px;
font-size: @font-size-base;
background-color: @popover-title-bg;
border-bottom: 1px solid darken(@popover-title-bg, 5%);
border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
}
// Arrows
// .arrow is outer, .arrow:after is inner
> .arrow {
border-width: @popover-arrow-outer-width;
.popover-content {
padding: 9px 14px;
}
// Arrows
//
// .arrow is outer, .arrow:after is inner
&,
&:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover > .arrow {
&,
&:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
&:after {
content: "";
border-width: @popover-arrow-width;
}
} }
}
.popover > .arrow {
border-width: @popover-arrow-outer-width;
}
.popover > .arrow:after {
border-width: @popover-arrow-width;
content: "";
}
.popover {
&.top > .arrow { &.top > .arrow {
bottom: -@popover-arrow-outer-width;
left: 50%; left: 50%;
margin-left: -@popover-arrow-outer-width; margin-left: -@popover-arrow-outer-width;
border-bottom-width: 0;
border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-top-color: @popover-arrow-outer-color; border-top-color: @popover-arrow-outer-color;
bottom: -@popover-arrow-outer-width;
border-bottom-width: 0;
&:after { &:after {
content: " ";
bottom: 1px; bottom: 1px;
margin-left: -@popover-arrow-width; margin-left: -@popover-arrow-width;
border-bottom-width: 0;
content: " ";
border-top-color: @popover-arrow-color; border-top-color: @popover-arrow-color;
border-bottom-width: 0;
} }
} }
&.right > .arrow { &.right > .arrow {
top: 50%; top: 50%;
left: -@popover-arrow-outer-width; left: -@popover-arrow-outer-width;
margin-top: -@popover-arrow-outer-width; margin-top: -@popover-arrow-outer-width;
border-left-width: 0;
border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-right-color: @popover-arrow-outer-color; border-right-color: @popover-arrow-outer-color;
border-left-width: 0;
&:after { &:after {
content: " ";
left: 1px;
bottom: -@popover-arrow-width; bottom: -@popover-arrow-width;
border-left-width: 0;
left: 1px;
content: " ";
border-right-color: @popover-arrow-color; border-right-color: @popover-arrow-color;
border-left-width: 0;
} }
} }
&.bottom > .arrow { &.bottom > .arrow {
top: -@popover-arrow-outer-width;
left: 50%; left: 50%;
margin-left: -@popover-arrow-outer-width; margin-left: -@popover-arrow-outer-width;
border-top-width: 0; border-top-width: 0;
border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-bottom-color: @popover-arrow-outer-color; border-bottom-color: @popover-arrow-outer-color;
top: -@popover-arrow-outer-width;
&:after { &:after {
content: " ";
top: 1px; top: 1px;
margin-left: -@popover-arrow-width; margin-left: -@popover-arrow-width;
content: " ";
border-top-width: 0; border-top-width: 0;
border-bottom-color: @popover-arrow-color; border-bottom-color: @popover-arrow-color;
} }
@ -121,11 +103,24 @@
border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-left-color: @popover-arrow-outer-color; border-left-color: @popover-arrow-outer-color;
&:after { &:after {
content: " ";
right: 1px; right: 1px;
bottom: -@popover-arrow-width;
content: " ";
border-right-width: 0; border-right-width: 0;
border-left-color: @popover-arrow-color; border-left-color: @popover-arrow-color;
bottom: -@popover-arrow-width;
} }
} }
} }
.popover-title {
padding: 8px 14px;
margin: 0; // reset heading margin
font-size: @font-size-base;
background-color: @popover-title-bg;
border-bottom: 1px solid darken(@popover-title-bg, 5%);
border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
}
.popover-content {
padding: 9px 14px;
}

+ 92
- 92
stuff/bootstrap/print.less View File

@ -1,3 +1,5 @@
// stylelint-disable declaration-no-important, selector-no-qualifying-type
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
// ========================================================================== // ==========================================================================
@ -6,96 +8,94 @@
// ========================================================================== // ==========================================================================
@media print { @media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important; // Black prints faster: h5bp.com/s
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
// Don't show links that are fragment identifiers,
// or use the `javascript:` pseudo protocol
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; // h5bp.com/t
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
// Bootstrap specific changes start
// Bootstrap components
.navbar {
display: none;
}
.btn,
.dropup > .btn {
> .caret {
border-top-color: #000 !important;
}
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
td,
th {
background-color: #fff !important;
}
}
.table-bordered {
th,
td {
border: 1px solid #ddd !important;
}
}
// Bootstrap specific changes end
*,
*:before,
*:after {
color: #000 !important; // Black prints faster: h5bp.com/s
text-shadow: none !important;
background: transparent !important;
box-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
// Don't show links that are fragment identifiers,
// or use the `javascript:` pseudo protocol
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; // h5bp.com/t
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
// Bootstrap specific changes start
// Bootstrap components
.navbar {
display: none;
}
.btn,
.dropup > .btn {
> .caret {
border-top-color: #000 !important;
}
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
td,
th {
background-color: #fff !important;
}
}
.table-bordered {
th,
td {
border: 1px solid #ddd !important;
}
}
} }

+ 5
- 3
stuff/bootstrap/progress-bars.less View File

@ -1,3 +1,5 @@
// stylelint-disable at-rule-no-vendor-prefix
// //
// Progress bars // Progress bars
// -------------------------------------------------- // --------------------------------------------------
@ -24,12 +26,12 @@
// Outer container // Outer container
.progress { .progress {
overflow: hidden;
height: @line-height-computed; height: @line-height-computed;
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
overflow: hidden;
background-color: @progress-bg; background-color: @progress-bg;
border-radius: @progress-border-radius; border-radius: @progress-border-radius;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
.box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));
} }
// Bar of progress // Bar of progress
@ -42,7 +44,7 @@
color: @progress-bar-color; color: @progress-bar-color;
text-align: center; text-align: center;
background-color: @progress-bar-bg; background-color: @progress-bar-bg;
.box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
.box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));
.transition(width .6s ease); .transition(width .6s ease);
} }


+ 2
- 2
stuff/bootstrap/responsive-embed.less View File

@ -16,10 +16,10 @@
video { video {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0;
bottom: 0; bottom: 0;
height: 100%;
left: 0;
width: 100%; width: 100%;
height: 100%;
border: 0; border: 0;
} }
} }


+ 23
- 0
stuff/bootstrap/responsive-utilities.less View File

@ -1,7 +1,30 @@
// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix
// //
// Responsive: Utility classes // Responsive: Utility classes
// -------------------------------------------------- // --------------------------------------------------
// IE10 in Windows (Phone) 8
//
// Support for responsive views via media queries is kind of borked in IE10, for
// Surface/desktop in split view and for Windows Phone 8. This particular fix
// must be accompanied by a snippet of JavaScript to sniff the user agent and
// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
// our Getting Started page for more information on this bug.
//
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width
// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport {
width: device-width;
}
// Visibility utilities // Visibility utilities
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 // Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
.visible-xs, .visible-xs,


+ 7
- 7
stuff/bootstrap/scaffolding.less View File

@ -7,7 +7,7 @@
// //
// Heads up! This reset may cause conflicts with some third-party widgets. // Heads up! This reset may cause conflicts with some third-party widgets.
// For recommendations on resolving such conflicts, see // For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing
* { * {
.box-sizing(border-box); .box-sizing(border-box);
} }
@ -21,7 +21,7 @@
html { html {
font-size: 10px; font-size: 10px;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
} }
body { body {
@ -111,7 +111,7 @@ img {
// Horizontal rules // Horizontal rules
hr { hr {
margin-top: @line-height-computed;
margin-top: @line-height-computed;
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
border: 0; border: 0;
border-top: 1px solid @hr-border; border-top: 1px solid @hr-border;
@ -120,21 +120,21 @@ hr {
// Only display content to screen readers // Only display content to screen readers
// //
// See: http://a11yproject.com/posts/how-to-hide-content/
// See: https://a11yproject.com/posts/how-to-hide-content
.sr-only { .sr-only {
position: absolute; position: absolute;
width: 1px; width: 1px;
height: 1px; height: 1px;
margin: -1px;
padding: 0; padding: 0;
margin: -1px;
overflow: hidden; overflow: hidden;
clip: rect(0,0,0,0);
clip: rect(0, 0, 0, 0);
border: 0; border: 0;
} }
// Use in conjunction with .sr-only to only display content when it's focused. // Use in conjunction with .sr-only to only display content when it's focused.
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
// Credit: HTML5 Boilerplate // Credit: HTML5 Boilerplate
.sr-only-focusable { .sr-only-focusable {


+ 25
- 23
stuff/bootstrap/tables.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type
// //
// Tables // Tables
// -------------------------------------------------- // --------------------------------------------------
@ -5,13 +7,34 @@
table { table {
background-color: @table-bg; background-color: @table-bg;
// Table cell sizing
//
// Reset default table behavior
col[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
display: table-column;
float: none;
}
td,
th {
&[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
display: table-cell;
float: none;
}
}
} }
caption { caption {
padding-top: @table-cell-padding; padding-top: @table-cell-padding;
padding-bottom: @table-cell-padding; padding-bottom: @table-cell-padding;
color: @text-muted; color: @text-muted;
text-align: left; text-align: left;
} }
th { th {
text-align: left; text-align: left;
} }
@ -128,27 +151,6 @@ th {
} }
// Table cell sizing
//
// Reset default table behavior
table col[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-column;
}
table {
td,
th {
&[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-cell;
}
}
}
// Table backgrounds // Table backgrounds
// //
// Exact selectors below required to override `.table-striped` and prevent // Exact selectors below required to override `.table-striped` and prevent
@ -169,12 +171,12 @@ table {
// will display normally. // will display normally.
.table-responsive { .table-responsive {
min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
overflow-x: auto; overflow-x: auto;
min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
@media screen and (max-width: @screen-xs-max) { @media screen and (max-width: @screen-xs-max) {
width: 100%; width: 100%;
margin-bottom: (@line-height-computed * 0.75);
margin-bottom: (@line-height-computed * .75);
overflow-y: hidden; overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar; -ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid @table-border-color; border: 1px solid @table-border-color;


+ 25
- 19
stuff/bootstrap/theme.less View File

@ -1,7 +1,9 @@
// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors
/*! /*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Bootstrap v3.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)
*/ */
// //
@ -23,14 +25,14 @@
.btn-info, .btn-info,
.btn-warning, .btn-warning,
.btn-danger { .btn-danger {
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
@shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
.box-shadow(@shadow); .box-shadow(@shadow);
// Reset the shadow // Reset the shadow
&:active, &:active,
&.active { &.active {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
.box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));
} }
&.disabled, &.disabled,
@ -88,7 +90,11 @@
} }
// Apply the mixin to the buttons // Apply the mixin to the buttons
.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
.btn-default {
.btn-styles(@btn-default-bg);
text-shadow: 0 1px 0 #fff;
border-color: #ccc;
}
.btn-primary { .btn-styles(@btn-primary-bg); } .btn-primary { .btn-styles(@btn-primary-bg); }
.btn-success { .btn-styles(@btn-success-bg); } .btn-success { .btn-styles(@btn-success-bg); }
.btn-info { .btn-styles(@btn-info-bg); } .btn-info { .btn-styles(@btn-info-bg); }
@ -102,7 +108,7 @@
.thumbnail, .thumbnail,
.img-thumbnail { .img-thumbnail {
.box-shadow(0 1px 2px rgba(0,0,0,.075));
.box-shadow(0 1px 2px rgba(0, 0, 0, .075));
} }
@ -132,18 +138,18 @@
#gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg); #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
border-radius: @navbar-border-radius; border-radius: @navbar-border-radius;
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
@shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
.box-shadow(@shadow); .box-shadow(@shadow);
.navbar-nav > .open > a, .navbar-nav > .open > a,
.navbar-nav > .active > a { .navbar-nav > .active > a {
#gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%)); #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
.box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));
} }
} }
.navbar-brand, .navbar-brand,
.navbar-nav > li > a { .navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255,255,255,.25);
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
} }
// Inverted navbar // Inverted navbar
@ -154,12 +160,12 @@
.navbar-nav > .open > a, .navbar-nav > .open > a,
.navbar-nav > .active > a { .navbar-nav > .active > a {
#gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
.box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));
} }
.navbar-brand, .navbar-brand,
.navbar-nav > li > a { .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
} }
} }
@ -189,8 +195,8 @@
// Common styles // Common styles
.alert { .alert {
text-shadow: 0 1px 0 rgba(255,255,255,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
@shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
.box-shadow(@shadow); .box-shadow(@shadow);
} }
@ -213,7 +219,7 @@
// Give the progress background some depth // Give the progress background some depth
.progress { .progress {
#gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
#gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg);
} }
// Mixin for generating new styles // Mixin for generating new styles
@ -241,7 +247,7 @@
.list-group { .list-group {
border-radius: @border-radius-base; border-radius: @border-radius-base;
.box-shadow(0 1px 2px rgba(0,0,0,.075));
.box-shadow(0 1px 2px rgba(0, 0, 0, .075));
} }
.list-group-item.active, .list-group-item.active,
.list-group-item.active:hover, .list-group-item.active:hover,
@ -262,7 +268,7 @@
// Common styles // Common styles
.panel { .panel {
.box-shadow(0 1px 2px rgba(0,0,0,.05));
.box-shadow(0 1px 2px rgba(0, 0, 0, .05));
} }
// Mixin for generating new styles // Mixin for generating new styles
@ -286,6 +292,6 @@
.well { .well {
#gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg); #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
border-color: darken(@well-bg, 10%); border-color: darken(@well-bg, 10%);
@shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
@shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
.box-shadow(@shadow); .box-shadow(@shadow);
} }

+ 3
- 1
stuff/bootstrap/thumbnails.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-no-qualifying-type
// //
// Thumbnails // Thumbnails
// -------------------------------------------------- // --------------------------------------------------
@ -17,8 +19,8 @@
> img, > img,
a > img { a > img {
&:extend(.img-responsive); &:extend(.img-responsive);
margin-left: auto;
margin-right: auto; margin-right: auto;
margin-left: auto;
} }
// Add a hover state for linked versions only // Add a hover state for linked versions only


+ 38
- 27
stuff/bootstrap/tooltip.less View File

@ -15,33 +15,25 @@
.opacity(0); .opacity(0);
&.in { .opacity(@tooltip-opacity); }
&.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
&.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
&.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
&.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
}
// Wrapper for the tooltip content
.tooltip-inner {
max-width: @tooltip-max-width;
padding: 3px 8px;
color: @tooltip-color;
text-align: center;
background-color: @tooltip-bg;
border-radius: @border-radius-base;
}
&.in { .opacity(@tooltip-opacity); }
&.top {
padding: @tooltip-arrow-width 0;
margin-top: -3px;
}
&.right {
padding: 0 @tooltip-arrow-width;
margin-left: 3px;
}
&.bottom {
padding: @tooltip-arrow-width 0;
margin-top: 3px;
}
&.left {
padding: 0 @tooltip-arrow-width;
margin-left: -3px;
}
// Arrows
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
.tooltip {
// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
&.top .tooltip-arrow { &.top .tooltip-arrow {
bottom: 0; bottom: 0;
left: 50%; left: 50%;
@ -50,8 +42,8 @@
border-top-color: @tooltip-arrow-color; border-top-color: @tooltip-arrow-color;
} }
&.top-left .tooltip-arrow { &.top-left .tooltip-arrow {
bottom: 0;
right: @tooltip-arrow-width; right: @tooltip-arrow-width;
bottom: 0;
margin-bottom: -@tooltip-arrow-width; margin-bottom: -@tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color; border-top-color: @tooltip-arrow-color;
@ -99,3 +91,22 @@
border-bottom-color: @tooltip-arrow-color; border-bottom-color: @tooltip-arrow-color;
} }
} }
// Wrapper for the tooltip content
.tooltip-inner {
max-width: @tooltip-max-width;
padding: 3px 8px;
color: @tooltip-color;
text-align: center;
background-color: @tooltip-bg;
border-radius: @border-radius-base;
}
// Arrows
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}

+ 12
- 10
stuff/bootstrap/type.less View File

@ -1,3 +1,5 @@
// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type
// //
// Typography // Typography
// -------------------------------------------------- // --------------------------------------------------
@ -15,7 +17,7 @@ h1, h2, h3, h4, h5, h6,
small, small,
.small { .small {
font-weight: normal;
font-weight: 400;
line-height: 1; line-height: 1;
color: @headings-small-color; color: @headings-small-color;
} }
@ -82,8 +84,8 @@ small,
mark, mark,
.mark { .mark {
background-color: @state-warning-bg;
padding: .2em; padding: .2em;
background-color: @state-warning-bg;
} }
// Alignment // Alignment
@ -180,8 +182,8 @@ ol {
> li { > li {
display: inline-block; display: inline-block;
padding-left: 5px;
padding-right: 5px; padding-right: 5px;
padding-left: 5px;
} }
} }
@ -195,7 +197,7 @@ dd {
line-height: @line-height-base; line-height: @line-height-base;
} }
dt { dt {
font-weight: bold;
font-weight: 700;
} }
dd { dd {
margin-left: 0; // Undo browser default margin-left: 0; // Undo browser default
@ -230,12 +232,12 @@ dd {
// ------------------------- // -------------------------
// Abbreviations and acronyms // Abbreviations and acronyms
abbr[title],
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
abbr[title],
abbr[data-original-title] { abbr[data-original-title] {
cursor: help; cursor: help;
border-bottom: 1px dotted @abbr-border-color;
} }
.initialism { .initialism {
font-size: 90%; font-size: 90%;
.text-uppercase(); .text-uppercase();
@ -267,7 +269,7 @@ blockquote {
color: @blockquote-small-color; color: @blockquote-small-color;
&:before { &:before {
content: '\2014 \00A0'; // em dash, nbsp
content: "\2014 \00A0"; // em dash, nbsp
} }
} }
} }
@ -279,17 +281,17 @@ blockquote {
blockquote.pull-right { blockquote.pull-right {
padding-right: 15px; padding-right: 15px;
padding-left: 0; padding-left: 0;
text-align: right;
border-right: 5px solid @blockquote-border-color; border-right: 5px solid @blockquote-border-color;
border-left: 0; border-left: 0;
text-align: right;
// Account for citation // Account for citation
footer, footer,
small, small,
.small { .small {
&:before { content: ''; }
&:before { content: ""; }
&:after { &:after {
content: '\00A0 \2014'; // nbsp, em dash
content: "\00A0 \2014"; // nbsp, em dash
} }
} }
} }


+ 2
- 0
stuff/bootstrap/utilities.less View File

@ -1,3 +1,5 @@
// stylelint-disable declaration-no-important
// //
// Utility classes // Utility classes
// -------------------------------------------------- // --------------------------------------------------


+ 2
- 0
stuff/bootstrap/variables.less View File

@ -1,3 +1,5 @@
// stylelint-disable value-keyword-case
// //
// Variables // Variables
// -------------------------------------------------- // --------------------------------------------------


+ 2
- 2
stuff/bootstrap/wells.less View File

@ -11,10 +11,10 @@
background-color: @well-bg; background-color: @well-bg;
border: 1px solid @well-border; border: 1px solid @well-border;
border-radius: @border-radius-base; border-radius: @border-radius-base;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
.box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));
blockquote { blockquote {
border-color: #ddd; border-color: #ddd;
border-color: rgba(0,0,0,.15);
border-color: rgba(0, 0, 0, .15);
} }
} }


Loading…
Cancel
Save