Documentation ¶
Index ¶
- Constants
- func ColorProfile() termenv.Profile
- func HasDarkBackground() bool
- func Height(str string) int
- func JoinHorizontal(pos Position, strs ...string) string
- func JoinVertical(pos Position, strs ...string) string
- func Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string
- func PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string
- func PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string
- func SetColorProfile(p termenv.Profile)
- func SetDefaultRenderer(r *Renderer)
- func SetHasDarkBackground(b bool)
- func Size(str string) (width, height int)
- func StyleRunes(str string, indices []int, matched, unmatched Style) string
- func Width(str string) (width int)
- type ANSIColor
- type AdaptiveColor
- type Border
- type Color
- type CompleteAdaptiveColor
- type CompleteColor
- type NoColor
- type Position
- type Renderer
- func (r *Renderer) ColorProfile() termenv.Profile
- func (r *Renderer) HasDarkBackground() bool
- func (r *Renderer) NewStyle() Style
- func (r *Renderer) Output() *termenv.Output
- func (r *Renderer) Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string
- func (r *Renderer) PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string
- func (r *Renderer) PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string
- func (r *Renderer) SetColorProfile(p termenv.Profile)
- func (r *Renderer) SetHasDarkBackground(b bool)
- func (r *Renderer) SetOutput(o *termenv.Output)
- type RendererOption
- type Style
- func (s Style) Align(p ...Position) Style
- func (s Style) AlignHorizontal(p Position) Style
- func (s Style) AlignVertical(p Position) Style
- func (s Style) Background(c TerminalColor) Style
- func (s Style) Blink(v bool) Style
- func (s Style) Bold(v bool) Style
- func (s Style) Border(b Border, sides ...bool) Style
- func (s Style) BorderBackground(c ...TerminalColor) Style
- func (s Style) BorderBottom(v bool) Style
- func (s Style) BorderBottomBackground(c TerminalColor) Style
- func (s Style) BorderBottomForeground(c TerminalColor) Style
- func (s Style) BorderForeground(c ...TerminalColor) Style
- func (s Style) BorderLeft(v bool) Style
- func (s Style) BorderLeftBackground(c TerminalColor) Style
- func (s Style) BorderLeftForeground(c TerminalColor) Style
- func (s Style) BorderRight(v bool) Style
- func (s Style) BorderRightBackground(c TerminalColor) Style
- func (s Style) BorderRightForeground(c TerminalColor) Style
- func (s Style) BorderStyle(b Border) Style
- func (s Style) BorderTop(v bool) Style
- func (s Style) BorderTopBackground(c TerminalColor) Style
- func (s Style) BorderTopForeground(c TerminalColor) Style
- func (s Style) ColorWhitespace(v bool) Style
- func (s Style) Copy() Style
- func (s Style) Faint(v bool) Style
- func (s Style) Foreground(c TerminalColor) Style
- func (s Style) GetAlign() Position
- func (s Style) GetAlignHorizontal() Position
- func (s Style) GetAlignVertical() Position
- func (s Style) GetBackground() TerminalColor
- func (s Style) GetBlink() bool
- func (s Style) GetBold() bool
- func (s Style) GetBorder() (b Border, top, right, bottom, left bool)
- func (s Style) GetBorderBottom() bool
- func (s Style) GetBorderBottomBackground() TerminalColor
- func (s Style) GetBorderBottomForeground() TerminalColor
- func (s Style) GetBorderBottomSize() int
- func (s Style) GetBorderLeft() bool
- func (s Style) GetBorderLeftBackground() TerminalColor
- func (s Style) GetBorderLeftForeground() TerminalColor
- func (s Style) GetBorderLeftSize() int
- func (s Style) GetBorderRight() bool
- func (s Style) GetBorderRightBackground() TerminalColor
- func (s Style) GetBorderRightForeground() TerminalColor
- func (s Style) GetBorderRightSize() int
- func (s Style) GetBorderStyle() Border
- func (s Style) GetBorderTop() bool
- func (s Style) GetBorderTopBackground() TerminalColor
- func (s Style) GetBorderTopForeground() TerminalColor
- func (s Style) GetBorderTopSize() int
- func (s Style) GetBorderTopWidth() intdeprecated
- func (s Style) GetColorWhitespace() bool
- func (s Style) GetFaint() bool
- func (s Style) GetForeground() TerminalColor
- func (s Style) GetFrameSize() (x, y int)
- func (s Style) GetHeight() int
- func (s Style) GetHorizontalBorderSize() int
- func (s Style) GetHorizontalFrameSize() int
- func (s Style) GetHorizontalMargins() int
- func (s Style) GetHorizontalPadding() int
- func (s Style) GetInline() bool
- func (s Style) GetItalic() bool
- func (s Style) GetMargin() (top, right, bottom, left int)
- func (s Style) GetMarginBottom() int
- func (s Style) GetMarginLeft() int
- func (s Style) GetMarginRight() int
- func (s Style) GetMarginTop() int
- func (s Style) GetMaxHeight() int
- func (s Style) GetMaxWidth() int
- func (s Style) GetPadding() (top, right, bottom, left int)
- func (s Style) GetPaddingBottom() int
- func (s Style) GetPaddingLeft() int
- func (s Style) GetPaddingRight() int
- func (s Style) GetPaddingTop() int
- func (s Style) GetReverse() bool
- func (s Style) GetStrikethrough() bool
- func (s Style) GetStrikethroughSpaces() bool
- func (s Style) GetTabWidth() int
- func (s Style) GetUnderline() bool
- func (s Style) GetUnderlineSpaces() bool
- func (s Style) GetVerticalBorderSize() int
- func (s Style) GetVerticalFrameSize() int
- func (s Style) GetVerticalMargins() int
- func (s Style) GetVerticalPadding() int
- func (s Style) GetWidth() int
- func (s Style) Height(i int) Style
- func (s Style) Inherit(i Style) Style
- func (s Style) Inline(v bool) Style
- func (s Style) Italic(v bool) Style
- func (s Style) Margin(i ...int) Style
- func (s Style) MarginBackground(c TerminalColor) Style
- func (s Style) MarginBottom(i int) Style
- func (s Style) MarginLeft(i int) Style
- func (s Style) MarginRight(i int) Style
- func (s Style) MarginTop(i int) Style
- func (s Style) MaxHeight(n int) Style
- func (s Style) MaxWidth(n int) Style
- func (s Style) Padding(i ...int) Style
- func (s Style) PaddingBottom(i int) Style
- func (s Style) PaddingLeft(i int) Style
- func (s Style) PaddingRight(i int) Style
- func (s Style) PaddingTop(i int) Style
- func (s Style) Render(strs ...string) string
- func (s Style) Renderer(r *Renderer) Style
- func (s Style) Reverse(v bool) Style
- func (s Style) SetString(strs ...string) Style
- func (s Style) Strikethrough(v bool) Style
- func (s Style) StrikethroughSpaces(v bool) Style
- func (s Style) String() string
- func (s Style) TabWidth(n int) Style
- func (s Style) Underline(v bool) Style
- func (s Style) UnderlineSpaces(v bool) Style
- func (s Style) UnsetAlign() Style
- func (s Style) UnsetAlignHorizontal() Style
- func (s Style) UnsetAlignVertical() Style
- func (s Style) UnsetBackground() Style
- func (s Style) UnsetBlink() Style
- func (s Style) UnsetBold() Style
- func (s Style) UnsetBorderBackground() Style
- func (s Style) UnsetBorderBottom() Style
- func (s Style) UnsetBorderBottomBackground() Style
- func (s Style) UnsetBorderBottomForeground() Style
- func (s Style) UnsetBorderForeground() Style
- func (s Style) UnsetBorderLeft() Style
- func (s Style) UnsetBorderLeftBackground() Style
- func (s Style) UnsetBorderLeftForeground() Style
- func (s Style) UnsetBorderRight() Style
- func (s Style) UnsetBorderRightBackground() Style
- func (s Style) UnsetBorderRightForeground() Style
- func (s Style) UnsetBorderStyle() Style
- func (s Style) UnsetBorderTop() Style
- func (s Style) UnsetBorderTopBackgroundColor() Style
- func (s Style) UnsetBorderTopForeground() Style
- func (s Style) UnsetColorWhitespace() Style
- func (s Style) UnsetFaint() Style
- func (s Style) UnsetForeground() Style
- func (s Style) UnsetHeight() Style
- func (s Style) UnsetInline() Style
- func (s Style) UnsetItalic() Style
- func (s Style) UnsetMarginBackground() Style
- func (s Style) UnsetMarginBottom() Style
- func (s Style) UnsetMarginLeft() Style
- func (s Style) UnsetMarginRight() Style
- func (s Style) UnsetMarginTop() Style
- func (s Style) UnsetMargins() Style
- func (s Style) UnsetMaxHeight() Style
- func (s Style) UnsetMaxWidth() Style
- func (s Style) UnsetPadding() Style
- func (s Style) UnsetPaddingBottom() Style
- func (s Style) UnsetPaddingLeft() Style
- func (s Style) UnsetPaddingRight() Style
- func (s Style) UnsetPaddingTop() Style
- func (s Style) UnsetReverse() Style
- func (s Style) UnsetStrikethrough() Style
- func (s Style) UnsetStrikethroughSpaces() Style
- func (s Style) UnsetString() Style
- func (s Style) UnsetTabWidth() Style
- func (s Style) UnsetUnderline() Style
- func (s Style) UnsetUnderlineSpaces() Style
- func (s Style) UnsetWidth() Style
- func (s Style) Value() string
- func (s Style) Width(i int) Style
- type TerminalColor
- type WhitespaceOption
Constants ¶
const NoTabConversion = -1
NoTabConversion can be passed to Style.TabWidth to disable the replacement of tabs with spaces at render time.
Variables ¶
This section is empty.
Functions ¶
func ColorProfile ¶
ColorProfile returns the detected termenv color profile.
func HasDarkBackground ¶ added in v0.1.1
func HasDarkBackground() bool
HasDarkBackground returns whether or not the terminal has a dark background.
func Height ¶
Height returns height of a string in cells. This is done simply by counting \n characters. If your strings use \r\n for newlines you should convert them to \n first, or simply write a separate function for measuring height.
func JoinHorizontal ¶
JoinHorizontal is a utility function for horizontally joining two potentially multi-lined strings along a vertical axis. The first argument is the position, with 0 being all the way at the top and 1 being all the way at the bottom.
If you just want to align to the left, right or center you may as well just use the helper constants Top, Center, and Bottom.
Example:
blockB := "...\n...\n..." blockA := "...\n...\n...\n...\n..." // Join 20% from the top str := lipgloss.JoinHorizontal(0.2, blockA, blockB) // Join on the top edge str := lipgloss.JoinHorizontal(lipgloss.Top, blockA, blockB)
func JoinVertical ¶
JoinVertical is a utility function for vertically joining two potentially multi-lined strings along a horizontal axis. The first argument is the position, with 0 being all the way to the left and 1 being all the way to the right.
If you just want to align to the left, right or center you may as well just use the helper constants Left, Center, and Right.
Example:
blockB := "...\n...\n..." blockA := "...\n...\n...\n...\n..." // Join 20% from the top str := lipgloss.JoinVertical(0.2, blockA, blockB) // Join on the right edge str := lipgloss.JoinVertical(lipgloss.Right, blockA, blockB)
func Place ¶
func Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string
Place places a string or text block vertically in an unstyled box of a given width or height.
func PlaceHorizontal ¶
func PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string
PlaceHorizontal places a string or text block horizontally in an unstyled block of a given width. If the given width is shorter than the max width of the string (measured by its longest line) this will be a noop.
func PlaceVertical ¶
func PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string
PlaceVertical places a string or text block vertically in an unstyled block of a given height. If the given height is shorter than the height of the string (measured by its newlines) then this will be a noop.
func SetColorProfile ¶ added in v0.3.0
SetColorProfile sets the color profile on the default renderer. This function exists mostly for testing purposes so that you can assure you're testing against a specific profile.
Outside of testing you likely won't want to use this function as the color profile will detect and cache the terminal's color capabilities and choose the best available profile.
Available color profiles are:
termenv.Ascii // no color, 1-bit termenv.ANSI //16 colors, 4-bit termenv.ANSI256 // 256 colors, 8-bit termenv.TrueColor // 16,777,216 colors, 24-bit
This function is thread-safe.
func SetDefaultRenderer ¶ added in v0.7.0
func SetDefaultRenderer(r *Renderer)
SetDefaultRenderer sets the default global renderer.
func SetHasDarkBackground ¶ added in v0.5.0
func SetHasDarkBackground(b bool)
SetHasDarkBackground sets the background color detection value for the default renderer. This function exists mostly for testing purposes so that you can assure you're testing against a specific background color setting.
Outside of testing you likely won't want to use this function as the backgrounds value will be automatically detected and cached against the terminal's current background color setting.
This function is thread-safe.
func Size ¶ added in v0.2.1
Size returns the width and height of the string in cells. ANSI sequences are ignored and characters wider than one cell (such as Chinese characters and emojis) are appropriately measured.
func StyleRunes ¶ added in v0.3.0
StyleRunes apply a given style to runes at the given indices in the string. Note that you must provide styling options for both matched and unmatched runes. Indices out of bounds will be ignored.
func Width ¶
Width returns the cell width of characters in the string. ANSI sequences are ignored and characters wider than one cell (such as Chinese characters and emojis) are appropriately measured.
You should use this instead of len(string) len([]rune(string) as neither will give you accurate results.
Types ¶
type ANSIColor ¶ added in v0.7.0
type ANSIColor uint
ANSIColor is a color specified by an ANSI color value. It's merely syntactic sugar for the more general Color function. Invalid colors will render as black.
Example usage:
// These two statements are equivalent. colorA := lipgloss.ANSIColor(21) colorB := lipgloss.Color("21")
type AdaptiveColor ¶
AdaptiveColor provides color options for light and dark backgrounds. The appropriate color will be returned at runtime based on the darkness of the terminal background color.
Example usage:
color := lipgloss.AdaptiveColor{Light: "#0000ff", Dark: "#000099"}
func (AdaptiveColor) RGBA ¶
func (ac AdaptiveColor) RGBA() (r, g, b, a uint32)
RGBA returns the RGBA value of this color. This satisfies the Go Color interface. Note that on error we return black with 100% opacity, or:
Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF.
Deprecated.
type Border ¶
type Border struct { Top string Bottom string Left string Right string TopLeft string TopRight string BottomLeft string BottomRight string MiddleLeft string MiddleRight string Middle string MiddleTop string MiddleBottom string }
Border contains a series of values which comprise the various parts of a border.
func BlockBorder ¶ added in v0.7.0
func BlockBorder() Border
BlockBorder returns a border that takes the whole block.
func DoubleBorder ¶
func DoubleBorder() Border
DoubleBorder returns a border comprised of two thin strokes.
func HiddenBorder ¶ added in v0.4.0
func HiddenBorder() Border
HiddenBorder returns a border that renders as a series of single-cell spaces. It's useful for cases when you want to remove a standard border but maintain layout positioning. This said, you can still apply a background color to a hidden border.
func InnerHalfBlockBorder ¶ added in v0.7.0
func InnerHalfBlockBorder() Border
InnerHalfBlockBorder returns a half-block border that sits inside the frame.
func NormalBorder ¶
func NormalBorder() Border
NormalBorder returns a standard-type border with a normal weight and 90 degree corners.
func OuterHalfBlockBorder ¶ added in v0.7.0
func OuterHalfBlockBorder() Border
OuterHalfBlockBorder returns a half-block border that sits outside the frame.
func RoundedBorder ¶
func RoundedBorder() Border
RoundedBorder returns a border with rounded corners.
func ThickBorder ¶
func ThickBorder() Border
ThickBorder returns a border that's thicker than the one returned by NormalBorder.
func (Border) GetBottomSize ¶ added in v0.4.0
GetBottomSize returns the width of the bottom border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the bottom edge, 0 is returned.
func (Border) GetLeftSize ¶ added in v0.4.0
GetLeftSize returns the width of the left border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the left edge, 0 is returned.
func (Border) GetRightSize ¶ added in v0.4.0
GetRightSize returns the width of the right border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the right edge, 0 is returned.
func (Border) GetTopSize ¶ added in v0.4.0
GetTopSize returns the width of the top border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the top edge, 0 is returned.
type Color ¶
type Color string
Color specifies a color by hex or ANSI value. For example:
ansiColor := lipgloss.Color("21") hexColor := lipgloss.Color("#0000ff")
type CompleteAdaptiveColor ¶ added in v0.6.0
type CompleteAdaptiveColor struct { Light CompleteColor Dark CompleteColor }
CompleteAdaptiveColor specifies exact values for truecolor, ANSI256, and ANSI color profiles, with separate options for light and dark backgrounds. Automatic color degradation will not be performed.
func (CompleteAdaptiveColor) RGBA ¶ added in v0.6.0
func (cac CompleteAdaptiveColor) RGBA() (r, g, b, a uint32)
RGBA returns the RGBA value of this color. This satisfies the Go Color interface. Note that on error we return black with 100% opacity, or:
Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF.
Deprecated.
type CompleteColor ¶ added in v0.6.0
CompleteColor specifies exact values for truecolor, ANSI256, and ANSI color profiles. Automatic color degradation will not be performed.
func (CompleteColor) RGBA ¶ added in v0.6.0
func (c CompleteColor) RGBA() (r, g, b, a uint32)
RGBA returns the RGBA value of this color. This satisfies the Go Color interface. Note that on error we return black with 100% opacity, or:
Red: 0x0, Green: 0x0, Blue: 0x0, Alpha: 0xFFFF. CompleteAdaptiveColor specifies exact values for truecolor, ANSI256, and ANSI color
Deprecated.
type NoColor ¶
type NoColor struct{}
NoColor is used to specify the absence of color styling. When this is active foreground colors will be rendered with the terminal's default text color, and background colors will not be drawn at all.
Example usage:
var style = someStyle.Copy().Background(lipgloss.NoColor{})
type Position ¶
type Position float64
Position represents a position along a horizontal or vertical axis. It's in situations where an axis is involved, like alignment, joining, placement and so on.
A value of 0 represents the start (the left or top) and 1 represents the end (the right or bottom). 0.5 represents the center.
There are constants Top, Bottom, Center, Left and Right in this package that can be used to aid readability.
type Renderer ¶ added in v0.7.0
type Renderer struct {
// contains filtered or unexported fields
}
Renderer is a lipgloss terminal renderer.
func DefaultRenderer ¶ added in v0.7.0
func DefaultRenderer() *Renderer
DefaultRenderer returns the default renderer.
func NewRenderer ¶ added in v0.7.0
func NewRenderer(w io.Writer, opts ...termenv.OutputOption) *Renderer
NewRenderer creates a new Renderer.
w will be used to determine the terminal's color capabilities.
func (*Renderer) ColorProfile ¶ added in v0.7.0
ColorProfile returns the detected termenv color profile.
func (*Renderer) HasDarkBackground ¶ added in v0.7.0
HasDarkBackground returns whether or not the renderer will render to a dark background. A dark background can either be auto-detected, or set explicitly on the renderer.
func (*Renderer) NewStyle ¶ added in v0.7.0
NewStyle returns a new, empty Style. While it's syntactic sugar for the Style{} primitive, it's recommended to use this function for creating styles in case the underlying implementation changes. It takes an optional string value to be set as the underlying string value for this style.
func (*Renderer) Place ¶ added in v0.7.0
func (r *Renderer) Place(width, height int, hPos, vPos Position, str string, opts ...WhitespaceOption) string
Place places a string or text block vertically in an unstyled box of a given width or height.
func (*Renderer) PlaceHorizontal ¶ added in v0.7.0
func (r *Renderer) PlaceHorizontal(width int, pos Position, str string, opts ...WhitespaceOption) string
PlaceHorizontal places a string or text block horizontally in an unstyled block of a given width. If the given width is shorter than the max width of the string (measured by its longest line) this will be a noöp.
func (*Renderer) PlaceVertical ¶ added in v0.7.0
func (r *Renderer) PlaceVertical(height int, pos Position, str string, opts ...WhitespaceOption) string
PlaceVertical places a string or text block vertically in an unstyled block of a given height. If the given height is shorter than the height of the string (measured by its newlines) then this will be a noöp.
func (*Renderer) SetColorProfile ¶ added in v0.7.0
SetColorProfile sets the color profile on the renderer. This function exists mostly for testing purposes so that you can assure you're testing against a specific profile.
Outside of testing you likely won't want to use this function as the color profile will detect and cache the terminal's color capabilities and choose the best available profile.
Available color profiles are:
termenv.Ascii // no color, 1-bit termenv.ANSI //16 colors, 4-bit termenv.ANSI256 // 256 colors, 8-bit termenv.TrueColor // 16,777,216 colors, 24-bit
This function is thread-safe.
func (*Renderer) SetHasDarkBackground ¶ added in v0.7.0
SetHasDarkBackground sets the background color detection value on the renderer. This function exists mostly for testing purposes so that you can assure you're testing against a specific background color setting.
Outside of testing you likely won't want to use this function as the backgrounds value will be automatically detected and cached against the terminal's current background color setting.
This function is thread-safe.
type RendererOption ¶ added in v0.7.0
type RendererOption func(r *Renderer)
RendererOption is a function that can be used to configure a Renderer.
type Style ¶
type Style struct {
// contains filtered or unexported fields
}
Style contains a set of rules that comprise a style as a whole.
func NewStyle ¶
func NewStyle() Style
NewStyle returns a new, empty Style. While it's syntactic sugar for the Style{} primitive, it's recommended to use this function for creating styles in case the underlying implementation changes. It takes an optional string value to be set as the underlying string value for this style.
func (Style) Align ¶
Align is a shorthand method for setting horizontal and vertical alignment.
With one argument, the position value is applied to the horizontal alignment.
With two arguments, the value is applied to the vertical and horizontal alignments, in that order.
func (Style) AlignHorizontal ¶ added in v0.6.0
AlignHorizontal sets a horizontal text alignment rule.
func (Style) AlignVertical ¶ added in v0.6.0
AlignVertical sets a vertical text alignment rule.
func (Style) Background ¶
func (s Style) Background(c TerminalColor) Style
Background sets a background color.
func (Style) Border ¶
Border is shorthand for setting the border style and which sides should have a border at once. The variadic argument sides works as follows:
With one value, the value is applied to all sides.
With two values, the values are applied to the vertical and horizontal sides, in that order.
With three values, the values are applied to the top side, the horizontal sides, and the bottom side, in that order.
With four values, the values are applied clockwise starting from the top side, followed by the right side, then the bottom, and finally the left.
With more than four arguments the border will be applied to all sides.
Examples:
// Applies borders to the top and bottom only lipgloss.NewStyle().Border(lipgloss.NormalBorder(), true, false) // Applies rounded borders to the right and bottom only lipgloss.NewStyle().Border(lipgloss.RoundedBorder(), false, true, true, false)
func (Style) BorderBackground ¶ added in v0.1.2
func (s Style) BorderBackground(c ...TerminalColor) Style
BorderBackground is a shorthand function for setting all of the background colors of the borders at once. The arguments work as follows:
With one argument, the argument is applied to all sides.
With two arguments, the arguments are applied to the vertical and horizontal sides, in that order.
With three arguments, the arguments are applied to the top side, the horizontal sides, and the bottom side, in that order.
With four arguments, the arguments are applied clockwise starting from the top side, followed by the right side, then the bottom, and finally the left.
With more than four arguments nothing will be set.
func (Style) BorderBottom ¶
BorderBottom determines whether or not to draw a bottom border.
func (Style) BorderBottomBackground ¶ added in v0.1.2
func (s Style) BorderBottomBackground(c TerminalColor) Style
BorderBottomBackground sets the background color of the bottom of the border.
func (Style) BorderBottomForeground ¶ added in v0.1.2
func (s Style) BorderBottomForeground(c TerminalColor) Style
BorderBottomForeground sets the foreground color for the bottom of the border.
func (Style) BorderForeground ¶ added in v0.1.2
func (s Style) BorderForeground(c ...TerminalColor) Style
BorderForeground is a shorthand function for setting all of the foreground colors of the borders at once. The arguments work as follows:
With one argument, the argument is applied to all sides.
With two arguments, the arguments are applied to the vertical and horizontal sides, in that order.
With three arguments, the arguments are applied to the top side, the horizontal sides, and the bottom side, in that order.
With four arguments, the arguments are applied clockwise starting from the top side, followed by the right side, then the bottom, and finally the left.
With more than four arguments nothing will be set.
func (Style) BorderLeft ¶
BorderLeft determines whether or not to draw a left border.
func (Style) BorderLeftBackground ¶ added in v0.1.2
func (s Style) BorderLeftBackground(c TerminalColor) Style
BorderLeftBackground set the background color of the left side of the border.
func (Style) BorderLeftForeground ¶ added in v0.1.2
func (s Style) BorderLeftForeground(c TerminalColor) Style
BorderLeftForeground sets the foreground color for the left side of the border.
func (Style) BorderRight ¶
BorderRight determines whether or not to draw a right border.
func (Style) BorderRightBackground ¶ added in v0.1.2
func (s Style) BorderRightBackground(c TerminalColor) Style
BorderRightBackground sets the background color of right side the border.
func (Style) BorderRightForeground ¶ added in v0.1.2
func (s Style) BorderRightForeground(c TerminalColor) Style
BorderRightForeground sets the foreground color for the right side of the border.
func (Style) BorderStyle ¶
BorderStyle defines the Border on a style. A Border contains a series of definitions for the sides and corners of a border.
Note that if border visibility has not been set for any sides when setting the border style, the border will be enabled for all sides during rendering.
You can define border characters as you'd like, though several default styles are included: NormalBorder(), RoundedBorder(), BlockBorder(), OuterHalfBlockBorder(), InnerHalfBlockBorder(), ThickBorder(), and DoubleBorder().
Example:
lipgloss.NewStyle().BorderStyle(lipgloss.ThickBorder())
func (Style) BorderTopBackground ¶ added in v0.1.2
func (s Style) BorderTopBackground(c TerminalColor) Style
BorderTopBackground sets the background color of the top of the border.
func (Style) BorderTopForeground ¶ added in v0.1.2
func (s Style) BorderTopForeground(c TerminalColor) Style
BorderTopForeground set the foreground color for the top of the border.
func (Style) ColorWhitespace ¶
ColorWhitespace determines whether or not the background color should be applied to the padding. This is true by default as it's more than likely the desired and expected behavior, but it can be disabled for certain graphic effects.
func (Style) Foreground ¶
func (s Style) Foreground(c TerminalColor) Style
Foreground sets a foreground color.
// Sets the foreground to blue s := lipgloss.NewStyle().Foreground(lipgloss.Color("#0000ff")) // Removes the foreground color s.Foreground(lipgloss.NoColor)
func (Style) GetAlign ¶ added in v0.2.0
GetAlign returns the style's implicit horizontal alignment setting. If no alignment is set Position.Left is returned.
func (Style) GetAlignHorizontal ¶ added in v0.6.0
GetAlignHorizontal returns the style's implicit horizontal alignment setting. If no alignment is set Position.Left is returned.
func (Style) GetAlignVertical ¶ added in v0.6.0
GetAlignVertical returns the style's implicit vertical alignment setting. If no alignment is set Position.Top is returned.
func (Style) GetBackground ¶ added in v0.2.0
func (s Style) GetBackground() TerminalColor
GetBackground returns the style's background color. If no value is set NoColor{} is returned.
func (Style) GetBlink ¶ added in v0.2.0
GetBlink returns the style's blink value. If no value is set false is returned.
func (Style) GetBold ¶ added in v0.2.0
GetBold returns the style's bold value. If no value is set false is returned.
func (Style) GetBorder ¶ added in v0.2.0
GetBorder returns the style's border style (type Border) and value for the top, right, bottom, and left in that order. If no value is set for the border style, Border{} is returned. For all other unset values false is returned.
func (Style) GetBorderBottom ¶ added in v0.2.0
GetBorderBottom returns the style's bottom border setting. If no value is set false is returned.
func (Style) GetBorderBottomBackground ¶ added in v0.2.0
func (s Style) GetBorderBottomBackground() TerminalColor
GetBorderBottomBackground returns the style's border bottom background color. If no value is set NoColor{} is returned.
func (Style) GetBorderBottomForeground ¶ added in v0.2.0
func (s Style) GetBorderBottomForeground() TerminalColor
GetBorderBottomForeground returns the style's border bottom foreground color. If no value is set NoColor{} is returned.
func (Style) GetBorderBottomSize ¶ added in v0.4.0
GetBorderBottomSize returns the width of the bottom border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the left edge, 0 is returned.
func (Style) GetBorderLeft ¶ added in v0.2.0
GetBorderLeft returns the style's left border setting. If no value is set false is returned.
func (Style) GetBorderLeftBackground ¶ added in v0.2.0
func (s Style) GetBorderLeftBackground() TerminalColor
GetBorderLeftBackground returns the style's border left background color. If no value is set NoColor{} is returned.
func (Style) GetBorderLeftForeground ¶ added in v0.2.0
func (s Style) GetBorderLeftForeground() TerminalColor
GetBorderLeftForeground returns the style's border left foreground color. If no value is set NoColor{} is returned.
func (Style) GetBorderLeftSize ¶ added in v0.4.0
GetBorderLeftSize returns the width of the left border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the left edge, 0 is returned.
func (Style) GetBorderRight ¶ added in v0.2.0
GetBorderRight returns the style's right border setting. If no value is set false is returned.
func (Style) GetBorderRightBackground ¶ added in v0.2.0
func (s Style) GetBorderRightBackground() TerminalColor
GetBorderRightBackground returns the style's border right background color. If no value is set NoColor{} is returned.
func (Style) GetBorderRightForeground ¶ added in v0.2.0
func (s Style) GetBorderRightForeground() TerminalColor
GetBorderRightForeground returns the style's border right foreground color. If no value is set NoColor{} is returned.
func (Style) GetBorderRightSize ¶ added in v0.4.0
GetBorderRightSize returns the width of the right border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the right edge, 0 is returned.
func (Style) GetBorderStyle ¶ added in v0.2.0
GetBorderStyle returns the style's border style (type Border). If no value is set Border{} is returned.
func (Style) GetBorderTop ¶ added in v0.2.0
GetBorderTop returns the style's top border setting. If no value is set false is returned.
func (Style) GetBorderTopBackground ¶ added in v0.2.0
func (s Style) GetBorderTopBackground() TerminalColor
GetBorderTopBackground returns the style's border top background color. If no value is set NoColor{} is returned.
func (Style) GetBorderTopForeground ¶ added in v0.2.0
func (s Style) GetBorderTopForeground() TerminalColor
GetBorderTopForeground returns the style's border top foreground color. If no value is set NoColor{} is returned.
func (Style) GetBorderTopSize ¶ added in v0.7.0
GetBorderTopSize returns the width of the top border. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the top edge, 0 is returned.
func (Style) GetBorderTopWidth
deprecated
added in
v0.4.0
func (Style) GetColorWhitespace ¶ added in v0.2.0
GetColorWhitespace returns the style's whitespace coloring setting. If no value is set false is returned.
func (Style) GetFaint ¶ added in v0.2.0
GetFaint returns the style's faint value. If no value is set false is returned.
func (Style) GetForeground ¶ added in v0.2.0
func (s Style) GetForeground() TerminalColor
GetForeground returns the style's foreground color. If no value is set NoColor{} is returned.
func (Style) GetFrameSize ¶ added in v0.4.0
GetFrameSize returns the sum of the margins, padding and border width for both the horizontal and vertical margins.
func (Style) GetHeight ¶ added in v0.2.0
GetHeight returns the style's height setting. If no height is set 0 is returned.
func (Style) GetHorizontalBorderSize ¶ added in v0.4.0
GetHorizontalBorderSize returns the width of the horizontal borders. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the horizontal edges, 0 is returned.
func (Style) GetHorizontalFrameSize ¶ added in v0.4.0
GetHorizontalFrameSize returns the sum of the style's horizontal margins, padding and border widths.
Provisional: this method may be renamed.
func (Style) GetHorizontalMargins ¶ added in v0.4.0
GetHorizontalMargins returns the style's left and right margins. Unset values are measured as 0.
func (Style) GetHorizontalPadding ¶ added in v0.4.0
GetHorizontalPadding returns the style's left and right padding. Unset values are measured as 0.
func (Style) GetInline ¶ added in v0.2.0
GetInline returns the style's inline setting. If no value is set false is returned.
func (Style) GetItalic ¶ added in v0.2.0
GetItalic returns the style's italic value. If no value is set false is returned.
func (Style) GetMargin ¶ added in v0.2.0
GetMargin returns the style's top, right, bottom, and left margins, in that order. 0 is returned for unset values.
func (Style) GetMarginBottom ¶ added in v0.2.0
GetMarginBottom returns the style's bottom margin. If no value is set 0 is returned.
func (Style) GetMarginLeft ¶ added in v0.2.0
GetMarginLeft returns the style's left margin. If no value is set 0 is returned.
func (Style) GetMarginRight ¶ added in v0.2.0
GetMarginRight returns the style's right margin. If no value is set 0 is returned.
func (Style) GetMarginTop ¶ added in v0.2.0
GetMarginTop returns the style's top margin. If no value is set 0 is returned.
func (Style) GetMaxHeight ¶ added in v0.2.0
GetMaxHeight returns the style's max height setting. If no value is set 0 is returned.
func (Style) GetMaxWidth ¶ added in v0.2.0
GetMaxWidth returns the style's max width setting. If no value is set 0 is returned.
func (Style) GetPadding ¶ added in v0.2.0
GetPadding returns the style's top, right, bottom, and left padding values, in that order. 0 is returned for unset values.
func (Style) GetPaddingBottom ¶ added in v0.2.0
GetPaddingBottom returns the style's bottom padding. If no value is set 0 is returned.
func (Style) GetPaddingLeft ¶ added in v0.2.0
GetPaddingLeft returns the style's left padding. If no value is set 0 is returned.
func (Style) GetPaddingRight ¶ added in v0.2.0
GetPaddingRight returns the style's right padding. If no value is set 0 is returned.
func (Style) GetPaddingTop ¶ added in v0.2.0
GetPaddingTop returns the style's top padding. If no value is set 0 is returned.
func (Style) GetReverse ¶ added in v0.2.0
GetReverse returns the style's reverse value. If no value is set false is returned.
func (Style) GetStrikethrough ¶ added in v0.2.0
GetStrikethrough returns the style's strikethrough value. If no value is set false is returned.
func (Style) GetStrikethroughSpaces ¶ added in v0.2.0
GetStrikethroughSpaces returns whether or not the style is set to strikethrough spaces. If not value is set false is returned.
func (Style) GetTabWidth ¶ added in v0.8.0
GetTabWidth returns the style's tab width setting. If no value is set 4 is returned which is the implicit default.
func (Style) GetUnderline ¶ added in v0.2.0
GetUnderline returns the style's underline value. If no value is set false is returned.
func (Style) GetUnderlineSpaces ¶ added in v0.2.0
GetUnderlineSpaces returns whether or not the style is set to underline spaces. If not value is set false is returned.
func (Style) GetVerticalBorderSize ¶ added in v0.4.0
GetVerticalBorderSize returns the width of the vertical borders. If borders contain runes of varying widths, the widest rune is returned. If no border exists on the vertical edges, 0 is returned.
func (Style) GetVerticalFrameSize ¶ added in v0.4.0
GetVerticalFrameSize returns the sum of the style's vertical margins, padding and border widths.
Provisional: this method may be renamed.
func (Style) GetVerticalMargins ¶ added in v0.4.0
GetVerticalMargins returns the style's top and bottom margins. Unset values are measured as 0.
func (Style) GetVerticalPadding ¶ added in v0.4.0
GetVerticalPadding returns the style's top and bottom padding. Unset values are measured as 0.
func (Style) GetWidth ¶ added in v0.2.0
GetWidth returns the style's width setting. If no width is set 0 is returned.
func (Style) Height ¶
Height sets the height of the block before applying margins. If the height of the text block is less than this value after applying padding (or not), the block will be set to this height.
func (Style) Inherit ¶
Inherit overlays the style in the argument onto this style by copying each explicitly set value from the argument style onto this style if it is not already explicitly set. Existing set values are kept intact and not overwritten.
Margins, padding, and underlying string values are not inherited.
func (Style) Inline ¶
Inline makes rendering output one line and disables the rendering of margins, padding and borders. This is useful when you need a style to apply only to font rendering and don't want it to change any physical dimensions. It works well with Style.MaxWidth.
Because this in intended to be used at the time of render, this method will not mutate the style and instead return a copy.
Example:
var userInput string = "..." var userStyle = text.Style{ /* ... */ } fmt.Println(userStyle.Inline(true).Render(userInput))
func (Style) Italic ¶
Italic sets an italic formatting rule. In some terminal emulators this will render with "reverse" coloring if not italic font variant is available.
func (Style) Margin ¶
Margin is a shorthand method for setting margins on all sides at once.
With one argument, the value is applied to all sides.
With two arguments, the value is applied to the vertical and horizontal sides, in that order.
With three arguments, the value is applied to the top side, the horizontal sides, and the bottom side, in that order.
With four arguments, the value is applied clockwise starting from the top side, followed by the right side, then the bottom, and finally the left.
With more than four arguments no margin will be added.
func (Style) MarginBackground ¶
func (s Style) MarginBackground(c TerminalColor) Style
MarginBackground sets the background color of the margin. Note that this is also set when inheriting from a style with a background color. In that case the background color on that style will set the margin color on this style.
func (Style) MarginBottom ¶
MarginBottom sets the value of the bottom margin.
func (Style) MarginLeft ¶
MarginLeft sets the value of the left margin.
func (Style) MarginRight ¶
MarginRight sets the value of the right margin.
func (Style) MaxHeight ¶
MaxHeight applies a max height to a given style. This is useful in enforcing a certain height at render time, particularly with arbitrary strings and styles.
Because this in intended to be used at the time of render, this method will not mutate the style and instead returns a copy.
func (Style) MaxWidth ¶
MaxWidth applies a max width to a given style. This is useful in enforcing a certain width at render time, particularly with arbitrary strings and styles.
Because this in intended to be used at the time of render, this method will not mutate the style and instead return a copy.
Example:
var userInput string = "..." var userStyle = text.Style{ /* ... */ } fmt.Println(userStyle.MaxWidth(16).Render(userInput))
func (Style) Padding ¶
Padding is a shorthand method for setting padding on all sides at once.
With one argument, the value is applied to all sides.
With two arguments, the value is applied to the vertical and horizontal sides, in that order.
With three arguments, the value is applied to the top side, the horizontal sides, and the bottom side, in that order.
With four arguments, the value is applied clockwise starting from the top side, followed by the right side, then the bottom, and finally the left.
With more than four arguments no padding will be added.
func (Style) PaddingBottom ¶
PaddingBottom adds padding to the bottom of the block.
func (Style) PaddingLeft ¶
PaddingLeft adds padding on the left.
func (Style) PaddingRight ¶
PaddingRight adds padding on the right.
func (Style) PaddingTop ¶
PaddingTop adds padding to the top of the block.
func (Style) Renderer ¶ added in v0.7.0
Renderer sets the renderer for the style. This is useful for changing the renderer for a style that is being used in a different context.
func (Style) SetString ¶
SetString sets the underlying string value for this style. To render once the underlying string is set, use the Style.String. This method is a convenience for cases when having a stringer implementation is handy, such as when using fmt.Sprintf. You can also simply define a style and render out strings directly with Style.Render.
func (Style) Strikethrough ¶
Strikethrough sets a strikethrough rule. By default, strikes will not be drawn on whitespace like margins and padding. To change this behavior set StrikethroughSpaces.
func (Style) StrikethroughSpaces ¶
StrikethroughSpaces determines whether to apply strikethroughs to spaces between words. By default, this is true. Spaces can also be struck without underlining the text itself.
func (Style) String ¶
String implements stringer for a Style, returning the rendered result based on the rules in this style. An underlying string value must be set with Style.SetString prior to using this method.
func (Style) TabWidth ¶ added in v0.8.0
TabWidth sets the number of spaces that a tab (/t) should be rendered as. When set to 0, tabs will be removed. To disable the replacement of tabs with spaces entirely, set this to NoTabConversion.
By default, tabs will be replaced with 4 spaces.
func (Style) Underline ¶
Underline sets an underline rule. By default, underlines will not be drawn on whitespace like margins and padding. To change this behavior set UnderlineSpaces.
func (Style) UnderlineSpaces ¶
UnderlineSpaces determines whether to underline spaces between words. By default, this is true. Spaces can also be underlined without underlining the text itself.
func (Style) UnsetAlign ¶
UnsetAlign removes the horizontal and vertical text alignment style rule, if set.
func (Style) UnsetAlignHorizontal ¶ added in v0.6.0
UnsetAlignHorizontal removes the horizontal text alignment style rule, if set.
func (Style) UnsetAlignVertical ¶ added in v0.6.0
UnsetAlignVertical removes the vertical text alignment style rule, if set.
func (Style) UnsetBackground ¶
UnsetBackground removes the background style rule, if set.
func (Style) UnsetBlink ¶
UnsetBlink removes the blink style rule, if set.
func (Style) UnsetBorderBackground ¶ added in v0.1.2
UnsetBorderBackground removes all border background color styles, if set.
func (Style) UnsetBorderBottom ¶
UnsetBorderBottom removes the border bottom style rule, if set.
func (Style) UnsetBorderBottomBackground ¶ added in v0.1.2
UnsetBorderBottomBackground removes the bottom border background color rule, if set.
func (Style) UnsetBorderBottomForeground ¶ added in v0.1.2
UnsetBorderBottomForeground removes the bottom border foreground color rule, if set.
func (Style) UnsetBorderForeground ¶ added in v0.1.2
UnsetBorderForeground removes all border foreground color styles, if set.
func (Style) UnsetBorderLeft ¶
UnsetBorderLeft removes the border left style rule, if set.
func (Style) UnsetBorderLeftBackground ¶ added in v0.1.2
UnsetBorderLeftBackground removes the left border color rule, if set.
func (Style) UnsetBorderLeftForeground ¶ added in v0.1.2
UnsetBorderLeftForeground removes the left border foreground color rule, if set.
func (Style) UnsetBorderRight ¶
UnsetBorderRight removes the border right style rule, if set.
func (Style) UnsetBorderRightBackground ¶ added in v0.1.2
UnsetBorderRightBackground removes the right border background color rule, if set.
func (Style) UnsetBorderRightForeground ¶ added in v0.1.2
UnsetBorderRightForeground removes the right border foreground color rule, if set.
func (Style) UnsetBorderStyle ¶
UnsetBorderStyle removes the border style rule, if set.
func (Style) UnsetBorderTop ¶
UnsetBorderTop removes the border top style rule, if set.
func (Style) UnsetBorderTopBackgroundColor ¶
UnsetBorderTopBackgroundColor removes the top border background color rule, if set.
func (Style) UnsetBorderTopForeground ¶ added in v0.1.2
UnsetBorderTopForeground removes the top border foreground color rule, if set.
func (Style) UnsetColorWhitespace ¶
UnsetColorWhitespace removes the rule for coloring padding, if set.
func (Style) UnsetFaint ¶
UnsetFaint removes the faint style rule, if set.
func (Style) UnsetForeground ¶
UnsetForeground removes the foreground style rule, if set.
func (Style) UnsetHeight ¶
UnsetHeight removes the height style rule, if set.
func (Style) UnsetInline ¶
UnsetInline removes the inline style rule, if set.
func (Style) UnsetItalic ¶
UnsetItalic removes the italic style rule, if set.
func (Style) UnsetMarginBackground ¶
UnsetMarginBackground removes the margin's background color. Note that the margin's background color can be set from the background color of another style during inheritance.
func (Style) UnsetMarginBottom ¶
UnsetMarginBottom removes the bottom margin style rule, if set.
func (Style) UnsetMarginLeft ¶
UnsetMarginLeft removes the left margin style rule, if set.
func (Style) UnsetMarginRight ¶
UnsetMarginRight removes the right margin style rule, if set.
func (Style) UnsetMarginTop ¶
UnsetMarginTop removes the top margin style rule, if set.
func (Style) UnsetMargins ¶
UnsetMargins removes all margin style rules.
func (Style) UnsetMaxHeight ¶
UnsetMaxHeight removes the max height style rule, if set.
func (Style) UnsetMaxWidth ¶
UnsetMaxWidth removes the max width style rule, if set.
func (Style) UnsetPadding ¶
UnsetPadding removes all padding style rules.
func (Style) UnsetPaddingBottom ¶
UnsetPaddingBottom removes the bottom padding style rule, if set.
func (Style) UnsetPaddingLeft ¶
UnsetPaddingLeft removes the left padding style rule, if set.
func (Style) UnsetPaddingRight ¶
UnsetPaddingRight removes the right padding style rule, if set.
func (Style) UnsetPaddingTop ¶
UnsetPaddingTop removes the top padding style rule, if set.
func (Style) UnsetReverse ¶
UnsetReverse removes the reverse style rule, if set.
func (Style) UnsetStrikethrough ¶
UnsetStrikethrough removes the strikethrough style rule, if set.
func (Style) UnsetStrikethroughSpaces ¶
UnsetStrikethroughSpaces removes the value set by StrikethroughSpaces.
func (Style) UnsetString ¶
UnsetString sets the underlying string value to the empty string.
func (Style) UnsetTabWidth ¶ added in v0.8.0
UnsetTabWidth removes the tab width style rule, if set.
func (Style) UnsetUnderline ¶
UnsetUnderline removes the underline style rule, if set.
func (Style) UnsetUnderlineSpaces ¶
UnsetUnderlineSpaces removes the value set by UnderlineSpaces.
func (Style) UnsetWidth ¶
UnsetWidth removes the width style rule, if set.
type TerminalColor ¶
type TerminalColor interface { RGBA() (r, g, b, a uint32) // contains filtered or unexported methods }
TerminalColor is a color intended to be rendered in the terminal.
type WhitespaceOption ¶
type WhitespaceOption func(*whitespace)
WhitespaceOption sets a styling rule for rendering whitespace.
func WithWhitespaceBackground ¶
func WithWhitespaceBackground(c TerminalColor) WhitespaceOption
WithWhitespaceBackground sets the background color of the whitespace.
func WithWhitespaceChars ¶
func WithWhitespaceChars(s string) WhitespaceOption
WithWhitespaceChars sets the characters to be rendered in the whitespace.
func WithWhitespaceForeground ¶
func WithWhitespaceForeground(c TerminalColor) WhitespaceOption
WithWhitespaceForeground sets the color of the characters in the whitespace.