debian-mirror-gitlab/app/assets/stylesheets/framework/forms.scss
2023-05-27 22:25:52 +05:30

311 lines
5.6 KiB
SCSS

textarea {
resize: vertical;
}
input {
border-radius: $border-radius-base;
color: $gl-text-color;
background-color: $input-bg;
}
input[type='text'].danger {
background: $input-danger-bg !important;
border-color: $red-400;
text-shadow: 0 1px 1px $white;
}
/**
* When form input type is number, Firefox & Safari show the up/down arrows
* on the right side of the input persistently, while Chrome shows it only
* on hover or focus, this fix allows us to hide the arrows in all browsers.
* You can conditionally add/remove `hide-spinners` class to have consistent
* behaviour across browsers.
*/
/* stylelint-disable property-no-vendor-prefix */
input[type='number'].hide-spinners {
-moz-appearance: textfield;
appearance: textfield;
&::-webkit-inner-spin-button,
&::-webkit-outer-spin-button {
-webkit-appearance: none;
appearance: none;
margin: 0;
}
}
/* stylelint-enable property-no-vendor-prefix */
/**
* When form input type is search, browsers add a clear input button inside
* the input field. This overlaps with the input field we have already added.
*/
/* stylelint-disable property-no-vendor-prefix */
input[type='search'] {
-webkit-appearance: textfield;
-moz-appearance: textfield;
appearance: textfield;
&::-webkit-search-cancel-button,
&::-webkit-search-results-button {
@include gl-display-none;
}
}
/* stylelint-enable property-no-vendor-prefix */
.datetime-controls {
select {
width: 100px;
}
}
.form-actions {
margin-top: 0;
margin-bottom: -$gl-padding;
padding: $gl-padding;
background-color: $gray-light;
border-top: 1px solid $border-color;
}
label {
font-weight: $gl-font-weight-bold;
&.inline-label {
margin: 0;
}
&.form-check-label,
&.custom-control-label {
font-weight: $gl-font-weight-normal;
}
&.label-bold {
font-weight: $gl-font-weight-bold;
}
}
.label-wrapper {
display: block;
margin: 0;
}
.inline-input-group {
width: 250px;
}
.custom-form-control {
width: 150px;
}
@include media-breakpoint-up(sm) {
.custom-form-control {
width: 150px;
}
}
/* Medium devices (desktops, 992px and up) */
@include media-breakpoint-up(md) {
.custom-form-control {
width: 170px;
}
}
/* Large devices (large desktops, 1200px and up) */
@include media-breakpoint-up(lg) {
.custom-form-control {
width: 200px;
}
}
.help-form .form-group {
margin-left: 0;
margin-right: 0;
.form-control {
background: $white;
font-family: $monospace-font;
}
@include media-breakpoint-down(xs) {
padding: 0 $gl-padding;
}
}
.fieldset-form fieldset {
margin-bottom: 20px;
}
.form-control {
@include box-shadow(none);
border-radius: $border-radius-default;
padding: $gl-vert-padding $gl-input-padding;
&.input-short {
width: $input-short-width;
@include media-breakpoint-up(md) {
width: $input-short-md-width;
}
}
}
.form-control,
[contenteditable=true] {
&:focus {
border-color: $gray-400;
@include gl-focus;
}
}
.select-control {
line-height: 1.3;
padding-left: 10px;
padding-right: 10px;
appearance: none;
/* stylelint-disable property-no-vendor-prefix */
-webkit-appearance: none;
-moz-appearance: none;
/* stylelint-enable property-no-vendor-prefix */
&::-ms-expand {
display: none;
}
}
.form-control-inline {
display: inline;
}
.form-control::placeholder {
color: $gl-text-color-tertiary;
}
.input-group {
.input-group-prepend,
.input-group-append {
background-color: $input-group-addon-bg;
}
.input-group-prepend:not(:first-child):not(:last-child),
.input-group-append:not(:first-child):not(:last-child) {
border-left: 0;
border-right: 0;
}
}
.form-text.text-muted {
margin-bottom: 0;
margin-top: #{$grid-size / 2};
font-size: $gl-font-size;
.invisible {
visibility: hidden;
}
}
.gl-field-error,
.invalid-feedback {
color: $red-500;
font-size: $gl-font-size;
}
.gl-show-field-errors {
.form-control:not(textarea) {
height: $input-height;
}
.gl-field-success-outline {
border: 1px solid $green-600;
&:focus {
box-shadow: 0 0 0 1px $green-600 inset, 0 1px 1px $gl-field-focus-shadow inset,
0 0 4px 0 $green-600;
border: 0 none;
}
}
.gl-field-error-outline {
border: 1px solid $red-500;
&:focus {
box-shadow: 0 0 0 1px $red-500 inset, 0 1px 1px $gl-field-focus-shadow inset,
0 0 4px 0 $gl-field-focus-shadow-error;
border: 0 none;
}
}
.gl-field-success-message {
color: $green-600;
}
.gl-field-error-message {
color: $red-500;
}
.gl-field-hint {
color: $gl-text-color;
}
}
.show-password-complexity-errors {
.form-control:not(textarea) {
height: $input-height;
}
.password-complexity-error-outline {
border: 1px solid $red-500;
&:focus {
box-shadow: 0 0 0 1px $red-500 inset, 0 1px 1px $gl-field-focus-shadow inset,
0 0 4px 0 $gl-field-focus-shadow-error;
border: 0 none;
}
}
}
.input-icon-wrapper,
.select-wrapper {
position: relative;
}
.input-icon-wrapper > .input-icon-right {
position: absolute;
right: 0.8em;
top: 50%;
transform: translateY(-50%);
color: $gray-400;
}
.input-md {
max-width: $input-md-width;
width: 100%;
}
.input-lg {
max-width: $input-lg-width;
width: 100%;
}
.input-group-text {
max-height: $input-height;
}
.add-issuable-form-input-wrapper {
&.focus {
border-color: var(--gray-700, $gray-700);
input {
@include gl-shadow-none;
}
}
.gl-show-field-errors &.form-control:not(textarea) {
height: auto;
}
}
.add-issuable-form-input-wrapper.focus,
.issue-token-remove-button:focus {
@include gl-focus;
}