I just open-sourced ArcTimer — a countdown circle timer library for React, React Native, and Expo. Here's the backstory: react-countdown-circle-timer is one of the most popular timer components on npm with 40K+ weekly downloads. But it's been unmaintained for a while now, and it has a fundamental problem — the arc animation updates once per second, creating a visible "jump" instead of a smooth sweep. That bugged me enough to build something better. ArcTimer runs at 60fps. The arc sweeps smoothly while the text updates at natural one-second intervals. It sounds like a small thing, but the difference in perceived quality is night and day. What else is different: → Spring physics — damped harmonic oscillator, not just CSS ease-in-out → Bounce & pulse effects — scale animation at configurable thresholds → Timer groups — run multiple timers sequentially (Pomodoro), in parallel, or staggered → 5 built-in themes with auto dark mode detection → WCAG 2.1 AA accessible — ARIA labels, keyboard navigation, screen reader support → Imperative API — ref.play(), ref.pause(), ref.reset() → Under 5KB gzipped, tree-shakable, zero dependencies in core The architecture follows a "thick core, thin renderer" pattern. 90% of the logic lives in a platform-agnostic core package. The React, React Native, and Expo packages are thin wrappers that just handle rendering. Same hook, different output. Migration from the old library takes about 30 seconds: - import { CountdownCircleTimer } from 'react-countdown-circle-timer' + import { CountdownCircleTimer } from '@toankhontech/arctimer-react' Same props. Same API. Just better animation underneath. The project is MIT licensed and I'd love feedback from the community — especially from anyone building with React Native or Expo where smooth animation matters even more. GitHub: https://lnkd.in/gqvcudxn npm: https://lnkd.in/g7Di4jjM #OpenSource #ReactJS #ReactNative #Expo #TypeScript #WebDevelopment #FrontendDevelopment #JavaScript

Quick links: 📦 npm install @toankhontech/arctimer-react ⭐ github.com/toankhontech/arc-timer

To view or add a comment, sign in

Explore content categories