One spinner cannot tell a customer whether we are listening, searching or solving. Nine named states, each with its own motion, the same names on web and native. Pick a state, size and speed, then copy the code.
Working…
Use the name that matches the work. If none fits, the state is working.
prefers-reduced-motion, when the tab is hidden, and when it scrolls out of view.color, defaulting to --primary, so both themes work with no branch.<link rel="stylesheet" href="https://design.bhd.om/orb.css">
<script src="https://design.bhd.om/orb.js"></script>
<span data-bhd-orb="searching" data-bhd-orb-size="64"></span>
// or
const orb = BHDOrb.create(el, { state: 'listening', size: 48, speed: 1 });
orb.setState('solving');