A Go library for rendering highly customizable boxes in the terminal with extensive styling and color options.
Box CLI Maker is a Go library that generates customizable text boxes for terminal applications. It solves the problem of creating visually structured and styled output in command-line interfaces by providing an intuitive API for border styling, colors, alignment, and content formatting.
Go developers building command-line tools, CLI applications, or terminal-based utilities that require enhanced visual presentation, such as status displays, menus, or formatted logs.
Developers choose Box CLI Maker for its extensive customization options, type-safe API, and robust handling of Unicode, emojis, and colors, all while maintaining compatibility with various terminal environments.
Render highly customizable boxes in the terminal
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers nine built-in styles including Single, Double, and Round, with full support for custom glyphs on all corners and edges, as shown in the detailed styles showcase in the README.
Supports ANSI names, hex codes, and RGB formats for colors, and integrates libraries like `mattn/go-runewidth` for proper width handling of Unicode and emojis, ensuring broad compatibility.
Provides a fluent API with strongly typed enums for styles, alignment, and positions, reducing runtime errors and improving developer experience, especially highlighted in the v3 migration guide.
The Render method validates inputs and returns explicit errors for invalid configurations like negative padding or invalid colors, while MustRender offers a panic-on-error convenience option.
Rendering quality depends on terminal emulator and font, which can cause misalignment or incorrect display of Unicode and emojis, as admitted in the README's notes on width handling.
Version 3 introduced a completely redesigned API with strongly typed enums, requiring significant migration effort for existing v2 users, as detailed in the migration guide.
Focuses solely on static box rendering without built-in support for dynamic updates, interactive elements, or real-time terminal manipulation, limiting use in complex CLI applications.