// ─────────────────────────────────────────────────────────────────────────────
// Component: Timeline
// File: src/scss/components/_timeline.scss
//
// Variants: .commit-row .proposal-row .issue-row .session-row
// .commit-sha .commit-msg .commit-meta
// .session-live .session-live-pulse .session-row-active
// Tokens: --border-subtle, --color-accent, --color-success, --text-*
// Usage:
…
//
// Notes: .session-live-pulse uses @keyframes for the active session dot.
// ─────────────────────────────────────────────────────────────────────────────
.commit-list { display: flex; flex-direction: column; }
.commit-row,
.proposal-row,
.issue-row,
.session-row {
display: flex;
align-items: flex-start;
gap: var(--space-3);
padding: var(--space-3) 0;
border-bottom: 1px solid var(--border-subtle);
&:last-child { border-bottom: none; }
}
.commit-row {
display: grid;
grid-template-columns: 80px 1fr auto;
align-items: center;
}
.commit-sha {
font-family: var(--font-mono);
font-size: var(--text-sm);
color: var(--color-accent);
white-space: nowrap;
}
.commit-msg {
font-size: var(--text-sm);
color: var(--text-secondary);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: flex;
align-items: center;
gap: var(--space-2);
a { color: var(--text-primary); }
a:hover { color: var(--color-accent); text-decoration: none; }
}
.commit-meta {
font-size: var(--text-xs);
color: var(--text-muted);
white-space: nowrap;
flex-shrink: 0;
display: flex;
align-items: center;
gap: var(--space-1);
}
// Live session indicator dot
.session-live {
display: inline-block;
width: 8px;
height: 8px;
border-radius: var(--radius-full);
background: var(--color-success);
box-shadow: 0 0 6px var(--color-success);
margin-right: var(--space-1);
vertical-align: middle;
flex-shrink: 0;
}
@keyframes session-pulse {
0%, 100% { opacity: 1; box-shadow: 0 0 6px var(--color-success); }
50% { opacity: 0.55; box-shadow: 0 0 12px var(--color-success); }
}
.session-live-pulse { animation: session-pulse 1.6s ease-in-out infinite; }
.session-row-active {
background: color-mix(in srgb, var(--color-success) 4%, transparent);
border-radius: var(--radius-sm);
padding-left: var(--space-2);
padding-right: var(--space-2);
}
.session-row-header {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--space-2);
font-size: 14px;
color: var(--text-primary);
margin-bottom: 4px;
}
.session-row-intent { font-size: 13px; color: var(--text-muted); margin-top: 2px; }
.session-no-participants { color: var(--text-muted); font-size: 13px; }
.session-commit-pill {
display: inline-flex;
align-items: center;
gap: 3px;
padding: 1px var(--space-2);
border-radius: var(--radius-full);
font-size: var(--text-xs);
font-weight: var(--weight-semibold);
background: var(--bg-overlay);
color: var(--text-secondary);
white-space: nowrap;
}
.session-location-tag { font-size: var(--text-xs); color: var(--text-muted); white-space: nowrap; }
// Branch pill
.branch-pill {
display: inline-block;
padding: 1px 7px;
border-radius: 10px;
font-size: 11px;
font-family: var(--font-mono);
background: var(--bg-surface);
border: 1px solid var(--border-default);
color: var(--text-primary);
white-space: nowrap;
overflow: hidden;
max-width: 200px;
text-overflow: ellipsis;
}