From 673f2653980a2017abfed3a1340bc136bba15f4f Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 20:45:23 +0000 Subject: [PATCH] Add real-world specimens and cross-links between sins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two new levers on a sin page. `wild[]` renders credited, linked specimens between the explanation and the citations — first the argument, then proof people actually publish this, then the sources. `related[]` cross-links neighbouring sins and is resolved at build, so a typo fails the build instead of shipping a dead link. Both arrive with the first specimen: a Hungarian primary graphic whose three slices read 38/22/19 — 79% — drawn as a full circle, so every share is inflated by about 1.27x. Measured off the image, the 38% slice occupies 173.6 degrees, or 48.3% of the pie. Our published pie sin is about too many slices, so it didn't cover this; "Pie Slices That Don't Sum to the Whole" is a new severity-5 page whose before/after is two pies differing only in whether the remainder is present. That sin is an omission, so `compareNote` replaces the standard "same numbers, both charts" line. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01ULE5RRxdQE1ebwefEd2eCM --- CLAUDE.md | 8 ++ docs/content-backlog.md | 59 +++++++++--- docs/source-requests.md | 2 + public/wild/hu-primary-countryside.jpg | Bin 0 -> 84255 bytes src/charts/incomplete-pie-bad.json | 24 +++++ src/charts/incomplete-pie-fixed.json | 23 +++++ src/components/RelatedSins.astro | 36 +++++++ src/components/WildExamples.astro | 65 +++++++++++++ src/content.config.ts | 23 +++++ src/content/sins/aspect-ratio.md | 3 + src/content/sins/dual-axis-correlation.md | 3 + src/content/sins/incomplete-pie.md | 80 ++++++++++++++++ src/content/sins/inverted-y-axis.md | 3 + src/content/sins/too-many-pie-slices.md | 2 + src/content/sins/truncated-y-axis.md | 3 + src/pages/sins/[...slug].astro | 24 ++++- src/styles/global.css | 110 ++++++++++++++++++++++ 17 files changed, 453 insertions(+), 15 deletions(-) create mode 100644 public/wild/hu-primary-countryside.jpg create mode 100644 src/charts/incomplete-pie-bad.json create mode 100644 src/charts/incomplete-pie-fixed.json create mode 100644 src/components/RelatedSins.astro create mode 100644 src/components/WildExamples.astro create mode 100644 src/content/sins/incomplete-pie.md diff --git a/CLAUDE.md b/CLAUDE.md index d06f934..a5e9fcb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -88,6 +88,14 @@ Each sin page follows one shape: **poke → proof → why → the fix → receip `badChart`/`fixedChart` are the spec basenames (no `.json`). `citations[].key` must exist in `src/lib/references.ts` (build throws otherwise). 3. New reference? Add it once to `src/lib/references.ts`, then cite its key. + Optional frontmatter worth knowing about: + - `wild[]` — real specimens of the sin, rendered above the citations. Always + `credit` the original and link `sourceUrl` where we found it. A chart that + commits two sins goes on both pages with a different `note` on each. + - `related[]` — slugs of neighbouring sins; validated at build, so a typo or + a renamed slug fails the build rather than shipping a dead link. + - `compareNote` — overrides "Same numbers, both charts," which is wrong on a + sin whose whole point is an omission. 4. `npm run dev` and check. The OG card for the sin is generated automatically. ## Design & rendering diff --git a/docs/content-backlog.md b/docs/content-backlog.md index 8576dc2..c141739 100644 --- a/docs/content-backlog.md +++ b/docs/content-backlog.md @@ -17,7 +17,7 @@ runs 2–5 on purpose. ## Sources in play -`src/lib/references.ts` currently holds 24 entries, 20 of them cited by the five +`src/lib/references.ts` currently holds 24 entries, 21 of them cited by the 6 published sins. This table is a **convenience, not a scoreboard** — it's here so you can spot a source that fits a sin you're drafting, not so we can drive the right-hand column to zero blanks. An uncited reference is not a debt. @@ -29,26 +29,26 @@ seven sources, give it seven and add whatever's missing to the file. | --- | --- | | `ftvisvocab` | — | | `healy` | — | -| `munzner` | — | | `schwabish` | — | | `fewdualaxes` | dual-axis-correlation | -| `fewpies` | too-many-pie-slices | | `huff` | truncated-y-axis | | `isenberg2011` | dual-axis-correlation | +| `munzner` | incomplete-pie | | `shapeparameter` | aspect-ratio | | `showmenumbers` | too-many-pie-slices | | `spurious` | dual-axis-correlation | | `swd` | dual-axis-correlation | | `tufte` | truncated-y-axis | -| `vizwtf` | inverted-y-axis | | `callingbullshit` | inverted-y-axis, truncated-y-axis | -| `datatoviz` | dual-axis-correlation, too-many-pie-slices | -| `datawrapper` | dual-axis-correlation, too-many-pie-slices | | `eagereyes` | aspect-ratio, too-many-pie-slices | +| `fewpies` | incomplete-pie, too-many-pie-slices | | `junkcharts` | inverted-y-axis, too-many-pie-slices | | `truthfulart` | aspect-ratio, dual-axis-correlation | +| `vizwtf` | incomplete-pie, inverted-y-axis | | `wilke` | too-many-pie-slices, truncated-y-axis | | `clevelandmcgill` | aspect-ratio, too-many-pie-slices, truncated-y-axis | +| `datatoviz` | dual-axis-correlation, incomplete-pie, too-many-pie-slices | +| `datawrapper` | dual-axis-correlation, incomplete-pie, too-many-pie-slices | | `economistmistakes` | dual-axis-correlation, inverted-y-axis, truncated-y-axis | | `howchartslie` | aspect-ratio, dual-axis-correlation, inverted-y-axis, truncated-y-axis | @@ -74,7 +74,32 @@ we can build. **Citations:** `huff` (the original con), `callingbullshit`, `howchartslie`, `junkcharts`. -### 2. Pie Slices That Sum to More Than 100% — *Impossible Wholes*, severity 5 +### 2. Results From a Hand-Picked Subgroup — *Deceptive Framing*, severity 4 + +**Poke:** "You didn't pick the wrong chart, you picked the wrong people. The +number is real; the group it describes was chosen after the fact." + +The population-shaped twin of entry 1. Rather than trimming the time window, you +report the slice of the audience, region or segment where the number flatters — +often labelled honestly, which is what makes it feel above board. + +The published `incomplete-pie` specimen is **also an example of this one**: it +reports the primary "in the countryside," excluding the capital, on a graphic +whose banner argues the capital can't win. Reuse the same image here with a note +about this failure mode — that's what the `wild` array is for, and it's the case +for keeping these as two pages rather than one. + +Worth its own page rather than folding into entry 1: the tell is different (no +axis to inspect — you have to know what got left out), and the fix is different +(report the whole population, or every subgroup side by side, not just the +flattering one). + +**Charts:** bad = one subgroup's result. Fixed = every subgroup plus the overall +figure, same underlying data. + +**Citations:** `callingbullshit`, `howchartslie`, `huff`, `vizwtf`. + +### 3. Pie Slices That Sum to More Than 100% — *Impossible Wholes*, severity 5 **Poke:** "Your slices add up to 180%. A pie has one job — dividing a whole — and this data has no whole to divide." @@ -97,7 +122,7 @@ pie-chart post says "one pie chart can only show one total and its shares," and it does *not* separately argue that parts must be mutually exclusive. Don't stretch it further than that. Plus `datatoviz`, `junkcharts`. -### 3. A Pie Chart of Rates or Averages — *Impossible Wholes*, severity 5 +### 4. A Pie Chart of Rates or Averages — *Impossible Wholes*, severity 5 **Poke:** "You made a pie out of averages. Adding them together produces a number that means nothing, and that number is your denominator." @@ -120,7 +145,7 @@ same averages, plus the volume behind each one so the weighting is visible. or it is nothing), `datawrapper` (same one-total premise as above), `schwabish`, `ftvisvocab`. -### 4. Group Averages Shown Without the Distribution — *Hiding the Data*, severity 4 +### 5. Group Averages Shown Without the Distribution — *Hiding the Data*, severity 4 **Poke:** "Four bars, four averages, and no idea whether the difference is real." @@ -133,7 +158,7 @@ observations, means still marked. **Citations:** `wilke`, `healy`, `schwabish`, `datatoviz`. -### 5. Bubbles Sized by Radius Instead of Area — *Perceptual Traps*, severity 4 +### 6. Bubbles Sized by Radius Instead of Area — *Perceptual Traps*, severity 4 **Poke:** "You doubled the number and quadrupled the ink." @@ -148,7 +173,7 @@ position does the work. **Citations:** `munzner`, `clevelandmcgill`, `tufte`, `howchartslie`. -### 6. Stacked Segments Without a Shared Baseline — *Perceptual Traps*, severity 3 +### 7. Stacked Segments Without a Shared Baseline — *Perceptual Traps*, severity 3 **Poke:** "Only the bottom band of a stacked chart has a straight edge to measure against. The rest are guesses." @@ -175,7 +200,7 @@ out to its own zero baseline), totals preserved. **Citations:** `datawrapper`, `wilke`, `munzner`, `ftvisvocab`. -### 7. Categories Sorted Alphabetically Instead of by Value — *Sloppy Craft*, severity 2 +### 8. Categories Sorted Alphabetically Instead of by Value — *Sloppy Craft*, severity 2 **Poke:** "Your categories are sorted by name. Nobody wants to know which region starts with A." @@ -210,6 +235,16 @@ rediscovering them: too: the fixed chart needs a sequential ramp validated on `--chart-canvas` in both themes. Don't draft this one until a real source is in hand. +## Two new levers, as of the first wild specimen + +- **`wild`** — real examples, credited and linked, rendered above the citations. + Zero, one or many per sin. A specimen that commits two sins belongs on both + pages, with a different note on each; that's a reason to split sins, not merge + them. +- **`related`** — cross-links between sins, validated at build. Charts rarely + break one rule at a time, and the person you sent a link to may need the + neighbouring page more than the one they landed on. + ## Conventions reminder Note what the two pie entries above do and don't say. Neither condemns the pie diff --git a/docs/source-requests.md b/docs/source-requests.md index 9acfac4..7892633 100644 --- a/docs/source-requests.md +++ b/docs/source-requests.md @@ -37,6 +37,8 @@ Two standing rules for step 3: | 11 | Robert Kosara, *Understanding Pie Charts* (eagereyes) | URL, and what his experiments actually found. We lean on this to justify not condemning pie charts outright (claim V7). | | 12 | The Economist, "Mistakes, we've drawn a few" | **Canonical URL only** — the content arrived and is settled below, but `economistmistakes` still ships without a link. | +| 13 | `viz.wtf/post/664318320965795840/primary-election-result` | The post's caption and date. viz.wtf 403s automated fetches, so the specimen on `incomplete-pie` is credited from the logos legible in the image itself (Demokratikus Koalíció / Dobrev Klára) rather than from the post. The arithmetic and the measured arc angles are ours and don't depend on it. | + ## Claims to verify Live on the site, resting on recall rather than a source anyone opened. diff --git a/public/wild/hu-primary-countryside.jpg b/public/wild/hu-primary-countryside.jpg new file mode 100644 index 0000000000000000000000000000000000000000..870e0f5549c5e29af0d81849a13ef6a33176e4da GIT binary patch literal 84255 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 literal 0 HcmV?d00001 diff --git a/src/charts/incomplete-pie-bad.json b/src/charts/incomplete-pie-bad.json new file mode 100644 index 0000000..516ff42 --- /dev/null +++ b/src/charts/incomplete-pie-bad.json @@ -0,0 +1,24 @@ +{ + "title": "Vote Share by Candidate (%)", + "width": 300, + "height": 260, + "data": { + "values": [ + { "candidate": "Alvarez", "share": 38 }, + { "candidate": "Boone", "share": 22 }, + { "candidate": "Chen", "share": 19 }, + { "candidate": "Everyone else", "share": 21 } + ] + }, + "transform": [{ "filter": "datum.candidate !== 'Everyone else'" }], + "mark": { "type": "arc" }, + "encoding": { + "theta": { "field": "share", "type": "quantitative" }, + "color": { + "field": "candidate", + "type": "nominal", + "sort": ["Alvarez", "Boone", "Chen", "Everyone else"], + "legend": { "title": "Candidate" } + } + } +} diff --git a/src/charts/incomplete-pie-fixed.json b/src/charts/incomplete-pie-fixed.json new file mode 100644 index 0000000..ac1822c --- /dev/null +++ b/src/charts/incomplete-pie-fixed.json @@ -0,0 +1,23 @@ +{ + "title": "Vote Share by Candidate (%)", + "width": 300, + "height": 260, + "data": { + "values": [ + { "candidate": "Alvarez", "share": 38 }, + { "candidate": "Boone", "share": 22 }, + { "candidate": "Chen", "share": 19 }, + { "candidate": "Everyone else", "share": 21 } + ] + }, + "mark": { "type": "arc" }, + "encoding": { + "theta": { "field": "share", "type": "quantitative" }, + "color": { + "field": "candidate", + "type": "nominal", + "sort": ["Alvarez", "Boone", "Chen", "Everyone else"], + "legend": { "title": "Candidate" } + } + } +} diff --git a/src/components/RelatedSins.astro b/src/components/RelatedSins.astro new file mode 100644 index 0000000..74d22c0 --- /dev/null +++ b/src/components/RelatedSins.astro @@ -0,0 +1,36 @@ +--- +// "While you're here" — the other sins a chart like this usually commits. +// Charts rarely break one rule at a time, and the person you sent this to may +// need the neighbouring page more than this one. Renders nothing when empty. +import { href } from '../lib/url'; +import { severityUnits } from '../lib/charts'; + +interface Props { + sins: { id: string; data: { title: string; summary: string; severity: number } }[]; +} + +const { sins } = Astro.props; +--- + +{ + sins.length > 0 && ( + + ) +} diff --git a/src/components/WildExamples.astro b/src/components/WildExamples.astro new file mode 100644 index 0000000..6697bde --- /dev/null +++ b/src/components/WildExamples.astro @@ -0,0 +1,65 @@ +--- +// Real specimens of a sin, published by someone else. Sits between the +// explanation and the citations: first the argument, then proof it happens, +// then the sources. Renders nothing when a sin has no examples yet. +import { href } from '../lib/url'; + +interface WildExample { + caption: string; + note: string; + image?: string; + alt?: string; + credit: string; + sourceUrl?: string; + sourceLabel?: string; +} + +interface Props { + examples: WildExample[]; +} + +const { examples } = Astro.props; +--- + +{ + examples.length > 0 && ( +
+

