anchor_ui-sprockets 5.2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +67 -0
  3. data/Rakefile +20 -0
  4. data/app/assets/fonts/coreui-icons/CoreUI-Icons-Linear-Free.eot +0 -0
  5. data/app/assets/fonts/coreui-icons/CoreUI-Icons-Linear-Free.svg +110 -0
  6. data/app/assets/fonts/coreui-icons/CoreUI-Icons-Linear-Free.ttf +0 -0
  7. data/app/assets/fonts/coreui-icons/CoreUI-Icons-Linear-Free.woff +0 -0
  8. data/app/assets/javascripts/core.min.js +10 -0
  9. data/app/assets/javascripts/core.min.js.map +1 -0
  10. data/app/assets/javascripts/coreui/coreui-utilities.js +1072 -0
  11. data/app/assets/javascripts/coreui/coreui-utilities.js.map +1 -0
  12. data/app/assets/javascripts/coreui/coreui-utilities.min.js +7 -0
  13. data/app/assets/javascripts/coreui/coreui-utilities.min.js.map +1 -0
  14. data/app/assets/javascripts/coreui/coreui.js +1962 -0
  15. data/app/assets/javascripts/coreui/coreui.js.map +1 -0
  16. data/app/assets/javascripts/coreui/coreui.min.js +7 -0
  17. data/app/assets/javascripts/coreui/coreui.min.js.map +1 -0
  18. data/app/assets/javascripts/custom-tooltips.min.js +2 -0
  19. data/app/assets/javascripts/custom-tooltips.min.js.map +1 -0
  20. data/app/assets/javascripts/pace.min.js +2 -0
  21. data/app/assets/javascripts/perfect-scrollbar.min.js +6 -0
  22. data/app/assets/stylesheets/coreui-icons/_core.scss +33 -0
  23. data/app/assets/stylesheets/coreui-icons/_functions.scss +3 -0
  24. data/app/assets/stylesheets/coreui-icons/_variables.scss +106 -0
  25. data/app/assets/stylesheets/coreui-icons/coreui-icons.scss +11 -0
  26. data/app/assets/stylesheets/coreui/_animate.scss +27 -0
  27. data/app/assets/stylesheets/coreui/_aside.scss +65 -0
  28. data/app/assets/stylesheets/coreui/_avatars.scss +44 -0
  29. data/app/assets/stylesheets/coreui/_badge.scss +3 -0
  30. data/app/assets/stylesheets/coreui/_brand-buttons.scss +60 -0
  31. data/app/assets/stylesheets/coreui/_brand-card.scss +65 -0
  32. data/app/assets/stylesheets/coreui/_breadcrumb-menu.scss +44 -0
  33. data/app/assets/stylesheets/coreui/_breadcrumb.scss +16 -0
  34. data/app/assets/stylesheets/coreui/_buttons.scss +32 -0
  35. data/app/assets/stylesheets/coreui/_callout.scss +73 -0
  36. data/app/assets/stylesheets/coreui/_card.scss +117 -0
  37. data/app/assets/stylesheets/coreui/_charts.scss +55 -0
  38. data/app/assets/stylesheets/coreui/_dropdown-menu-right.scss +8 -0
  39. data/app/assets/stylesheets/coreui/_dropdown.scss +69 -0
  40. data/app/assets/stylesheets/coreui/_footer.scss +9 -0
  41. data/app/assets/stylesheets/coreui/_grid.scss +15 -0
  42. data/app/assets/stylesheets/coreui/_header.scss +135 -0
  43. data/app/assets/stylesheets/coreui/_ie-custom-properties.scss +14 -0
  44. data/app/assets/stylesheets/coreui/_images.scss +6 -0
  45. data/app/assets/stylesheets/coreui/_input-group.scss +5 -0
  46. data/app/assets/stylesheets/coreui/_layout.scss +483 -0
  47. data/app/assets/stylesheets/coreui/_list-group.scss +35 -0
  48. data/app/assets/stylesheets/coreui/_mixins.scss +7 -0
  49. data/app/assets/stylesheets/coreui/_modal.scss +13 -0
  50. data/app/assets/stylesheets/coreui/_nav.scss +57 -0
  51. data/app/assets/stylesheets/coreui/_navbar.scss +135 -0
  52. data/app/assets/stylesheets/coreui/_others.scss +4 -0
  53. data/app/assets/stylesheets/coreui/_progress-group.scss +40 -0
  54. data/app/assets/stylesheets/coreui/_progress.scss +15 -0
  55. data/app/assets/stylesheets/coreui/_rtl.scss +27 -0
  56. data/app/assets/stylesheets/coreui/_sidebar.scss +606 -0
  57. data/app/assets/stylesheets/coreui/_switches.scss +173 -0
  58. data/app/assets/stylesheets/coreui/_tables.scss +20 -0
  59. data/app/assets/stylesheets/coreui/_utilities.scss +4 -0
  60. data/app/assets/stylesheets/coreui/_variables.scss +204 -0
  61. data/app/assets/stylesheets/coreui/_vendors.scss +1 -0
  62. data/app/assets/stylesheets/coreui/_widgets.scss +1 -0
  63. data/app/assets/stylesheets/coreui/bootstrap.scss +4 -0
  64. data/app/assets/stylesheets/coreui/bootstrap/_alert.scss +51 -0
  65. data/app/assets/stylesheets/coreui/bootstrap/_badge.scss +47 -0
  66. data/app/assets/stylesheets/coreui/bootstrap/_breadcrumb.scss +41 -0
  67. data/app/assets/stylesheets/coreui/bootstrap/_button-group.scss +172 -0
  68. data/app/assets/stylesheets/coreui/bootstrap/_buttons.scss +143 -0
  69. data/app/assets/stylesheets/coreui/bootstrap/_card.scss +301 -0
  70. data/app/assets/stylesheets/coreui/bootstrap/_carousel.scss +236 -0
  71. data/app/assets/stylesheets/coreui/bootstrap/_close.scss +35 -0
  72. data/app/assets/stylesheets/coreui/bootstrap/_code.scss +48 -0
  73. data/app/assets/stylesheets/coreui/bootstrap/_custom-forms.scss +433 -0
  74. data/app/assets/stylesheets/coreui/bootstrap/_dropdown.scss +166 -0
  75. data/app/assets/stylesheets/coreui/bootstrap/_forms.scss +333 -0
  76. data/app/assets/stylesheets/coreui/bootstrap/_functions.scss +86 -0
  77. data/app/assets/stylesheets/coreui/bootstrap/_grid.scss +52 -0
  78. data/app/assets/stylesheets/coreui/bootstrap/_images.scss +42 -0
  79. data/app/assets/stylesheets/coreui/bootstrap/_input-group.scss +173 -0
  80. data/app/assets/stylesheets/coreui/bootstrap/_jumbotron.scss +16 -0
  81. data/app/assets/stylesheets/coreui/bootstrap/_list-group.scss +115 -0
  82. data/app/assets/stylesheets/coreui/bootstrap/_media.scss +8 -0
  83. data/app/assets/stylesheets/coreui/bootstrap/_mixins.scss +41 -0
  84. data/app/assets/stylesheets/coreui/bootstrap/_modal.scss +180 -0
  85. data/app/assets/stylesheets/coreui/bootstrap/_nav.scss +118 -0
  86. data/app/assets/stylesheets/coreui/bootstrap/_navbar.scss +299 -0
  87. data/app/assets/stylesheets/coreui/bootstrap/_pagination.scss +78 -0
  88. data/app/assets/stylesheets/coreui/bootstrap/_popover.scss +183 -0
  89. data/app/assets/stylesheets/coreui/bootstrap/_print.scss +141 -0
  90. data/app/assets/stylesheets/coreui/bootstrap/_progress.scss +34 -0
  91. data/app/assets/stylesheets/coreui/bootstrap/_reboot.scss +483 -0
  92. data/app/assets/stylesheets/coreui/bootstrap/_root.scss +19 -0
  93. data/app/assets/stylesheets/coreui/bootstrap/_tables.scss +187 -0
  94. data/app/assets/stylesheets/coreui/bootstrap/_tooltip.scss +115 -0
  95. data/app/assets/stylesheets/coreui/bootstrap/_transitions.scss +22 -0
  96. data/app/assets/stylesheets/coreui/bootstrap/_type.scss +125 -0
  97. data/app/assets/stylesheets/coreui/bootstrap/_utilities.scss +15 -0
  98. data/app/assets/stylesheets/coreui/bootstrap/_variables.scss +952 -0
  99. data/app/assets/stylesheets/coreui/bootstrap/bootstrap-grid.scss +32 -0
  100. data/app/assets/stylesheets/coreui/bootstrap/bootstrap-reboot.scss +12 -0
  101. data/app/assets/stylesheets/coreui/bootstrap/bootstrap.scss +42 -0
  102. data/app/assets/stylesheets/coreui/bootstrap/mixins/_alert.scss +13 -0
  103. data/app/assets/stylesheets/coreui/bootstrap/mixins/_background-variant.scss +21 -0
  104. data/app/assets/stylesheets/coreui/bootstrap/mixins/_badge.scss +12 -0
  105. data/app/assets/stylesheets/coreui/bootstrap/mixins/_border-radius.scss +35 -0
  106. data/app/assets/stylesheets/coreui/bootstrap/mixins/_box-shadow.scss +5 -0
  107. data/app/assets/stylesheets/coreui/bootstrap/mixins/_breakpoints.scss +123 -0
  108. data/app/assets/stylesheets/coreui/bootstrap/mixins/_buttons.scss +109 -0
  109. data/app/assets/stylesheets/coreui/bootstrap/mixins/_caret.scss +66 -0
  110. data/app/assets/stylesheets/coreui/bootstrap/mixins/_clearfix.scss +7 -0
  111. data/app/assets/stylesheets/coreui/bootstrap/mixins/_float.scss +11 -0
  112. data/app/assets/stylesheets/coreui/bootstrap/mixins/_forms.scss +147 -0
  113. data/app/assets/stylesheets/coreui/bootstrap/mixins/_gradients.scss +45 -0
  114. data/app/assets/stylesheets/coreui/bootstrap/mixins/_grid-framework.scss +67 -0
  115. data/app/assets/stylesheets/coreui/bootstrap/mixins/_grid.scss +52 -0
  116. data/app/assets/stylesheets/coreui/bootstrap/mixins/_hover.scss +37 -0
  117. data/app/assets/stylesheets/coreui/bootstrap/mixins/_image.scss +36 -0
  118. data/app/assets/stylesheets/coreui/bootstrap/mixins/_list-group.scss +21 -0
  119. data/app/assets/stylesheets/coreui/bootstrap/mixins/_lists.scss +7 -0
  120. data/app/assets/stylesheets/coreui/bootstrap/mixins/_nav-divider.scss +10 -0
  121. data/app/assets/stylesheets/coreui/bootstrap/mixins/_pagination.scss +22 -0
  122. data/app/assets/stylesheets/coreui/bootstrap/mixins/_reset-text.scss +17 -0
  123. data/app/assets/stylesheets/coreui/bootstrap/mixins/_resize.scss +6 -0
  124. data/app/assets/stylesheets/coreui/bootstrap/mixins/_screen-reader.scss +33 -0
  125. data/app/assets/stylesheets/coreui/bootstrap/mixins/_size.scss +6 -0
  126. data/app/assets/stylesheets/coreui/bootstrap/mixins/_table-row.scss +30 -0
  127. data/app/assets/stylesheets/coreui/bootstrap/mixins/_text-emphasis.scss +14 -0
  128. data/app/assets/stylesheets/coreui/bootstrap/mixins/_text-hide.scss +13 -0
  129. data/app/assets/stylesheets/coreui/bootstrap/mixins/_text-truncate.scss +8 -0
  130. data/app/assets/stylesheets/coreui/bootstrap/mixins/_transition.scss +13 -0
  131. data/app/assets/stylesheets/coreui/bootstrap/mixins/_visibility.scss +7 -0
  132. data/app/assets/stylesheets/coreui/bootstrap/utilities/_align.scss +8 -0
  133. data/app/assets/stylesheets/coreui/bootstrap/utilities/_background.scss +19 -0
  134. data/app/assets/stylesheets/coreui/bootstrap/utilities/_borders.scss +59 -0
  135. data/app/assets/stylesheets/coreui/bootstrap/utilities/_clearfix.scss +3 -0
  136. data/app/assets/stylesheets/coreui/bootstrap/utilities/_display.scss +38 -0
  137. data/app/assets/stylesheets/coreui/bootstrap/utilities/_embed.scss +52 -0
  138. data/app/assets/stylesheets/coreui/bootstrap/utilities/_flex.scss +51 -0
  139. data/app/assets/stylesheets/coreui/bootstrap/utilities/_float.scss +9 -0
  140. data/app/assets/stylesheets/coreui/bootstrap/utilities/_position.scss +37 -0
  141. data/app/assets/stylesheets/coreui/bootstrap/utilities/_screenreaders.scss +11 -0
  142. data/app/assets/stylesheets/coreui/bootstrap/utilities/_shadows.scss +6 -0
  143. data/app/assets/stylesheets/coreui/bootstrap/utilities/_sizing.scss +12 -0
  144. data/app/assets/stylesheets/coreui/bootstrap/utilities/_spacing.scss +51 -0
  145. data/app/assets/stylesheets/coreui/bootstrap/utilities/_text.scss +58 -0
  146. data/app/assets/stylesheets/coreui/bootstrap/utilities/_visibility.scss +11 -0
  147. data/app/assets/stylesheets/coreui/coreui-standalone.scss +65 -0
  148. data/app/assets/stylesheets/coreui/coreui.scss +64 -0
  149. data/app/assets/stylesheets/coreui/mixins/_avatars.scss +17 -0
  150. data/app/assets/stylesheets/coreui/mixins/_borders.scss +31 -0
  151. data/app/assets/stylesheets/coreui/mixins/_buttons.scss +41 -0
  152. data/app/assets/stylesheets/coreui/mixins/_card-accent.scss +4 -0
  153. data/app/assets/stylesheets/coreui/mixins/_list-group.scss +7 -0
  154. data/app/assets/stylesheets/coreui/mixins/_sidebar-width.scss +18 -0
  155. data/app/assets/stylesheets/coreui/mixins/_switches.scss +78 -0
  156. data/app/assets/stylesheets/coreui/utilities/_background.scss +28 -0
  157. data/app/assets/stylesheets/coreui/utilities/_borders.scss +19 -0
  158. data/app/assets/stylesheets/coreui/utilities/_display.scss +18 -0
  159. data/app/assets/stylesheets/coreui/utilities/_typography.scss +55 -0
  160. data/app/assets/stylesheets/coreui/variables/_colors.scss +146 -0
  161. data/app/assets/stylesheets/coreui/variables/bootstrap/_variables.scss +62 -0
  162. data/app/assets/stylesheets/coreui/vendors/_perfect-scrollbar.scss +94 -0
  163. data/lib/anchor_ui/sprockets.rb +21 -0
  164. data/lib/anchor_ui/sprockets/assets.rb +21 -0
  165. data/lib/anchor_ui/sprockets/assets/base.rb +24 -0
  166. data/lib/anchor_ui/sprockets/assets/core.rb +24 -0
  167. data/lib/anchor_ui/sprockets/assets/core_ui.rb +93 -0
  168. data/lib/anchor_ui/sprockets/assets/core_ui_icons.rb +73 -0
  169. data/lib/anchor_ui/sprockets/assets/custom_tooltips.rb +24 -0
  170. data/lib/anchor_ui/sprockets/assets/javascript.rb +39 -0
  171. data/lib/anchor_ui/sprockets/assets/pace.rb +19 -0
  172. data/lib/anchor_ui/sprockets/assets/perfect_scrollbar.rb +19 -0
  173. data/lib/anchor_ui/sprockets/engine.rb +6 -0
  174. data/lib/anchor_ui/sprockets/paths.rb +21 -0
  175. data/lib/anchor_ui/sprockets/updater.rb +23 -0
  176. data/lib/anchor_ui/sprockets/version.rb +7 -0
  177. data/lib/generators/anchor_ui/sprockets/install_generator.rb +37 -0
  178. data/lib/generators/anchor_ui/sprockets/templates/_coreui.scss +35 -0
  179. data/lib/generators/anchor_ui/sprockets/templates/_variables.scss +411 -0
  180. data/lib/generators/anchor_ui/sprockets/templates/application.js +11 -0
  181. data/lib/generators/anchor_ui/sprockets/templates/application.scss +7 -0
  182. metadata +420 -0
