@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.
231 lines (202 loc) • 5.05 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;
padding: 0.5rem 0 0;
color: var(--color-neutral-700);
font-size: 0.65rem;
text-transform: uppercase;
}
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(selectedcontent > *) .kl-select-label,
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 select,
kl-select ::picker(select) {
appearance: base-select;
}
kl-select select,
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 select::picker-icon {
display: none;
}
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 select:open .picker,
kl-select .kl-select-button:popover-open .picker {
rotate: 180deg;
}
kl-select .kl-select-options-container[popover] {
display: none;
}
kl-select ::picker(select),
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;
background-color: var(--color-base-300);
border-radius: var(--radius-lg);
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 ::picker(select):popover-open,
kl-select .kl-select-options-container.with-popover:popover-open {
transform: translateY(0);
opacity: 1;
display: flex;
}
kl-select select {
anchor-name: --select-content;
}
kl-select select selectedcontent span:not(.not-animate) {
position: relative;
animation: 0.5s ease bounce;
}
@starting-style {
kl-select ::picker(select):popover-open,
kl-select .kl-select-options-container.with-popover:popover-open {
transform: translateY(-1rem);
opacity: 0;
}
}
kl-select select option,
kl-select .kl-select-options-container.with-popover .kl-select-option-content {
display: flex;
justify-content: space-between;
padding: 0.25rem 0.5rem;
border-radius: var(--radius-md);
color: var(--color-neutral-300);
white-space: break-spaces;
}
kl-select
.kl-select-options-container.with-popover
.kl-select-option-content
input {
-webkit-appearance: none;
appearance: none;
}
kl-select select option:focus,
kl-select
.kl-select-options-container.with-popover
.kl-select-option-content
input:focus {
background-color: rgba(63, 63, 63, 0.7);
outline: none;
transition: background-color 0.1s;
}
kl-select select option:checked,
kl-select
.kl-select-options-container.with-popover
.kl-select-option-content:has(input:checked) {
background-color: rgba(63, 63, 63, 0.7);
transition: background-color 0.1s;
}
kl-select select option::checkmark,
kl-select
.kl-select-options-container.with-popover
.kl-select-option-content:has(input:checked):after {
content: "\f00c";
color: var(--color-neutral-500);
font-family: "Font Awesome 6 Free";
font-weight: 900;
font-size: 1rem;
margin-left: auto;
order: 1;
}
kl-select .kl-select-options-container.with-popover label.active {
background-color: rgba(63, 63, 63, 0.7);
transition: background-color 0.1s;
}