A Svelte reactive declaration uses the `$:` sign to rerun a statement whenever a referenced component variable changes. This makes computed layout values respond automatically to state such as the browser width. section 14.4.1
Responsive SVG dimensions
Bind `windowWidth` to `<svelte:window bind:innerWidth={windowWidth} />`, then compute `svgWidth`, `numColumns`, `numRows`, and `svgHeight` with reactive declarations. Svelte recalculates the values as the screen changes, and the SVG receives them through its `width` and `height` attributes. section 14.4.1
