mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-13 20:14:45 +00:00
feat(ui): scrollable resource tabs and railpack default
Add a shared resource-heading-tabs scroller with overflow chevrons, wire it into resource/server navbars, keep links menus outside overflow, and default new git apps to Railpack instead of Nixpacks.
This commit is contained in:
1 parent
9721fcdf11
commit
1bb54c0ca1
21 files changed
+452
-101
No files matched your search
@@ -1152,6 +1152,110 @@ body.terminal-is-fullscreen .terminal-fullscreen-shell [data-terminal-mobile-too
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Kumo-style overflow controls for resource heading tabs.
|
||||
* Circular chevrons sit over gradient fades when more tabs are off-screen.
|
||||
*/
|
||||
.resource-heading-tabs-scroller {
|
||||
--resource-heading-tabs-fade: #f5f5f5; /* neutral-100, matches pill track */
|
||||
}
|
||||
|
||||
.dark .resource-heading-tabs-scroller {
|
||||
/* Matches dark:bg-white/[0.035] pill track + panel so fade blends */
|
||||
--resource-heading-tabs-fade: color-mix(in srgb, var(--color-panel, #0a0a0a) 96.5%, white);
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control {
|
||||
position: absolute;
|
||||
inset-block: 0;
|
||||
z-index: 3;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 2.5rem;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: opacity 0.15s ease;
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control.is-visible {
|
||||
pointer-events: auto;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control.is-start {
|
||||
left: 0;
|
||||
justify-content: flex-start;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
var(--resource-heading-tabs-fade) 35%,
|
||||
color-mix(in srgb, var(--resource-heading-tabs-fade) 85%, transparent) 70%,
|
||||
transparent
|
||||
);
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control.is-end {
|
||||
right: 0;
|
||||
justify-content: flex-end;
|
||||
background: linear-gradient(
|
||||
to left,
|
||||
var(--resource-heading-tabs-fade) 35%,
|
||||
color-mix(in srgb, var(--resource-heading-tabs-fade) 85%, transparent) 70%,
|
||||
transparent
|
||||
);
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
margin-inline: 0.25rem;
|
||||
border-radius: 9999px;
|
||||
color: #737373;
|
||||
background: #ffffff;
|
||||
box-shadow:
|
||||
0 1px 2px rgba(0, 0, 0, 0.06),
|
||||
0 0 0 1px rgba(0, 0, 0, 0.08);
|
||||
transition:
|
||||
background-color 0.15s ease,
|
||||
color 0.15s ease,
|
||||
box-shadow 0.15s ease;
|
||||
}
|
||||
|
||||
.dark .resource-heading-tabs-control-icon {
|
||||
color: var(--color-fg-dim, #a3a3a3);
|
||||
background: var(--color-raised, #171717);
|
||||
box-shadow:
|
||||
0 1px 2px rgba(0, 0, 0, 0.35),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control:hover .resource-heading-tabs-control-icon,
|
||||
.resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon {
|
||||
color: #000000;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.dark .resource-heading-tabs-control:hover .resource-heading-tabs-control-icon,
|
||||
.dark .resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon {
|
||||
color: var(--color-fg, #fafafa);
|
||||
background: var(--color-raised, #171717);
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.resource-heading-tabs-control:focus-visible .resource-heading-tabs-control-icon {
|
||||
box-shadow:
|
||||
0 0 0 2px color-mix(in srgb, var(--color-coollabs, #6b16ed) 45%, transparent),
|
||||
0 0 0 1px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.resource-heading-menus,
|
||||
.resource-heading-actions {
|
||||
overflow: visible;
|
||||
|
||||
Reference in new issue
Block a user