// ───────────────────────────────────────────────────────────────────────────── // Page: Velocity (.vel-* layout) // File: src/scss/pages/_velocity.scss // // STRUCTURAL LAYOUT ONLY — zero colors, zero typography here. // Visual rules live in components/_velocity.scss. // ───────────────────────────────────────────────────────────────────────────── .vel-wrap { padding: 0; } // ── Stat chips row ──────────────────────────────────────────────────────────── .vel-stats { display: flex; gap: 1rem; margin-bottom: 1.25rem; @media (max-width: 540px) { flex-wrap: wrap; } } .vel-stat { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; padding: 0.75rem 1.25rem; flex: 1; } .vel-stat__val { display: block; } .vel-stat__lbl { display: block; } // ── Legend ──────────────────────────────────────────────────────────────────── .vel-legend-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .vel-legend-item { display: flex; align-items: center; gap: 0.35rem; } // ── Module list ─────────────────────────────────────────────────────────────── .vel-list { margin-bottom: 1.5rem; } .vel-row { display: grid; grid-template-columns: minmax(160px, 320px) 1fr 120px auto auto; align-items: center; gap: 0.75rem; padding: 0.7rem 1rem; @media (max-width: 900px) { grid-template-columns: minmax(140px, 260px) 1fr auto auto; .vel-stagnant { display: none; } } @media (max-width: 540px) { grid-template-columns: 1fr auto; .vel-bar-col, .vel-metrics-col, .vel-stagnant { display: none; } } } .vel-module-col { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; } .vel-bar-col { display: flex; flex-direction: column; gap: 3px; } .vel-bar-wrap { display: flex; align-items: center; gap: 0.4rem; } .vel-bar-track { height: 4px; flex: 1; &--prior { height: 3px; } } .vel-bar-label { font-size: 0.6rem; width: 2em; flex-shrink: 0; text-align: right; } .vel-metrics-col { display: flex; flex-direction: column; gap: 0.15rem; text-align: right; } // ── Empty state ─────────────────────────────────────────────────────────────── .vel-empty { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 3rem 1.5rem; } // ── Detail page ─────────────────────────────────────────────────────────────── .vel-detail-hd { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 1.5rem; padding: 1rem 1.25rem; } .vel-detail-chips { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1.25rem; } .vel-detail-chip { padding: 0.6rem 1rem; flex: 1; min-width: 90px; } .vel-detail-chip__val { display: block; } .vel-detail-chip__lbl { display: block; } // ── Window comparison card ──────────────────────────────────────────────────── .vel-compare-card { padding: 1rem 1.25rem; margin-bottom: 1.5rem; } .vel-compare-title { margin-bottom: 0.75rem; }