// ── Enriched repo cards — domain detail grid ───────────────────────────────── // // .rc-card full enriched repo card wrapper // .rc-card__* internal layout sections // .rc-sparkline inline SVG pulse sparkline // .rc-stat single intel stat pill // .rc-health health badge (clean / warn / risk) .rc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-4); } .rc-card { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); background: var(--surface-1); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); text-decoration: none; color: inherit; transition: border-color 120ms, box-shadow 120ms; &:hover { border-color: var(--color-accent); box-shadow: 0 0 0 1px var(--color-accent); } } // ── Header row: name + health badge ────────────────────────────────────────── .rc-card__header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-width: 0; } .rc-card__name { font-size: 13px; font-weight: 500; color: var(--text-primary); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; } .rc-card__desc { font-size: 12px; color: var(--text-secondary); line-height: 1.5; margin: 0; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; } // ── Health gauge — mini donut (reuses intel-health-fill--* colour classes) ──── .rc-gauge { flex-shrink: 0; width: 32px; height: 32px; overflow: visible; // Thinner stroke than the full-size intel gauge .intel-health-track { stroke-width: 10; } .intel-health-fill { stroke-width: 10; } } // ── Pulse: label + sparkline ────────────────────────────────────────────────── .rc-pulse { display: flex; flex-direction: column; gap: 4px; } .rc-pulse__label { font-size: 10px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-tertiary, var(--text-secondary)); } .rc-sparkline { display: block; width: 100%; height: 28px; overflow: visible; } // ── Autonomy bar ────────────────────────────────────────────────────────────── .rc-autonomy { display: flex; flex-direction: column; gap: 5px; } .rc-autonomy__header { display: flex; align-items: center; justify-content: space-between; } .rc-autonomy__label { font-size: 10px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-tertiary, var(--text-secondary)); display: flex; align-items: center; gap: 4px; } .rc-autonomy__pct { font-size: 11px; font-weight: 600; font-family: var(--font-mono); color: var(--text-primary); } .rc-autonomy__track { width: 100%; height: 4px; background: var(--surface-2, var(--bg-overlay)); border-radius: var(--radius-full); overflow: hidden; } .rc-autonomy__fill { height: 100%; background: var(--color-accent); border-radius: var(--radius-full); transition: width 300ms ease; min-width: 0; } // ── Autonomy icon ───────────────────────────────────────────────────────────── .rc-autonomy__icon { display: flex; align-items: center; color: var(--color-accent); } // ── Symbol intel rows ───────────────────────────────────────────────────────── .rc-intel { display: flex; flex-direction: column; gap: 3px; padding-top: var(--space-2); border-top: 1px solid var(--border-subtle); } .rc-intel__row { display: flex; align-items: baseline; gap: var(--space-2); font-size: 11px; } .rc-intel__label { flex-shrink: 0; color: var(--text-tertiary, var(--text-secondary)); white-space: nowrap; display: flex; align-items: center; gap: 3px; // fixed width so val column aligns across rows width: 62px; } .rc-intel__icon { display: flex; align-items: center; flex-shrink: 0; &--flame { color: #f97316; } &--blast { color: #ef4444; } } .rc-intel__val { font-family: var(--font-mono); font-size: 10.5px; color: var(--color-accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1; } .rc-intel__meta { opacity: 0.5; } // ── Counts row: 3 equal fixed slots (dead · errors · warns) ────────────────── .rc-intel__counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding-top: var(--space-1); font-size: 10.5px; color: var(--text-secondary); } .rc-count { display: flex; align-items: center; gap: 3px; // icon colored, text stays secondary &__icon { display: flex; align-items: center; } &--dead .rc-count__icon { color: var(--text-secondary); } &--error .rc-count__icon { color: var(--color-danger, #ef4444); } &--warn .rc-count__icon { color: var(--color-warning, #f59e0b); } } // ── Footer: tags + timestamp ────────────────────────────────────────────────── .rc-card__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--border-subtle); } .rc-card__tags { display: flex; flex-wrap: wrap; gap: 4px; } .rc-card__tag { font-size: 10px; padding: 1px 6px; border-radius: var(--radius-full); background: var(--surface-2); color: var(--text-secondary); border: 1px solid var(--border-subtle); } .rc-card__time { font-size: 11px; color: var(--text-tertiary, var(--text-secondary)); white-space: nowrap; }