Show HN: Giggles – 一个全功能的 React 框架,用于 TUIs
Source: Hacker News
概览
我构建了一个框架,能够自动处理焦点和输入路由——它源于 Ink 的不足,并受到 Charmbracelet 的 Bubble Tea 的启发。
功能
-
层级化的焦点和输入路由
使用useFocusScope定义焦点区域,并自由组合——例如,列表中的面板内的文本输入能够自动工作。每个组件拥有自己的键位;未处理的按键会自动冒泡到相应的父组件。无需像useInput那样的全局处理器,也不需要协调代码。 -
UI 组件(共 15 种)
包括Select、TextInput、Autocomplete、Markdown、Modal、Viewport、CodeBlock(支持 diff)、VirtualList、CommandPalette等。所有组件都提供合理的默认值和渲染属性 API,便于完整自定义。 -
终端进程控制
使用useSpawn、useShellOut等 Hook 启动进程并将输出流式传入 TUI。可以交给外部程序如vim或less,并在它们退出后干净地重新获得控制权。 -
屏幕导航与键位注册表
内置导航支持、?帮助菜单以及主题功能。 -
兼容 React 19
入门
npx create-giggles-app
文档与演示
实时交互演示和文档已上线:
讨论
评论可在 Hacker News 上找到。