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
  • 1 view
  • 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.