annotate default/assets/scss/vendors/bootstrap/_input-group.scss @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 // Base styles
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 .input-group {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 position: relative;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 display: flex;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 width: 100%;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 .form-control {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 // Ensure that the input is always above the *appended* addon button for
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 // proper border colors.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 position: relative;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 z-index: 2;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 flex: 1 1 auto;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 // Add width 1% and flex-basis auto to ensure that button will not wrap out
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 width: 1%;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 margin-bottom: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 // Bring the "active" form control to the front
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 @include hover-focus-active {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 z-index: 3;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 .input-group-addon,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 .input-group-btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 .input-group .form-control {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 // Vertically centers the content of the addons within the input group
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 display: flex;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 align-items: center;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 &:not(:first-child):not(:last-child) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 @include border-radius(0);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 .input-group-addon,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 .input-group-btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 white-space: nowrap;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 vertical-align: middle; // Match the inputs
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 // Sizing options
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 // Remix the default form control sizing classes into new ones for easier
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 // manipulation.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 .input-group-lg > .form-control,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 .input-group-lg > .input-group-addon,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 .input-group-lg > .input-group-btn > .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 @extend .form-control-lg;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 .input-group-sm > .form-control,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 .input-group-sm > .input-group-addon,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 .input-group-sm > .input-group-btn > .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 @extend .form-control-sm;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 // Text input groups
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 .input-group-addon {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 padding: $input-btn-padding-y $input-btn-padding-x;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71 font-size: $font-size-base; // Match inputs
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 font-weight: $font-weight-normal;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 line-height: $input-btn-line-height;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 color: $input-color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 text-align: center;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 background-color: $input-group-addon-bg;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 border: $input-btn-border-width solid $input-group-addon-border-color;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 @include border-radius($input-border-radius);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 // Sizing
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 &.form-control-sm {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 padding: $input-btn-padding-y-sm $input-btn-padding-x-sm;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83 font-size: $font-size-sm;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84 @include border-radius($input-border-radius-sm);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 &.form-control-lg {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88 padding: $input-btn-padding-y-lg $input-btn-padding-x-lg;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89 font-size: $font-size-lg;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 @include border-radius($input-border-radius-lg);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93 // scss-lint:disable QualifyingElement
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94 // Nuke default margins from checkboxes and radios to vertically center within.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 input[type="radio"],
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96 input[type="checkbox"] {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97 margin-top: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99 // scss-lint:enable QualifyingElement
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 // Reset rounded corners
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
107 .input-group .form-control:not(:last-child),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
108 .input-group-addon:not(:last-child),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
109 .input-group-btn:not(:last-child) > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
110 .input-group-btn:not(:last-child) > .btn-group > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
111 .input-group-btn:not(:last-child) > .dropdown-toggle,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
112 .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
113 .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
114 @include border-right-radius(0);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
115 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
116 .input-group-addon:not(:last-child) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
117 border-right: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
118 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
119 .input-group .form-control:not(:first-child),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
120 .input-group-addon:not(:first-child),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
121 .input-group-btn:not(:first-child) > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
122 .input-group-btn:not(:first-child) > .btn-group > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
123 .input-group-btn:not(:first-child) > .dropdown-toggle,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
124 .input-group-btn:not(:last-child) > .btn:not(:first-child),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
125 .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
126 @include border-left-radius(0);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
127 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
128 .form-control + .input-group-addon:not(:first-child) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
129 border-left: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
130 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
131
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
132 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
133 // Button input groups
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
134 //
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
135
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
136 .input-group-btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
137 position: relative;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
138 // Jankily prevent input button groups from wrapping with `white-space` and
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
139 // `font-size` in combination with `inline-block` on buttons.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
140 font-size: 0;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
141 white-space: nowrap;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
142
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
143 // Negative margin for spacing, position for bringing hovered/focused/actived
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
144 // element above the siblings.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
145 > .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
146 position: relative;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
147
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
148 + .btn {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
149 margin-left: (-$input-btn-border-width);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
150 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
151
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
152 // Bring the "active" button to the front
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
153 @include hover-focus-active {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
154 z-index: 3;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
155 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
156 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
157
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
158 // Negative margin to only have a single, shared border between the two
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
159 &:not(:last-child) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
160 > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
161 > .btn-group {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
162 margin-right: (-$input-btn-border-width);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
163 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
164 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
165 &:not(:first-child) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
166 > .btn,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
167 > .btn-group {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
168 z-index: 2;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
169 margin-left: (-$input-btn-border-width);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
170 // Because specificity
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
171 @include hover-focus-active {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
172 z-index: 3;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
173 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
174 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
175 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
176 }