Files
Cleanuparr/code/frontend/src/styles/_data-toolbar.scss
2026-04-20 15:37:45 +03:00

84 lines
2.0 KiB
SCSS

// =============================================================================
// Shared Data Page Toolbar
// Used by data-browsing pages (events, logs) for filter/action bars.
// Usage: @use 'data-toolbar' as *;
// =============================================================================
// Pins a page header bar to the top of the shell scroll container
@mixin sticky-page-header {
position: sticky;
top: calc(-1 * var(--content-padding, var(--space-6)));
z-index: var(--z-sticky);
background: var(--surface-overlay);
backdrop-filter: blur(20px) saturate(1.4);
-webkit-backdrop-filter: blur(20px) saturate(1.4);
padding-top: var(--content-padding, var(--space-6));
padding-bottom: var(--space-3);
padding-left: var(--content-padding, var(--space-6));
padding-right: var(--content-padding, var(--space-6));
margin-top: calc(-1 * var(--content-padding, var(--space-6)));
margin-left: calc(-1 * var(--content-padding, var(--space-6)));
margin-right: calc(-1 * var(--content-padding, var(--space-6)));
box-shadow: 0 10px 18px -14px rgba(0, 0, 0, 0.35);
}
@mixin data-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-4);
margin-bottom: var(--space-4);
flex-wrap: wrap;
&__filters {
display: flex;
align-items: flex-end;
gap: var(--space-3);
flex: 1;
min-width: 0;
flex-wrap: wrap;
app-select {
width: 180px;
flex-shrink: 0;
}
}
&__actions {
display: flex;
align-items: center;
gap: var(--space-2);
flex-wrap: wrap;
}
@media (max-width: 1024px) {
&__filters {
app-select {
width: 150px;
flex-shrink: 1;
}
}
}
@media (max-width: 768px) {
flex-direction: column;
align-items: stretch;
&__filters {
app-select {
width: 100%;
flex-shrink: 1;
}
app-input {
width: 100%;
min-width: 0;
}
}
&__actions {
justify-content: flex-end;
}
}
}