Spaces:
Running
Running
cccmmd
feat: add Integrated Lab page, app-header component, activation explainer, and UI improvements
0b040f5 | @use "breakpoints" as *; | |
| $font-mono: var(--font-icon), 'JetBrains Mono', monospace; | |
| .app-header { | |
| position: relative; | |
| z-index: 1000; | |
| border-bottom: 1px solid var(--border-color); | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| background: transparent; | |
| box-sizing: border-box; | |
| padding: max(10px, env(safe-area-inset-top)) 20px 10px 20px; | |
| transition: background-color 0.3s ease, border-color 0.3s ease; | |
| } | |
| .app-header-brand { | |
| flex: 0 0 auto; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| border-right: 1px solid var(--border-color); | |
| padding-right: 1rem; | |
| } | |
| .app-header-num { | |
| font-family: $font-mono; | |
| font-size: 0.6875rem; | |
| color: var(--text-muted); | |
| letter-spacing: 0.08em; | |
| white-space: nowrap; | |
| } | |
| .app-header-logo { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| text-decoration: none; | |
| color: var(--text-color); | |
| transition: opacity 0.15s ease; | |
| &:hover { | |
| opacity: 0.7; | |
| } | |
| } | |
| .app-header-logo-aperture { | |
| width: 22px; | |
| height: 22px; | |
| flex-shrink: 0; | |
| animation: aperture-rotate 20s linear infinite; | |
| } | |
| .app-header-logo-text { | |
| font-family: $font-mono; | |
| font-size: 0.8125rem; | |
| font-weight: 600; | |
| letter-spacing: 0.05em; | |
| white-space: nowrap; | |
| } | |
| .app-header-title-block { | |
| flex: 1 1 auto; | |
| min-width: 0; | |
| } | |
| .app-header-extra { | |
| flex: 0 1 auto; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| &:empty { | |
| display: none; | |
| } | |
| } | |
| .app-header-actions { | |
| flex: 0 0 auto; | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| flex-wrap: wrap; | |
| gap: 10px; | |
| margin-left: auto; | |
| } | |
| @media (max-width: $breakpoint-mobile) { | |
| .app-header { | |
| gap: 0.5rem; | |
| padding: max(8px, env(safe-area-inset-top)) 12px 8px 12px; | |
| } | |
| .app-header-brand { | |
| padding-right: 0.5rem; | |
| } | |
| .app-header-logo-text { | |
| display: none; | |
| } | |
| } | |
| body.nav-landing-page .app-header { | |
| border-bottom: none; | |
| background: transparent; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 10; | |
| padding: max(12px, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) 12px max(1.25rem, env(safe-area-inset-left)); | |
| .app-header-brand { | |
| border-right: none; | |
| } | |
| } | |