@koalarx/ui
Version:
Koala UI is a modern and accessible component library designed to speed up interface development in Angular projects. With simple integration and clear documentation, you can easily build robust and visually appealing applications.
187 lines (163 loc) • 3.83 kB
CSS
.validator-hint.show {
visibility: visible ;
color: var(--color-error);
display: block;
}
kl-datatable .input,
kl-datatable .select,
kl-datatable .textarea {
--bg-input: var(--color-base-100);
}
.input,
.select,
.textarea,
.input span,
.select span.autocomplete-label,
.textarea span {
background-color: var(--bg-input);
}
.input:focus,
.select:focus,
button:focus {
outline: none;
box-shadow: 0 0 0 3px var(--color-neutral-600) ;
}
.input:has(.ng-touched.ng-invalid),
.select:has(.ng-touched.ng-invalid),
.textarea:has(.ng-touched.ng-invalid) {
--input-color: var(--color-error);
}
.hint-content {
display: flex;
align-items: center;
gap: 0.5rem;
opacity: 0.5;
padding: 0.3rem 0 0.5rem;
color: var(--color-neutral-700);
font-size: var(--text-xs);
}
.dark .hint-content {
color: var(--color-neutral-200);
}
kl-select .kl-select-container {
position: relative;
overflow: unset;
}
kl-select .kl-select-label {
position: absolute;
display: block;
top: 0.5rem;
left: 1rem;
font-size: 1rem;
transition: all 0.1s ease;
pointer-events: none;
z-index: 1;
}
kl-select
.has-value:has(.kl-select-content .selectcontent > *)
.kl-select-label {
font-size: 0.75rem;
top: -0.6rem;
left: 0.6rem;
padding: 0 0.3rem;
}
kl-select .has-value .kl-select-label > span {
position: relative;
z-index: 2;
}
kl-select .has-value .kl-select-label:after {
content: "";
position: absolute;
width: 100%;
height: 3px;
background-color: var(--bg-input);
bottom: 0.4rem;
left: 0;
z-index: 1;
}
kl-select .has-value:focus .kl-select-label:after {
height: 4px;
}
kl-select .kl-select-button {
position: relative;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
min-height: calc(var(--spacing) * 10);
background-color: var(--bg-input);
padding-inline: 0.75rem;
border-radius: var(--radius-sm);
border: 1px solid var(--color-neutral-600);
transition: opacity 0.3s;
}
kl-select .picker {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
font-size: 0.8rem;
transition: rotate 0.3s ease;
color: var(--color-neutral-400);
}
kl-select .kl-select-button:popover-open .picker {
rotate: 180deg;
}
kl-select .kl-select-options-container[popover] {
display: none;
}
kl-select .kl-select-options-container[popover] {
position: relative;
width: var(--select-width);
box-sizing: border-box;
margin-block-start: 0.5rem;
margin-block-end: 0.5rem;
padding: 0;
border-radius: var(--radius-md);
border: 1px solid var(--color-neutral-600);
transform: translateY(-1rem);
opacity: 0;
overflow: hidden;
transition:
transform 0.3s ease allow-discrete,
opacity 0.3s ease allow-discrete,
display 0.3s allow-discrete,
overlay 0.3s allow-discrete,
height 0.3s allow-discrete;
position-area: var(--select-position-area, bottom);
}
kl-select .kl-select-options-container:popover-open {
transform: translateY(0);
opacity: 1;
display: flex;
}
@starting-style {
kl-select .kl-select-options-container:popover-open {
transform: translateY(-1rem);
opacity: 0;
}
}
kl-select .kl-select-option-content {
display: flex;
justify-content: space-between;
padding: 0.25rem 0.5rem;
border-radius: var(--radius-md);
white-space: break-spaces;
transition: background-color 0.1s;
}
kl-select .kl-select-option-content input {
-webkit-appearance: none;
appearance: none;
}
kl-select .kl-select-option-content:has(input:checked) {
transition: background-color 0.1s;
}
kl-select .kl-select-option-content:has(input:checked):after {
content: "\f00c";
color: var(--color-success);
font-family: "Font Awesome 6 Free";
font-weight: 900;
font-size: 1rem;
margin: auto;
order: 1;
}