bootstrap-scss 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/bootstrap-scss.gemspec +28 -25
  3. data/lib/bootstrap/scss/engine.rb +11 -0
  4. data/lib/bootstrap/scss/version.rb +4 -1
  5. data/lib/bootstrap/scss.rb +53 -3
  6. data/vendor/assets/bootstrap/scss/_accordion.scss +118 -0
  7. data/vendor/assets/bootstrap/scss/_alert.scss +57 -0
  8. data/vendor/assets/bootstrap/scss/_badge.scss +29 -0
  9. data/vendor/assets/bootstrap/scss/_breadcrumb.scss +28 -0
  10. data/vendor/assets/bootstrap/scss/_button-group.scss +139 -0
  11. data/vendor/assets/bootstrap/scss/_buttons.scss +111 -0
  12. data/vendor/assets/bootstrap/scss/_card.scss +216 -0
  13. data/vendor/assets/bootstrap/scss/_carousel.scss +229 -0
  14. data/vendor/assets/bootstrap/scss/_close.scss +40 -0
  15. data/vendor/assets/bootstrap/scss/_containers.scss +41 -0
  16. data/vendor/assets/bootstrap/scss/_dropdown.scss +240 -0
  17. data/vendor/assets/bootstrap/scss/_forms.scss +9 -0
  18. data/vendor/assets/bootstrap/scss/_functions.scss +302 -0
  19. data/vendor/assets/bootstrap/scss/_grid.scss +33 -0
  20. data/vendor/assets/bootstrap/scss/_helpers.scss +9 -0
  21. data/vendor/assets/bootstrap/scss/_images.scss +42 -0
  22. data/vendor/assets/bootstrap/scss/_list-group.scss +174 -0
  23. data/vendor/assets/bootstrap/scss/_mixins.scss +43 -0
  24. data/vendor/assets/bootstrap/scss/_modal.scss +209 -0
  25. data/vendor/assets/bootstrap/scss/_nav.scss +139 -0
  26. data/vendor/assets/bootstrap/scss/_navbar.scss +335 -0
  27. data/vendor/assets/bootstrap/scss/_offcanvas.scss +83 -0
  28. data/vendor/assets/bootstrap/scss/_pagination.scss +64 -0
  29. data/vendor/assets/bootstrap/scss/_placeholders.scss +51 -0
  30. data/vendor/assets/bootstrap/scss/_popover.scss +158 -0
  31. data/vendor/assets/bootstrap/scss/_progress.scss +48 -0
  32. data/vendor/assets/bootstrap/scss/_reboot.scss +625 -0
  33. data/vendor/assets/bootstrap/scss/_root.scss +54 -0
  34. data/vendor/assets/bootstrap/scss/_spinners.scss +69 -0
  35. data/vendor/assets/bootstrap/scss/_tables.scss +155 -0
  36. data/vendor/assets/bootstrap/scss/_toasts.scss +51 -0
  37. data/vendor/assets/bootstrap/scss/_tooltip.scss +115 -0
  38. data/vendor/assets/bootstrap/scss/_transitions.scss +27 -0
  39. data/vendor/assets/bootstrap/scss/_type.scss +104 -0
  40. data/vendor/assets/bootstrap/scss/_utilities.scss +630 -0
  41. data/vendor/assets/bootstrap/scss/_variables.scss +1641 -0
  42. data/vendor/assets/bootstrap/scss/bootstrap-grid.scss +67 -0
  43. data/vendor/assets/bootstrap/scss/bootstrap-reboot.scss +13 -0
  44. data/vendor/assets/bootstrap/scss/bootstrap-utilities.scss +18 -0
  45. data/vendor/assets/bootstrap/scss/bootstrap.scss +53 -0
  46. data/vendor/assets/bootstrap/scss/forms/_floating-labels.scss +63 -0
  47. data/vendor/assets/bootstrap/scss/forms/_form-check.scss +152 -0
  48. data/vendor/assets/bootstrap/scss/forms/_form-control.scss +219 -0
  49. data/vendor/assets/bootstrap/scss/forms/_form-range.scss +91 -0
  50. data/vendor/assets/bootstrap/scss/forms/_form-select.scss +72 -0
  51. data/vendor/assets/bootstrap/scss/forms/_form-text.scss +11 -0
  52. data/vendor/assets/bootstrap/scss/forms/_input-group.scss +121 -0
  53. data/vendor/assets/bootstrap/scss/forms/_labels.scss +36 -0
  54. data/vendor/assets/bootstrap/scss/forms/_validation.scss +12 -0
  55. data/vendor/assets/bootstrap/scss/helpers/_clearfix.scss +3 -0
  56. data/vendor/assets/bootstrap/scss/helpers/_colored-links.scss +12 -0
  57. data/vendor/assets/bootstrap/scss/helpers/_position.scss +30 -0
  58. data/vendor/assets/bootstrap/scss/helpers/_ratio.scss +26 -0
  59. data/vendor/assets/bootstrap/scss/helpers/_stacks.scss +15 -0
  60. data/vendor/assets/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  61. data/vendor/assets/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  62. data/vendor/assets/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  63. data/vendor/assets/bootstrap/scss/helpers/_vr.scss +8 -0
  64. data/vendor/assets/bootstrap/scss/mixins/_alert.scss +11 -0
  65. data/vendor/assets/bootstrap/scss/mixins/_backdrop.scss +14 -0
  66. data/vendor/assets/bootstrap/scss/mixins/_border-radius.scss +78 -0
  67. data/vendor/assets/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  68. data/vendor/assets/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  69. data/vendor/assets/bootstrap/scss/mixins/_buttons.scss +133 -0
  70. data/vendor/assets/bootstrap/scss/mixins/_caret.scss +64 -0
  71. data/vendor/assets/bootstrap/scss/mixins/_clearfix.scss +9 -0
  72. data/vendor/assets/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  73. data/vendor/assets/bootstrap/scss/mixins/_container.scss +9 -0
  74. data/vendor/assets/bootstrap/scss/mixins/_deprecate.scss +10 -0
  75. data/vendor/assets/bootstrap/scss/mixins/_forms.scss +144 -0
  76. data/vendor/assets/bootstrap/scss/mixins/_gradients.scss +47 -0
  77. data/vendor/assets/bootstrap/scss/mixins/_grid.scss +151 -0
  78. data/vendor/assets/bootstrap/scss/mixins/_image.scss +16 -0
  79. data/vendor/assets/bootstrap/scss/mixins/_list-group.scss +24 -0
  80. data/vendor/assets/bootstrap/scss/mixins/_lists.scss +7 -0
  81. data/vendor/assets/bootstrap/scss/mixins/_pagination.scss +31 -0
  82. data/vendor/assets/bootstrap/scss/mixins/_reset-text.scss +17 -0
  83. data/vendor/assets/bootstrap/scss/mixins/_resize.scss +6 -0
  84. data/vendor/assets/bootstrap/scss/mixins/_table-variants.scss +21 -0
  85. data/vendor/assets/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  86. data/vendor/assets/bootstrap/scss/mixins/_transition.scss +26 -0
  87. data/vendor/assets/bootstrap/scss/mixins/_utilities.scss +89 -0
  88. data/vendor/assets/bootstrap/scss/mixins/_visually-hidden.scss +29 -0
  89. data/vendor/assets/bootstrap/scss/utilities/_api.scss +47 -0
  90. data/vendor/assets/bootstrap/scss/vendor/_rfs.scss +354 -0
  91. metadata +105 -20
  92. data/.gitignore +0 -14
  93. data/.rspec +0 -3
  94. data/.travis.yml +0 -7
  95. data/Gemfile +0 -6
  96. data/Rakefile +0 -6
  97. data/bin/console +0 -14
  98. data/bin/setup +0 -8
