mrkeyoor.com_
Mon 21 Sept 15:53 UTC
Webevaluationupdated 21 Sept 2026

thinking-orbs review

Thinking Orbs is a React component that replaces a generic loading spinner with nine canvas animations named for agent work such as searching, listening, solving, and composing. It solves a small interface problem: showing what an AI feature is doing without displaying private reasoning or filling the screen with status text.

Verdict

Our thinking-orbs run installed 181 packages in 7 seconds and built in 7 seconds, but there was no test script to run. Use it when nine named agent states will genuinely help users read the interface and the fixed monochrome style fits the product. Choose a simpler loader if you need arbitrary sizing, brand colors, another framework, or behavior backed by an executable test suite.

We ran it

Lab card: what happened when we ran thinking-orbsScreenshot of thinking-orbs (github.com/Jakubantalik/thinking-orbs)
Install✓ · 7s181 packages · 157 MB
Build✓ · 7s
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo69 files~3,038 lines of source · 1.3 MB · 2 CI workflows · tests dir

Answers from our run

Does thinking-orbs build from source?

Dependencies installed in 7 seconds (181 packages), and the build succeeded in 7 seconds. We cloned commit de85557 into a clean Debian container with 3 CPUs and no project-specific setup.

Does thinking-orbs have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does thinking-orbs have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use thinking-orbs?

Vue, Svelte, Solid, or React Native teams seeking an official package today: version 0.3.1 declares React 18 or newer as its peer, while multi-framework support remains an open pull request.

What are the alternatives to thinking-orbs?

React Spinners, SVG Spinners, SpinKit. Our thinking-orbs run installed 181 packages in 7 seconds and built in 7 seconds, but there was no test script to run.

Setup5/57-second install and one React component
Docs4/5Props, themes, motion, and all 9 states are explained
Community4/53,069 stars and active September issue and PR work
Maturity3/5v0.3.1 builds cleanly, but no test target or GitHub release

Who it’s for

React teams building chat, voice, search, or agent interfaces that need recognizable working states.
Designers who want one monochrome motion language at both avatar and inline-text sizes.
Developers who need reduced-motion behavior, theme detection, and offscreen pausing built into the component.
Products willing to map real application states onto nine fixed visual verbs.

Who it’s NOT for

Vue, Svelte, Solid, or React Native teams seeking an official package today: version 0.3.1 declares React 18 or newer as its peer, while multi-framework support remains an open pull request.
Interfaces that need arbitrary dimensions: the README ships only 20px and 64px designs, and issues 14 and 16 request sizes between or beyond them.
Brand systems that require an accent color: the current API is strictly monochrome, while custom color support exists only in an open pull request.
Teams whose acceptance gate requires automated behavioral tests: our run found no test script or target, so the test step was skipped.
Apps that only need an ordinary indeterminate spinner: nine semantic animations add state mapping work that a CSS loader avoids.

Setup reality

Our sandbox installed commit de85557 in 7 seconds, adding 181 packages and using 157 MB. The build passed in 7 seconds. There was no test script or target, so tests were skipped. Npm audit found 0 known vulnerabilities.

Application setup is one npm install and a React import. Version 0.3.1 requires React 18 or newer, needs no account or API key, and ships ESM, CommonJS, TypeScript declarations, and a separate engine export.

The component paints only after client-side theme resolution, so server rendering gets an empty canvas until hydration. Only 20px and 64px presets are documented. The repository has 2 CI workflow files, no Dockerfile, and a tests directory, but its package scripts expose build, typecheck, and spec extraction rather than a test command.

Nine states give an agent more vocabulary than a spinner

Thinking Orbs treats waiting as information. Its 9 states cover working, searching, solving, listening, connecting, weaving, composing, breathing, and shaping. Each state has a distinct motion, so a voice assistant can listen differently from a search agent scanning for results. That is the package's reason to exist. If every state in your product still means only loading, most of the library's design work will go unused.

The API stays small despite that visual range. A React component takes state, size, theme, speed, paused, and an optional ARIA label, then passes ordinary canvas props through. Version 0.3.1 also exports the drawing engine separately for developers who want its geometry without the component wrapper.

Two tuned sizes are the feature and the constraint

The package ships 20px and 64px presets. They are separately tuned designs with their own dot counts, sizes, and animation speeds, rather than one drawing enlarged or reduced with CSS. At 20px, the orb can sit beside text; at 64px, it can replace an assistant avatar. That attention is visible in the API because size accepts those two values instead of pretending every dimension has been designed.

