@hummingbirdui/hummingbird
Version:
An open-source system designed for rapid development, without sacrificing the granular control of utility-first CSS.
99 lines (91 loc) • 2.58 kB
CSS
@utility list-group {
@layer base {
--list-group-bg: var(--background-color-subtle);
--list-group-color: var(--text-color-default);
--list-group-padding-y: --spacing(2);
--list-group-corder-color: var(--border-color-base);
--list-group-border-radius: var(--radius-lg);
--list-group-item-padding-x: --spacing(4);
--list-group-item-padding-y: --spacing(2.5);
--list-group-item-font-size: var(--text-base);
--list-group-action-color: var(--text-color-muted);
--list-group-hover-bg: var(--color-hover);
--list-group-hover-color: var(--text-color-muted);
--list-group-active-bg: var(--color-primary-lighter);
--list-group-active-color: var(--color-primary);
--list-group-disabled-bg: inherit;
--list-group-disabled-color: var(--color-disabled-color);
@apply relative flex flex-col
pl-0 mb-0 list-none
py-[var(--list-group-padding-y)]
bg-[var(--list-group-bg)]
rounded-[var(--list-group-border-radius)];
hr {
@apply border-[var(--list-group-corder-color)];
}
ul {
@apply list-none p-0 m-0;
}
}
}
@utility list-group-item {
@layer base {
@apply px-[var(--list-group-item-padding-x)]
py-[var(--list-group-item-padding-y)]
text-[var(--list-group-color)]
text-[length:var(--list-group-item-font-size)]
no-underline
leading-[1.5];
&:is(:disabled, [disabled], .disabled) {
@apply pointer-events-none
text-[var(--list-group-disabled-color)]
bg-[var(--list-group-disabled-bg)];
}
&.active {
@apply text-[var(--list-group-active-color)]
bg-[var(--list-group-active-bg)];
}
}
}
@utility list-group-item-action {
@layer base {
@apply w-full text-left
text-[var(--list-group-action-color)];
&:not(.active) {
&:hover,
&:focus {
@apply no-underline
text-[var(--list-group-hover-color)]
bg-[var(--list-group-hover-bg)];
}
&:active {
@apply text-[var(--list-group-active-color)]
bg-[var(--list-group-active-bg)];
}
}
}
}
@utility list-group-numbered {
@layer base {
counter-reset: section;
> .list-group-item::before {
content: counters(section, '.') '. ';
counter-increment: section;
}
}
}
@utility list-group-item-pinned {
@layer base {
@apply sticky top-0 font-semibold bg-muted;
}
}
@utility list-text-primary {
@layer base {
@apply text-base font-semibold text-default mb-0;
}
}
@utility list-text-secondary {
@layer base {
@apply text-sm font-normal text-muted mb-0;
}
}