Caught in the wild

+

+ {examples.length === 1 + ? 'Not a mock-up. Someone published this.' + : 'Not mock-ups. Someone published each of these.'} +

+
    + {examples.map((ex) => ( +
  1. + {ex.image && ( +
    + {ex.alt +
    + )} +

    {ex.caption}

    +

    {ex.note}

    +

    + {ex.credit} + {ex.sourceUrl && ( + <> + {' · '} + + {ex.sourceLabel ?? 'source'} + + + )} +

    +
  2. + ))} +
+
+ ) +} diff --git a/src/content.config.ts b/src/content.config.ts index 3fde162..e04d2c4 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -27,6 +27,29 @@ const sins = defineCollection({ // Basenames of Vega-Lite specs in src/charts/ (without .json). badChart: z.string(), fixedChart: z.string(), + // Overrides the line under the before/after pair. Default asserts the two + // charts share one dataset; set it when the sin *is* an omission and that + // wording would be wrong. + compareNote: z.string().optional(), + // Real specimens of this sin, published by someone else and found in the + // wild. Zero, one or many. Rendered above the citations. Always credit the + // original and link where it was collected when we can. + wild: z + .array( + z.object({ + caption: z.string(), + note: z.string(), + image: z.string().optional(), + alt: z.string().optional(), + credit: z.string(), + sourceUrl: z.string().optional(), + sourceLabel: z.string().optional(), + }), + ) + .default([]), + // Slugs of other sins worth reading next — a chart usually commits more + // than one. Validated at build; an unknown slug throws. + related: z.array(z.string()).default([]), // Optional publish date; unset entries sort last. date: z.coerce.date().optional(), draft: z.boolean().default(false), diff --git a/src/content/sins/aspect-ratio.md b/src/content/sins/aspect-ratio.md index c429093..78566cb 100644 --- a/src/content/sins/aspect-ratio.md +++ b/src/content/sins/aspect-ratio.md @@ -8,6 +8,9 @@ tags: ["line chart", "aspect ratio", "exaggeration"] badChart: "aspect-ratio-bad" fixedChart: "aspect-ratio-fixed" date: 2026-08-05 +related: + - truncated-y-axis + - dual-axis-correlation citations: - key: shapeparameter note: "The paper that made this measurable: a graph's width-to-height ratio changes how slopes are judged, and gave us “bank the average slope toward 45°.”" diff --git a/src/content/sins/dual-axis-correlation.md b/src/content/sins/dual-axis-correlation.md index d688829..c6cd222 100644 --- a/src/content/sins/dual-axis-correlation.md +++ b/src/content/sins/dual-axis-correlation.md @@ -8,6 +8,9 @@ tags: ["dual axis", "correlation", "line chart"] badChart: "dual-axis-bad" fixedChart: "dual-axis-fixed" date: 2026-08-05 +related: + - aspect-ratio + - truncated-y-axis citations: - key: datatoviz note: "Lists “using two Y axes” as a top caveat — a way to manipulate the story." diff --git a/src/content/sins/incomplete-pie.md b/src/content/sins/incomplete-pie.md new file mode 100644 index 0000000..340f397 --- /dev/null +++ b/src/content/sins/incomplete-pie.md @@ -0,0 +1,80 @@ +--- +title: "Pie Slices That Don't Sum to the Whole" +summary: "Four-fifths of a result, drawn as if it were all of it — so every share on the chart comes out too big." +poke: "Your slices don't add up to the whole, but they fill the circle anyway. Every number on that chart is bigger than the truth." +category: "Impossible Wholes" +severity: 5 +tags: ["pie chart", "part-to-whole", "share"] +badChart: "incomplete-pie-bad" +fixedChart: "incomplete-pie-fixed" +compareNote: "One set of results in both charts. The sinful one just leaves a slice out." +date: 2026-08-05 +wild: + - caption: "Hungarian opposition primary, 2021 — results “in the countryside.”" + note: "The three labelled slices read 38%, 22% and 19%: 79% in all. The remaining 21% — every other candidate — isn't drawn, and the circle is full anyway, so each share was quietly scaled up by a factor of about 1.27. Measuring the image, the 38% slice occupies 173.6° of arc, which is 48.3% of the pie. The graphic argues its own candidate is the one who can win outside the capital, and it draws her a whisker short of half the vote when she polled 38%." + image: "hu-primary-countryside.jpg" + alt: "Pie chart headed AZ ELLENZÉKI ELŐVÁLASZTÁS VÉGEREDMÉNYE VIDÉKEN, with three slices labelled Dobrev Klára 38%, Karácsony Gergely 22%, and Márki-Zay Péter 19%, filling the whole circle." + credit: "Campaign graphic by Demokratikus Koalíció / Dobrev Klára" + sourceLabel: "collected by WTF Visualizations" + sourceUrl: "https://viz.wtf/post/664318320965795840/primary-election-result" +related: + - too-many-pie-slices +citations: + - key: datawrapper + note: "Their pie-chart guidance starts from the premise this chart breaks: “one pie chart can only show one total and its shares.”" + - key: munzner + note: "Part-to-whole is a composition of a whole. Remove part of the whole and the encoding no longer means anything." + - key: fewpies + note: "Few's case against the pie, which lands hardest when the circle isn't even a real total." + - key: vizwtf + note: "Where the specimen above was collected — the archive exists because this ships to real audiences." + - key: datatoviz + note: "Its pie-chart caveats cover the arithmetic a pie quietly assumes." +--- + +## The sin + +A pie chart makes exactly one promise: the circle is everything, and each wedge +is its share of that everything. Every reading depends on it. "Nearly half" +means nearly half *of the total* — otherwise the phrase is empty. + +So when the parts don't add up to the whole, the tool has two options, and both +are bad. Either it leaves a gap in the circle — which nobody ships — or it +scales the parts up until they close it. Charting libraries do the second +silently, because they compute each angle as a fraction of *the values you +gave them*, not of the total you meant. + +Above, three candidates hold 38%, 22% and 19% of the vote. That's 79%. The +remaining 21% went to people not shown, and dropping them doesn't shrink the +chart — it inflates everyone left in it. The leading candidate's 38% is drawn as +48% of the circle. + +## Why it deceives + +Nothing signals the omission. The circle is closed, the percentages are printed +correctly next to the slices, and the labels and the geometry disagree with each +other in a way almost nobody checks — because checking means adding three +numbers and noticing they don't reach 100. + +The reader is doing what the chart asked: comparing areas. The areas are wrong. +And because every slice is inflated by the same factor, the chart stays +internally consistent — it looks exactly like a well-formed pie right up until +you do the arithmetic. + +This is worse than a hard-to-read chart. A crowded pie makes you guess; this one +answers confidently and wrong. + +## The repentance + +Include the whole whole. If the small categories are too numerous or too dull to +list, that's what an **"Other" wedge** is for — it costs one slice and one label, +and it makes every other slice true. The fixed chart above does nothing more +clever than that. + +If you can't account for the remainder — a poll with undecideds, a total that +genuinely isn't known — then you don't have a part-to-whole relationship, and a +pie is the wrong form. Use a bar chart, where each value stands on its own +baseline and nothing has to sum to anything. + +And if you're tempted to drop the remainder because it makes your number look +better: that's not a charting decision. diff --git a/src/content/sins/inverted-y-axis.md b/src/content/sins/inverted-y-axis.md index be59196..880b5f0 100644 --- a/src/content/sins/inverted-y-axis.md +++ b/src/content/sins/inverted-y-axis.md @@ -8,6 +8,9 @@ tags: ["axis", "area chart", "direction"] badChart: "inverted-axis-bad" fixedChart: "inverted-axis-fixed" date: 2026-08-05 +related: + - truncated-y-axis + - aspect-ratio citations: - key: callingbullshit note: "Their “Misleading Axes” module collects the axis manipulations, this one included." diff --git a/src/content/sins/too-many-pie-slices.md b/src/content/sins/too-many-pie-slices.md index bfe54e3..53ea0dc 100644 --- a/src/content/sins/too-many-pie-slices.md +++ b/src/content/sins/too-many-pie-slices.md @@ -8,6 +8,8 @@ tags: ["pie chart", "part-to-whole", "comparison"] badChart: "pie-overload-bad" fixedChart: "pie-overload-fixed" date: 2026-08-05 +related: + - incomplete-pie citations: - key: fewpies note: "“Save the Pies for Dessert” — the definitive, free takedown of the overloaded pie." diff --git a/src/content/sins/truncated-y-axis.md b/src/content/sins/truncated-y-axis.md index c868add..884ccf6 100644 --- a/src/content/sins/truncated-y-axis.md +++ b/src/content/sins/truncated-y-axis.md @@ -8,6 +8,9 @@ tags: ["bar chart", "axis", "exaggeration"] badChart: "truncated-axis-bad" fixedChart: "truncated-axis-fixed" date: 2026-08-05 +related: + - aspect-ratio + - inverted-y-axis citations: - key: callingbullshit note: "Their “Misleading Axes” module is the standard explainer for exactly this move." diff --git a/src/pages/sins/[...slug].astro b/src/pages/sins/[...slug].astro index 3ce0faf..ed31ce2 100644 --- a/src/pages/sins/[...slug].astro +++ b/src/pages/sins/[...slug].astro @@ -2,6 +2,8 @@ import { getCollection, render } from 'astro:content'; import BaseLayout from '../../layouts/BaseLayout.astro'; import VegaChart from '../../components/VegaChart.astro'; +import WildExamples from '../../components/WildExamples.astro'; +import RelatedSins from '../../components/RelatedSins.astro'; import Citations from '../../components/Citations.astro'; import ShareLink from '../../components/ShareLink.astro'; import { getChartSpec, severityUnits, tagModifier } from '../../lib/charts'; @@ -11,11 +13,23 @@ export async function getStaticPaths() { const sins = await getCollection('sins', ({ data }) => !data.draft); return sins.map((sin) => ({ params: { slug: sin.id }, - props: { sin }, + props: { sin, all: sins }, })); } -const { sin } = Astro.props; +const { sin, all } = Astro.props; + +// Resolve `related` slugs against the collection, failing the build on a typo +// or a slug that was renamed out from under us. +const related = sin.data.related.map((slug) => { + const target = all.find((s) => s.id === slug); + if (!target) { + throw new Error( + `Sin "${sin.id}" lists related sin "${slug}", which doesn't exist. Known: ${all.map((s) => s.id).join(', ')}`, + ); + } + return target; +}); const { Content } = await render(sin); const badSpec = getChartSpec(sin.data.badChart); @@ -59,14 +73,18 @@ const ogImage = new URL(href(`og/${sin.id}.png`), Astro.site).toString(); -

Same numbers, both charts. Only the design changed.

+

{sin.data.compareNote ?? 'Same numbers, both charts. Only the design changed.'}

+ + + +

diff --git a/src/styles/global.css b/src/styles/global.css index 1e49447..c659dbb 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -675,6 +675,116 @@ a.receipt__work { font-size: 0.875rem; } +/* often found together — cross-links between sins */ +.related { + margin-top: var(--spacing-09); + padding-top: var(--spacing-07); + border-top: 1px solid var(--border-subtle); +} +.related__title { + font-size: 1.5rem; + font-weight: 400; + margin: 0 0 var(--spacing-05); + letter-spacing: -0.01em; +} +.related__list { + list-style: none; + margin: 0; + padding: 0; + display: grid; + gap: 1px; + background: var(--border-subtle); + border: 1px solid var(--border-subtle); +} +.related__item { + background: var(--layer-01); + padding: var(--spacing-05) var(--spacing-06); + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--spacing-05); +} +.related__link { + text-decoration: none; + display: grid; + gap: var(--spacing-02); +} +.related__name { + font-weight: 600; + color: var(--link-primary); +} +.related__link:hover .related__name { + text-decoration: underline; +} +.related__summary { + font-size: 0.875rem; + color: var(--text-secondary); +} +.related__sev { + display: inline-flex; + gap: 3px; + flex: none; +} +.related__unit { + width: 6px; + height: 14px; + background: var(--border-subtle); +} +.related__unit--on { + background: var(--support-error); +} + +/* caught in the wild — real specimens */ +.wild { + margin-top: var(--spacing-09); + padding-top: var(--spacing-07); + border-top: 1px solid var(--border-subtle); +} +.wild__title { + font-size: 1.5rem; + font-weight: 400; + margin: 0; + letter-spacing: -0.01em; +} +.wild__lede { + color: var(--text-secondary); + margin: var(--spacing-03) 0 var(--spacing-06); +} +.wild__list { + list-style: none; + margin: 0; + padding: 0; + display: grid; + gap: var(--spacing-06); +} +.wild__item { + background: var(--layer-01); + border: 1px solid var(--border-subtle); + padding: var(--spacing-05) var(--spacing-06) var(--spacing-06); +} +.wild__figure { + margin: 0 0 var(--spacing-05); + background: var(--chart-canvas); +} +.wild__img { + display: block; + width: 100%; + height: auto; +} +.wild__caption { + margin: 0 0 var(--spacing-03); + font-weight: 600; +} +.wild__note { + margin: 0 0 var(--spacing-04); + color: var(--text-secondary); +} +.wild__credit { + margin: 0; + font-size: 0.75rem; + color: var(--text-helper); +} + /* references page */ .refs { padding-block: var(--spacing-08) var(--spacing-10);