Show HN: Giggles – 一个全功能的 React 框架,用于 TUIs

发布: (2026年3月3日 GMT+8 10:26)
2 分钟阅读

Source: Hacker News

概览

我构建了一个框架,能够自动处理焦点和输入路由——它源于 Ink 的不足,并受到 Charmbracelet 的 Bubble Tea 的启发。

功能

  • 层级化的焦点和输入路由
    使用 useFocusScope 定义焦点区域,并自由组合——例如,列表中的面板内的文本输入能够自动工作。每个组件拥有自己的键位;未处理的按键会自动冒泡到相应的父组件。无需像 useInput 那样的全局处理器,也不需要协调代码。

  • UI 组件(共 15 种)
    包括 SelectTextInputAutocompleteMarkdownModalViewportCodeBlock(支持 diff)、VirtualListCommandPalette 等。所有组件都提供合理的默认值和渲染属性 API,便于完整自定义。

  • 终端进程控制
    使用 useSpawnuseShellOut 等 Hook 启动进程并将输出流式传入 TUI。可以交给外部程序如 vimless,并在它们退出后干净地重新获得控制权。

  • 屏幕导航与键位注册表
    内置导航支持、? 帮助菜单以及主题功能。

  • 兼容 React 19

入门

npx create-giggles-app

文档与演示

实时交互演示和文档已上线:

讨论

评论可在 Hacker News 上找到。

0 浏览
Back to Blog

相关文章

阅读更多 »

无权重新授权此项目

嗨,我是 Mark Pilgrim。你可能记得我,曾写过《Dive Into Python》和《Universal Character Encoding Detector》这些经典作品。我是 chardet 的原作者……