feat: finish Stitch skills and authentication screens

This commit is contained in:
Jens
2026-07-22 20:21:55 +02:00
parent afe18e5b96
commit 4acd81afb5
3 changed files with 118 additions and 6 deletions
+77
View File
@@ -66,6 +66,83 @@
.command-panel { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.command-panel pre { margin: 6px 0 0; padding: 10px; background: var(--surface-lowest); color: var(--emerald); }
.auth-card .stack label { color: var(--text); font-size: 13px; }
.login-cockpit { display: grid; width: min(1120px, 100%); min-height: min(720px, calc(100vh - 48px)); grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr); overflow: hidden; border: 1px solid color-mix(in srgb, var(--outline) 58%, transparent); background: var(--surface-low); box-shadow: 0 38px 120px rgba(0,0,0,.42), var(--shadow-signal); }
.login-intelligence { position: relative; display: flex; overflow: hidden; flex-direction: column; justify-content: space-between; padding: clamp(28px, 4vw, 58px); border-right: 1px solid color-mix(in srgb, var(--cyan) 20%, var(--outline)); background: radial-gradient(circle at 72% 35%, color-mix(in srgb, var(--cyan) 9%, transparent), transparent 15rem), linear-gradient(145deg, color-mix(in srgb, var(--surface-container) 90%, var(--indigo)), var(--surface-lowest)); }
.login-brandline { position: relative; z-index: 2; display: flex; align-items: center; gap: 12px; }
.login-brandline strong, .login-brandline small { display: block; }
.login-brandline strong { color: var(--text-strong); font: 700 19px var(--font-headline); }
.login-brandline small { margin-top: 4px; font: 10px var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.login-radar { position: absolute; top: 18%; right: -6%; width: min(31vw, 390px); aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--cyan) 22%, transparent); border-radius: 50%; opacity: .75; }
.login-radar::before, .login-radar::after, .login-radar span { position: absolute; inset: 15%; content: ""; border: 1px solid color-mix(in srgb, var(--cyan) 18%, transparent); border-radius: 50%; }
.login-radar::after { inset: 31%; }
.login-radar span:nth-child(1) { inset: 46% 0 auto 0; border: 0; border-top: 1px solid color-mix(in srgb, var(--cyan) 22%, transparent); border-radius: 0; transform: rotate(-24deg); transform-origin: center; }
.login-radar span:nth-child(2) { inset: 0 auto 0 50%; border: 0; border-left: 1px solid color-mix(in srgb, var(--cyan) 18%, transparent); border-radius: 0; }
.login-radar i { position: absolute; top: 38%; left: 32%; width: 9px; height: 9px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 6px color-mix(in srgb, var(--cyan) 10%, transparent), 0 0 22px var(--cyan); }
.login-intro { position: relative; z-index: 2; max-width: 570px; margin-top: auto; }
.login-intro h1 { max-width: 560px; margin-bottom: 18px; font-size: clamp(35px, 4.3vw, 62px); line-height: .98; }
.login-intro > p:last-child { max-width: 520px; color: var(--text-muted); font-size: 16px; line-height: 1.6; }
.login-signals { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid color-mix(in srgb, var(--outline) 36%, transparent); list-style: none; color: var(--text-muted); font: 10px var(--font-mono); text-transform: uppercase; }
.login-signals li { display: flex; align-items: center; gap: 7px; }
.login-signals .icon { width: 14px; color: var(--emerald); }
.login-cockpit .auth-card { align-self: center; width: auto; margin: clamp(24px, 4vw, 52px); padding: 0; border: 0; background: transparent; box-shadow: none; }
.login-cockpit .auth-brand { margin-bottom: 30px; }
.login-cockpit .auth-brand h2 { margin: 4px 0 6px; font-size: 30px; }
.login-cockpit .stack { gap: 9px; margin-top: 22px; }
.login-cockpit .stack input { margin-bottom: 9px; }
.login-cockpit .stack .button { margin-top: 12px; }
.auth-trust { display: flex; align-items: center; gap: 10px; margin-top: 30px; padding-top: 20px; border-top: 1px solid color-mix(in srgb, var(--outline) 38%, transparent); }
.auth-trust strong, .auth-trust small { display: block; }
.auth-trust strong { color: var(--text); font-size: 12px; }
.auth-trust small { margin-top: 3px; font: 10px var(--font-mono); }
.insight-hero { position: relative; display: grid; min-height: 210px; grid-template-columns: 130px minmax(0, 1fr) auto; align-items: center; gap: 28px; overflow: hidden; margin-bottom: 12px; padding: 28px; border: 1px solid color-mix(in srgb, var(--cyan) 32%, var(--outline)); background: linear-gradient(135deg, color-mix(in srgb, var(--surface-container) 92%, var(--cyan)), var(--surface-low)); box-shadow: var(--shadow-signal); }
.insight-hero::after { position: absolute; z-index: 0; right: -80px; bottom: -120px; width: 330px; height: 330px; content: ""; border: 1px solid color-mix(in srgb, var(--cyan) 10%, transparent); border-radius: 50%; }
.insight-hero > * { position: relative; z-index: 1; }
.insight-hero h2 { max-width: 800px; margin: 7px 0; font-size: clamp(23px, 2.2vw, 34px); }
.insight-hero p { margin: 0; color: var(--text-muted); }
.insight-orbit { position: relative; display: grid; width: 122px; height: 122px; place-items: center; border: 1px solid color-mix(in srgb, var(--cyan) 44%, var(--outline)); border-radius: 50%; box-shadow: inset 0 0 28px color-mix(in srgb, var(--cyan) 6%, transparent), 0 0 24px color-mix(in srgb, var(--cyan) 8%, transparent); }
.insight-orbit::before, .insight-orbit span { position: absolute; content: ""; border: 1px solid color-mix(in srgb, var(--cyan) 22%, transparent); border-radius: 50%; }
.insight-orbit::before { inset: 16px; }
.insight-orbit span:nth-child(1) { inset: 42px; }
.insight-orbit span:nth-child(2) { top: 19px; left: 76px; width: 6px; height: 6px; border: 0; background: var(--cyan); box-shadow: 0 0 10px var(--cyan); }
.insight-orbit strong { color: var(--cyan); font: 650 25px var(--font-headline); }
.skill-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 22px; border: solid color-mix(in srgb, var(--outline) 42%, transparent); border-width: 0 1px 1px; background: var(--surface-low); }
.skill-metrics article { min-height: 104px; padding: 17px; border-right: 1px solid color-mix(in srgb, var(--outline) 32%, transparent); }
.skill-metrics article:last-child { border-right: 0; }
.skill-metrics span, .skill-metrics strong, .skill-metrics small { display: block; }
.skill-metrics span { color: var(--text-faint); font: 9px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.skill-metrics strong { margin: 10px 0 3px; color: var(--text-strong); font: 650 27px var(--font-headline); }
.skill-metrics small { font: 10px var(--font-mono); }
.skill-metrics .metric-accent strong { color: var(--amber); }
.skills-filter-console { grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto auto; }
.skills-insight-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; align-items: start; gap: 16px; }
.skill-demand-list, .skills-method-rail { display: grid; gap: 10px; }
.skills-method-rail { position: sticky; top: calc(var(--topbar-height) + 18px); }
.skill-demand-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; overflow: hidden; border: 1px solid color-mix(in srgb, var(--outline) 43%, transparent); background: var(--surface-container); }
.skill-demand-card.is-gap { border-left: 2px solid var(--amber); }
.skill-demand-main { padding: 18px; }
.skill-demand-action { display: flex; min-width: 160px; align-items: center; padding: 16px; border-left: 1px solid color-mix(in srgb, var(--outline) 34%, transparent); background: var(--surface-low); }
.skill-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.skill-card-heading h3 { margin: 4px 0 0; }
.skill-category { color: var(--cyan-dim); font: 9px var(--font-mono); letter-spacing: .09em; text-transform: uppercase; }
.demand-meter { height: 5px; overflow: hidden; margin: 15px 0 8px; background: var(--surface-highest); }
.demand-meter span { display: block; height: 100%; background: linear-gradient(90deg, var(--indigo), var(--cyan)); }
.skill-demand-stats { display: flex; flex-wrap: wrap; gap: 5px 16px; color: var(--text-faint); font: 10px var(--font-mono); }
.skill-demand-stats strong { color: var(--text); }
.learning-focus { margin: 13px 0; padding: 10px 12px; border-left: 2px solid var(--amber); background: color-mix(in srgb, var(--amber) 5%, var(--surface-high)); color: var(--text-muted); }
.learning-focus strong { display: block; margin-bottom: 4px; color: var(--amber); font: 9px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.skill-job-examples { display: grid; gap: 0; margin: 13px 0 0; padding: 0; list-style: none; }
.skill-job-examples li { display: flex; min-height: 36px; align-items: center; justify-content: space-between; gap: 15px; border-top: 1px solid color-mix(in srgb, var(--outline) 28%, transparent); }
.skill-job-examples a { color: var(--text); }
.skill-job-examples span { color: var(--text-faint); font: 9px var(--font-mono); }
.legend-list, .radar-steps { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.legend-list li, .radar-steps li { display: flex; align-items: flex-start; gap: 9px; }
.legend-list strong, .legend-list small, .radar-steps strong, .radar-steps span { display: block; }
.legend-list small, .radar-steps span { margin-top: 3px; }
.legend-dot { width: 8px; height: 8px; flex: 0 0 auto; margin-top: 4px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 8px color-mix(in srgb, var(--cyan) 50%, transparent); }
.legend-dot.inferred { background: var(--indigo); box-shadow: 0 0 8px color-mix(in srgb, var(--indigo) 50%, transparent); }
.radar-steps { counter-reset: radar-step; }
.radar-steps li { counter-increment: radar-step; }
.radar-steps li::before { display: grid; width: 24px; height: 24px; flex: 0 0 auto; place-items: center; content: counter(radar-step, decimal-leading-zero); border: 1px solid var(--outline); color: var(--cyan); font: 9px var(--font-mono); }
.mini-timeline { display: grid; gap: 4px; }
.mini-event { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-top: 1px solid color-mix(in srgb, var(--outline) 30%, transparent); }
.mini-event strong, .mini-event small { display: block; }