Files
fn_registry/functions/tui/apply_gradient.md
T
egutierrez ebba1e4e02 feat: add Go TUI rendering and terminal helper functions
7 funciones Go del dominio tui: apply_gradient (gradiente de color en texto),
draw_box y draw_separator (renderizado de cajas y separadores con box_chars),
load_ascii_art (carga de arte ASCII desde archivos), normalize_terminal_output
y strip_ansi (limpieza de salida de terminal), read_dir_autocomplete
(autocompletado de rutas de directorio). Incluye box_chars.go como helper
de caracteres Unicode para bordes.
2026-04-12 13:54:54 +02:00

1.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path, source_repo, source_license, source_file
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path source_repo source_license source_file
apply_gradient function go tui 1.0.0 pure func ApplyGradient(lines []string, colors []lipgloss.Color) string Aplica un degradado de colores linea por linea a texto ASCII art usando lipgloss. Distribuye los colores de la paleta proporcionalmente entre las lineas.
tui
ascii
gradient
color
lipgloss
art
header
false
strings
github.com/charmbracelet/lipgloss
name desc
lines lineas de ASCII art a colorear
name desc
colors paleta de colores lipgloss; nil usa DefaultGradientColors (purple->blue->cyan->red)
string con las lineas coloreadas concatenadas con newlines false
functions/tui/apply_gradient.go https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/egutierrez/DevLauncher.git MIT launcher/core/gradient.go

Ejemplo

lines := []string{
    "  ██████╗ ███████╗",
    "  ██╔══██╗██╔════╝",
    "  ██║  ██║█████╗  ",
}
// Con paleta por defecto
fmt.Print(tui.ApplyGradient(lines, nil))

// Con paleta custom
palette := []lipgloss.Color{
    lipgloss.Color("#ff0000"),
    lipgloss.Color("#00ff00"),
    lipgloss.Color("#0000ff"),
}
fmt.Print(tui.ApplyGradient(lines, palette))

Notas

Cada linea recibe un color de la paleta distribuido proporcionalmente: colorIndex = (i * len(colors)) / totalLines. Para ASCII art con pocas lineas, usar una paleta corta. Para muchas lineas, una paleta larga da transiciones mas suaves.

DefaultGradientColors es una variable publica con 8 colores (purple->blue->cyan->red) que se puede reasignar si se desea cambiar el default global.