package utils import ( "fmt" "strings" ) // Цвета для терминала const ( ColorReset = "\033[0m" ColorBold = "\033[1m" ColorDim = "\033[2m" ColorCyan = "\033[36m" ColorGreen = "\033[32m" ColorYellow = "\033[33m" ColorBlue = "\033[34m" ColorMagenta = "\033[35m" ColorRed = "\033[31m" ColorWhite = "\033[97m" BgBlue = "\033[44m" BgGray = "\033[100m" ) func Header(title string) { width := 60 line := strings.Repeat("─", width) padding := (width - len([]rune(title))) / 2 padStr := strings.Repeat(" ", padding) fmt.Printf("\n%s%s┌%s┐%s\n", ColorBold, ColorCyan, line, ColorReset) fmt.Printf("%s%s│%s%s%s%s%s│%s\n", ColorBold, ColorCyan, ColorReset, ColorBold, ColorWhite, padStr+title, ColorReset+ColorBold+ColorCyan, ColorReset) fmt.Printf("%s%s└%s┘%s\n\n", ColorBold, ColorCyan, line, ColorReset) } func Section(title string) { fmt.Printf("\n%s%s▶ %s%s\n", ColorBold, ColorYellow, title, ColorReset) fmt.Printf("%s%s%s\n", ColorDim, strings.Repeat("─", 50), ColorReset) } func Code(code string) { lines := strings.Split(strings.TrimSpace(code), "\n") fmt.Printf("%s%s ┌─ код ────────────────────────────────────%s\n", ColorDim, ColorBold, ColorReset) for _, line := range lines { fmt.Printf("%s%s │%s %s%s%s\n", ColorDim, ColorBold, ColorReset, ColorGreen, line, ColorReset) } fmt.Printf("%s%s └───────────────────────────────────────────%s\n", ColorDim, ColorBold, ColorReset) } func Command(cmd, description string) { fmt.Printf(" %s%-40s%s %s%s%s\n", ColorCyan+ColorBold, cmd, ColorReset, ColorDim, description, ColorReset) } func Note(text string) { fmt.Printf("\n %s%s💡 %s%s\n", ColorBold, ColorYellow, text, ColorReset) } func Info(label, value string) { fmt.Printf(" %s%s%-20s%s %s\n", ColorBold, ColorMagenta, label+":", ColorReset, value) } func Println(text string) { fmt.Printf(" %s\n", text) } func Separator() { fmt.Printf("\n%s%s%s\n\n", ColorDim, strings.Repeat("═", 60), ColorReset) } func Footer() { fmt.Printf("\n%s%s%s%s\n\n", ColorDim, ColorCyan, strings.Repeat("─", 60), ColorReset) }