Files
buzz/packages/ui/src/styles/layout.css
2026-09-09 10:32:35 -07:00

193 lines
4.6 KiB
CSS

@layer components {
.bui-number-group {
display: flex;
padding: 0;
overflow: hidden;
width: fit-content;
}
.bui-number-input {
width: 5rem;
min-width: 0;
text-align: center;
background: transparent;
border: 0;
}
.bui-icon-control {
display: inline-flex;
align-items: center;
justify-content: center;
padding: var(--space-control-gap);
border-radius: var(--radius-control);
cursor: pointer;
min-width: var(--control-sm);
min-height: var(--control-sm);
}
.bui-icon-control:hover {
background: var(--bg-hover);
}
.bui-icon-control svg {
width: 1rem;
height: 1rem;
}
.bui-otp-input {
width: 2.5rem;
text-align: center;
padding: var(--space-control-gap);
}
.bui-scroll-area {
position: relative;
height: 12rem;
}
.bui-scroll-viewport {
height: 100%;
border-radius: inherit;
overscroll-behavior: contain;
}
.bui-scrollbar {
display: flex;
width: var(--size-scrollbar);
margin: 0.25rem;
border-radius: var(--radius-pill);
background: transparent;
}
.bui-scrollbar[data-orientation="horizontal"] {
width: auto;
height: var(--size-scrollbar);
}
.bui-scroll-thumb {
width: 100%;
background: var(--border-primary);
border-radius: inherit;
}
.bui-scrollbar[data-orientation="horizontal"] .bui-scroll-thumb {
height: 100%;
}
.bui-toast-viewport {
position: fixed;
bottom: var(--space-panel-inset);
right: var(--space-panel-inset);
width: min(22rem, calc(100vw - 3rem));
z-index: var(--layer-toast);
display: flex;
flex-direction: column;
gap: var(--space-control-gap);
}
.bui-toast {
opacity: 1;
transform: translate(
var(--toast-swipe-movement-x, 0px),
var(--toast-swipe-movement-y, 0px)
);
transition:
opacity var(--duration-enter) var(--ease-standard),
transform var(--duration-enter) var(--ease-standard);
background: var(--bg-float);
border: 1px solid var(--border-secondary);
border-radius: var(--radius-menu);
padding: var(--space-control-inset);
box-shadow: var(--shadow-sm);
display: flex;
align-items: start;
justify-content: space-between;
}
.bui-toast[data-starting-style],
.bui-toast[data-ending-style] {
opacity: 0;
transform: translateY(var(--space-panel-inset));
}
.bui-toast[data-ending-style] {
transition-duration: var(--duration-exit);
}
.bui-toast[data-ending-style][data-swipe-direction="right"] {
transform: translateX(100%);
}
.bui-toast[data-ending-style][data-swipe-direction="left"] {
transform: translateX(-100%);
}
.bui-toast[data-ending-style][data-swipe-direction="up"] {
transform: translateY(-100%);
}
.bui-toast[data-ending-style][data-swipe-direction="down"] {
transform: translateY(100%);
}
.bui-skeleton {
min-height: var(--control-md);
border-radius: var(--radius-control);
background: var(--bg-inset);
animation: bui-pulse 2s ease-in-out infinite;
}
.bui-spin {
animation: bui-spin 1s linear infinite;
}
.bui-empty {
display: grid;
justify-items: center;
text-align: center;
gap: var(--space-control-inset);
padding: var(--space-page-inset);
}
.bui-table-scroll {
overflow-x: auto;
}
.bui-table {
@apply text-body;
border-collapse: collapse;
width: 100%;
text-align: start;
}
.bui-table th {
@apply text-label text-secondary;
}
.bui-table th,
.bui-table td {
text-align: start;
padding: var(--space-control-inset);
border-bottom: 1px solid var(--border-tertiary);
white-space: nowrap;
}
.bui-table caption {
text-align: start;
margin-bottom: var(--space-control-inset);
}
.bui-breadcrumb {
display: flex;
flex-wrap: wrap;
gap: var(--space-control-gap);
list-style: none;
padding: 0;
}
.bui-breadcrumb li + li::before {
content: "/";
color: var(--text-tertiary);
padding-inline-end: var(--space-control-gap);
}
.bui-sidebar {
display: flex;
flex-direction: column;
gap: 0.25rem;
padding: var(--space-control-inset);
border-radius: var(--radius-container);
background: var(--bg-inset);
}
.bui-sidebar a {
@apply text-label;
padding: var(--space-control-gap) var(--space-control-inset);
border-radius: var(--radius-control);
}
.bui-sidebar a[aria-current="page"] {
background: var(--bg-panel);
}
.bui-context-target {
border: 1px dashed var(--border-primary);
border-radius: var(--radius-menu);
padding: var(--space-page-inset);
text-align: center;
}
}
@layer components {
.bui-toast[data-limited] {
display: none;
}
}