mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
400 lines
9.4 KiB
CSS
400 lines
9.4 KiB
CSS
/* ─── Chat takeover ─────────────────────────────────────────────────────── */
|
||
|
||
.agents-takeover {
|
||
position: absolute;
|
||
inset: 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
background: var(--bg-toolbar);
|
||
z-index: 5;
|
||
view-transition-name: agents-rail;
|
||
}
|
||
|
||
/* ─── Sidebar agents section ─────────────────────────────────────────────── */
|
||
|
||
.agents-section {
|
||
padding: 0.5rem 0.75rem 0.875rem;
|
||
border-bottom: 1px solid var(--border-subtle);
|
||
background: var(--bg-toolbar);
|
||
flex-shrink: 0;
|
||
view-transition-name: agents-rail;
|
||
}
|
||
|
||
/* Hero button — real Stirling agent */
|
||
.agent-button {
|
||
display: block;
|
||
width: 100%;
|
||
padding: 0.75rem;
|
||
border: 1px solid
|
||
color-mix(in srgb, var(--mantine-color-blue-5) 40%, var(--border-subtle));
|
||
border-radius: 0.625rem;
|
||
background: linear-gradient(
|
||
135deg,
|
||
color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-6) 6%,
|
||
var(--mantine-color-body)
|
||
)
|
||
0%,
|
||
var(--mantine-color-body) 100%
|
||
);
|
||
transition:
|
||
background 150ms ease-out,
|
||
border-color 150ms ease-out;
|
||
}
|
||
|
||
.agent-button:hover {
|
||
border-color: color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-5) 65%,
|
||
var(--border-subtle)
|
||
);
|
||
background: linear-gradient(
|
||
135deg,
|
||
color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-6) 12%,
|
||
var(--mantine-color-default-hover)
|
||
)
|
||
0%,
|
||
var(--mantine-color-default-hover) 100%
|
||
);
|
||
}
|
||
|
||
.agent-button__logo {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: var(--mantine-color-blue-filled);
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
/* Coming-soon agent rows */
|
||
.agents-sidebar-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0.375rem;
|
||
margin-top: 0.375rem;
|
||
}
|
||
|
||
.agent-button--coming-soon {
|
||
display: block;
|
||
width: 100%;
|
||
padding: 0.75rem;
|
||
border: 1px solid var(--border-subtle);
|
||
border-radius: 0.625rem;
|
||
background: var(--mantine-color-body);
|
||
cursor: not-allowed !important;
|
||
opacity: 0.65;
|
||
transition:
|
||
opacity 180ms ease-out,
|
||
transform 180ms ease-out,
|
||
border-color 120ms ease-out;
|
||
}
|
||
|
||
@starting-style {
|
||
.agent-button--coming-soon {
|
||
opacity: 0;
|
||
transform: translateY(5px);
|
||
}
|
||
}
|
||
|
||
.agent-button--coming-soon:hover {
|
||
opacity: 0.85;
|
||
border-color: color-mix(
|
||
in srgb,
|
||
var(--mantine-color-gray-4) 60%,
|
||
var(--border-subtle)
|
||
);
|
||
background: var(--mantine-color-default-hover);
|
||
}
|
||
|
||
.agent-button__icon-plain {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 1.75rem;
|
||
height: 1.75rem;
|
||
color: var(--mantine-color-dimmed);
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.agents-view-all {
|
||
all: unset;
|
||
display: block;
|
||
width: 100%;
|
||
margin-top: 0.375rem;
|
||
padding: 0.25rem 0.625rem;
|
||
font-size: 0.75rem;
|
||
font-weight: 500;
|
||
color: var(--mantine-color-dimmed);
|
||
text-align: center;
|
||
cursor: pointer;
|
||
opacity: 0.7;
|
||
border-radius: 0.375rem;
|
||
transition: opacity 120ms ease-out;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.agents-view-all:hover {
|
||
opacity: 1;
|
||
}
|
||
|
||
/* Dark mode — sidebar */
|
||
[data-mantine-color-scheme="dark"] .agent-button--coming-soon {
|
||
background: transparent;
|
||
border-color: color-mix(
|
||
in srgb,
|
||
var(--mantine-color-dark-4) 60%,
|
||
transparent
|
||
);
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agent-button--coming-soon:hover {
|
||
border-color: var(--mantine-color-dark-3);
|
||
background: var(--mantine-color-dark-6);
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agent-button {
|
||
border-color: color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-7) 55%,
|
||
var(--border-subtle)
|
||
);
|
||
background: linear-gradient(
|
||
135deg,
|
||
color-mix(in srgb, var(--mantine-color-blue-9) 35%, transparent) 0%,
|
||
transparent 100%
|
||
);
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agent-button:hover {
|
||
border-color: color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-5) 60%,
|
||
var(--border-subtle)
|
||
);
|
||
background: linear-gradient(
|
||
135deg,
|
||
color-mix(
|
||
in srgb,
|
||
var(--mantine-color-blue-8) 45%,
|
||
rgba(255, 255, 255, 0.04)
|
||
)
|
||
0%,
|
||
rgba(255, 255, 255, 0.04) 100%
|
||
);
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agent-button__logo {
|
||
color: var(--mantine-color-blue-3, var(--mantine-color-blue-filled));
|
||
}
|
||
|
||
/* ─── Collapsed-rail agent button ────────────────────────────────────────── */
|
||
|
||
.agents-collapsed-btn {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 2rem;
|
||
height: 2rem;
|
||
padding: 0;
|
||
border: none;
|
||
border-radius: 0.5rem;
|
||
background: transparent;
|
||
color: var(--mantine-color-blue-filled);
|
||
cursor: pointer;
|
||
transition: background 120ms ease-out;
|
||
}
|
||
|
||
.agents-collapsed-btn:hover {
|
||
background: var(--mantine-color-default-hover);
|
||
}
|
||
|
||
/* ─── Fullscreen hero card ───────────────────────────────────────────────── */
|
||
|
||
/*
|
||
* .tool-panel__fullscreen-group--agents gives the gradient border via the
|
||
* padding-box / border-box trick. We only override the padding-box with a
|
||
* very light tint so the card doesn't read as a colourful surface.
|
||
*/
|
||
.agents-hero {
|
||
padding: 1.25rem 1.5rem 1.5rem;
|
||
border-radius: 1rem;
|
||
background:
|
||
linear-gradient(
|
||
125deg,
|
||
color-mix(in srgb, var(--mantine-color-blue-1) 35%, white) 0%,
|
||
color-mix(in srgb, var(--mantine-color-violet-1) 45%, white) 50%,
|
||
color-mix(in srgb, var(--mantine-color-pink-0) 35%, white) 100%
|
||
)
|
||
padding-box,
|
||
linear-gradient(
|
||
135deg,
|
||
var(--mantine-color-blue-6) 0%,
|
||
var(--mantine-color-violet-6) 45%,
|
||
var(--mantine-color-pink-6) 100%
|
||
)
|
||
border-box;
|
||
}
|
||
|
||
/* Body: left CTA + right grid */
|
||
.agents-hero__body {
|
||
display: flex;
|
||
gap: 2rem;
|
||
align-items: flex-start;
|
||
}
|
||
|
||
/* ── Left CTA — plain content, only the button inside is interactive ── */
|
||
.agents-hero__cta {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0;
|
||
flex: 0 0 18rem;
|
||
box-sizing: border-box;
|
||
padding: 0.25rem 0;
|
||
}
|
||
|
||
.agents-hero__cta-logo {
|
||
color: var(--mantine-color-blue-filled);
|
||
margin-bottom: 0.625rem;
|
||
}
|
||
|
||
.agents-hero__cta-headline {
|
||
font-size: 1.375rem;
|
||
}
|
||
|
||
.agents-hero__cta-btn {
|
||
all: unset;
|
||
margin-top: 1.25rem;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
padding: 0.4375rem 1rem;
|
||
border-radius: 0.5rem;
|
||
background: var(--mantine-color-blue-6);
|
||
color: white;
|
||
font-size: 0.8125rem;
|
||
font-weight: 600;
|
||
line-height: 1;
|
||
width: fit-content;
|
||
cursor: pointer;
|
||
transition: background 0.15s ease;
|
||
}
|
||
|
||
.agents-hero__cta-btn:hover {
|
||
background: var(--mantine-color-blue-7);
|
||
}
|
||
|
||
.agents-hero__cta-btn:focus-visible {
|
||
outline: 2px solid var(--mantine-color-blue-5);
|
||
outline-offset: 3px;
|
||
border-radius: 0.5rem;
|
||
}
|
||
|
||
/* ── Right 2×3 grid — sizes to content, pushed to the right ── */
|
||
.agents-hero__grid {
|
||
flex: 0 0 auto;
|
||
margin-left: auto;
|
||
display: grid;
|
||
/* auto columns: each column = widest item in that column */
|
||
grid-template-columns: repeat(2, auto);
|
||
gap: 0.625rem;
|
||
align-content: start;
|
||
align-self: start;
|
||
}
|
||
|
||
/* Solid white cards — no opacity so the white is opaque */
|
||
.agents-hero__grid-item {
|
||
all: unset;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 0.75rem;
|
||
padding: 0.75rem 0.875rem;
|
||
border: 1px solid rgba(0, 0, 0, 0.07);
|
||
border-radius: 0.75rem;
|
||
background: var(--mantine-color-body);
|
||
cursor: not-allowed;
|
||
box-sizing: border-box;
|
||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
||
}
|
||
|
||
.agents-hero__grid-icon {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
color: var(--mantine-color-blue-5);
|
||
}
|
||
|
||
.agents-hero__grid-body {
|
||
min-width: 0;
|
||
flex: 1;
|
||
}
|
||
|
||
/* ── Dark mode — fullscreen ── */
|
||
[data-mantine-color-scheme="dark"] .agents-hero {
|
||
background:
|
||
linear-gradient(
|
||
125deg,
|
||
color-mix(in srgb, var(--mantine-color-blue-9) 55%, #1a1b2e) 0%,
|
||
color-mix(in srgb, var(--mantine-color-violet-9) 45%, #1a1b2e) 50%,
|
||
color-mix(in srgb, var(--mantine-color-pink-9) 40%, #1a1b2e) 100%
|
||
)
|
||
padding-box,
|
||
linear-gradient(
|
||
135deg,
|
||
var(--mantine-color-blue-6) 0%,
|
||
var(--mantine-color-violet-6) 45%,
|
||
var(--mantine-color-pink-6) 100%
|
||
)
|
||
border-box;
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agents-hero__cta-logo {
|
||
color: var(--mantine-color-blue-3);
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agents-hero__grid-item {
|
||
background: var(--fullscreen-bg-item);
|
||
border-color: var(--fullscreen-border-subtle-70);
|
||
box-shadow: none;
|
||
}
|
||
|
||
[data-mantine-color-scheme="dark"] .agents-hero__grid-icon {
|
||
color: var(--mantine-color-blue-3);
|
||
}
|
||
|
||
/* ─── agents-rail view transition — slide up ─────────────────────────────── */
|
||
|
||
::view-transition-old(agents-rail) {
|
||
animation: vt-agents-out 150ms ease-out forwards;
|
||
}
|
||
|
||
::view-transition-new(agents-rail) {
|
||
animation: vt-agents-in 260ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
|
||
}
|
||
|
||
@keyframes vt-agents-out {
|
||
to {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
@keyframes vt-agents-in {
|
||
from {
|
||
opacity: 0;
|
||
transform: translateY(10px);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
::view-transition-old(agents-rail),
|
||
::view-transition-new(agents-rail) {
|
||
animation-duration: 1ms !important;
|
||
}
|
||
}
|