Skip to content
Back to skills

Bubbletea

ASecurity

Build interactive Go TUIs with Bubbletea, Elm architecture, Lipgloss, layouts, and keyboard/mouse handling. Excludes plain-text CLIs, web/desktop GUIs, and other TUI frameworks.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 3, 2026
developmentgotestinggitapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add marcioaltoe/roundfix --skill bubbletea --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bubbletea?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bubbletea
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/marcioaltoe-bubbletea/badge)](https://www.skillsdirectory.com/skills/marcioaltoe-bubbletea)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bubbletea
description: "Build interactive Go TUIs with Bubbletea, Elm architecture, Lipgloss, layouts, and keyboard/mouse handling. Excludes plain-text CLIs, web/desktop GUIs, and other TUI frameworks."
license: MIT
metadata:
  author: Pedro Nauck
  github: https://github.com/pedronauck
  repository: https://github.com/pedronauck/skills
---

# Bubble Tea TUI Development

Work with the repository's installed Bubble Tea/Lip Gloss versions and existing model/update/view structure. Use current official docs for version-specific API changes; do not assume bundled examples match the consuming project's major version.

## Implementation

- Reuse nearby components and state ownership. A small widget does not require a new project scaffold, YAML configuration, hot reload, mouse handling, or effects library.
- Before changing layout, inspect the relevant guidance in `references/golden-rules.md`. Measure the actual frame/padding and clamp small-terminal dimensions; subtracting a fixed two cells is valid only for that exact border.
- Use terminal-cell/ANSI-aware measurement and truncation. Do not slice strings by byte length or assume code points equal display width. Choose clipping, wrapping, or scrolling for the content's behavior; not all bordered text must truncate.
- Keep hit-testing consistent with the rendered layout and focus state. Proportional sizing is useful for flexible panes; fixed sizes are valid for intentional controls.
- Keep effectful work outside rendering and preserve the model/update lifecycle. Validate the changed interaction and relevant narrow/wide terminal sizes; add an owning test only when behavior lacks coverage.

## References

| Concern | Read as needed |
| --- | --- |
| Border sizing, panel alignment | `references/golden-rules.md` |
| Existing widget patterns | `references/components.md` |
| Rendering failure | `references/troubleshooting.md` |
| Unicode/emoji alignment | `references/emoji-width-fix.md` |

Bundled templates are optional starting points for a new application. Adapt their API versions and layout assumptions; do not replace a working project structure or add dependencies it does not need. Install required dependencies through the repository's package workflow, not by hand-editing go.mod. Product behavior, terminal constraints, and project conventions take precedence over illustrative examples.

Files in this skill

  • SKILL.md8.6 KB
  • references/components.md12.2 KB
  • references/emoji-width-fix.md8 KB
  • references/golden-rules.md11.3 KB
  • references/troubleshooting.md15.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…