Documentation
¶
Overview ¶
Package box a.k.a Box CLI Maker is a Highly Customized Terminal Box Creator written in Go.
It provides many styles and options to make Boxes. There are 8 inbuilt styles and has Color support via RGB uint, RGB Array of [3]uint and string (Given).
Inbuilt Box Styles: Single, Double, Bold, Single Double, Double Single, Round, Hidden and Classic
Inbuilt Colors: Black, Blue, Red, Yellow, Green, Cyan, Magenta, White, HiBlack, HiBlue, HiRed, HiYellow, HiGreen, HiCyan, HiMagenta and HiWhite
It also has Unicode and Emoji support which works across almost all terminals. Unlike other CLI Makers, Box CLI Maker also supports tab, multi-line strings and string wrapping.
Disclaimer: As different terminals have different fonts by default so the right vertical alignment may not be aligned well. You will have to change your font accordingly to make it work.
Basic Example:
Box := box.New(box.Config{Px: 2, Py: 5, Type: "Single", Color: "Cyan"})
Box.Print("Box CLI Maker", "Highly Customized Terminal Box Maker")
You can specify and change the options by changing the below Config struct.
Box := box.New(box.Config{Px: 2, Py: 5, Type: "Single", TitlePos: "Top", ContentAlign: "Left"})
TitlePos can be changed to Inside, Top, Bottom and ContentAlign to be Left, Right and Center. By default TitlePos is Inside, ContentAlign is Left and Style is Single.
Manual string wrapping is also allowed via a flag Config.AllowWrapping, by the default padding, is 2*TermWidth/3.
String() method can be for the string representation of the Box.
Box := box.New(box.Config{Px: 2, Py: 5, Type: "Single", Color: "Cyan"})
boxStr := Box.String("Box CLI Maker", "Highly Customized Terminal Box Maker")
True Color is also supported and it can be by providing an array of [3]uint or uint.
There might be some terminals not supporting True Color so in this case, it will detect the terminal's max color capacity then will round off True Color to either 4-bit or 8-bit respectively.
Title and Content can also be colored by passing the colors needed to the fields box.TitleColor and box.ContentColor respectively.
This module also enables True Color and 256 Colors support on Windows Console but you need have at least Windows 10 Version 1511 for 256 colors or Windows 10 Version 1607 for True Color Support.
Example of True Color via uint:
Box := box.New(box.Config{Px: 2, Py: 5, Type: "Single", Color: uint(0x34562f)})
Box.Println("Box CLI Maker", "Highly Customized Terminal Box Maker")
Note: uint must be in a range of [0x000000, 0xFFFFFF].
Example of True Color via [3]uint:
Box := box.New(box.Config{Px: 2, Py: 5, Type: "Single", Color: [3]uint{23, 56, 78}})
Box.Println("Box CLI Maker", "Highly Customized Terminal Box Maker")
Note: [3]uint array elements must be in a range of [0x0, 0xFF].
Custom Box Style can also be by using box.Box:
config := box.Config{Px: 2, Py: 3, Type: "", TitlePos: "Inside"}
boxNew := box.Box{TopRight: "*", TopLeft: "*", BottomRight: "*", BottomLeft: "*", Horizontal: "-", Vertical: "|", Config: config}
More info and examples can be found in README.md and examples/ folder
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Box ¶
type Box struct {
TopRight string // TopRight Corner Symbols
TopLeft string // TopLeft Corner Symbols
Vertical string // Vertical Bar Symbols
BottomRight string // BottomRight Corner Symbols
BottomLeft string // BottomLeft Corner Symbols
Horizontal string // Horizontal Bars Symbols
Config // Box Config
}
Box defines the design
type Config ¶
type Config struct {
Py int // Horizontal Padding
Px int // Vertical Padding
ContentAlign string // Content Alignment inside Box
Type string // Box Type
TitlePos string // Title Position
TitleColor interface{} // Title Color
ContentColor interface{} // Content Color
Color interface{} // Box Color
AllowWrapping bool // Flag to allow custom Content Wrapping
WrappingLimit int // Wrap the Content upto the Limit
}
Config is the configuration needed for the Box to be designed