CtrlK
BlogDocsLog inGet started
Tessl Logo

tpscloud/charmedimsure

Source-verified skills for the Charm terminal stack: Bubble Tea v2, Bubbles v2, Lip Gloss v2, Huh v2, Log v2, Glamour v2, plus the gum and vhs CLIs.

100

1.02x
Quality

100%

Does it follow best practices?

Impact

100%

1.02x

Average score across 9 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

trees-and-lists.mdskills/charmed-lipgloss/references/

Trees and lists

The tree and list subpackages of charm.land/lipgloss/v2 are renderers with swappable enumerators and styles.

See the tree and list example:

// examples/charmed-lipgloss/treelist/main.go
dim := lipgloss.NewStyle().Foreground(lipgloss.Color("240"))
item := lipgloss.NewStyle().Foreground(lipgloss.Color("212"))

t := tree.Root("project").
    Child(
        tree.Root("src").Child("main.go", "config.go"),
        tree.Root("docs").Child("guide.md"),
        "assets",
    ).
    Enumerator(tree.RoundedEnumerator).
    EnumeratorStyle(dim).
    ItemStyle(item)

l := list.New(
    "review the changes",
    "run local checks",
    list.New("format", "test", "build").Enumerator(list.Dash),   // nested list
    "review the output",
).Enumerator(list.Arabic)

checks := list.New("done", "done", "pending").
    Enumerator(func(items list.Items, i int) string {
        if items.At(i).Value() == "pending" {
            return "[ ] "
        }
        return "[x] "
    })

List enumerators: Alphabet, Arabic, Roman, Bullet, Dash, Asterisk. Tree enumerators: DefaultEnumerator, RoundedEnumerator.

Both take Indenter functions and *StyleFunc variants that receive the sibling collection and index, so you can style by position or content. Hide(true) on a node removes it and its children; Offset(start, end) trims siblings.

README.md

tile.json