Creare una TUI in Go con PTerm
PTerm è una libreria per Go che ci consente di creare una TUI.
In questo articolo vediamo qualche esempio.
Intanto per usare la libreria:
go get github.com/pterm/pterm
Qui sotto qualche esempio di testo:
package main
import (
"github.com/pterm/pterm"
"github.com/pterm/pterm/putils"
)
func main() {
header := pterm.DefaultHeader.WithBackgroundStyle(pterm.NewStyle(pterm.BgRed))
pterm.DefaultCenter.Println(header.Sprint("TITOLO"))
pterm.DefaultBigText.WithLetters(putils.LettersFromString("TESTO GRANDE")).Render()
pterm.DefaultBasicText.Println("TESTO BASICO")
pterm.DefaultBasicText.Println(pterm.Green("TESTO BASICO VERDE"))
pterm.DefaultCenter.Println("TESTO CENTATO")
pterm.DefaultBulletList.WithItems([]pterm.BulletListItem{
{Level: 0, Text: "Blue", TextStyle: pterm.NewStyle(pterm.FgBlue), BulletStyle: pterm.NewStyle(pterm.FgRed)},
{Level: 1, Text: "Green", TextStyle: pterm.NewStyle(pterm.FgGreen), Bullet: "-", BulletStyle: pterm.NewStyle(pterm.FgLightWhite)},
{Level: 2, Text: "Cyan", TextStyle: pterm.NewStyle(pterm.FgCyan), Bullet: ">", BulletStyle: pterm.NewStyle(pterm.FgYellow)},
}).Render()
pterm.DefaultBox.
WithRightPadding(5).
WithLeftPadding(5).
WithTopPadding(1).
WithBottomPadding(1).
Println("QUETO È UN BOX")
}
Ci sono poi parecchi altri componenti; qui sotto un esempio di spinner:
package main
import (
"time"
"github.com/pterm/pterm"
)
func main() {
spinner, _ := pterm.DefaultSpinner.Start("Loading...")
time.Sleep(time.Second * 5)
spinner.Success()
}
Vi rimando alla docs per tutti gli altri componenti!
Enjoy!
go pterm tui
Commentami!