vuestic-ui
Version:
Vue 3 UI Framework
234 lines • 7.22 kB
CSS
:root,
:host {
--va-input-wrapper-width: var(--va-form-element-default-width);
--va-input-wrapper-color: var(--va-primary);
--va-input-wrapper-background: var(--va-background-element, #f5f9fb);
--va-input-wrapper-background-opacity: 1;
--va-input-wrapper-border-width: var(--va-form-element-border-width);
--va-input-wrapper-border-color: var(--va-background-border);
--va-input-wrapper-border-radius: var(--va-form-element-border-radius);
--va-input-wrapper-min-width: var(--va-form-element-min-width);
--va-input-wrapper-display: inline-block;
--va-input-wrapper-cursor: text;
--va-input-wrapper-min-height: 36px;
--va-input-wrapper-validation-background-opacity: 0.1;
/* Counter container */
--va-input-wrapper-counter-line-height: 1.5;
--va-input-wrapper-counter-font-size: 0.8rem;
--va-input-wrapper-counter-color: var(--va-secondary);
/* Content Wrapper */
--va-input-wrapper-horizontal-padding: 0.5rem;
--va-input-wrapper-items-gap: 0.5rem;
/* Validation */
--va-input-wrapper-success-background: var(--va-input-success-color);
--va-input-wrapper-error-background: var(--va-input-error-color);
}
.va-input-wrapper {
--va-input-wrapper-background: var(--va-background-computed);
--va-input-wrapper-color: var(--va-color-computed);
--va-input-wrapper-text-color: var(--va-text-color-computed);
cursor: var(--va-input-wrapper-cursor);
font-family: var(--va-font-family);
display: inline-block;
flex-direction: column;
vertical-align: middle;
min-width: auto;
max-width: 100%;
flex-grow: 0;
flex-shrink: 1;
}
.va-input-wrapper__fieldset {
border: none;
}
.va-input-wrapper__size-keeper {
width: var(--va-input-wrapper-width);
min-width: 100%;
max-width: 100%;
display: flex;
flex-direction: column;
height: 100%;
}
.va-input-wrapper__container {
display: flex;
align-items: center;
gap: var(--va-input-content-items-gap);
flex: 1;
}
.va-input-wrapper__field {
position: relative;
display: flex;
align-items: center;
flex: 1;
min-height: var(--va-input-wrapper-min-height);
border-color: var(--va-input-wrapper-border-color);
border-style: solid;
border-width: var(--va-input-wrapper-border-width);
border-radius: var(--va-input-wrapper-border-radius);
padding: 0 var(--va-input-wrapper-horizontal-padding);
gap: var(--va-input-wrapper-items-gap);
z-index: 0;
overflow: hidden;
color: var(--va-text-color-computed);
align-self: stretch;
z-index: 0;
}
.va-input-wrapper__field::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: "";
background: var(--va-input-wrapper-background);
opacity: var(--va-input-wrapper-background-opacity);
z-index: -1;
transition: all 0.3s ease-in-out;
}
.va-input-wrapper__field input,
.va-input-wrapper__field textarea {
color: inherit;
}
.va-input-wrapper > .va-message-list {
margin-top: 2px;
}
.va-input-wrapper__prepend-inner, .va-input-wrapper__append-inner {
display: flex;
justify-content: center;
align-content: center;
align-items: center;
}
.va-input-wrapper__text {
width: 100%;
position: relative;
min-height: var(--va-input-line-height);
display: flex;
align-items: center;
align-self: stretch;
overflow: hidden;
caret-color: var(--va-input-wrapper-text-color);
color: var(--va-input-wrapper-text-color);
}
.va-input-wrapper__text input::-moz-placeholder, .va-input-wrapper__text textarea::-moz-placeholder {
color: inherit;
opacity: 0.5;
}
.va-input-wrapper__text input::placeholder,
.va-input-wrapper__text textarea::placeholder {
color: inherit;
opacity: 0.5;
}
.va-input-wrapper__text input {
scrollbar-color: var(--va-input-scroll-color) transparent;
scrollbar-width: thin;
transition: scrollbar-color 0.3s ease-in-out;
width: 100%;
min-height: var(--va-input-line-height);
background-color: transparent;
border-style: none;
outline: none;
line-height: var(--va-input-line-height);
font-size: var(--va-input-font-size);
font-family: inherit;
font-weight: var(--va-input-font-weight);
font-style: var(--va-input-font-style);
font-stretch: var(--va-input-font-stretch);
letter-spacing: var(--va-input-letter-spacing);
cursor: inherit;
align-self: stretch;
}
.va-input-wrapper__text input::-webkit-scrollbar {
width: 4px;
height: 4px;
}
.va-input-wrapper__text input::-webkit-scrollbar-track {
box-shadow: none;
border-radius: 10px;
}
.va-input-wrapper__text input::-webkit-scrollbar-thumb {
background: var(--va-input-scroll-color);
opacity: 0.3;
border-radius: 2px;
-webkit-transition: background 0.3s ease-in-out;
transition: background 0.3s ease-in-out;
}
.va-input-wrapper__icons {
display: flex;
align-items: center;
justify-content: center;
}
.va-input-wrapper__icons__reset:focus {
outline: 2px solid var(--va-focus) ;
border-radius: 2px;
}
.va-input-wrapper__counter-wrapper {
display: flex;
align-items: center;
justify-content: flex-end;
color: var(--va-input-wrapper-counter-color);
font-size: var(--va-input-wrapper-counter-font-size);
line-height: var(--va-input-wrapper-counter-line-height);
}
.va-input-wrapper__label {
max-width: 100%;
width: 100%;
display: block;
}
.va-input-wrapper__label--inner {
position: absolute;
left: 0;
top: 0;
padding-top: 1px;
}
.va-input-wrapper__label--outer {
margin-bottom: 2px;
}
.va-input-wrapper--labeled-inner .va-input-wrapper__text {
padding-top: 12px;
box-sizing: content-box;
}
.va-input-wrapper--labeled-inner .va-input-wrapper__field {
height: calc(var(--va-input-wrapper-min-height) - var(--va-input-wrapper-border-width) * 2);
}
.va-input-wrapper--labeled-inner textarea {
margin-top: 0;
}
.va-input-wrapper--solid {
--va-input-wrapper-border-color: var(--va-input-color);
}
.va-input-wrapper--bordered .va-input-wrapper__field {
border-top-left-radius: var(--va-input-wrapper-border-radius);
border-top-right-radius: var(--va-input-wrapper-border-radius);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
border-left-width: 0;
border-right-width: 0;
border-top-width: 0;
}
.va-input-wrapper--bordered .va-input-wrapper__field::after {
bottom: 0;
border-color: var(--va-input-wrapper-border-color);
border-bottom-style: solid;
}
.va-input-wrapper--error {
--va-input-wrapper-border-color: var(--va-input-wrapper-error-background, var(--va-danger));
--va-input-wrapper-background: var(--va-input-wrapper-error-background, var(--va-danger));
--va-input-wrapper-background-opacity: var(--va-input-wrapper-validation-background-opacity);
}
.va-input-wrapper--success {
--va-input-wrapper-border-color: var(--va-input-wrapper-success-background, var(--va-success));
--va-input-wrapper-background: var(--va-input-wrapper-success-background, var(--va-success));
--va-input-wrapper-background-opacity: var(--va-input-wrapper-validation-background-opacity);
}
.va-input-wrapper--focused {
--va-input-wrapper-border-color: var(--va-input-wrapper-color);
}
.va-input-wrapper--readonly {
cursor: default;
}
.va-input-wrapper--disabled {
cursor: default;
opacity: 0.4;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}