Fixed choices also limit where the component fits. Open issues 14 and 16 ask for larger and intermediate sizes such as 24px, 32px, and 48px. A hero panel, wearable display, or unusual density may need a different canvas size, and stretching a tuned preset is not the documented contract.

What happened when we ran it

Our sandbox installed thinking-orbs at commit de85557 in 7 seconds. Npm added 181 packages and used 157 MB on disk. The build then succeeded in 7 seconds in a fresh Debian container with 3 CPUs and 8 GB of RAM. Npm audit reported 0 known vulnerabilities across the installed dependency tree. Nothing in the install or build log blocked packaging the library.

There was no test script or target, so our harness skipped tests. The repository includes generated spec data and package scripts for typechecking, production building, demo building, and extracting specs, but none is exposed as test. A successful 7-second build proves that the measured source compiles. It does not prove that all 9 animations paint correctly in Chrome, Safari, and Firefox or that observer cleanup works across repeated mounts.

The checkout was small before installation: 69 files, about 3,038 lines of source, and 1.3 MB. Our scan found 2 CI workflow files, no Dockerfile, and a tests directory. A container would add little value for a browser component, while automated behavior checks would.

A 2x pixel cap comes with sensible motion behavior

Thinking Orbs uses a plain 2D canvas with the device-pixel ratio capped at 2. The README says instances share one clock, pause when scrolled offscreen or when the tab is hidden, and resume in phase. Those choices address the common failure where a decorative loader burns resources even when nobody can see it. The lack of WebGL and canvas filters also keeps the renderer easier to place in an existing page.

Accessibility has received real API work. Each canvas gets role="img" and a state-specific label, which callers can replace. A reduced-motion preference renders a static representative frame instead of continuing the animation. Theme detection checks an ancestor class or data-theme attribute, then the operating-system preference, and watches for changes.

React 18 and monochrome styling define the current boundary

Version 0.3.1 declares React 18 or newer as its only peer dependency. The published contract does not include Vue, Svelte, Solid, React Native, or a terminal renderer. Open pull requests propose several of those targets, but an open proposal is not a shipped capability. Teams on another framework should judge the current package they can install, not code that may change during review.

Color is similarly strict. The automatic theme selects light dots for dark backgrounds or dark dots for light backgrounds, and callers can pin either mode. There is no documented accent-color prop. An open pull request proposes one, while the current README calls the component monochrome.

Twenty open items show interest without a tagged release trail

GitHub recorded the last push on August 16, 2026. The repository had 3,069 stars and 20 combined open issues and pull requests when fetched, split into 9 issues and 11 pull requests. Issue activity reached September 1 and pull-request activity September 4, so the later push date does not describe an abandoned project. Contributors are actively testing where the original narrow design can stretch.

GitHub exposes no tagged release for the repository, while package.json identifies the measured code as version 0.3.1. That leaves the package contract, commit history, and publish workflow to carry more of the change story. The clean build and focused README make adoption low-risk for a visual detail. The missing test target should still keep the orb inside your own component tests, especially for reduced motion, theme changes, and unmounting.

The 7-second build makes a visual trial cheap

Thinking Orbs is an easy recommendation for a React agent interface that can name its waiting states honestly. Put the 9 animations beside real status text, switch them only when the underlying operation changes, and preserve the built-in reduced-motion behavior. The component then communicates progress instead of acting as decoration. A short prototype will reveal whether users can tell searching from solving without instruction.

Use React Spinners when size and color controls matter more than an AI-specific visual language. SVG Spinners removes the React dependency, and SpinKit is enough for ordinary CSS loading feedback. Thinking Orbs earns its place only when the verbs carry meaning. Our 181-package install and missing test target are manageable costs for a trial, but they are poor reasons to add nine states to a product that only has one.

Alternatives

ProjectWhat it isPick it when
React SpinnersA collection of configurable React loading components with adjustable size, color, and CSS.pick this instead when you need familiar loaders, flexible dimensions, and brand colors rather than agent-specific states.
SVG SpinnersA framework-neutral set of 24 by 24 SVG loaders animated with CSS or SMIL.pick this instead when tiny copyable assets and no React dependency matter more than semantic AI states.
SpinKitA CSS-only loader collection whose size and color can be changed with variables.pick this instead when plain HTML and CSS are enough and you want to own the markup directly.

What people are saying

  1. [github-trending] Jakubantalik/thinking-orbs

Sources

  1. thinking-orbs README
  2. thinking-orbs repository facts
  3. thinking-orbs package at measured commit
  4. Custom size request
  5. Multi-framework support proposal
  6. Custom color proposal

More web reviews

MovieBox-Tui · chakra-ui · vueuse · react-redux · anime · element-plus · the whole board →