Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 41 additions & 20 deletions apps/web/src/features/first-run/FirstRunHome.css
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
.first-run-home { display: flex; flex-direction: column; width: 100%; height: 100dvh; min-height: 0; overflow: hidden; color: var(--fg); background: radial-gradient(ellipse at 78% 20%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 62%), var(--surface); animation: first-run-screen 560ms var(--ease-settle) both; }
.first-run-toolbar { position: relative; z-index: 10; display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 36px; }
.first-run-home { display: flex; flex-direction: column; width: 100%; height: 100dvh; min-height: 0; overflow: hidden; color: var(--fg); background: var(--surface); }
.first-run-toolbar { position: relative; z-index: 10; display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 12px 24px; border-bottom: 1px solid var(--line); }
.first-run-toolbar .appearance-menu-panel { position: absolute; top: calc(100% + 8px); bottom: auto; left: 0; right: auto; }
.first-run-toolbar-preferences { display: flex; align-items: center; gap: 16px; }
.first-run-chapters, .first-run-stage-content, .first-run-footer { width: 100%; max-width: 1280px; margin-inline: auto; }
.first-run-chapters, .first-run-stage-content, .first-run-footer { width: 100%; max-width: 1080px; min-width: 0; margin-inline: auto; }
.first-run-skip, .first-run-text-button { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 0; padding: 7px 0; color: var(--fg-muted); font-size: 12px; white-space: nowrap; transition: color 160ms ease; }
.first-run-skip:hover, .first-run-text-button:hover { color: var(--fg); }
.first-run-chapters { display: flex; flex: 0 0 auto; gap: 4px; padding: 0 36px 18px; }
.first-run-chapters button { position: relative; flex: 1; display: flex; align-items: center; gap: 10px; padding: 15px 18px; border: 1px solid transparent; border-radius: 9px; background: transparent; text-align: left; color: var(--fg-muted); font-size: 12px; transition: color 220ms ease, background 220ms ease, border-color 220ms ease; }
.first-run-chapters { display: flex; flex: 0 0 auto; gap: 8px; padding: 24px 24px 0; }
.first-run-chapters button { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid transparent; border-radius: 9px; background: transparent; text-align: left; color: var(--fg-muted); font-size: 12px; transition: color 220ms ease, background 220ms ease, border-color 220ms ease; }
.first-run-chapters button:hover { background: var(--hover); }
.first-run-chapters button.active { color: var(--fg); background: var(--surface-subtle); border-color: var(--line); }
.first-run-chapters button.active::after { content: ""; position: absolute; width: 20px; height: 2px; left: 18px; bottom: -1px; background: var(--accent); animation: first-run-indicator 400ms var(--ease-spring); }
.first-run-chapter-number { font-size: 10px; font-variant-numeric: tabular-nums; color: var(--fg-muted); }
.first-run-chapters small { margin-left: auto; font-size: 10px; color: var(--fg-muted); }
.first-run-stage { flex: 1; min-height: 0; overflow: auto; padding: 12px 36px 24px; }
.first-run-stage-content { min-height: 100%; display: flex; flex-direction: column; justify-content: center; animation: first-run-enter 540ms cubic-bezier(.16, 1, .3, 1) both; }
.first-run-access { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: min(620px, 70vh); gap: clamp(40px, 6vw, 96px); align-items: center; }
.first-run-story { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 32px 0 32px 24px; }
.first-run-stage { flex: 1; min-height: 0; overflow: auto; padding: 24px; }
.first-run-stage-content { display: flex; flex-direction: column; gap: 24px; }
.first-run-access { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; align-items: start; }
.first-run-story { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; padding: 20px 0; }
.first-run-section-number { display: inline-block; margin-bottom: 14px; color: var(--fg-muted); font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; }
.first-run-story h2, .first-run-step-heading h2 { margin: 0 0 12px; font-size: clamp(28px, 3vw, 44px); font-weight: 550; line-height: 1.25; letter-spacing: -.035em; }
.first-run-story p { max-width: 300px; margin: 0 0 28px; color: var(--fg-muted); font-size: 13px; line-height: 1.7; }
.first-run-story h2, .first-run-step-heading h2 { margin: 0 0 12px; font-size: 24px; font-weight: 550; line-height: 1.25; letter-spacing: -.035em; }
.first-run-story p { max-width: 380px; margin: 0 0 20px; color: var(--fg-muted); font-size: 13px; line-height: 1.7; }
.first-run-home .button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.first-run-access-scene { display: flex; flex-direction: column; align-items: stretch; justify-content: center; padding: 32px; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-floating); background: radial-gradient(ellipse at 50% 32%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 68%), var(--surface-subtle); }
.first-run-access-scene { display: flex; flex-direction: column; align-items: stretch; justify-content: center; min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-control); background: var(--surface); }
.first-run-access-brand { display: flex; align-items: center; gap: 17px; margin-bottom: 18px; }
.first-run-access-brand .first-run-core-symbol { width: 50px; height: 50px; margin: 0; border-radius: 16px; flex-shrink: 0; }
.first-run-access-brand .first-run-core-symbol::before { inset: -7px; }
.first-run-access-brand .first-run-core-symbol { width: 32px; height: 32px; margin: 0; border-radius: 8px; flex-shrink: 0; }
.first-run-access-brand .first-run-core-symbol::before { display: none; }
.first-run-access-brand h3 { margin: 0; }
.first-run-copy-access { align-self: flex-start; margin-bottom: 24px; }
.first-run-access-scene .api-key-panel { padding-top: 22px; border-top: 1px solid var(--line); }
Expand All @@ -36,10 +36,10 @@
.first-run-access-details > div + div { border-top: 1px solid var(--line); }
.first-run-access-details dt { margin-bottom: 5px; color: var(--fg-muted); font-size: 10px; }
.first-run-access-details dd { margin: 0; font-size: 12px; overflow-wrap: anywhere; user-select: all; }
.first-run-step-heading { display: flex; align-items: flex-start; justify-content: space-between; padding: 30px 32px 24px; gap: 20px; }
.first-run-step-heading { display: flex; align-items: flex-start; justify-content: space-between; padding: 0; gap: 20px; }
.first-run-step-heading p { margin: 0; max-width: 760px; color: var(--fg-muted); font-size: 13px; line-height: 1.7; }
.first-run-optional { margin-top: 29px; border: 1px solid var(--line); border-radius: 99px; padding: 3px 9px; font-size: 10px; color: var(--fg-muted); }
.first-run-machine { min-width: 0; padding: 0 26px; }
.first-run-machine { min-width: 0; }
.first-run-machine .sandbox-manager { height: auto; overflow: visible; padding: 0; }
.first-run-machine .sandbox-content { max-width: none; padding: 0; }
.first-run-machine .sandbox-heading h2 { margin: 0; font-size: 13px; font-weight: 500; }
Expand All @@ -50,10 +50,10 @@
.first-run-machine .sandbox-enrollment { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-subtle); }
.first-run-machine .sandbox-selected-node .sandbox-node-card { display: block; }
.first-run-machine .sandbox-selected-node .sandbox-node-details { border-left: 0; }
.first-run-machine-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 24px 32px 28px; }
.first-run-machine-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0; }
.first-run-machine-footer > span { color: var(--fg-muted); font-size: 12px; }
.first-run-footer { display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; padding: 16px 60px 24px; }
.first-request-workspace { padding: 0 28px 28px; }
.first-run-footer { display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; padding: 12px 24px; border-top: 1px solid var(--line); }
.first-request-workspace { min-width: 0; }
.first-request { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 26px; align-items: start; }
.first-request-form { min-width: 0; padding: 3px 0; }
.first-request-form > header h3 { font-size: 14px; font-weight: 550; margin: 0 0 6px; }
Expand Down Expand Up @@ -113,11 +113,32 @@
.first-run-chapters small { display: none; }
.first-request { grid-template-columns: minmax(0, 1fr); }
.first-request-code pre { max-height: 390px; }
.first-run-story, .first-run-access-scene { padding: 28px; }
.first-run-access { gap: 24px; }
}
@keyframes first-run-screen { from { opacity: 0; transform: scale(1.02); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
.first-run-home { animation: none; }
.first-run-stage-content, .first-run-core-symbol, .first-run-chapters button.active::after, .first-run-machine .sandbox-topology-node, .first-agent-card, .first-request-result.has-agent { animation: none; }
.first-run-home *, .first-run-home *::after { transition: none; scroll-behavior: auto; }
}

@media (max-width: 760px) {
.first-run-access { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.first-run-story { padding: 0; }
.first-run-story h2, .first-run-step-heading h2 { font-size: 22px; }
.first-run-chapters { gap: 4px; padding: 16px 16px 0; }
.first-run-chapters button { flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px; font-size: 11px; line-height: 16px; }
.first-run-chapters button > svg { display: none; }
.first-run-chapters button.active::after { left: 10px; }
.first-run-toolbar, .first-run-stage, .first-run-footer { padding: 12px 16px; }
.first-run-toolbar { flex-wrap: wrap; gap: 8px; }
.first-run-toolbar-preferences { gap: 8px; }
.first-run-toolbar .appearance-menu-trigger { width: auto; min-width: 72px; padding-inline: 7px; }
.first-run-toolbar .appearance-menu-trigger > span { display: inline; }
.first-run-toolbar .appearance-menu-panel { position: absolute; top: calc(100% + 8px); bottom: auto; left: 0; }
.first-run-step-heading { gap: 12px; }
.first-run-optional { margin-top: 0; }
.first-run-machine-footer, .first-request-local-action, .first-request-actions, .first-agent-card { flex-wrap: wrap; }
.first-request-form-row { grid-template-columns: minmax(0, 1fr); }
.first-agent-card > code { max-width: 100%; margin-left: 0; }
}
23 changes: 17 additions & 6 deletions apps/web/src/features/first-run/console-access.css
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
.app-main.console-access-main { overflow-y: auto; }
.console-access-main > header { display: flex; justify-content: flex-end; align-items: center; gap: 18px; padding: 24px 36px; }
.console-language { border: 0; color: var(--fg-muted); background: transparent; font: inherit; font-size: 12px; padding: 6px 8px; border-radius: 6px; }
.console-access-stage { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); max-width: 1080px; margin: auto; padding: clamp(28px, 6vh, 80px) 48px; align-items: center; min-height: 70vh; }
.console-access-stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; width: 100%; max-width: 960px; margin: auto; padding: clamp(28px, 6vh, 80px) 48px; align-items: center; min-height: 70vh; }
.console-access-story { animation: console-arrive 650ms var(--ease-settle) both; }
.console-access-story h1 { font-size: clamp(32px, 3.2vw, 48px); letter-spacing: -.045em; font-weight: 530; line-height: 1.13; max-width: 410px; margin: 22px 0; }
.console-access-story h1 { font-size: 30px; letter-spacing: -.045em; font-weight: 530; line-height: 1.13; max-width: 410px; margin: 22px 0; }
.console-access-story p { color: var(--fg-muted); font-size: 15px; line-height: 1.8; max-width: 340px; }
.console-cloud-symbol { position: relative; display: grid; place-items: center; width: 86px; height: 86px; border: 1px solid var(--line); border-radius: 24px; margin-bottom: 44px; background: var(--surface-subtle); box-shadow: var(--shadow-floating); color: var(--fg); }
.console-cloud-symbol::after { content: ""; position: absolute; inset: -12px; border: 1px solid var(--line-muted); border-radius: 34px; }
.console-auth-form { max-width: 390px; width: 100%; gap: 20px; animation: console-arrive 600ms 90ms var(--ease-settle) both; }
.console-cloud-symbol { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 24px; background: var(--surface-subtle); box-shadow: var(--shadow-control); color: var(--fg); }

