bootstrap 4.6.2.1 → 5.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +61 -0
- data/CHANGELOG.md +7 -2
- data/Gemfile +1 -0
- data/README.md +33 -15
- data/Rakefile +1 -2
- data/assets/javascripts/bootstrap/alert.js +50 -147
- data/assets/javascripts/bootstrap/base-component.js +83 -0
- data/assets/javascripts/bootstrap/button.js +40 -190
- data/assets/javascripts/bootstrap/carousel.js +282 -537
- data/assets/javascripts/bootstrap/collapse.js +166 -314
- data/assets/javascripts/bootstrap/dom/data.js +62 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
- data/assets/javascripts/bootstrap/dropdown.js +297 -455
- data/assets/javascripts/bootstrap/modal.js +223 -566
- data/assets/javascripts/bootstrap/offcanvas.js +245 -0
- data/assets/javascripts/bootstrap/popover.js +59 -208
- data/assets/javascripts/bootstrap/scrollspy.js +213 -276
- data/assets/javascripts/bootstrap/tab.js +222 -200
- data/assets/javascripts/bootstrap/toast.js +137 -206
- data/assets/javascripts/bootstrap/tooltip.js +403 -747
- data/assets/javascripts/bootstrap/util/backdrop.js +138 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
- data/assets/javascripts/bootstrap/util/config.js +67 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +112 -0
- data/assets/javascripts/bootstrap/util/index.js +280 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +113 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
- data/assets/javascripts/bootstrap/util/swipe.js +134 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +21 -5
- data/assets/javascripts/bootstrap.js +3625 -3488
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +53 -21
- data/assets/stylesheets/_bootstrap-reboot.scss +5 -7
- data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
- data/assets/stylesheets/_bootstrap.scss +21 -13
- data/assets/stylesheets/bootstrap/_accordion.scss +153 -0
- data/assets/stylesheets/bootstrap/_alert.scss +32 -16
- data/assets/stylesheets/bootstrap/_badge.scss +15 -31
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -24
- data/assets/stylesheets/bootstrap/_button-group.scss +32 -48
- data/assets/stylesheets/bootstrap/_buttons.scss +145 -71
- data/assets/stylesheets/bootstrap/_card.scss +67 -115
- data/assets/stylesheets/bootstrap/_carousel.scss +63 -37
- data/assets/stylesheets/bootstrap/_close.scss +53 -27
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +129 -71
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +135 -23
- data/assets/stylesheets/bootstrap/_grid.scss +18 -52
- data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +93 -48
- data/assets/stylesheets/bootstrap/_maps.scss +174 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +10 -15
- data/assets/stylesheets/bootstrap/_modal.scss +112 -112
- data/assets/stylesheets/bootstrap/_nav.scss +100 -28
- data/assets/stylesheets/bootstrap/_navbar.scss +130 -173
- data/assets/stylesheets/bootstrap/_offcanvas.scss +147 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +99 -73
- data/assets/stylesheets/bootstrap/_progress.scss +35 -14
- data/assets/stylesheets/bootstrap/_reboot.scss +319 -192
- data/assets/stylesheets/bootstrap/_root.scss +177 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +43 -23
- data/assets/stylesheets/bootstrap/_tables.scss +101 -115
- data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
- data/assets/stylesheets/bootstrap/_tooltip.scss +67 -63
- data/assets/stylesheets/bootstrap/_transitions.scss +3 -2
- data/assets/stylesheets/bootstrap/_type.scss +40 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +806 -18
- data/assets/stylesheets/bootstrap/_variables-dark.scss +102 -0
- data/assets/stylesheets/bootstrap/_variables.scss +1210 -606
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +97 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +189 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -6
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +34 -27
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +64 -96
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +118 -36
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +211 -91
- data/bootstrap.gemspec +6 -6
- data/lib/bootstrap/engine.rb +0 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +17 -5
- data/tasks/updater/network.rb +2 -2
- data/tasks/updater/scss.rb +2 -2
- data/tasks/updater.rb +2 -2
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -5
- data/test/dummy_rails/public/favicon.ico +0 -0
- data/test/gemfiles/rails_4_2.gemfile +2 -1
- data/test/gemfiles/rails_5_0.gemfile +1 -2
- data/test/gemfiles/rails_5_1.gemfile +1 -2
- data/test/gemfiles/rails_5_2.gemfile +7 -0
- data/test/gemfiles/rails_6_0.gemfile +1 -1
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- data/test/gemfiles/rails_7_0_dartsass.gemfile +0 -1
- data/test/gemfiles/rails_7_0_sassc.gemfile +0 -1
- data/test/rails_test.rb +0 -5
- data/test/test_helper.rb +3 -2
- metadata +92 -86
- data/.travis.yml +0 -31
- data/assets/javascripts/bootstrap/util.js +0 -189
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -211
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -132
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
- /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -0,0 +1,153 @@
|
|
1
|
+
//
|
2
|
+
// Base styles
|
3
|
+
//
|
4
|
+
|
5
|
+
.accordion {
|
6
|
+
// scss-docs-start accordion-css-vars
|
7
|
+
--#{$prefix}accordion-color: #{$accordion-color};
|
8
|
+
--#{$prefix}accordion-bg: #{$accordion-bg};
|
9
|
+
--#{$prefix}accordion-transition: #{$accordion-transition};
|
10
|
+
--#{$prefix}accordion-border-color: #{$accordion-border-color};
|
11
|
+
--#{$prefix}accordion-border-width: #{$accordion-border-width};
|
12
|
+
--#{$prefix}accordion-border-radius: #{$accordion-border-radius};
|
13
|
+
--#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
|
14
|
+
--#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
|
15
|
+
--#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
|
16
|
+
--#{$prefix}accordion-btn-color: #{$accordion-button-color};
|
17
|
+
--#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
|
18
|
+
--#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
|
19
|
+
--#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
|
20
|
+
--#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
|
21
|
+
--#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
|
22
|
+
--#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
|
23
|
+
--#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
|
24
|
+
--#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
|
25
|
+
--#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
|
26
|
+
--#{$prefix}accordion-active-color: #{$accordion-button-active-color};
|
27
|
+
--#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
|
28
|
+
// scss-docs-end accordion-css-vars
|
29
|
+
}
|
30
|
+
|
31
|
+
.accordion-button {
|
32
|
+
position: relative;
|
33
|
+
display: flex;
|
34
|
+
align-items: center;
|
35
|
+
width: 100%;
|
36
|
+
padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
|
37
|
+
@include font-size($font-size-base);
|
38
|
+
color: var(--#{$prefix}accordion-btn-color);
|
39
|
+
text-align: left; // Reset button style
|
40
|
+
background-color: var(--#{$prefix}accordion-btn-bg);
|
41
|
+
border: 0;
|
42
|
+
@include border-radius(0);
|
43
|
+
overflow-anchor: none;
|
44
|
+
@include transition(var(--#{$prefix}accordion-transition));
|
45
|
+
|
46
|
+
&:not(.collapsed) {
|
47
|
+
color: var(--#{$prefix}accordion-active-color);
|
48
|
+
background-color: var(--#{$prefix}accordion-active-bg);
|
49
|
+
box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
|
50
|
+
|
51
|
+
&::after {
|
52
|
+
background-image: var(--#{$prefix}accordion-btn-active-icon);
|
53
|
+
transform: var(--#{$prefix}accordion-btn-icon-transform);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
// Accordion icon
|
58
|
+
&::after {
|
59
|
+
flex-shrink: 0;
|
60
|
+
width: var(--#{$prefix}accordion-btn-icon-width);
|
61
|
+
height: var(--#{$prefix}accordion-btn-icon-width);
|
62
|
+
margin-left: auto;
|
63
|
+
content: "";
|
64
|
+
background-image: var(--#{$prefix}accordion-btn-icon);
|
65
|
+
background-repeat: no-repeat;
|
66
|
+
background-size: var(--#{$prefix}accordion-btn-icon-width);
|
67
|
+
@include transition(var(--#{$prefix}accordion-btn-icon-transition));
|
68
|
+
}
|
69
|
+
|
70
|
+
&:hover {
|
71
|
+
z-index: 2;
|
72
|
+
}
|
73
|
+
|
74
|
+
&:focus {
|
75
|
+
z-index: 3;
|
76
|
+
outline: 0;
|
77
|
+
box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
.accordion-header {
|
82
|
+
margin-bottom: 0;
|
83
|
+
}
|
84
|
+
|
85
|
+
.accordion-item {
|
86
|
+
color: var(--#{$prefix}accordion-color);
|
87
|
+
background-color: var(--#{$prefix}accordion-bg);
|
88
|
+
border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
|
89
|
+
|
90
|
+
&:first-of-type {
|
91
|
+
@include border-top-radius(var(--#{$prefix}accordion-border-radius));
|
92
|
+
|
93
|
+
> .accordion-header .accordion-button {
|
94
|
+
@include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
&:not(:first-of-type) {
|
99
|
+
border-top: 0;
|
100
|
+
}
|
101
|
+
|
102
|
+
// Only set a border-radius on the last item if the accordion is collapsed
|
103
|
+
&:last-of-type {
|
104
|
+
@include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
|
105
|
+
|
106
|
+
> .accordion-header .accordion-button {
|
107
|
+
&.collapsed {
|
108
|
+
@include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
> .accordion-collapse {
|
113
|
+
@include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
.accordion-body {
|
119
|
+
padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
// Flush accordion items
|
124
|
+
//
|
125
|
+
// Remove borders and border-radius to keep accordion items edge-to-edge.
|
126
|
+
|
127
|
+
.accordion-flush {
|
128
|
+
> .accordion-item {
|
129
|
+
border-right: 0;
|
130
|
+
border-left: 0;
|
131
|
+
@include border-radius(0);
|
132
|
+
|
133
|
+
&:first-child { border-top: 0; }
|
134
|
+
&:last-child { border-bottom: 0; }
|
135
|
+
|
136
|
+
// stylelint-disable selector-max-class
|
137
|
+
> .accordion-collapse,
|
138
|
+
> .accordion-header .accordion-button,
|
139
|
+
> .accordion-header .accordion-button.collapsed {
|
140
|
+
@include border-radius(0);
|
141
|
+
}
|
142
|
+
// stylelint-enable selector-max-class
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
@if $enable-dark-mode {
|
147
|
+
@include color-mode(dark) {
|
148
|
+
.accordion-button::after {
|
149
|
+
--#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)};
|
150
|
+
--#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)};
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
@@ -3,11 +3,25 @@
|
|
3
3
|
//
|
4
4
|
|
5
5
|
.alert {
|
6
|
+
// scss-docs-start alert-css-vars
|
7
|
+
--#{$prefix}alert-bg: transparent;
|
8
|
+
--#{$prefix}alert-padding-x: #{$alert-padding-x};
|
9
|
+
--#{$prefix}alert-padding-y: #{$alert-padding-y};
|
10
|
+
--#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
|
11
|
+
--#{$prefix}alert-color: inherit;
|
12
|
+
--#{$prefix}alert-border-color: transparent;
|
13
|
+
--#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
|
14
|
+
--#{$prefix}alert-border-radius: #{$alert-border-radius};
|
15
|
+
--#{$prefix}alert-link-color: inherit;
|
16
|
+
// scss-docs-end alert-css-vars
|
17
|
+
|
6
18
|
position: relative;
|
7
|
-
padding: $alert-padding-y $alert-padding-x;
|
8
|
-
margin-bottom: $alert-margin-bottom;
|
9
|
-
|
10
|
-
|
19
|
+
padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
|
20
|
+
margin-bottom: var(--#{$prefix}alert-margin-bottom);
|
21
|
+
color: var(--#{$prefix}alert-color);
|
22
|
+
background-color: var(--#{$prefix}alert-bg);
|
23
|
+
border: var(--#{$prefix}alert-border);
|
24
|
+
@include border-radius(var(--#{$prefix}alert-border-radius));
|
11
25
|
}
|
12
26
|
|
13
27
|
// Headings for larger alerts
|
@@ -19,6 +33,7 @@
|
|
19
33
|
// Provide class for links that match alerts
|
20
34
|
.alert-link {
|
21
35
|
font-weight: $alert-link-font-weight;
|
36
|
+
color: var(--#{$prefix}alert-link-color);
|
22
37
|
}
|
23
38
|
|
24
39
|
|
@@ -27,26 +42,27 @@
|
|
27
42
|
// Expand the right padding and account for the close button's positioning.
|
28
43
|
|
29
44
|
.alert-dismissible {
|
30
|
-
padding-right: $
|
45
|
+
padding-right: $alert-dismissible-padding-r;
|
31
46
|
|
32
47
|
// Adjust close link position
|
33
|
-
.close {
|
48
|
+
.btn-close {
|
34
49
|
position: absolute;
|
35
50
|
top: 0;
|
36
51
|
right: 0;
|
37
|
-
z-index:
|
38
|
-
padding: $alert-padding-y $alert-padding-x;
|
39
|
-
color: inherit;
|
52
|
+
z-index: $stretched-link-z-index + 1;
|
53
|
+
padding: $alert-padding-y * 1.25 $alert-padding-x;
|
40
54
|
}
|
41
55
|
}
|
42
56
|
|
43
57
|
|
44
|
-
//
|
45
|
-
//
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
58
|
+
// scss-docs-start alert-modifiers
|
59
|
+
// Generate contextual modifier classes for colorizing the alert
|
60
|
+
@each $state in map-keys($theme-colors) {
|
61
|
+
.alert-#{$state} {
|
62
|
+
--#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis);
|
63
|
+
--#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle);
|
64
|
+
--#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle);
|
65
|
+
--#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis);
|
51
66
|
}
|
52
67
|
}
|
68
|
+
// scss-docs-end alert-modifiers
|
@@ -4,22 +4,26 @@
|
|
4
4
|
// `background-color`.
|
5
5
|
|
6
6
|
.badge {
|
7
|
+
// scss-docs-start badge-css-vars
|
8
|
+
--#{$prefix}badge-padding-x: #{$badge-padding-x};
|
9
|
+
--#{$prefix}badge-padding-y: #{$badge-padding-y};
|
10
|
+
@include rfs($badge-font-size, --#{$prefix}badge-font-size);
|
11
|
+
--#{$prefix}badge-font-weight: #{$badge-font-weight};
|
12
|
+
--#{$prefix}badge-color: #{$badge-color};
|
13
|
+
--#{$prefix}badge-border-radius: #{$badge-border-radius};
|
14
|
+
// scss-docs-end badge-css-vars
|
15
|
+
|
7
16
|
display: inline-block;
|
8
|
-
padding: $badge-padding-y $badge-padding-x;
|
9
|
-
@include font-size($badge-font-size);
|
10
|
-
font-weight: $badge-font-weight;
|
17
|
+
padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
|
18
|
+
@include font-size(var(--#{$prefix}badge-font-size));
|
19
|
+
font-weight: var(--#{$prefix}badge-font-weight);
|
11
20
|
line-height: 1;
|
21
|
+
color: var(--#{$prefix}badge-color);
|
12
22
|
text-align: center;
|
13
23
|
white-space: nowrap;
|
14
24
|
vertical-align: baseline;
|
15
|
-
@include border-radius($badge-border-radius);
|
16
|
-
@include
|
17
|
-
|
18
|
-
@at-root a#{&} {
|
19
|
-
@include hover-focus() {
|
20
|
-
text-decoration: none;
|
21
|
-
}
|
22
|
-
}
|
25
|
+
@include border-radius(var(--#{$prefix}badge-border-radius));
|
26
|
+
@include gradient-bg();
|
23
27
|
|
24
28
|
// Empty badges collapse automatically
|
25
29
|
&:empty {
|
@@ -32,23 +36,3 @@
|
|
32
36
|
position: relative;
|
33
37
|
top: -1px;
|
34
38
|
}
|
35
|
-
|
36
|
-
// Pill badges
|
37
|
-
//
|
38
|
-
// Make them extra rounded with a modifier to replace v3's badges.
|
39
|
-
|
40
|
-
.badge-pill {
|
41
|
-
padding-right: $badge-pill-padding-x;
|
42
|
-
padding-left: $badge-pill-padding-x;
|
43
|
-
@include border-radius($badge-pill-border-radius);
|
44
|
-
}
|
45
|
-
|
46
|
-
// Colors
|
47
|
-
//
|
48
|
-
// Contextual variations (linked badges get darker on :hover).
|
49
|
-
|
50
|
-
@each $color, $value in $theme-colors {
|
51
|
-
.badge-#{$color} {
|
52
|
-
@include badge-variant($value);
|
53
|
-
}
|
54
|
-
}
|
@@ -1,42 +1,40 @@
|
|
1
1
|
.breadcrumb {
|
2
|
+
// scss-docs-start breadcrumb-css-vars
|
3
|
+
--#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
|
4
|
+
--#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
|
5
|
+
--#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
|
6
|
+
@include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
|
7
|
+
--#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
|
8
|
+
--#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
|
9
|
+
--#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
|
10
|
+
--#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
|
11
|
+
--#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
|
12
|
+
// scss-docs-end breadcrumb-css-vars
|
13
|
+
|
2
14
|
display: flex;
|
3
15
|
flex-wrap: wrap;
|
4
|
-
padding: $breadcrumb-padding-y $breadcrumb-padding-x;
|
5
|
-
margin-bottom: $breadcrumb-margin-bottom;
|
6
|
-
@include font-size($breadcrumb-font-size);
|
16
|
+
padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
|
17
|
+
margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
|
18
|
+
@include font-size(var(--#{$prefix}breadcrumb-font-size));
|
7
19
|
list-style: none;
|
8
|
-
background-color: $breadcrumb-bg;
|
9
|
-
@include border-radius($breadcrumb-border-radius);
|
20
|
+
background-color: var(--#{$prefix}breadcrumb-bg);
|
21
|
+
@include border-radius(var(--#{$prefix}breadcrumb-border-radius));
|
10
22
|
}
|
11
23
|
|
12
24
|
.breadcrumb-item {
|
13
25
|
// The separator between breadcrumbs (by default, a forward-slash: "/")
|
14
26
|
+ .breadcrumb-item {
|
15
|
-
padding-left: $breadcrumb-item-padding;
|
27
|
+
padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
|
16
28
|
|
17
29
|
&::before {
|
18
30
|
float: left; // Suppress inline spacings and underlining of the separator
|
19
|
-
padding-right: $breadcrumb-item-padding;
|
20
|
-
color: $breadcrumb-divider-color;
|
21
|
-
content: escape-svg($breadcrumb-divider);
|
31
|
+
padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
|
32
|
+
color: var(--#{$prefix}breadcrumb-divider-color);
|
33
|
+
content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
|
22
34
|
}
|
23
35
|
}
|
24
36
|
|
25
|
-
// IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
|
26
|
-
// without `<ul>`s. The `::before` pseudo-element generates an element
|
27
|
-
// *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
|
28
|
-
//
|
29
|
-
// To trick IE into suppressing the underline, we give the pseudo-element an
|
30
|
-
// underline and then immediately remove it.
|
31
|
-
+ .breadcrumb-item:hover::before {
|
32
|
-
text-decoration: underline;
|
33
|
-
}
|
34
|
-
// stylelint-disable-next-line no-duplicate-selectors
|
35
|
-
+ .breadcrumb-item:hover::before {
|
36
|
-
text-decoration: none;
|
37
|
-
}
|
38
|
-
|
39
37
|
&.active {
|
40
|
-
color: $breadcrumb-active-color;
|
38
|
+
color: var(--#{$prefix}breadcrumb-item-active-color);
|
41
39
|
}
|
42
40
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
// stylelint-disable selector-no-qualifying-type
|
2
|
-
|
3
1
|
// Make the div behave like a button
|
4
2
|
.btn-group,
|
5
3
|
.btn-group-vertical {
|
@@ -10,17 +8,17 @@
|
|
10
8
|
> .btn {
|
11
9
|
position: relative;
|
12
10
|
flex: 1 1 auto;
|
11
|
+
}
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
}
|
13
|
+
// Bring the hover, focused, and "active" buttons to the front to overlay
|
14
|
+
// the borders properly
|
15
|
+
> .btn-check:checked + .btn,
|
16
|
+
> .btn-check:focus + .btn,
|
17
|
+
> .btn:hover,
|
18
|
+
> .btn:focus,
|
19
|
+
> .btn:active,
|
20
|
+
> .btn.active {
|
21
|
+
z-index: 1;
|
24
22
|
}
|
25
23
|
}
|
26
24
|
|
@@ -36,21 +34,29 @@
|
|
36
34
|
}
|
37
35
|
|
38
36
|
.btn-group {
|
37
|
+
@include border-radius($btn-border-radius);
|
38
|
+
|
39
39
|
// Prevent double borders when buttons are next to each other
|
40
|
-
>
|
40
|
+
> :not(.btn-check:first-child) + .btn,
|
41
41
|
> .btn-group:not(:first-child) {
|
42
|
-
margin-left:
|
42
|
+
margin-left: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
|
43
43
|
}
|
44
44
|
|
45
45
|
// Reset rounded corners
|
46
46
|
> .btn:not(:last-child):not(.dropdown-toggle),
|
47
|
+
> .btn.dropdown-toggle-split:first-child,
|
47
48
|
> .btn-group:not(:last-child) > .btn {
|
48
|
-
@include border-
|
49
|
+
@include border-end-radius(0);
|
49
50
|
}
|
50
51
|
|
51
|
-
|
52
|
+
// The left radius should be 0 if the button is:
|
53
|
+
// - the "third or more" child
|
54
|
+
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
|
55
|
+
// - part of a btn-group which isn't the first child
|
56
|
+
> .btn:nth-child(n + 3),
|
57
|
+
> :not(.btn-check) + .btn,
|
52
58
|
> .btn-group:not(:first-child) > .btn {
|
53
|
-
@include border-
|
59
|
+
@include border-start-radius(0);
|
54
60
|
}
|
55
61
|
}
|
56
62
|
|
@@ -72,11 +78,11 @@
|
|
72
78
|
|
73
79
|
&::after,
|
74
80
|
.dropup &::after,
|
75
|
-
.
|
81
|
+
.dropend &::after {
|
76
82
|
margin-left: 0;
|
77
83
|
}
|
78
84
|
|
79
|
-
.
|
85
|
+
.dropstart &::before {
|
80
86
|
margin-right: 0;
|
81
87
|
}
|
82
88
|
}
|
@@ -120,7 +126,7 @@
|
|
120
126
|
|
121
127
|
> .btn:not(:first-child),
|
122
128
|
> .btn-group:not(:first-child) {
|
123
|
-
margin-top:
|
129
|
+
margin-top: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
|
124
130
|
}
|
125
131
|
|
126
132
|
// Reset rounded corners
|
@@ -129,35 +135,13 @@
|
|
129
135
|
@include border-bottom-radius(0);
|
130
136
|
}
|
131
137
|
|
132
|
-
|
138
|
+
// The top radius should be 0 if the button is:
|
139
|
+
// - the "third or more" child
|
140
|
+
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
|
141
|
+
// - part of a btn-group which isn't the first child
|
142
|
+
> .btn:nth-child(n + 3),
|
143
|
+
> :not(.btn-check) + .btn,
|
133
144
|
> .btn-group:not(:first-child) > .btn {
|
134
145
|
@include border-top-radius(0);
|
135
146
|
}
|
136
147
|
}
|
137
|
-
|
138
|
-
|
139
|
-
// Checkbox and radio options
|
140
|
-
//
|
141
|
-
// In order to support the browser's form validation feedback, powered by the
|
142
|
-
// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
|
143
|
-
// `display: none;` or `visibility: hidden;` as that also hides the popover.
|
144
|
-
// Simply visually hiding the inputs via `opacity` would leave them clickable in
|
145
|
-
// certain cases which is prevented by using `clip` and `pointer-events`.
|
146
|
-
// This way, we ensure a DOM element is visible to position the popover from.
|
147
|
-
//
|
148
|
-
// See https://github.com/twbs/bootstrap/pull/12794 and
|
149
|
-
// https://github.com/twbs/bootstrap/pull/14559 for more information.
|
150
|
-
|
151
|
-
.btn-group-toggle {
|
152
|
-
> .btn,
|
153
|
-
> .btn-group > .btn {
|
154
|
-
margin-bottom: 0; // Override default `<label>` value
|
155
|
-
|
156
|
-
input[type="radio"],
|
157
|
-
input[type="checkbox"] {
|
158
|
-
position: absolute;
|
159
|
-
clip: rect(0, 0, 0, 0);
|
160
|
-
pointer-events: none;
|
161
|
-
}
|
162
|
-
}
|
163
|
-
}
|