// ───────────────────────────────────────────────────────────────────────────── // Component: Chips // File: src/scss/components/_chips.scss // // Variants: .chip--code .chip--midi .chip--mist .chip--agent .chip--generic // .filter-chip .filter-chip.active .ticker-chip .ticker-chip.active // .mono-badge .mono-badge--accent .mono-badge--success // Tokens: --domain-*, --color-accent, --bg-overlay, --border-default // Usage: midi // // Notes: Domain chips on profile cards. Filter chips in sidebars. // ticker-chip for horizontal scroll strips. // ───────────────────────────────────────────────────────────────────────────── .chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px var(--space-2); border-radius: var(--radius-full); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: var(--weight-medium); white-space: nowrap; border: 1px solid var(--border-default); background: var(--bg-overlay); color: var(--text-secondary); } .chip--code { background: var(--domain-code-bg); color: var(--domain-code); border-color: var(--domain-code-border); } .chip--midi { background: var(--domain-midi-bg); color: var(--domain-midi); border-color: var(--domain-midi-border); } .chip--mist { background: var(--domain-mist-bg); color: var(--domain-mist); border-color: var(--domain-mist-border); } .chip--agent { background: var(--domain-agent-bg); color: var(--domain-agent); border-color: var(--domain-agent-border); } .chip--generic { background: var(--domain-generic-bg); color: var(--domain-generic); border-color: var(--domain-generic-border); } // Filter chip (explore sidebar, issue filters) .filter-chip { display: inline-block; font-family: var(--font-mono); font-size: 11px; padding: 3px 10px; border-radius: var(--radius-full); background: var(--bg-overlay); color: var(--text-secondary); border: 1px solid var(--border-default); cursor: pointer; margin: 2px 3px 2px 0; text-decoration: none; transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); &:hover { background: var(--bg-hover); color: var(--text-primary); text-decoration: none; } &.active { background: color-mix(in srgb, var(--color-accent) 12%, transparent); color: var(--color-accent); border-color: color-mix(in srgb, var(--color-accent) 40%, transparent); } } // Ticker / marquee chip .ticker-chip { font-family: var(--font-mono); font-size: 13px; padding: 4px var(--space-4); border-radius: var(--radius-full); border: 1px solid var(--border-default); white-space: nowrap; color: var(--text-muted); background: transparent; flex-shrink: 0; &.active { border-color: color-mix(in srgb, var(--color-accent) 50%, transparent); color: var(--color-accent); background: color-mix(in srgb, var(--color-accent) 8%, transparent); } } // Monospace eyebrow badge .mono-badge { font-family: var(--font-mono); font-size: var(--text-xs); font-weight: var(--weight-medium); padding: 2px var(--space-2); border-radius: 4px; border: 1px solid var(--border-subtle); background: var(--bg-overlay); color: var(--text-muted); white-space: nowrap; letter-spacing: 0.3px; } .mono-badge--accent, .mono-badge-accent { color: var(--color-accent); background: color-mix(in srgb, var(--color-accent) 8%, transparent); border-color: color-mix(in srgb, var(--color-accent) 25%, transparent); } .mono-badge--success, .mono-badge-success { color: var(--color-success); background: color-mix(in srgb, var(--color-success) 8%, transparent); border-color: color-mix(in srgb, var(--color-success) 25%, transparent); } // Label chip (issue/proposal labels) .label-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: var(--radius-full); border: 1px solid; font-size: 11px; font-weight: var(--weight-medium); letter-spacing: 0.02em; text-decoration: none; white-space: nowrap; transition: filter var(--transition-fast); &:hover { filter: brightness(1.15); text-decoration: none; } &--active { box-shadow: 0 0 0 2px currentColor; } } // Project chip — repo links inside hero strip .project-chip { display: inline-flex; align-items: center; gap: 5px; font-size: var(--text-xs); font-weight: var(--weight-semibold); font-family: var(--font-mono); padding: 4px 10px; border-radius: 20px; text-decoration: none; background: rgba(255, 255, 255, 0.04); color: var(--text-muted); border: 1px solid rgba(255, 255, 255, 0.08); transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast); &:hover { color: var(--text-primary); border-color: rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.07); text-decoration: none; } &__icon { display: flex; align-items: center; } } .label-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; } // Type badge — human / agent / org identity label .type-badge { display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: var(--weight-semibold); padding: 2px 7px; border-radius: 4px; letter-spacing: 0.04em; text-transform: lowercase; border: 1px solid; vertical-align: middle; margin-left: var(--space-2); &--human { color: var(--color-accent); background: color-mix(in srgb, var(--color-accent) 12%, transparent); border-color: color-mix(in srgb, var(--color-accent) 30%, transparent); } &--agent { color: var(--color-purple); background: color-mix(in srgb, var(--color-purple) 12%, transparent); border-color: color-mix(in srgb, var(--color-purple) 30%, transparent); } &--org { color: var(--color-warning); background: color-mix(in srgb, var(--color-warning) 12%, transparent); border-color: color-mix(in srgb, var(--color-warning) 30%, transparent); } &--xs { font-size: 9px; padding: 1px 5px; margin-left: var(--space-1); } } // Verified badge — check + "verified" inline .verified-badge { display: inline-flex; align-items: center; gap: 4px; font-size: var(--text-xs); font-weight: var(--weight-semibold); color: var(--color-success); background: color-mix(in srgb, var(--color-success) 10%, transparent); border: 1px solid color-mix(in srgb, var(--color-success) 30%, transparent); border-radius: 4px; padding: 2px 7px; letter-spacing: 0.03em; } // Repo health indicator (circular progress + score) .repo-health { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: var(--weight-semibold); font-family: var(--font-mono); padding: 2px 6px; border-radius: 4px; &--good { color: var(--color-success); } &--fair { color: var(--color-warning); } &--poor { color: var(--color-danger); } } // Repo tag — domain/topic label on repo cards .repo-tag { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: var(--radius-full); background: var(--bg-overlay); border: 1px solid var(--border-subtle); color: var(--text-muted); font-family: var(--font-mono); } // Private badge .badge--private { font-size: 10px; padding: 1px 7px; border-radius: var(--radius-full); background: color-mix(in srgb, var(--color-warning) 10%, transparent); border: 1px solid color-mix(in srgb, var(--color-warning) 25%, transparent); color: var(--color-warning); font-weight: var(--weight-medium); letter-spacing: 0.03em; } // Capability tag (agent scope panel) .cap { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-mono); font-size: 11px; padding: 3px 8px; border-radius: 4px; border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-secondary); &--granted { color: var(--color-success); background: color-mix(in srgb, var(--color-success) 8%, transparent); border-color: color-mix(in srgb, var(--color-success) 25%, transparent); } }