Repolode
charmbracelet

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. 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