.console-auth-form { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-control); max-width: 390px; width: 100%; gap: 20px; animation: console-arrive 600ms 90ms var(--ease-settle) both; }
.console-auth-form h2 { font-size: 22px; letter-spacing: -.025em; font-weight: 550; margin: 0 0 10px; }
.console-auth-form p { font-size: 13px; color: var(--fg-muted); line-height: 1.6; margin: 0; }
.console-auth-form .field { gap: 7px; }
Expand All @@ -19,5 +20,15 @@
.console-account-menu small { color: var(--danger); }
.console-account-menu > button:hover { color: var(--fg); }
@keyframes console-arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 980px) { .console-access-stage { gap: 32px; padding: 28px; } .console-access-story h1 { font-size: 32px; } }
@media (max-width: 980px) { .console-access-stage { gap: 32px; padding: 28px; } .console-access-story h1 { font-size: 28px; } }
@media (prefers-reduced-motion: reduce) { .console-access-story, .console-auth-form { animation: none; } }

@media (max-width: 640px) {
.console-access-main > header { padding: 16px; }
.console-access-stage { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 24px; padding: 16px 20px 32px; }
.console-access-story h1 { margin: 16px 0; font-size: 24px; }
.console-access-story p { font-size: 13px; }
.console-cloud-symbol { margin-bottom: 16px; }
.console-auth-form { max-width: none; padding: 20px; }
.console-auth-form h2 { font-size: 20px; }
}
41 changes: 39 additions & 2 deletions apps/web/src/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,20 @@ html[data-theme="dark"] .brand-mark-dark {
text-transform: capitalize;
}

.sidebar-footer > .core-switcher {
grid-column: 1 / -1;
}

.sidebar-footer > .console-account-menu {
grid-column: 2;
grid-row: 2;
}

.sidebar-footer > .sidebar-preferences {
grid-column: 1;
grid-row: 2;
}

.sidebar-preferences {
display: flex;
align-items: center;
Expand Down Expand Up @@ -4500,6 +4514,28 @@ button.trace-step-row:hover {
gap: 6px;
}

.sidebar-footer > .console-account-menu,
.sidebar-footer > .sidebar-preferences {
grid-column: 1;
grid-row: auto;
}

.sidebar-footer .console-account-menu > button {
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
}

.sidebar-footer .console-account-menu > button > span {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}

.core-switcher {
display: flex;
justify-content: center;
Expand All @@ -4510,12 +4546,13 @@ button.trace-step-row:hover {
}

.sidebar-preferences {
max-width: 100%;
flex-direction: column;
}

.appearance-menu-trigger {
width: 40px;
min-width: 40px;
width: 38px;
min-width: 38px;
padding: 0;
}

Expand Down