bubbles

package module
v0.0.0-...-3a35617 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 0 Imported by: 0

README

Bubbles

Bubbles 标志

最新版本 GoDoc 构建状态 Go ReportCard

Bubble Tea 应用程序的一些组件。这些组件已在生产环境中用于 Glow许多其他应用程序

Spinner

Spinner 示例

一个加载指示器,用于表示正在进行某种操作。有几个默认的样式,但你也可以传递自己的"帧"。

文本输入

文本输入示例

一个文本输入字段,类似于 HTML 中的 <input type="text">。支持 Unicode、粘贴、当值超过元素宽度时的原位滚动,以及许多自定义选项。

文本区域

文本区域示例

一个文本区域字段,类似于 HTML 中的 <textarea />。允许跨多行输入。支持 Unicode、粘贴、当值超过元素宽度和高度时的垂直滚动,以及许多自定义选项。

表格

表格示例

一个用于显示和导航表格数据(列和行)的组件。支持垂直滚动和许多自定义选项。

进度条

进度条示例

一个简单、可定制的进度指示器,可通过 Harmonica 实现可选的动画效果。支持纯色和渐变填充。空和填充的字符可以设置为你喜欢的任何内容。百分比读数可自定义,也可以完全省略。

分页器

分页器示例

一个用于处理分页逻辑并可选绘制分页 UI 的组件。支持"点样式"分页(类似于你在 iOS 上看到的)和数字页码,但你也可以仅使用此组件的逻辑并以任何你喜欢的方式可视化分页。

视口

视口示例

一个用于垂直滚动内容的视口。可选包含标准分页器键绑定和鼠标滚轮支持。对于使用备用屏幕缓冲区的应用程序,提供高性能模式。

此组件与 Reflow 配合使用效果良好,可实现 ANSI 感知的缩进和文本换行。

列表

列表示例

一个可定制、功能齐全的组件,用于浏览一组项目。具有分页、模糊过滤、自动生成帮助、活动指示器和状态消息等功能,所有这些功能都可以根据需要启用和禁用。源自 Glow

文件选择器

文件选择器示例

一个用于从文件系统中选择文件的可定制组件。可以浏览目录并选择文件,可选限制为特定文件扩展名。

计时器

一个简单、灵活的倒计时组件。更新频率和输出可以根据你的需要进行自定义。

计时器示例

秒表

秒表示例

一个简单、灵活的计时组件。更新频率和输出可以根据你的需要进行自定义。

帮助

帮助示例

一个可定制的水平迷你帮助视图,可根据你的键绑定自动生成。它具有单行和多行模式,用户可以选择在两者之间切换。如果终端对于内容来说太宽,它会优雅地截断。

按键

一个用于管理键绑定的非可视化组件。它对于允许用户重新映射键绑定以及生成与你的键绑定相对应的帮助视图非常有用。

// KeyMap 定义了应用程序的键绑定映射
type KeyMap struct {
    Up key.Binding    // 向上移动的键绑定
    Down key.Binding  // 向下移动的键绑定
}

// DefaultKeyMap 是默认的键绑定映射
var DefaultKeyMap = KeyMap{
    Up: key.NewBinding(
        key.WithKeys("k", "up"),        // 实际的键绑定
        key.WithHelp("↑/k", "向上移动"), // 对应的帮助文本
    ),
    Down: key.NewBinding(
        key.WithKeys("j", "down"),      // 实际的键绑定
        key.WithHelp("↓/j", "向下移动"),  // 对应的帮助文本
    ),
}

// Update 处理消息并更新模型状态
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    switch msg := msg.(type) {
    case tea.KeyMsg:
        switch {
        case key.Matches(msg, DefaultKeyMap.Up):
            // 用户按下了向上键
        case key.Matches(msg, DefaultKeyMap.Down):
            // 用户按下了向下键
        }
    }
    return m, nil
}

更多精彩内容

要查看社区维护的 Bubbles,请访问 Charm & Friends。制作了一个很酷的 Bubble 想分享?欢迎提交 PR

贡献

请参阅 contributing

反馈

我们很想听听你对这个项目的想法。随时给我们留言!

许可证

MIT

Documentation

Overview

Package bubbles provides some components for Bubble Tea applications. These components are used in production in Glow, Charm and many other applications.

Directories

Path Synopsis
Package cursor 为 Bubble Tea 应用程序提供光标功能。
Package cursor 为 Bubble Tea 应用程序提供光标功能。
Package filepicker 为 Bubble Tea 应用程序提供文件选择器组件。
Package filepicker 为 Bubble Tea 应用程序提供文件选择器组件。
Package help 为 Bubble Tea 应用程序提供简单的帮助视图。
Package help 为 Bubble Tea 应用程序提供简单的帮助视图。
Package key 提供了一些类型和函数,用于生成用户可定义的按键映射, 在 Bubble Tea 组件中非常有用。
Package key 提供了一些类型和函数,用于生成用户可定义的按键映射, 在 Bubble Tea 组件中非常有用。
Package list 提供了一个功能丰富的 Bubble Tea 组件,用于浏览通用项目列表。
Package list 提供了一个功能丰富的 Bubble Tea 组件,用于浏览通用项目列表。
Package paginator 提供一个 Bubble Tea 包,用于计算分页 和渲染分页信息。
Package paginator 提供一个 Bubble Tea 包,用于计算分页 和渲染分页信息。
Package progress 为 Bubble Tea 应用程序提供简单的进度条。
Package progress 为 Bubble Tea 应用程序提供简单的进度条。
Package runeutil 为 Bubbles 提供一个实用函数, 该函数可以处理包含符文的按键消息。
Package runeutil 为 Bubbles 提供一个实用函数, 该函数可以处理包含符文的按键消息。
Package spinner 为 Bubble Tea 应用程序提供一个加载动画组件。
Package spinner 为 Bubble Tea 应用程序提供一个加载动画组件。
Package stopwatch 提供一个简单的秒表组件。
Package stopwatch 提供一个简单的秒表组件。
Package table 为 Bubble Tea 应用程序提供一个简单的表格组件。
Package table 为 Bubble Tea 应用程序提供一个简单的表格组件。
Package textarea 为 Bubble Tea 应用程序提供多行文本输入组件。
Package textarea 为 Bubble Tea 应用程序提供多行文本输入组件。
memoization
Package memoization 是一个内部包,为文本区域提供简单的记忆化缓存功能 记忆化缓存(Memoization)是一种优化技术,用于存储昂贵函数调用的结果,避免重复计算
Package memoization 是一个内部包,为文本区域提供简单的记忆化缓存功能 记忆化缓存(Memoization)是一种优化技术,用于存储昂贵函数调用的结果,避免重复计算
Package textinput 为Bubble Tea应用程序提供文本输入组件
Package textinput 为Bubble Tea应用程序提供文本输入组件
Package timer 提供了一个简单的超时组件。
Package timer 提供了一个简单的超时组件。
Package viewport 提供了一个在 Bubble Tea 应用程序中渲染视口的组件。
Package viewport 提供了一个在 Bubble Tea 应用程序中渲染视口的组件。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL