Skip to content

Compact the flashing warning and open on new defaults - #15

Merged
simien merged 3 commits into
mainfrom
sidebar-defaults
Oct 3, 2026
Merged

simien merged 3 commits into
mainfrom
sidebar-defaults

Conversation

@simien

@simien simien commented Oct 3, 2026

Copy link
Copy Markdown
Owner

What does this change?

Two separate pieces of work, one commit each.

676e56a — fold the flashing warning into Motion's own description. The Animation section opened with four lines of text before a single control: a heading, a label, a one-line description and a two-line health warning with its own hanging asterisk. A notice that takes that much room above the control it warns about reads as chrome and gets skipped, which is the opposite of what a photosensitivity warning is for. The advice is now the second sentence of Motion's own description, one line above the select it applies to. The .hint-warn rules go with it, and so does .field .hint + .hint, which no longer matches anything in the markup or in the hints buildLayerControls writes.

d0b2b40 — three new defaults.

Was Now
Speed 3.1s (step 29) 13.5s (step 46)
Reroll every 2.0s (step 24) 4.0s (step 32)
Web preset 1920x1080 1200x630

Speed: a background is looked past rather than at, and at three seconds a whole turn of the field goes by inside a glance. Reroll: two seconds is about as long as it takes to see what a composition is doing, so rerolling on it means never watching one settle. Web: 1200x630 is the size the width and height fields already opened on, so the preset is a canvas to work from rather than a screen to fill, and anyone wanting 1080p or wider types it into a field that has always been free text.

Two consequences worth a look:

  • The Web chip is now lit on arrival. Web and the opening canvas are the same size, so updatePresetChips marks it active on load. Nothing was lit before. This reads as right to me (the chip now says where you are) but it is a visible change nobody asked for.
  • A one-pass GIF at the new default speed runs at about 5fps. 168 frames of wanted smoothness against a 69-frame byte budget on a 1200x630 canvas, so 195ms a frame. That is slow motion at a 13.5s cycle and reads fine, which is the trade GIF_FRAME_BUDGET was written to make, but it is the first time the default settings land there. Confirmed from exportPlan, not inferred.

Three comments named the Web preset as the expensive 1920x1080 case. That canvas is now only reachable by typing it, so they say so.

Related issue

None.

How was this tested?

Served locally with python3 -m http.server 8080 and exercised in the Chromium browser pane.

  • Panel reads 13.5s, 4.0s and 1200x630 on a fresh load; Web chip lit, the other three quiet.
  • Tablet then Web still applies 768x1024 then 1200x630, so the preset button itself works.
  • exportPlan(1) returns 69 frames at a 195ms delay, which is where the 5fps figure comes from.
  • Hint wraps to two lines at the sidebar's fixed 259px (221px then 115px) and one line on the phone sheet; swept 259px to 430px before settling on the wording.
  • Checked in both themes and at 1100px, 820px, 375px and 320px.
  • python3 .github/scripts/checks.py origin/main passes, including cache bust: style.css 108 -> 109 and link compat: every field still where old links expect it. Defaults are not part of the packed bit stream, so every shared link and every exported SVG still decodes to its own speed, interval and size.

Checklist

  • No new build step, package manager, framework, or CDN dependency introduced
  • generator.js still has no dependency on the UI, if touched (not touched)
  • Tested locally in at least one browser

🤖 Generated with Claude Code

simien and others added 2 commits October 2, 2026 22:15
The Animation section opened with four lines of text before a single
control: a heading, a label, a one-line description and a two-line
health warning carrying its own hanging asterisk. A notice that takes
that much room above the thing it warns about gets read as chrome and
skipped, which is the opposite of what a photosensitivity warning is
for.

The warning is now the second sentence of Motion's own description,
where it sits one line above the select it applies to. Nothing is lost:
the advice to skip Motion if flashing affects you is still there, in
the same muted colour, on the line a visitor reads before choosing.

The .hint-warn rules go with it, and so does .field .hint + .hint,
which no longer matches anything in the markup or in the hints
buildLayerControls writes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…reset

Three defaults, all of them about how the app reads before anything is
touched.

Speed opens at 13.5s rather than 3.1s. A background is looked past
rather than at, and at three seconds a whole turn of the field goes by
inside a glance, which reads as something asking for attention instead
of something sitting behind the work. The ladder is eight steps to a
doubling, so step 46 is 13454ms and the panel shows 13.5s. One
consequence worth knowing: a one-pass GIF at this cycle is 168 frames
of wanted smoothness against a 69-frame byte budget, so an export runs
at about 5fps. That is slow motion at a 13.5s cycle and reads fine,
which is the trade GIF_FRAME_BUDGET was written to make.

Reroll every opens at 4.0s rather than 2.0s. Two seconds is about as
long as it takes to see what a composition is doing, so rerolling on it
means never watching one settle. The slider is stepped by eight, and
step 32 is exactly 4000ms.

The Web preset is 1200x630 rather than 1920x1080, which is the size the
width and height fields already opened on. The chip is therefore lit on
arrival instead of offering a size nothing starts at, and the preset is
a canvas to work from rather than a screen to fill. Anyone wanting 1080p
or wider types it: the field is free text and always was.

Three comments named the Web preset as the expensive 1920x1080 case.
That canvas is now only reachable by typing it, so they say so.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
flield 49fea61 Commit Preview URL

Branch Preview URL
Oct 03 2026, 02:23 AM

The checks workflow fetched the base branch with --depth=1. That writes
.git/shallow and grafts the branch one commit deep, and because the base
shares its history with the branch under test, the graft truncates the
whole clone. git log -1 -- <file> then reports the graft point instead of
the commit that last touched the file.

Nothing noticed until now because the shallow fetch only runs when
github.base_ref is set, which is to say only on a pull request, and
every change since the sitemap-dates check was added has gone straight
to main. The first pull request after it failed on four pages at once,
each one named as changed today when no commit on the branch touches
them.

actions/checkout already runs at fetch-depth: 0, so the full history is
paid for before this step. Dropping --depth=1 costs nothing and gives
the checks the history they read.

Reproduced on a clone of this repo: with --depth=1, guide/index.html
reports today; without it, 2026-09-29, which is what sitemap.xml says.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@simien
simien merged commit 0ea5932 into main Oct 3, 2026
2 checks passed
@simien
simien deleted the sidebar-defaults branch October 3, 2026 02:26
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.

1 participant