Skip to content

Commit 5c73cae

Browse files
author
Oussama
committed
fix: address final narrative feedback
1 parent 25c0c0c commit 5c73cae

12 files changed

Lines changed: 63 additions & 33 deletions

website/src/lib/charts/AnchorBar.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
<b class="artist" style:width={`${pct}%`}></b>
1818
<em class="type-mono">{artistCount.toLocaleString()}</em>
1919
</div>
20-
<figcaption><strong>Picasso has 1,242 works in the collection.</strong> This artist has {artistCount}.</figcaption>
20+
<figcaption>
21+
<strong>Picasso is the high-count reference point: 1,242 works.</strong> This artist has {artistCount}.
22+
</figcaption>
2123
</figure>
2224

2325
<style>

website/src/lib/charts/Globe.svelte

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
function showTooltip(event, country) {
5555
const iso3 = worldAtlasIdToIso3[String(country.id).padStart(3, '0')];
5656
const count = countByIso[iso3] || 0;
57-
if (!iso3 || count === 0) return;
57+
if (!iso3) return;
5858
window.dispatchEvent(
5959
new CustomEvent('darts:tooltip', {
6060
detail: {
@@ -196,8 +196,16 @@
196196
</script>
197197
198198
<figure class="globe-figure" aria-label="Orthographic globe showing credited works by artist country">
199-
<svg viewBox={`0 0 ${width} ${height}`}>
200-
<title>Orthographic globe of credited works by artist country</title>
199+
<svg
200+
viewBox={`0 0 ${width} ${height}`}
201+
class:dragging
202+
role="application"
203+
aria-label="Drag anywhere on the globe to rotate it"
204+
onpointerdown={onPointerDown}
205+
onpointermove={onPointerMove}
206+
onpointerup={onPointerUp}
207+
onpointercancel={onPointerUp}
208+
>
201209
<defs>
202210
<filter id="globe-rim" x="-20%" y="-20%" width="140%" height="140%">
203211
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur" />
@@ -210,16 +218,7 @@
210218
</defs>
211219
<circle class="sphere" cx={width / 2} cy={height / 2} r="350" filter="url(#globe-rim)" />
212220
<path class="graticule" d={graticulePath} />
213-
<g
214-
class="countries"
215-
class:dragging
216-
role="application"
217-
aria-label="Drag to rotate the globe"
218-
onpointerdown={onPointerDown}
219-
onpointermove={onPointerMove}
220-
onpointerup={onPointerUp}
221-
onpointercancel={onPointerUp}
222-
>
221+
<g class="countries">
223222
{#each countries as country, index}
224223
{@const iso3 = worldAtlasIdToIso3[String(country.id).padStart(3, '0')]}
225224
<path

website/src/lib/charts/LineChart.svelte

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
5151
<figure class="line-chart" aria-label="Female-credited share by decade from 1860 to 2020">
5252
<svg viewBox={`0 0 ${width} ${height}`}>
53-
<title>Female-credited share by decade</title>
5453
<g transform={`translate(${margin.left},${margin.top})`}>
5554
<g class="grid">
5655
{#each [0, 0.25, 0.5, 0.6] as tick}

website/src/lib/charts/SmallMultiplesGender.svelte

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
<svg viewBox={`0 0 ${width} ${height}`} role="img" aria-label={`${panel.department} female share trend`}>
5656
<line class="parity" x1={margin.left} x2={width - margin.right} y1={y(0.5)} y2={y(0.5)} />
5757
<path d={pathFor(panel.series)} />
58+
<text class="year" x={margin.left} y={height - 4}>1860</text>
59+
<text class="year end" x={width - margin.right} y={height - 4}>2020</text>
5860
</svg>
5961
</article>
6062
{/each}
@@ -103,6 +105,16 @@
103105
opacity: 0.55;
104106
}
105107
108+
.year {
109+
fill: var(--fg-on-light-mute);
110+
font-family: var(--font-ui);
111+
font-size: 9px;
112+
}
113+
114+
.year.end {
115+
text-anchor: end;
116+
}
117+
106118
@media (max-width: 900px) {
107119
.multiples {
108120
grid-template-columns: repeat(2, minmax(0, 1fr));

website/src/lib/charts/Treemap.svelte

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
7979
<figure class="treemap" aria-label="Treemap of MoMA collection areas by number of works">
8080
<svg viewBox={`0 0 ${width} ${height}`}>
81-
<title>Treemap of MoMA collection areas by number of works</title>
8281
<defs>
8382
{#each leaves as leaf}
8483
<clipPath id={`leaf-clip-${leaf.rank}`}>

website/src/lib/charts/globe.css

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,19 @@
77
display: block;
88
width: 100%;
99
height: auto;
10+
cursor: grab;
11+
}
12+
13+
.globe-figure svg.dragging {
14+
cursor: grabbing;
1015
}
1116

1217
.globe-figure .sphere {
1318
fill: var(--bg-dark);
1419
stroke: var(--fg-on-dark-mute);
1520
stroke-width: 0.5;
1621
opacity: 0.9;
22+
pointer-events: all;
1723
}
1824

1925
.globe-figure .graticule {
@@ -24,14 +30,6 @@
2430
pointer-events: none;
2531
}
2632

27-
.globe-figure .countries {
28-
cursor: grab;
29-
}
30-
31-
.globe-figure .countries.dragging {
32-
cursor: grabbing;
33-
}
34-
3533
.globe-figure path {
3634
stroke: var(--bg-dark);
3735
stroke-width: 0.35;

website/src/lib/components/Tooltip.svelte

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
let y = $state(0);
99
let content = $state('');
1010
let placement = $state('right');
11+
let verticalPlacement = $state('above');
1112
1213
function positionTooltip(detail) {
1314
x = detail.x ?? 0;
1415
y = detail.y ?? 0;
1516
content = detail.content ?? '';
1617
placement = x > window.innerWidth - EDGE_GUARD ? 'left' : 'right';
18+
verticalPlacement = y < 140 ? 'below' : 'above';
1719
visible = Boolean(content);
1820
}
1921
@@ -40,6 +42,7 @@
4042
class="tooltip"
4143
class:is-visible={visible}
4244
class:left={placement === 'left'}
45+
class:below={verticalPlacement === 'below'}
4346
style:transform={`translate(${x}px, ${y}px)`}
4447
role="status"
4548
aria-live="polite"
@@ -63,12 +66,20 @@
6366
line-height: var(--type-small-line);
6467
opacity: 0;
6568
pointer-events: none;
66-
translate: var(--space-2) calc(-1 * var(--space-2));
69+
translate: var(--space-2) calc(-100% - var(--space-1));
6770
transition: opacity var(--duration-tooltip-out) var(--ease-out);
6871
}
6972
7073
.tooltip.left {
71-
translate: calc(-100% - var(--space-2)) calc(-1 * var(--space-2));
74+
translate: calc(-100% - var(--space-2)) calc(-100% - var(--space-1));
75+
}
76+
77+
.tooltip.below {
78+
translate: var(--space-2) var(--space-2);
79+
}
80+
81+
.tooltip.left.below {
82+
translate: calc(-100% - var(--space-2)) var(--space-2);
7283
}
7384
7485
.tooltip.is-visible {

website/src/lib/scenes/Scene1Mediums.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
dx: 110,
2929
dy: 64,
3030
value: '144,149',
31-
label: 'cleaned works anchor the analysis.',
31+
label: 'works remain after cleaning and link to an artist record.',
3232
width: 205,
3333
};
3434
}
@@ -64,11 +64,11 @@
6464
<SceneTitle
6565
kicker="Scene 1"
6666
title="What MoMA actually collects isn't what you think."
67-
subline="Area encodes works in each collection area; one color pop-out carries the active claim."
67+
subline="Area encodes works by curatorial department. The next scenes break those records down by origin, gender, and medium."
6868
/>
6969
{#if lockedMedium}
7070
<div class="lock-row">
71-
<FilterChip label="Locked" value={lockedMedium} onRemove={() => (lockedMedium = '')} />
71+
<FilterChip label="Selected" value={lockedMedium} onRemove={() => (lockedMedium = '')} />
7272
</div>
7373
{/if}
7474
<Treemap {data} {highlighted} {annotation} {lockedMedium} onLock={(medium) => (lockedMedium = medium)} />
@@ -79,8 +79,8 @@
7979
<div class="text-rail">
8080
<ScrollStep scene={1} step={0}>
8181
<p>
82-
Start with the whole collection. The first surprise is not geography or gender; it is the shape of the archive
83-
itself.
82+
Start with the whole collection. These departments are the entry point into MoMA's recorded mediums: paper,
83+
photography, design objects, paintings, sculpture, film, and everything that sits between them.
8484
</p>
8585
</ScrollStep>
8686
<ScrollStep scene={1} step={1}>

website/src/lib/scenes/Scene2Globe.svelte

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@
8787
dark
8888
/>
8989
<p class="exclusion">Excluded: 2.3% of artist credits have no mapped nationality in the cleaned corpus.</p>
90+
<p class="interaction-hint">
91+
Drag anywhere on the globe. Click a country to open an artist suggestion from its records.
92+
</p>
9093
{#if step >= 3}
9194
<div class="slider-panel">
9295
<DecadeSlider {timeline} ariaLabel="Filter globe by decade range" dark />

website/src/lib/scenes/Scene5Quiz.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,9 @@
181181
{:else if result?.artist}
182182
<article class="result">
183183
{#if result.relaxed}
184-
<p class="note">No exact match. Showing closest fit.</p>
184+
<p class="note">
185+
No exact match for all three answers. Showing the closest fit; try again to change the slice.
186+
</p>
185187
{/if}
186188
<div class="result-heading">
187189
<div class="portrait" aria-hidden="true">{initials(result.artist.name)}</div>

0 commit comments

Comments
 (0)