Inference Logoinference.sh

Badge

A small label for status or metadata.

Preview

code
1[] [pending] [error]

Usage

go
1node := models.WidgetNode{2    Type:    models.WidgetNodeTypeBadge,3    Label:   "success",4    Variant: "secondary",5}

Props

NameTypeDescriptionDefault
type"badge"Node typerequired
labelstringBadge text contentrequired
variantstringVisual style variant"default"

Variants

VariantDescriptionUse Case
defaultPrimary/prominent styleActive items, current status
secondarySubdued styleCompleted items, secondary info
outlineBorder only, minimalPending items, neutral status
destructiveError/danger styleErrors, failed states

Examples

Status Indicators

go
1// Completed2{Type: models.WidgetNodeTypeBadge, Label: "✓", Variant: "secondary"}3 4// In Progress5{Type: models.WidgetNodeTypeBadge, Label: "●", Variant: "default"}6 7// Pending8{Type: models.WidgetNodeTypeBadge, Label: "○", Variant: "outline"}9 10// Failed11{Type: models.WidgetNodeTypeBadge, Label: "✗", Variant: "destructive"}

Text Labels

go
1{Type: models.WidgetNodeTypeBadge, Label: "new", Variant: "default"}2{Type: models.WidgetNodeTypeBadge, Label: "beta", Variant: "secondary"}3{Type: models.WidgetNodeTypeBadge, Label: "deprecated", Variant: "outline"}

With Text Content

Combine with text in a row:

go
1{2    Type: models.WidgetNodeTypeRow,3    Gap:  2,4    Children: []models.WidgetNode{5        {Type: models.WidgetNodeTypeBadge, Label: "✓", Variant: "secondary"},6        {Type: models.WidgetNodeTypeText, Value: "Task completed"},7    },8}

TypeScript

typescript
1const node: WidgetNode = {2  type: "badge",3  label: "new",4  variant: "default",5}

Best Practices

  1. Keep labels short - 1-2 characters for icons, 1-2 words for text
  2. Use semantic variants - Match variant to meaning (destructive for errors)
  3. Combine with Row - Place badges inline with text content
  4. Lowercase text - Badge labels are automatically lowercased in the UI

we use cookies

we use cookies to ensure you get the best experience on our website. for more information on how we use cookies, please see our cookie policy.

by clicking "accept", you agree to our use of cookies.
learn more.