A keyboard-driven terminal download manager in Go that splits files into parallel chunks and can download from multiple mirrors.
charmbracelet/lipgloss
Go library for styling and laying out text-based terminal user interfaces with CSS-like declarative style definitions.
- Stars
- 11,943
- Forks
- 417
- Open issues
- 163
- Last commit
- 11 days ago
What is it?
Lip Gloss is a Go library for rendering styled text and layouts in the terminal. Styles are defined declaratively and chained together, covering colors, text formatting, padding, margins, borders, alignment, and fixed widths and heights. Developers familiar with CSS will find the model easy to pick up.
Beyond individual styles, the library includes helpers for joining and placing text blocks, measuring rendered dimensions, blending colors for gradients, and compositing layered content. Separate sub-packages render tables, lists, and trees. Color output is automatically downsampled from true color to 256 or 16 colors, or stripped entirely when output is not a TTY.
Lip Gloss is designed to work alongside Bubble Tea, the Charm framework for terminal applications, and can also be used standalone for formatted command-line output.
Key features
- 01Chainable, CSS-like style definitions for colors, text formatting, padding, margins and borders
- 02Automatic color downsampling from true color to ANSI 256 or 16 colors
- 03Helpers for joining, placing and measuring text blocks
- 04Table, list and tree rendering sub-packages
- 05Cell-based compositing of layered content and color blending for gradients
Use cases
- Styling the views of a Bubble Tea terminal application
- Building formatted tables, lists or trees in command-line tools
- Printing colored output that degrades gracefully in logs or non-color terminals
Quick start
- 1
Install the library with Go
go get charm.land/lipgloss/v2
Topics
FAQ
- What is lipgloss?
- Go library for styling and laying out text-based terminal user interfaces with CSS-like declarative style definitions. Lip Gloss is a Go library for rendering styled text and layouts in the terminal. Styles are defined declaratively and chained together, covering colors, text formatting, padding, margins, borders, alignment, and fixed widths and heights. Developers familiar with CSS will find the model easy to pick up.
- Is lipgloss free to use? What license does it have?
- lipgloss is open source under the MIT license. Check the license terms before using it in commercial products.
- Is lipgloss still maintained?
- Actively maintained. The last commit to lipgloss was on Oct 11, 2026.
- What can I use lipgloss for?
- Styling the views of a Bubble Tea terminal application Building formatted tables, lists or trees in command-line tools Printing colored output that degrades gracefully in logs or non-color terminals
- How do I install lipgloss?
- Install the library with Go: go get charm.land/lipgloss/v2
- Where can I get lipgloss?
- The source code and installation instructions are on GitHub: https://github.com/charmbracelet/lipgloss
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A collection of ready-made TUI components (spinner, text input, table, list, viewport, help and more) for building Bubble Tea terminal apps in Go.
A terminal markdown reader and renderer that displays .md files and repos with styled formatting in the CLI.
A modern terminal file manager written in Go, built with Bubble Tea, for browsing and managing files from the command line.
A Go framework for building terminal user interfaces using The Elm Architecture's model-update-view pattern.
A customizable terminal dashboard written in Go that shows your frequently checked stats and data in modules, such as GitHub, calendar, and DigitalOcean.