Blame strip
Per-line blame rail showing the commit + author for each line. Hover or focus a cell to see the full popover.
Production answer
Blame strip is a reusable Oak Flats Muffler Men UI primitive with documented states, accessibility expectations, theme behavior, and implementation evidence.
Primary CTAReview Blame strip states
Generative search brief
Blame strip: Per-line blame rail showing the commit + author for each line. Hover or focus a cell to see the full popover.
apps/web/quote-instant-pricing.ts
Blame
apps/web/quote-instant-pricing.ts
d6e0b88
Marcus Halversond6e0b882026-05-26
d6e0b88
Marcus Halversond6e0b882026-05-26
a92f4c1
Sophie Tana92f4c12026-04-12
a92f4c1
Sophie Tana92f4c12026-04-12
a92f4c1
Sophie Tana92f4c12026-04-12
3f1b09a
Jordan Pace3f1b09a2026-05-01
d6e0b88
Marcus Halversond6e0b882026-05-26
d6e0b88
Marcus Halversond6e0b882026-05-26
a92f4c1
Sophie Tana92f4c12026-04-12
d6e0b88
Marcus Halversond6e0b882026-05-26
a92f4c1
Sophie Tana92f4c12026-04-12
1import { resolveCohort } from './cohorts'
2import { instantQuote } from './instant-quote'
3import { legacyQuote } from './legacy-quote'
4
5export async function buildQuote(input: QuoteInput) {
6 const { partIds, bayId, customerTier } = input
7 const flagged = await isFlagEnabled('quote-instant-pricing')
8 const cohort = await resolveCohort(customerTier)
9 if (!flagged) return legacyQuote(input)
10 return instantQuote(partIds, bayId, cohort)
11}
Behaviour
Each blame cell is focusable so the popover opens on keyboard navigation too. The rail is wrapped in a labelled list, and the code body is a parallel column so screen readers can read either side independently.