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