@@ -0,0 +1,166 @@
1
+ // The dropdown wrapper (`<div>`)
2
+ .dropup,
3
+ .dropright,
4
+ .dropdown,
5
+ .dropleft {
6
+ position: relative;
7
+ }
8
+
9
+ .dropdown-toggle {
10
+ // Generate the caret automatically
11
+ @include caret;
12
+ }
13
+
14
+ // The dropdown menu
15
+ .dropdown-menu {
16
+ position: absolute;
17
+ top: 100%;
18
+ left: 0;
19
+ z-index: $zindex-dropdown;
20
+ display: none; // none by default, but block on "open" of the menu
21
+ float: left;
22
+ min-width: $dropdown-min-width;
23
+ padding: $dropdown-padding-y 0;
24
+ margin: $dropdown-spacer 0 0; // override default ul
25
+ font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues
26
+ color: $body-color;
27
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
28
+ list-style: none;
29
+ background-color: $dropdown-bg;
30
+ background-clip: padding-box;
31
+ border: $dropdown-border-width solid $dropdown-border-color;
32
+ @include border-radius($dropdown-border-radius);
33
+ @include box-shadow($dropdown-box-shadow);
34
+ }
35
+
36
+ .dropdown-menu-right {
37
+ right: 0;
38
+ left: auto;
39
+ }
40
+
41
+ // Allow for dropdowns to go bottom up (aka, dropup-menu)
42
+ // Just add .dropup after the standard .dropdown class and you're set.
43
+ .dropup {
44
+ .dropdown-menu {
45
+ top: auto;
46
+ bottom: 100%;
47
+ margin-top: 0;
48
+ margin-bottom: $dropdown-spacer;
49
+ }
50
+
51
+ .dropdown-toggle {
52
+ @include caret(up);
53
+ }
54
+ }
55
+
56
+ .dropright {
57
+ .dropdown-menu {
58
+ top: 0;
59
+ right: auto;
60
+ left: 100%;
61
+ margin-top: 0;
62
+ margin-left: $dropdown-spacer;
63
+ }
64
+
65
+ .dropdown-toggle {
66
+ @include caret(right);
67
+ &::after {
68
+ vertical-align: 0;
69
+ }
70
+ }
71
+ }
72
+
73
+ .dropleft {
74
+ .dropdown-menu {
75
+ top: 0;
76
+ right: 100%;
77
+ left: auto;
78
+ margin-top: 0;
79
+ margin-right: $dropdown-spacer;
80
+ }
81
+
82
+ .dropdown-toggle {
83
+ @include caret(left);
84
+ &::before {
85
+ vertical-align: 0;
86
+ }
87
+ }
88
+ }
89
+
90
+ // When enabled Popper.js, reset basic dropdown position
91
+ // stylelint-disable no-duplicate-selectors
92
+ .dropdown-menu {
93
+ &[x-placement^="top"],
94
+ &[x-placement^="right"],
95
+ &[x-placement^="bottom"],
96
+ &[x-placement^="left"] {
97
+ right: auto;
98
+ bottom: auto;
99
+ }
100
+ }
101
+ // stylelint-enable no-duplicate-selectors
102
+
103
+ // Dividers (basically an `<hr>`) within the dropdown
104
+ .dropdown-divider {
105
+ @include nav-divider($dropdown-divider-bg);
106
+ }
107
+
108
+ // Links, buttons, and more within the dropdown menu
109
+ //
110
+ // `<button>`-specific styles are denoted with `// For <button>s`
111
+ .dropdown-item {
112
+ display: block;
113
+ width: 100%; // For `<button>`s
114
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
115
+ clear: both;
116
+ font-weight: $font-weight-normal;
117
+ color: $dropdown-link-color;
118
+ text-align: inherit; // For `<button>`s
119
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
120
+ background-color: transparent; // For `<button>`s
121
+ border: 0; // For `<button>`s
122
+
123
+ @include hover-focus {
124
+ color: $dropdown-link-hover-color;
125
+ text-decoration: none;
126
+ @include gradient-bg($dropdown-link-hover-bg);
127
+ }
128
+
129
+ &.active,
130
+ &:active {
131
+ color: $dropdown-link-active-color;
132
+ text-decoration: none;
133
+ @include gradient-bg($dropdown-link-active-bg);
134
+ }
135
+
136
+ &.disabled,
137
+ &:disabled {
138
+ color: $dropdown-link-disabled-color;
139
+ background-color: transparent;
140
+ // Remove CSS gradients if they're enabled
141
+ @if $enable-gradients {
142
+ background-image: none;
143
+ }
144
+ }
145
+ }
146
+
147
+ .dropdown-menu.show {
148
+ display: block;
149
+ }
150
+
151
+ // Dropdown section headers
152
+ .dropdown-header {
153
+ display: block;
154
+ padding: $dropdown-padding-y $dropdown-item-padding-x;
155
+ margin-bottom: 0; // for use with heading elements
156
+ font-size: $font-size-sm;
157
+ color: $dropdown-header-color;
158
+ white-space: nowrap; // as with > li > a
159
+ }
160
+
161
+ // Dropdown text
162
+ .dropdown-item-text {
163
+ display: block;
164
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
165
+ color: $dropdown-link-color;
166
+ }
@@ -0,0 +1,333 @@
1
+ // stylelint-disable selector-no-qualifying-type
2
+
3
+ //
4
+ // Textual form controls
5
+ //
6
+
7
+ .form-control {
8
+ display: block;
9
+ width: 100%;
10
+ height: $input-height;
11
+ padding: $input-padding-y $input-padding-x;
12
+ font-size: $font-size-base;
13
+ line-height: $input-line-height;
14
+ color: $input-color;
15
+ background-color: $input-bg;
16
+ background-clip: padding-box;
17
+ border: $input-border-width solid $input-border-color;
18
+
19
+ // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
20
+ @if $enable-rounded {
21
+ // Manually use the if/else instead of the mixin to account for iOS override
22
+ border-radius: $input-border-radius;
23
+ } @else {
24
+ // Otherwise undo the iOS default
25
+ border-radius: 0;
26
+ }
27
+
28
+ @include box-shadow($input-box-shadow);
29
+ @include transition($input-transition);
30
+
31
+ // Unstyle the caret on `<select>`s in IE10+.
32
+ &::-ms-expand {
33
+ background-color: transparent;
34
+ border: 0;
35
+ }
36
+
37
+ // Customize the `:focus` state to imitate native WebKit styles.
38
+ @include form-control-focus();
39
+
40
+ // Placeholder
41
+ &::placeholder {
42
+ color: $input-placeholder-color;
43
+ // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
44
+ opacity: 1;
45
+ }
46
+
47
+ // Disabled and read-only inputs
48
+ //
49
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
50
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
51
+ // don't honor that edge case; we style them as disabled anyway.
52
+ &:disabled,
53
+ &[readonly] {
54
+ background-color: $input-disabled-bg;
55
+ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
56
+ opacity: 1;
57
+ }
58
+ }
59
+
60
+ select.form-control {
61
+ &:focus::-ms-value {
62
+ // Suppress the nested default white text on blue background highlight given to
63
+ // the selected option text when the (still closed) <select> receives focus
64
+ // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
65
+ // match the appearance of the native widget.
66
+ // See https://github.com/twbs/bootstrap/issues/19398.
67
+ color: $input-color;
68
+ background-color: $input-bg;
69
+ }
70
+ }
71
+
72
+ // Make file inputs better match text inputs by forcing them to new lines.
73
+ .form-control-file,
74
+ .form-control-range {
75
+ display: block;
76
+ width: 100%;
77
+ }
78
+
79
+
80
+ //
81
+ // Labels
82
+ //
83
+
84
+ // For use with horizontal and inline forms, when you need the label (or legend)
85
+ // text to align with the form controls.
86
+ .col-form-label {
87
+ padding-top: calc(#{$input-padding-y} + #{$input-border-width});
88
+ padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
89
+ margin-bottom: 0; // Override the `<label>/<legend>` default
90
+ font-size: inherit; // Override the `<legend>` default
91
+ line-height: $input-line-height;
92
+ }
93
+
94
+ .col-form-label-lg {
95
+ padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
96
+ padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
97
+ font-size: $font-size-lg;
98
+ line-height: $input-line-height-lg;
99
+ }
100
+
101
+ .col-form-label-sm {
102
+ padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
103
+ padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
104
+ font-size: $font-size-sm;
105
+ line-height: $input-line-height-sm;
106
+ }
107
+
108
+
109
+ // Readonly controls as plain text
110
+ //
111
+ // Apply class to a readonly input to make it appear like regular plain
112
+ // text (without any border, background color, focus indicator)
113
+
114
+ .form-control-plaintext {
115
+ display: block;
116
+ width: 100%;
117
+ padding-top: $input-padding-y;
118
+ padding-bottom: $input-padding-y;
119
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
120
+ line-height: $input-line-height;
121
+ color: $input-plaintext-color;
122
+ background-color: transparent;
123
+ border: solid transparent;
124
+ border-width: $input-border-width 0;
125
+
126
+ &.form-control-sm,
127
+ &.form-control-lg {
128
+ padding-right: 0;
129
+ padding-left: 0;
130
+ }
131
+ }
132
+
133
+
134
+ // Form control sizing
135
+ //
136
+ // Build on `.form-control` with modifier classes to decrease or increase the
137
+ // height and font-size of form controls.
138
+ //
139
+ // Repeated in `_input_group.scss` to avoid Sass extend issues.
140
+
141
+ .form-control-sm {
142
+ height: $input-height-sm;
143
+ padding: $input-padding-y-sm $input-padding-x-sm;
144
+ font-size: $font-size-sm;
145
+ line-height: $input-line-height-sm;
146
+ @include border-radius($input-border-radius-sm);
147
+ }
148
+
149
+ .form-control-lg {
150
+ height: $input-height-lg;
151
+ padding: $input-padding-y-lg $input-padding-x-lg;
152
+ font-size: $font-size-lg;
153
+ line-height: $input-line-height-lg;
154
+ @include border-radius($input-border-radius-lg);
155
+ }
156
+
157
+ // stylelint-disable no-duplicate-selectors
158
+ select.form-control {
159
+ &[size],
160
+ &[multiple] {
161
+ height: auto;
162
+ }
163
+ }
164
+
165
+ textarea.form-control {
166
+ height: auto;
167
+ }
168
+ // stylelint-enable no-duplicate-selectors
169
+
170
+ // Form groups
171
+ //
172
+ // Designed to help with the organization and spacing of vertical forms. For
173
+ // horizontal forms, use the predefined grid classes.
174
+
175
+ .form-group {
176
+ margin-bottom: $form-group-margin-bottom;
177
+ }
178
+
179
+ .form-text {
180
+ display: block;
181
+ margin-top: $form-text-margin-top;
182
+ }
183
+
184
+
185
+ // Form grid
186
+ //
187
+ // Special replacement for our grid system's `.row` for tighter form layouts.
188
+
189
+ .form-row {
190
+ display: flex;
191
+ flex-wrap: wrap;
192
+ margin-right: -5px;
193
+ margin-left: -5px;
194
+
195
+ > .col,
196
+ > [class*="col-"] {
197
+ padding-right: 5px;
198
+ padding-left: 5px;
199
+ }
200
+ }
201
+
202
+
203
+ // Checkboxes and radios
204
+ //
205
+ // Indent the labels to position radios/checkboxes as hanging controls.
206
+
207
+ .form-check {
208
+ position: relative;
209
+ display: block;
210
+ padding-left: $form-check-input-gutter;
211
+ }
212
+
213
+ .form-check-input {
214
+ position: absolute;
215
+ margin-top: $form-check-input-margin-y;
216
+ margin-left: -$form-check-input-gutter;
217
+
218
+ &:disabled ~ .form-check-label {
219
+ color: $text-muted;
220
+ }
221
+ }
222
+
223
+ .form-check-label {
224
+ margin-bottom: 0; // Override default `<label>` bottom margin
225
+ }
226
+
227
+ .form-check-inline {
228
+ display: inline-flex;
229
+ align-items: center;
230
+ padding-left: 0; // Override base .form-check
231
+ margin-right: $form-check-inline-margin-x;
232
+
233
+ // Undo .form-check-input defaults and add some `margin-right`.
234
+ .form-check-input {
235
+ position: static;
236
+ margin-top: 0;
237
+ margin-right: $form-check-inline-input-margin-x;
238
+ margin-left: 0;
239
+ }
240
+ }
241
+
242
+
243
+ // Form validation
244
+ //
245
+ // Provide feedback to users when form field values are valid or invalid. Works
246
+ // primarily for client-side validation via scoped `:invalid` and `:valid`
247
+ // pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
248
+ // server side validation.
249
+
250
+ @include form-validation-state("valid", $form-feedback-valid-color);
251
+ @include form-validation-state("invalid", $form-feedback-invalid-color);
252
+
253
+ // Inline forms
254
+ //
255
+ // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
256
+ // forms begin stacked on extra small (mobile) devices and then go inline when
257
+ // viewports reach <768px.
258
+ //
259
+ // Requires wrapping inputs and labels with `.form-group` for proper display of
260
+ // default HTML form controls and our custom form controls (e.g., input groups).
261
+
262
+ .form-inline {
263
+ display: flex;
264
+ flex-flow: row wrap;
265
+ align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)
266
+
267
+ // Because we use flex, the initial sizing of checkboxes is collapsed and
268
+ // doesn't occupy the full-width (which is what we want for xs grid tier),
269
+ // so we force that here.
270
+ .form-check {
271
+ width: 100%;
272
+ }
273
+
274
+ // Kick in the inline
275
+ @include media-breakpoint-up(sm) {
276
+ label {
277
+ display: flex;
278
+ align-items: center;
279
+ justify-content: center;
280
+ margin-bottom: 0;
281
+ }
282
+
283
+ // Inline-block all the things for "inline"
284
+ .form-group {
285
+ display: flex;
286
+ flex: 0 0 auto;
287
+ flex-flow: row wrap;
288
+ align-items: center;
289
+ margin-bottom: 0;
290
+ }
291
+
292
+ // Allow folks to *not* use `.form-group`
293
+ .form-control {
294
+ display: inline-block;
295
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
296
+ vertical-align: middle;
297
+ }
298
+
299
+ // Make static controls behave like regular ones
300
+ .form-control-plaintext {
301
+ display: inline-block;
302
+ }
303
+
304
+ .input-group,
305
+ .custom-select {
306
+ width: auto;
307
+ }
308
+
309
+ // Remove default margin on radios/checkboxes that were used for stacking, and
310
+ // then undo the floating of radios and checkboxes to match.
311
+ .form-check {
312
+ display: flex;
313
+ align-items: center;
314
+ justify-content: center;
315
+ width: auto;
316
+ padding-left: 0;
317
+ }
318
+ .form-check-input {
319
+ position: relative;
320
+ margin-top: 0;
321
+ margin-right: $form-check-input-margin-x;
322
+ margin-left: 0;
323
+ }
324
+
325
+ .custom-control {
326
+ align-items: center;
327
+ justify-content: center;
328
+ }
329
+ .custom-control-label {
330
+ margin-bottom: 0;
331
+ }
332
+ }
333
+ }