@@ -0,0 +1,67 @@
1
+ /*!
2
+ * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ */
7
+
8
+ $include-column-box-sizing: true !default;
9
+
10
+ @import "functions";
11
+ @import "variables";
12
+
13
+ @import "mixins/lists";
14
+ @import "mixins/breakpoints";
15
+ @import "mixins/container";
16
+ @import "mixins/grid";
17
+ @import "mixins/utilities";
18
+
19
+ @import "vendor/rfs";
20
+
21
+ @import "root";
22
+
23
+ @import "containers";
24
+ @import "grid";
25
+
26
+ @import "utilities";
27
+ // Only use the utilities we need
28
+ // stylelint-disable-next-line scss/dollar-variable-default
29
+ $utilities: map-get-multiple(
30
+ $utilities,
31
+ (
32
+ "display",
33
+ "order",
34
+ "flex",
35
+ "flex-direction",
36
+ "flex-grow",
37
+ "flex-shrink",
38
+ "flex-wrap",
39
+ "justify-content",
40
+ "align-items",
41
+ "align-content",
42
+ "align-self",
43
+ "margin",
44
+ "margin-x",
45
+ "margin-y",
46
+ "margin-top",
47
+ "margin-end",
48
+ "margin-bottom",
49
+ "margin-start",
50
+ "negative-margin",
51
+ "negative-margin-x",
52
+ "negative-margin-y",
53
+ "negative-margin-top",
54
+ "negative-margin-end",
55
+ "negative-margin-bottom",
56
+ "negative-margin-start",
57
+ "padding",
58
+ "padding-x",
59
+ "padding-y",
60
+ "padding-top",
61
+ "padding-end",
62
+ "padding-bottom",
63
+ "padding-start",
64
+ )
65
+ );
66
+
67
+ @import "utilities/api";
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7
+ */
8
+
9
+ @import "functions";
10
+ @import "variables";
11
+ @import "mixins";
12
+ @import "root";
13
+ @import "reboot";
@@ -0,0 +1,18 @@
1
+ /*!
2
+ * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ */
7
+
8
+ // Configuration
9
+ @import "functions";
10
+ @import "variables";
11
+ @import "mixins";
12
+ @import "utilities";
13
+
14
+ // Helpers
15
+ @import "helpers";
16
+
17
+ // Utilities
18
+ @import "utilities/api";
@@ -0,0 +1,53 @@
1
+ /*!
2
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ */
7
+
8
+ // scss-docs-start import-stack
9
+ // Configuration
10
+ @import "functions";
11
+ @import "variables";
12
+ @import "mixins";
13
+ @import "utilities";
14
+
15
+ // Layout & components
16
+ @import "root";
17
+ @import "reboot";
18
+ @import "type";
19
+ @import "images";
20
+ @import "containers";
21
+ @import "grid";
22
+ @import "tables";
23
+ @import "forms";
24
+ @import "buttons";
25
+ @import "transitions";
26
+ @import "dropdown";
27
+ @import "button-group";
28
+ @import "nav";
29
+ @import "navbar";
30
+ @import "card";
31
+ @import "accordion";
32
+ @import "breadcrumb";
33
+ @import "pagination";
34
+ @import "badge";
35
+ @import "alert";
36
+ @import "progress";
37
+ @import "list-group";
38
+ @import "close";
39
+ @import "toasts";
40
+ @import "modal";
41
+ @import "tooltip";
42
+ @import "popover";
43
+ @import "carousel";
44
+ @import "spinners";
45
+ @import "offcanvas";
46
+ @import "placeholders";
47
+
48
+ // Helpers
49
+ @import "helpers";
50
+
51
+ // Utilities
52
+ @import "utilities/api";
53
+ // scss-docs-end import-stack
@@ -0,0 +1,63 @@
1
+ .form-floating {
2
+ position: relative;
3
+
4
+ > .form-control,
5
+ > .form-select {
6
+ height: $form-floating-height;
7
+ line-height: $form-floating-line-height;
8
+ }
9
+
10
+ > label {
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ height: 100%; // allow textareas
15
+ padding: $form-floating-padding-y $form-floating-padding-x;
16
+ pointer-events: none;
17
+ border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
18
+ transform-origin: 0 0;
19
+ @include transition($form-floating-transition);
20
+ }
21
+
22
+ // stylelint-disable no-duplicate-selectors
23
+ > .form-control {
24
+ padding: $form-floating-padding-y $form-floating-padding-x;
25
+
26
+ &::placeholder {
27
+ color: transparent;
28
+ }
29
+
30
+ &:focus,
31
+ &:not(:placeholder-shown) {
32
+ padding-top: $form-floating-input-padding-t;
33
+ padding-bottom: $form-floating-input-padding-b;
34
+ }
35
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
36
+ &:-webkit-autofill {
37
+ padding-top: $form-floating-input-padding-t;
38
+ padding-bottom: $form-floating-input-padding-b;
39
+ }
40
+ }
41
+
42
+ > .form-select {
43
+ padding-top: $form-floating-input-padding-t;
44
+ padding-bottom: $form-floating-input-padding-b;
45
+ }
46
+
47
+ > .form-control:focus,
48
+ > .form-control:not(:placeholder-shown),
49
+ > .form-select {
50
+ ~ label {
51
+ opacity: $form-floating-label-opacity;
52
+ transform: $form-floating-label-transform;
53
+ }
54
+ }
55
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
56
+ > .form-control:-webkit-autofill {
57
+ ~ label {
58
+ opacity: $form-floating-label-opacity;
59
+ transform: $form-floating-label-transform;
60
+ }
61
+ }
62
+ // stylelint-enable no-duplicate-selectors
63
+ }
@@ -0,0 +1,152 @@
1
+ //
2
+ // Check/radio
3
+ //
4
+
5
+ .form-check {
6
+ display: block;
7
+ min-height: $form-check-min-height;
8
+ padding-left: $form-check-padding-start;
9
+ margin-bottom: $form-check-margin-bottom;
10
+
11
+ .form-check-input {
12
+ float: left;
13
+ margin-left: $form-check-padding-start * -1;
14
+ }
15
+ }
16
+
17
+ .form-check-input {
18
+ width: $form-check-input-width;
19
+ height: $form-check-input-width;
20
+ margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
21
+ vertical-align: top;
22
+ background-color: $form-check-input-bg;
23
+ background-repeat: no-repeat;
24
+ background-position: center;
25
+ background-size: contain;
26
+ border: $form-check-input-border;
27
+ appearance: none;
28
+ color-adjust: exact; // Keep themed appearance for print
29
+ @include transition($form-check-transition);
30
+
31
+ &[type="checkbox"] {
32
+ @include border-radius($form-check-input-border-radius);
33
+ }
34
+
35
+ &[type="radio"] {
36
+ // stylelint-disable-next-line property-disallowed-list
37
+ border-radius: $form-check-radio-border-radius;
38
+ }
39
+
40
+ &:active {
41
+ filter: $form-check-input-active-filter;
42
+ }
43
+
44
+ &:focus {
45
+ border-color: $form-check-input-focus-border;
46
+ outline: 0;
47
+ box-shadow: $form-check-input-focus-box-shadow;
48
+ }
49
+
50
+ &:checked {
51
+ background-color: $form-check-input-checked-bg-color;
52
+ border-color: $form-check-input-checked-border-color;
53
+
54
+ &[type="checkbox"] {
55
+ @if $enable-gradients {
56
+ background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);
57
+ } @else {
58
+ background-image: escape-svg($form-check-input-checked-bg-image);
59
+ }
60
+ }
61
+
62
+ &[type="radio"] {
63
+ @if $enable-gradients {
64
+ background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);
65
+ } @else {
66
+ background-image: escape-svg($form-check-radio-checked-bg-image);
67
+ }
68
+ }
69
+ }
70
+
71
+ &[type="checkbox"]:indeterminate {
72
+ background-color: $form-check-input-indeterminate-bg-color;
73
+ border-color: $form-check-input-indeterminate-border-color;
74
+
75
+ @if $enable-gradients {
76
+ background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient);
77
+ } @else {
78
+ background-image: escape-svg($form-check-input-indeterminate-bg-image);
79
+ }
80
+ }
81
+
82
+ &:disabled {
83
+ pointer-events: none;
84
+ filter: none;
85
+ opacity: $form-check-input-disabled-opacity;
86
+ }
87
+
88
+ // Use disabled attribute in addition of :disabled pseudo-class
89
+ // See: https://github.com/twbs/bootstrap/issues/28247
90
+ &[disabled],
91
+ &:disabled {
92
+ ~ .form-check-label {
93
+ opacity: $form-check-label-disabled-opacity;
94
+ }
95
+ }
96
+ }
97
+
98
+ .form-check-label {
99
+ color: $form-check-label-color;
100
+ cursor: $form-check-label-cursor;
101
+ }
102
+
103
+ //
104
+ // Switch
105
+ //
106
+
107
+ .form-switch {
108
+ padding-left: $form-switch-padding-start;
109
+
110
+ .form-check-input {
111
+ width: $form-switch-width;
112
+ margin-left: $form-switch-padding-start * -1;
113
+ background-image: escape-svg($form-switch-bg-image);
114
+ background-position: left center;
115
+ @include border-radius($form-switch-border-radius);
116
+ @include transition($form-switch-transition);
117
+
118
+ &:focus {
119
+ background-image: escape-svg($form-switch-focus-bg-image);
120
+ }
121
+
122
+ &:checked {
123
+ background-position: $form-switch-checked-bg-position;
124
+
125
+ @if $enable-gradients {
126
+ background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient);
127
+ } @else {
128
+ background-image: escape-svg($form-switch-checked-bg-image);
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ .form-check-inline {
135
+ display: inline-block;
136
+ margin-right: $form-check-inline-margin-end;
137
+ }
138
+
139
+ .btn-check {
140
+ position: absolute;
141
+ clip: rect(0, 0, 0, 0);
142
+ pointer-events: none;
143
+
144
+ &[disabled],
145
+ &:disabled {
146
+ + .btn {
147
+ pointer-events: none;
148
+ filter: none;
149
+ opacity: $form-check-btn-check-disabled-opacity;
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,219 @@
1
+ //
2
+ // General form controls (plus a few specific high-level interventions)
3
+ //
4
+
5
+ .form-control {
6
+ display: block;
7
+ width: 100%;
8
+ padding: $input-padding-y $input-padding-x;
9
+ font-family: $input-font-family;
10
+ @include font-size($input-font-size);
11
+ font-weight: $input-font-weight;
12
+ line-height: $input-line-height;
13
+ color: $input-color;
14
+ background-color: $input-bg;
15
+ background-clip: padding-box;
16
+ border: $input-border-width solid $input-border-color;
17
+ appearance: none; // Fix appearance for date inputs in Safari
18
+
19
+ // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
20
+ @include border-radius($input-border-radius, 0);
21
+
22
+ @include box-shadow($input-box-shadow);
23
+ @include transition($input-transition);
24
+
25
+ &[type="file"] {
26
+ overflow: hidden; // prevent pseudo element button overlap
27
+
28
+ &:not(:disabled):not([readonly]) {
29
+ cursor: pointer;
30
+ }
31
+ }
32
+
33
+ // Customize the `:focus` state to imitate native WebKit styles.
34
+ &:focus {
35
+ color: $input-focus-color;
36
+ background-color: $input-focus-bg;
37
+ border-color: $input-focus-border-color;
38
+ outline: 0;
39
+ @if $enable-shadows {
40
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
41
+ } @else {
42
+ // Avoid using mixin so we can pass custom focus shadow properly
43
+ box-shadow: $input-focus-box-shadow;
44
+ }
45
+ }
46
+
47
+ // Add some height to date inputs on iOS
48
+ // https://github.com/twbs/bootstrap/issues/23307
49
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
50
+ &::-webkit-date-and-time-value {
51
+ // Multiply line-height by 1em if it has no unit
52
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
53
+ }
54
+
55
+ // Placeholder
56
+ &::placeholder {
57
+ color: $input-placeholder-color;
58
+ // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
59
+ opacity: 1;
60
+ }
61
+
62
+ // Disabled and read-only inputs
63
+ //
64
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
65
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
66
+ // don't honor that edge case; we style them as disabled anyway.
67
+ &:disabled,
68
+ &[readonly] {
69
+ background-color: $input-disabled-bg;
70
+ border-color: $input-disabled-border-color;
71
+ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
72
+ opacity: 1;
73
+ }
74
+
75
+ // File input buttons theming
76
+ &::file-selector-button {
77
+ padding: $input-padding-y $input-padding-x;
78
+ margin: (-$input-padding-y) (-$input-padding-x);
79
+ margin-inline-end: $input-padding-x;
80
+ color: $form-file-button-color;
81
+ @include gradient-bg($form-file-button-bg);
82
+ pointer-events: none;
83
+ border-color: inherit;
84
+ border-style: solid;
85
+ border-width: 0;
86
+ border-inline-end-width: $input-border-width;
87
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
88
+ @include transition($btn-transition);
89
+ }
90
+
91
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
92
+ background-color: $form-file-button-hover-bg;
93
+ }
94
+
95
+ &::-webkit-file-upload-button {
96
+ padding: $input-padding-y $input-padding-x;
97
+ margin: (-$input-padding-y) (-$input-padding-x);
98
+ margin-inline-end: $input-padding-x;
99
+ color: $form-file-button-color;
100
+ @include gradient-bg($form-file-button-bg);
101
+ pointer-events: none;
102
+ border-color: inherit;
103
+ border-style: solid;
104
+ border-width: 0;
105
+ border-inline-end-width: $input-border-width;
106
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
107
+ @include transition($btn-transition);
108
+ }
109
+
110
+ &:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
111
+ background-color: $form-file-button-hover-bg;
112
+ }
113
+ }
114
+
115
+ // Readonly controls as plain text
116
+ //
117
+ // Apply class to a readonly input to make it appear like regular plain
118
+ // text (without any border, background color, focus indicator)
119
+
120
+ .form-control-plaintext {
121
+ display: block;
122
+ width: 100%;
123
+ padding: $input-padding-y 0;
124
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
125
+ line-height: $input-line-height;
126
+ color: $input-plaintext-color;
127
+ background-color: transparent;
128
+ border: solid transparent;
129
+ border-width: $input-border-width 0;
130
+
131
+ &.form-control-sm,
132
+ &.form-control-lg {
133
+ padding-right: 0;
134
+ padding-left: 0;
135
+ }
136
+ }
137
+
138
+ // Form control sizing
139
+ //
140
+ // Build on `.form-control` with modifier classes to decrease or increase the
141
+ // height and font-size of form controls.
142
+ //
143
+ // Repeated in `_input_group.scss` to avoid Sass extend issues.
144
+
145
+ .form-control-sm {
146
+ min-height: $input-height-sm;
147
+ padding: $input-padding-y-sm $input-padding-x-sm;
148
+ @include font-size($input-font-size-sm);
149
+ @include border-radius($input-border-radius-sm);
150
+
151
+ &::file-selector-button {
152
+ padding: $input-padding-y-sm $input-padding-x-sm;
153
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
154
+ margin-inline-end: $input-padding-x-sm;
155
+ }
156
+
157
+ &::-webkit-file-upload-button {
158
+ padding: $input-padding-y-sm $input-padding-x-sm;
159
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
160
+ margin-inline-end: $input-padding-x-sm;
161
+ }
162
+ }
163
+
164
+ .form-control-lg {
165
+ min-height: $input-height-lg;
166
+ padding: $input-padding-y-lg $input-padding-x-lg;
167
+ @include font-size($input-font-size-lg);
168
+ @include border-radius($input-border-radius-lg);
169
+
170
+ &::file-selector-button {
171
+ padding: $input-padding-y-lg $input-padding-x-lg;
172
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
173
+ margin-inline-end: $input-padding-x-lg;
174
+ }
175
+
176
+ &::-webkit-file-upload-button {
177
+ padding: $input-padding-y-lg $input-padding-x-lg;
178
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
179
+ margin-inline-end: $input-padding-x-lg;
180
+ }
181
+ }
182
+
183
+ // Make sure textareas don't shrink too much when resized
184
+ // https://github.com/twbs/bootstrap/pull/29124
185
+ // stylelint-disable selector-no-qualifying-type
186
+ textarea {
187
+ &.form-control {
188
+ min-height: $input-height;
189
+ }
190
+
191
+ &.form-control-sm {
192
+ min-height: $input-height-sm;
193
+ }
194
+
195
+ &.form-control-lg {
196
+ min-height: $input-height-lg;
197
+ }
198
+ }
199
+ // stylelint-enable selector-no-qualifying-type
200
+
201
+ .form-control-color {
202
+ width: $form-color-width;
203
+ height: auto; // Override fixed browser height
204
+ padding: $input-padding-y;
205
+
206
+ &:not(:disabled):not([readonly]) {
207
+ cursor: pointer;
208
+ }
209
+
210
+ &::-moz-color-swatch {
211
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
212
+ @include border-radius($input-border-radius);
213
+ }
214
+
215
+ &::-webkit-color-swatch {
216
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
217
+ @include border-radius($input-border-radius);
218
+ }
219
+ }
@@ -0,0 +1,91 @@
1
+ // Range
2
+ //
3
+ // Style range inputs the same across browsers. Vendor-specific rules for pseudo
4
+ // elements cannot be mixed. As such, there are no shared styles for focus or
5
+ // active states on prefixed selectors.
6
+
7
+ .form-range {
8
+ width: 100%;
9
+ height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
10
+ padding: 0; // Need to reset padding
11
+ background-color: transparent;
12
+ appearance: none;
13
+
14
+ &:focus {
15
+ outline: 0;
16
+
17
+ // Pseudo-elements must be split across multiple rulesets to have an effect.
18
+ // No box-shadow() mixin for focus accessibility.
19
+ &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
20
+ &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
21
+ }
22
+
23
+ &::-moz-focus-outer {
24
+ border: 0;
25
+ }
26
+
27
+ &::-webkit-slider-thumb {
28
+ width: $form-range-thumb-width;
29
+ height: $form-range-thumb-height;
30
+ margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
31
+ @include gradient-bg($form-range-thumb-bg);
32
+ border: $form-range-thumb-border;
33
+ @include border-radius($form-range-thumb-border-radius);
34
+ @include box-shadow($form-range-thumb-box-shadow);
35
+ @include transition($form-range-thumb-transition);
36
+ appearance: none;
37
+
38
+ &:active {
39
+ @include gradient-bg($form-range-thumb-active-bg);
40
+ }
41
+ }
42
+
43
+ &::-webkit-slider-runnable-track {
44
+ width: $form-range-track-width;
45
+ height: $form-range-track-height;
46
+ color: transparent; // Why?
47
+ cursor: $form-range-track-cursor;
48
+ background-color: $form-range-track-bg;
49
+ border-color: transparent;
50
+ @include border-radius($form-range-track-border-radius);
51
+ @include box-shadow($form-range-track-box-shadow);
52
+ }
53
+
54
+ &::-moz-range-thumb {
55
+ width: $form-range-thumb-width;
56
+ height: $form-range-thumb-height;
57
+ @include gradient-bg($form-range-thumb-bg);
58
+ border: $form-range-thumb-border;
59
+ @include border-radius($form-range-thumb-border-radius);
60
+ @include box-shadow($form-range-thumb-box-shadow);
61
+ @include transition($form-range-thumb-transition);
62
+ appearance: none;
63
+
64
+ &:active {
65
+ @include gradient-bg($form-range-thumb-active-bg);
66
+ }
67
+ }
68
+
69
+ &::-moz-range-track {
70
+ width: $form-range-track-width;
71
+ height: $form-range-track-height;
72
+ color: transparent;
73
+ cursor: $form-range-track-cursor;
74
+ background-color: $form-range-track-bg;
75
+ border-color: transparent; // Firefox specific?
76
+ @include border-radius($form-range-track-border-radius);
77
+ @include box-shadow($form-range-track-box-shadow);
78
+ }
79
+
80
+ &:disabled {
81
+ pointer-events: none;
82
+
83
+ &::-webkit-slider-thumb {
84
+ background-color: $form-range-thumb-disabled-bg;
85
+ }
86
+
87
+ &::-moz-range-thumb {
88
+ background-color: $form-range-thumb-disabled-bg;
89
+ }
90
+ }
91
+ }