Skip to content

Modernize the repository: replace Nuxt 2 with Vite, Vega-Lite 6 and Pico CSS - #6

Open
bouweandela wants to merge 14 commits into
mainfrom
modernize
Open

bouweandela wants to merge 14 commits into
mainfrom
modernize

Conversation

@bouweandela

@bouweandela bouweandela commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Nuxt 2 and Vue 2 are end-of-life and no longer build on current Node.js. The site is now a static Vite page with a small script that embeds Vega-Lite specifications written by the ESMValTool impact/bias_and_change.py diagnostic.

  • One specification per project in src/specs/, discovered automatically, so projects can be added, updated or removed by changing a single file
  • Project notes and a link to the recipe run come from the specifications
  • Existing ?project= and ?dataset= links keep working
  • Remove the Altair notebook and hand-maintained specification
  • Add a CI build workflow and rewrite the README

Closes #3

Nuxt 2 and Vue 2 are end-of-life and no longer build on current Node.js.
The site is now a static Vite page with a small script that embeds
Vega-Lite specifications written by the ESMValTool impact/bias_and_change.py
diagnostic.

- One specification per project in src/specs/, discovered automatically,
  so projects can be added, updated or removed by changing a single file
- Project notes and a link to the recipe run come from the specifications
- Existing ?project= and ?dataset= links keep working
- Remove the Altair notebook and hand-maintained specification
- Add a CI build workflow and rewrite the README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bouweandela and others added 13 commits October 9, 2026 17:51
The specifications are no longer bundled into the site, so projects can be
updated, added or removed without rebuilding it.

- A projects.json manifest next to index.html maps each project to the
  recipe output directory to show it from, so the maintainer chooses which
  run is shown when there are several
- The specification is read directly from that recipe output directory and
  the "View recipe output" button links to it
- Fetch without using stale cached copies, as the files no longer have a
  content hash in their name
- data/ stands in for the web server during development and is not
  included in dist/, so deploying does not overwrite the manifest
- Update the example data to recent CMIP6 and CORDEX-CMIP6 runs and drop
  CMIP5, which can no longer be rerun

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Any click on the graphs used to clear the selection, including the click
that ends panning with Ctrl. Now only clicking a point changes the
selection, and Esc or double-click clears it together with the
highlighted range.

Move the instructions below the graphs and make them easier to read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The CMIP5 simulation can no longer be rerun, so add its 2023 recipe output
to the example data. That run predates the Vega-Lite output of the
diagnostic, so vegalite_spec_CMIP5.json was generated from its
recipe_output.csv with build_vegalite_spec from the diagnostic. In that
run the bias is calculated over 1986-2010, which the notes and axis title
now say.

Also update the example data to the latest CMIP6 and CORDEX-CMIP6 runs,
including their index.html and plots, and the README accordingly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Show each chart as a separate view that can be panned by dragging and
  zoomed with its own buttons or Ctrl + scroll, so plain scrolling scrolls
  the page. This also fixes the axes of one chart changing when zooming the
  other, because both charts shared one zoom selection.
- Select and deselect runs by clicking or tapping, without modifier keys,
  and select all runs of a model by double-clicking or double-tapping.
- Choose the project with buttons instead of a dropdown.
- Show the bias and change of the selected runs in a table grouped by model,
  with buttons to select all runs of a model, remove runs and copy a link.
  Fade the other points, so the selected runs stand out.
- Add an optional tool that suggests models that sample the spread of the
  projected change, after leaving out the most biased models. A model is the
  dataset without the ensemble member, so for CORDEX it includes the driving
  model.
- Stack the charts on narrow screens, and show loading and error states.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Update the specification as the current build_vegalite_spec function of
the diagnostic would write it: without the brush and panzoom parameters,
and with the points colored by model directly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Show the color of each model in the table of selected runs.
- Hovering over or tapping a run in the table shows a ring around it in
  both charts, and hovering over a point shows the same ring in the other
  chart and highlights the run in the table. The ring is drawn on top, so
  it can be found where points overlap or colors repeat.
- Make the outline of selected points thinner, so it is distinct from the
  ring, while keeping enough contrast for light colors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Users of touch screens understand that clicking means tapping for them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add a button to switch between the light and dark theme. The browser
  remembers the choice; otherwise the page follows the system theme, also
  when it changes. The charts keep their selection and zoom.
- In dark mode, fade the other points less and make the grid less
  prominent, so the faded points remain visible.
- Show highlighted runs at full opacity, so the ring is not drawn around a
  faded point.
- Keep the font size of the browser instead of Pico's enlarged text on
  wider screens, and make the text in the charts slightly larger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reens

On phones, the tooltip did not fit next to points in the middle of the
screen and was partly shown off the left edge, and a tap kept it shown
until the next tap. Touch screens now show the bias and change of the
run that was tapped last below each chart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Scrolling over a chart without Ctrl, or Command on a Mac, briefly shows
how to zoom, while the page keeps scrolling. This replaces the sentence
about panning and zooming above the charts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The CORDEX-CMIP6 recipe now writes the results of each domain with a
separate diagnostic. For such projects, projects.json maps each domain to
its diagnostic, and a second row of buttons below the project buttons
chooses the domain, EUR-12 by default. The domain can also be given in
the URL, e.g. ?project=CORDEX-CMIP6&domain=CAM-25.

Show the output of the new CORDEX-CMIP6 run, which has results for
EUR-12 and CAM-25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Show the CORDEX-CMIP6 results from the latest run of the impact recipe,
which has one diagnostic per domain, e.g. bias_and_change_EUR, that can
contain models on several grids. The domain buttons show the name of the
region, the table of selected runs shows the grid of each run when the
models are on several grids, and links that name a grid, e.g. EUR-12,
still work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Selection of models from URL is discarded as soon as you start interacting with the map

1 participant