propapier/app/assets/styles/form/textfield.css

67 lines
1.6 KiB
CSS
Executable file

.TextField {
--border-color: var(--color-light);
--label-color: var(--color-middle);
--label-position-top: var(--font-size-normal);
--label-font-size: var(--font-size-normal);
--icon-color: var(--color-main-dark);
--message-color: var(--color-middle);
position: relative;
flex: 25% 1 0;
&:focus-within {
--border-color: var(--color-main-dark);
}
&:focus-within,
&:has(input:not(:placeholder-shown)) {
--icon-color: var(--color-main-dark);
--label-color: var(--color-main-dark);
--label-position-top: calc(-1 * var(--font-size-normal));
--label-font-size: var(--font-size-s);
}
&.error {
--label-color: var(--color-error);
--icon-color: var(--color-error);
--border-color: var(--color-error);
--message-color: var(--color-error);
}
& .wrapper {
display: flex;
align-items: center;
padding: var(--padding-xxs) var(--padding-xs);
border: 1px solid var(--border-color);
border-radius: var(--radius-default);
}
& label {
position: absolute;
background: var(--color-lightest);
padding: var(--padding-xxs) 0;
left: var(--padding-s);
color: var(--label-color);
top: var(--label-position-top);
font-size: var(--font-size-normal);
transition: var(--transition-default);
}
& .icon {
color: var(--icon-color);
}
& input {
all: unset;
padding: var(--padding-s);
font-size: var(--font-size-normal);
width: 100%;
flex: 25% 1 0;
color: var(--color-darkest);
}
& span {
color: var(--message-color);
font-size: var(--font-size-xs);
}
}