Skip to content

03 update UI#7

Merged
danmillr merged 4 commits intomainfrom
03-update-ui
Feb 27, 2026
Merged

03 update UI#7
danmillr merged 4 commits intomainfrom
03-update-ui

Conversation

@danmillr
Copy link
Copy Markdown
Member

  • Anthromes detail overlay now shows a color swatch beside the title for both waffle segments and map hover/pin tooltips (meta forwarded end-to-end).
  • Anthromes info panel includes a non-clickable swatch list; styling simplified to remove button-like backgrounds.
    Detail overlay height only expands when the history chart is present; history chart section gets extra room only when rendered.
  • Map tooltip pipeline now passes anthrome meta (label/color/year/code) so detail panel stays in sync with map interactions.

@danmillr danmillr requested a review from Copilot February 27, 2026 21:24
@danmillr danmillr merged commit a3bb372 into main Feb 27, 2026
2 checks passed
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Biomes and Anthromes UIs to keep detail overlays/tooltips visually and semantically in sync (including passing “meta” like label/color/year/code end-to-end), while also refining overlay sizing and adding richer explanatory content.

Changes:

  • Adds/propagates anthrome “meta” into waffle + map tooltip/detail flows and updates detail overlay presentation (swatches, leader lines, conditional sizing).
  • Refines filter/overlay UX in Biomes (new Known/Unknown radio filter, filter layout changes) and improves robustness/perf in filter application.
  • Enhances the Anthromes “Zooms” panel (zoom controls, header copy, loading UI) and updates selected zoom site data; removes annotation bubbles + annotations data file.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/biomes/lib/BiomesChart.svelte Filter/tooltip pipeline tweaks (unknown filter modes, cached leaves, exported tooltip action) and detail dispatch now includes anchor point.
src/biomes/App.svelte UI/layout updates for nav, filters, detail overlay leader line + richer overlay copy.
src/anthromes/lib/ZoomsPanel.svelte Adds zoom controls, header intro text, loading spinner overlay, and supports per-location description.
src/anthromes/lib/WaffleChart.svelte Adds tooltip meta + wheel zoom behavior + UI refinements (gap ring, drag handle redesign).
src/anthromes/lib/MapCanvas.svelte Passes tooltip meta through hover/pin pipeline and tracks isolated-cell state.
src/anthromes/lib/HistoryCircleChart.svelte Adjusts label placement/font sizing and wraps anthrome labels into tspans.
src/anthromes/lib/AnnotationBubbles.svelte Removes annotation bubble layer implementation.
src/anthromes/App.svelte Detail overlay now shows swatch/title from meta, adds leader line connector, updates nav + filter rail layout, removes annotation bubbles.
public/data/zooms-selected.json Updates the curated list of “selected” zoom locations and descriptions.
public/data/annotations.json Removes annotations content file (no longer used after bubble removal).
index.html Updates landing-page links for the two visualizations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

</script>

<div class="chart-container" bind:this={chartContainer} onpointerdown={handlePanStart} onpointermove={handleContainerMove} onpointerleave={() => { hoverInCircle = false; }} class:panning class:in-circle={hoverInCircle}>
<div class="chart-container" bind:this={chartContainer} onpointerdown={handlePanStart} onpointermove={handleContainerMove} onpointerleave={() => { hoverInCircle = false; }} onwheel={handleWheel} class:panning class:in-circle={hoverInCircle}>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

onwheel={handleWheel} in Svelte is passive by default, so event.preventDefault() inside handleWheel won’t reliably prevent page scrolling/zooming (and may log a warning). Use a non-passive wheel listener (e.g. onwheel|nonpassive) for this zoom-to-cursor behavior.

Suggested change
<div class="chart-container" bind:this={chartContainer} onpointerdown={handlePanStart} onpointermove={handleContainerMove} onpointerleave={() => { hoverInCircle = false; }} onwheel={handleWheel} class:panning class:in-circle={hoverInCircle}>
<div class="chart-container" bind:this={chartContainer} onpointerdown={handlePanStart} onpointermove={handleContainerMove} onpointerleave={() => { hoverInCircle = false; }} onwheel|nonpassive={handleWheel} class:panning class:in-circle={hoverInCircle}>

Copilot uses AI. Check for mistakes.
Comment thread src/anthromes/App.svelte
Comment on lines +296 to +305
<a href="/src/biomes/" aria-label="Go to Biomes">
<textPath href="#nav-arc-bottom-left" startOffset="50%" text-anchor="middle">BIOMES →</textPath>
</a>
</text>
</g>
</svg>
</div>

<a class="nav-circle__home" href="/src/" aria-label="Back to home">←</a>
</div>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These navigation links use absolute paths (/src/biomes/ and /src/), which will break when the app is served under the configured Vite base path (/twosides/ in production). Prefer relative links or prefix with import.meta.env.BASE_URL so navigation works on GitHub Pages.

Copilot uses AI. Check for mistakes.
Comment thread index.html
Comment on lines +110 to +111
<a id="leftLink" class="sideLink" href="/src/biomes/">BIOMES</a>
<a id="rightLink" class="sideLink" href="/src/anthromes/">ANTHROMES</a>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Root index.html now links to /src/biomes/ and /src/anthromes/ using leading slashes. Because Vite builds with base: '/twosides/' in production, these absolute paths will ignore the base and 404 on GitHub Pages. Use relative links (e.g. src/biomes/, src/anthromes/) so they resolve under the base path.

Suggested change
<a id="leftLink" class="sideLink" href="/src/biomes/">BIOMES</a>
<a id="rightLink" class="sideLink" href="/src/anthromes/">ANTHROMES</a>
<a id="leftLink" class="sideLink" href="src/biomes/">BIOMES</a>
<a id="rightLink" class="sideLink" href="src/anthromes/">ANTHROMES</a>

Copilot uses AI. Check for mistakes.
Comment thread src/biomes/App.svelte
Comment on lines +270 to +280
<text class="nav-circle__text nav-circle__text--link">
<a href="/src/anthromes/" aria-label="Go to Anthromes">
<textPath href="#nav-arc-bottom-right" startOffset="50%" text-anchor="middle">ANTHROMES →</textPath>
</a>
</text>
</g>
</svg>
</div>

<a class="nav-circle__home" href="/src/" aria-label="Back to home">←</a>
</div>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new navigation links use absolute paths (e.g. /src/anthromes/ and /src/). With vite.config.js setting base to /twosides/ in production, these will bypass the base path on GitHub Pages and break navigation. Use relative links (no leading slash) or prefix with import.meta.env.BASE_URL (e.g. ${base}src/anthromes/ and ${base}).

Copilot uses AI. Check for mistakes.
Comment thread src/biomes/App.svelte
<p class="overlay-desc">Show only uSGBs (Unknown species genome bins) when enabled.</p>
<div class="overlay-desc">
<p><strong>Unknown (uSGB)</strong><br />Genome-defined species-level group newly identified in this study — not previously represented in reference databases.</p>
<p><strong>Unknown (uSGB)</strong><br />Previously uncharacterized microbial lineage revealed through large-scale metagenomic assembly.</p>
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The status overlay description repeats the same label twice (Unknown (uSGB)) for two different definitions, which reads like a copy/paste error and is confusing. Consider making the second paragraph describe the “Known” category (or adjust the heading text) so both options match the filter choices (All/Known/Unknown).

Suggested change
<p><strong>Unknown (uSGB)</strong><br />Previously uncharacterized microbial lineage revealed through large-scale metagenomic assembly.</p>
<p><strong>Known (kSGB)</strong><br />Species-level group with representative genomes already present in existing reference databases.</p>

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants