// ───────────────────────────────────────────────────────────────────────────── // Component: Stable Symbols (.ss-* prefix) // File: src/scss/components/_stable.scss // // Visual rules only — colors, typography, backgrounds, borders, transitions. // Structural layout lives in pages/_stable.scss. // ───────────────────────────────────────────────────────────────────────────── // ── Snowflake icon — teal ───────────────────────────────────────────────────── .icon-snowflake { color: var(--color-teal); } // ── Intel meta bar ──────────────────────────────────────────────────────────── .intel-meta-bar { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); } .intel-meta-pill { display: inline-flex; align-items: center; gap: 0.3rem; } .intel-meta-key { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-muted); } .intel-meta-val { font-size: 0.75rem; font-weight: 600; color: var(--text-secondary); } // ── Stat row ────────────────────────────────────────────────────────────────── .ss-stat-card { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); text-align: center; &--eternal { border-color: var(--color-teal); } &--veteran { border-color: color-mix(in srgb, var(--color-teal) 50%, var(--color-success)); } } .ss-stat-value { font-size: 1.6rem; font-weight: 700; font-family: var(--font-mono); color: var(--text-primary); line-height: 1; } .ss-stat-label { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); } // ── Filter pill — eternal modifier ─────────────────────────────────────────── .intel-filter-pill--eternal { &.intel-filter-pill--active { border-color: var(--color-teal); background: color-mix(in srgb, var(--color-teal) 15%, transparent); color: var(--color-teal); } &:hover { border-color: var(--color-teal); color: var(--color-teal); } } // ── Symbol list ─────────────────────────────────────────────────────────────── .ss-list { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); overflow: hidden; } .ss-row { display: flex; align-items: center; gap: 0.65rem; padding: 0.5rem 1rem; border-top: 1px solid var(--border-subtle); transition: background 120ms ease; color: inherit; text-decoration: none; &:first-child { border-top: none; } &:hover { background: var(--bg-hover); text-decoration: none; } } .ss-tier-badge { flex-shrink: 0; min-width: 4.5rem; text-align: center; } .ss-days { font-size: 0.82rem; font-weight: 700; font-family: var(--font-mono); flex-shrink: 0; min-width: 3.5rem; text-align: right; color: var(--text-secondary); } .ss-address { flex: 1; min-width: 0; font-family: var(--font-mono); font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ss-file { color: var(--text-muted); } .ss-sep { color: var(--border-default); } .ss-name { color: var(--color-accent-link); } .ss-kind { flex-shrink: 0; font-size: 0.62rem; } .ss-meta { flex-shrink: 0; font-size: 0.7rem; color: var(--text-muted); font-family: var(--font-mono); white-space: nowrap; opacity: 0.7; } // ── Detail page ─────────────────────────────────────────────────────────────── .ss-detail-hd { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); } .ss-detail-badges { display: flex; gap: 0.4rem; flex-wrap: wrap; } .ss-detail-age-wrap { display: flex; align-items: baseline; gap: 0.35rem; } .ss-detail-age { font-size: 2.4rem; font-weight: 700; line-height: 1; color: var(--color-teal); } .ss-detail-age-label { font-size: 0.8rem; color: var(--text-muted); } .ss-detail-addr { font-size: 0.78rem; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ss-detail-chip { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); text-align: center; } .ss-detail-chip__val { font-size: 1.35rem; font-weight: 700; color: var(--text-primary); } .ss-detail-chip__lbl { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); } .ss-detail-card { background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: var(--radius-md); } .ss-detail-card-title { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); } .ss-activity-row { display: flex; align-items: baseline; gap: 0.75rem; border-top: 1px solid var(--border-subtle); &:first-of-type { border-top: none; } } .ss-activity-label { font-size: 0.75rem; font-weight: 600; color: var(--text-secondary); min-width: 8rem; flex-shrink: 0; } .ss-activity-val { font-size: 0.82rem; font-weight: 600; color: var(--text-primary); } .ss-activity-hint { font-size: 0.7rem; color: var(--text-muted); } .ss-deps-list { border-top: 1px solid var(--border-subtle); margin-top: 0.5rem; padding-top: 0.5rem; } .ss-dep-row { font-size: 0.78rem; color: var(--color-accent-link); padding: 0.2rem 0; border-top: 1px solid var(--border-subtle); &:first-of-type { border-top: none; } } // ── Tier badge color variants ───────────────────────────────────────────────── .badge-teal { background: color-mix(in srgb, var(--color-teal) 15%, transparent); color: var(--color-teal); border-color: color-mix(in srgb, var(--color-teal) 30%, transparent); } .badge-success { background: color-mix(in srgb, var(--color-success) 15%, transparent); color: var(--color-success); border-color: color-mix(in srgb, var(--color-success) 30%, transparent); } .badge-accent { background: color-mix(in srgb, var(--color-accent) 15%, transparent); color: var(--color-accent); border-color: color-mix(in srgb, var(--color-accent) 30%, transparent); } .badge-neutral { background: color-mix(in srgb, var(--color-neutral) 15%, transparent); color: var(--text-secondary); border-color: color-mix(in srgb, var(--color-neutral) 30%, transparent); }