Skip to content

[pull] main from tinacms:main - #331

Merged
pull[bot] merged 2 commits into
code:mainfrom
tinacms:main
Sep 9, 2026
Merged

pull[bot] merged 2 commits into
code:mainfrom
tinacms:main

Conversation

@pull

@pull pull Bot commented Sep 9, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

wicksipedia and others added 2 commits September 9, 2026 15:33
https://www.youtube.com/watch?v=Psa1Xiixvy4

## What changed

The loading screens showed one fixed line: `Hang tight, TinaCMS is
looking for llamas 🦙 🦙 🦙`. They now pick a random message from a bank of
16, swap it every two seconds, and fade between messages over 200ms.

Follows #7529, which introduced the single line. Closes the request for
Maxis-style rotating loading copy.

## How it works

A new `LoadingMessage` component in
`packages/tinacms/src/toolkit/components/loading-messages.tsx` holds the
message bank and the timer. Three screens read from it:

- `packages/tinacms/src/admin/components/LoadingPage.tsx`
- `packages/tinacms/src/tina-cms.tsx`
-
`packages/tinacms/src/toolkit/react-sidebar/components/sidebar-loading-placeholder.tsx`

Two details worth calling out:

- The component picks its first message after mount, not during render,
so the server and the browser render the same text and React does not
warn about a hydration mismatch.
- When a reader turns on `prefers-reduced-motion`, the text still
changes but the fade does not run.

The cycle length and fade length sit in `CYCLE_MS` and `FADE_MS` at the
top of the file.

## Testing

`packages/tinacms/src/toolkit/components/loading-messages.test.tsx`
covers three cases: a swap never repeats the message it replaces, the
first message varies across mounts, and the text fades out before it
changes.

```
pnpm --filter tinacms vitest run src/toolkit/components/loading-messages.test.tsx
```

Three tests pass. Typecheck is clean for the changed files.

## Screenshots

None. The change is copy and a fade.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01QNsgXGQZYrLTZaoZ5M9CiS

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…7538)

No linked issue.

**TL;DR** Swap the two README image paths from repo-relative to absolute
`raw.githubusercontent.com` URLs. They render on the npm package page
again, and the README is unchanged on GitHub.

**Pain:** the Tina logo and the demo GIF are broken on
https://www.npmjs.com/package/tinacms, so the first thing anyone sees
when they look the package up is two missing images.

**Solution:** points both images at absolute URLs, so they resolve the
same way wherever the README is rendered. Includes a patch changeset,
because the npm page only picks the README up on the next publish.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Sep 9, 2026
@pull pull Bot added the ⤵️ pull label Sep 9, 2026
@pull
pull Bot merged commit a658075 into code:main Sep 9, 2026
10 of 11 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants