[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1330":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":15,"starSnapshotCount":15,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},1330,"expo-agent-spinners","Eronred\u002Fexpo-agent-spinners","Eronred","54 terminal-style agent-like spinners for React Native & Expo. Lightweight, zero native dependencies — just Text. No heavy UI threads","https:\u002F\u002Freactnativecomponents.com\u002F",null,"TypeScript",299,18,1,0,3,6,47,9,3.84,false,"main",true,[25,26,27,28],"agent","expo","react-native","spinners","2026-06-12 02:00:26","# expo-agent-spinners\n\n54 terminal-style agent-like spinners for React Native & Expo. Lightweight, zero native dependencies — just `Text` and `setInterval`. No heavy UI threads\n\u003Cimg width=\"1152\" height=\"648\" alt=\"expo-agent-spinners\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fbb1ff42b-a3aa-4283-997d-b815b3080233\" \u002F>\n\nInspiration from https:\u002F\u002Fgithub.com\u002Fvyfor\u002Frattles\n\n## Preview\n\nBraille, ASCII, arrow, and emoji spinners all in one place, ready to drop into any loading state, AI agent stream, or CLI-style UI.\n\n## Installation\n\nYou can copy any spinner you need from the `src\u002Fcomponents\u002Fspinners` directory for use in your project.\n\n## Usage\n\nImport the component you need:\n\n```tsx\nimport { DotsSpinner } from \".\u002Fsrc\u002Fcomponents\u002Fspinners\u002Fdots\";\n\nexport default function Loading() {\n  return \u003CDotsSpinner size={24} color=\"#fff\" style={{ width: 40, height: 40 }} \u002F>;\n}\n```\n\n### Container sizing\n\nSpinners render Unicode characters whose pixel width depends on font rendering. To prevent layout overflow or shifting, **always wrap spinners in a fixed-size container**:\n\n```tsx\n\u002F\u002F ✅ Recommended — fixed container keeps layout stable\n\u003CView style={{ width: 40, height: 40, alignItems: \"center\", justifyContent: \"center\" }}>\n  \u003CDotsSpinner size={24} color=\"#fff\" \u002F>\n\u003C\u002FView>\n\n\u002F\u002F ✅ Also works — pass style directly to the spinner\n\u003CDotsSpinner\n  size={24}\n  color=\"#fff\"\n  style={{ width: 40, height: 40 }}\n\u002F>\n\n\u002F\u002F ⚠️ Multi-character spinners (dots12, wave, scan, etc.) are wider —\n\u002F\u002F    use a wider fixed container to avoid clipping\n\u003CView style={{ width: 64, height: 40, alignItems: \"center\", justifyContent: \"center\" }}>\n  \u003CDots12Spinner size={20} color=\"#fff\" \u002F>\n\u003C\u002FView>\n```\n\n**Suggested container sizes by character count:**\n\n| Spinner type | Characters | Recommended `width` |\n|---|---|---|\n| Single char (`dots`, `moon`, `arc`…) | 1 | `40` |\n| Two chars (`dots12`, `wave`, `scan`…) | 2 | `64` |\n| Three+ chars (`point`, `columns`…) | 3–4 | `80–96` |\n\n### Props\n\nAll spinners share the same interface:\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `size` | `number` | `24` | Font size of the spinner character |\n| `color` | `string` | `\"#fff\"` | Color of the spinner |\n| `style` | `StyleProp\u003CViewStyle>` | — | Style for the outer container |\n\n## Available Spinners\n\n### Braille (32)\n\n| Name | Import |\n|------|--------|\n| dots | `DotsSpinner` |\n| dots2 | `Dots2Spinner` |\n| dots3 | `Dots3Spinner` |\n| dots4 | `Dots4Spinner` |\n| dots5 | `Dots5Spinner` |\n| dots6 | `Dots6Spinner` |\n| dots7 | `Dots7Spinner` |\n| dots8 | `Dots8Spinner` |\n| dots9 | `Dots9Spinner` |\n| dots10 | `Dots10Spinner` |\n| dots11 | `Dots11Spinner` |\n| dots12 | `Dots12Spinner` |\n| dots13 | `Dots13Spinner` |\n| dots14 | `Dots14Spinner` |\n| sand | `SandSpinner` |\n| bounce | `BounceSpinner` |\n| dots_circle | `DotsCircleSpinner` |\n| wave | `WaveSpinner` |\n| scan | `ScanSpinner` |\n| rain | `RainSpinner` |\n| pulse | `PulseSpinner` |\n| snake | `SnakeSpinner` |\n| sparkle | `SparkleSpinner` |\n| cascade | `CascadeSpinner` |\n| columns | `ColumnsSpinner` |\n| orbit | `OrbitSpinner` |\n| breathe | `BreatheSpinner` |\n| waverows | `WaveRowsSpinner` |\n| checkerboard | `CheckerboardSpinner` |\n| helix | `HelixSpinner` |\n| fillsweep | `FillSweepSpinner` |\n| diagswipe | `DiagSwipeSpinner` |\n\n### ASCII (15)\n\n| Name | Import |\n|------|--------|\n| dqpb | `DqpbSpinner` |\n| rolling_line | `RollingLineSpinner` |\n| simple_dots | `SimpleDotsSpinner` |\n| simple_dots_scrolling | `SimpleDotsScrollingSpinner` |\n| arc | `ArcSpinner` |\n| balloon | `BalloonSpinner` |\n| circle_halves | `CircleHalvesSpinner` |\n| circle_quarters | `CircleQuartersSpinner` |\n| point | `PointSpinner` |\n| square_corners | `SquareCornersSpinner` |\n| toggle | `ToggleSpinner` |\n| triangle | `TriangleSpinner` |\n| grow_horizontal | `GrowHorizontalSpinner` |\n| grow_vertical | `GrowVerticalSpinner` |\n| noise | `NoiseSpinner` |\n\n### Arrows (2)\n\n| Name | Import |\n|------|--------|\n| arrow | `ArrowSpinner` |\n| double_arrow | `DoubleArrowSpinner` |\n\n### Emoji (6)\n\n| Name | Import |\n|------|--------|\n| hearts | `HeartsSpinner` |\n| clock | `ClockSpinner` |\n| earth | `EarthSpinner` |\n| moon | `MoonSpinner` |\n| speaker | `SpeakerSpinner` |\n| weather | `WeatherSpinner` |\n\n## Examples\n\n```tsx\n\u002F\u002F Braille — classic terminal feel\n\u003CDotsSpinner size={20} color=\"#6366f1\" \u002F>\n\n\u002F\u002F ASCII — minimal\n\u003CRollingLineSpinner size={18} color=\"#888\" \u002F>\n\n\u002F\u002F Emoji — fun & expressive\n\u003CMoonSpinner size={24} \u002F>\n\u003CWeatherSpinner size={24} \u002F>\n```\n\n## Demo App & Contributing\n\nClone the repo and run the Expo demo to see all 54 spinners live.\n\nTo contribute, open a pull request with your changes.\n\n## Why text-based?\n\nTerminal-style spinners are perfect for:\n\n- **AI agent streams** — show activity while waiting for LLM responses\n- **CLI-style UIs** — give your app a developer aesthetic\n- **Lightweight loading states** — no SVG, no Lottie, no heavy assets\n- **Monospace layouts** — pair with code editors or terminal screens\n\n## License\n\nMIT © [eronred](https:\u002F\u002Fgithub.com\u002Feronred)\n","expo-agent-spinners 是一个为 React Native 和 Expo 提供 54 种终端风格加载动画的库。它轻量且无原生依赖，仅使用 `Text` 和 `setInterval` 实现，不会占用大量 UI 线程资源。该库包含点、箭头、表情符号等多种样式，适用于需要显示加载状态、AI 代理流或命令行界面风格 UI 的场景。用户可以轻松地从项目中复制所需的加载动画组件，并通过简单的配置（如大小、颜色和样式）将其集成到自己的应用里。",2,"2026-06-11 02:43:04","CREATED_QUERY"]