Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 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
  appearance: none; // Fix appearance for date inputs in Safari
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
  @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
  &::-webkit-date-and-time-value {
48
    // On Android Chrome, form-control's "width: 100%" makes the input width too small
49
    // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
50
    //
51
    // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small
52
    // Tested under iOS 16.2 / Safari 16.2
53
    min-width: 85px; // Seems to be a good minimum safe width
54
 
55
    // Add some height to date inputs on iOS
56
    // https://github.com/twbs/bootstrap/issues/23307
57
    // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
58
    // Multiply line-height by 1em if it has no unit
59
    height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
60
 
61
    // Android Chrome type="date" is taller than the other inputs
62
    // because of "margin: 1px 24px 1px 4px" inside the shadow DOM
63
    // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
64
    margin: 0;
65
  }
66
 
67
  // Prevent excessive date input height in Webkit
68
  // https://github.com/twbs/bootstrap/issues/34433
69
  &::-webkit-datetime-edit {
70
    display: block;
71
    padding: 0;
72
  }
73
 
74
  // Placeholder
75
  &::placeholder {
76
    color: $input-placeholder-color;
77
    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
78
    opacity: 1;
79
  }
80
 
81
  // Disabled inputs
82
  //
83
  // HTML5 says that controls under a fieldset > legend:first-child won't be
84
  // disabled if the fieldset is disabled. Due to implementation difficulty, we
85
  // don't honor that edge case; we style them as disabled anyway.
86
  &:disabled {
87
    color: $input-disabled-color;
88
    background-color: $input-disabled-bg;
89
    border-color: $input-disabled-border-color;
90
    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
91
    opacity: 1;
92
  }
93
 
94
  // File input buttons theming
95
  &::file-selector-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])::file-selector-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
  &:focus {
132
    outline: 0;
133
  }
134
 
135
  &.form-control-sm,
136
  &.form-control-lg {
137
    padding-right: 0;
138
    padding-left: 0;
139
  }
140
}
141
 
142
// Form control sizing
143
//
144
// Build on `.form-control` with modifier classes to decrease or increase the
145
// height and font-size of form controls.
146
//
147
// Repeated in `_input_group.scss` to avoid Sass extend issues.
148
 
149
.form-control-sm {
150
  min-height: $input-height-sm;
151
  padding: $input-padding-y-sm $input-padding-x-sm;
152
  @include font-size($input-font-size-sm);
153
  @include border-radius($input-border-radius-sm);
154
 
155
  &::file-selector-button {
156
    padding: $input-padding-y-sm $input-padding-x-sm;
157
    margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
158
    margin-inline-end: $input-padding-x-sm;
159
  }
160
}
161
 
162
.form-control-lg {
163
  min-height: $input-height-lg;
164
  padding: $input-padding-y-lg $input-padding-x-lg;
165
  @include font-size($input-font-size-lg);
166
  @include border-radius($input-border-radius-lg);
167
 
168
  &::file-selector-button {
169
    padding: $input-padding-y-lg $input-padding-x-lg;
170
    margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
171
    margin-inline-end: $input-padding-x-lg;
172
  }
173
}
174
 
175
// Make sure textareas don't shrink too much when resized
176
// https://github.com/twbs/bootstrap/pull/29124
177
// stylelint-disable selector-no-qualifying-type
178
textarea {
179
  &.form-control {
180
    min-height: $input-height;
181
  }
182
 
183
  &.form-control-sm {
184
    min-height: $input-height-sm;
185
  }
186
 
187
  &.form-control-lg {
188
    min-height: $input-height-lg;
189
  }
190
}
191
// stylelint-enable selector-no-qualifying-type
192
 
193
.form-control-color {
194
  width: $form-color-width;
195
  height: $input-height;
196
  padding: $input-padding-y;
197
 
198
  &:not(:disabled):not([readonly]) {
199
    cursor: pointer;
200
  }
201
 
202
  &::-moz-color-swatch {
203
    border: 0 !important; // stylelint-disable-line declaration-no-important
204
    @include border-radius($input-border-radius);
205
  }
206
 
207
  &::-webkit-color-swatch {
208
    border: 0 !important; // stylelint-disable-line declaration-no-important
209
    @include border-radius($input-border-radius);
210
  }
211
 
212
  &.form-control-sm { height: $input-height-sm; }
213
  &.form-control-lg { height: $input-height-lg; }
214
}