Canvas Design System
Main Site Tokens

Badge

Small labels for metadata, categories, status indicators, and counts. Use badges to add contextual information to UI elements.

When to Use

Use Badge when: Showing metadata (duration, category), status indicators (success, pending), notification counts, or labels on cards and list items. Badges are non-interactive by default.
Don't use when: The label triggers an action — use a Button instead. For longer text or descriptions, use plain text or an Alert.

Variants

Default 45 min Ideation Team Building NEW 3
<?= ws_badge('Default') ?>
<?= ws_badge('45 min', ['variant' => 'duration', 'icon' => 'schedule']) ?>
<?= ws_badge('Ideation', ['variant' => 'category', 'color' => '#F59E0B']) ?>
<?= ws_badge('NEW', ['variant' => 'new']) ?>
<?= ws_badge('3', ['variant' => 'count']) ?>

Status Badges

Use the ws_status() convenience function for common status indicators.

Completed Pending Failed In Review
<?= ws_status('Completed', 'success') ?>
<?= ws_status('Pending', 'warning') ?>
<?= ws_status('Failed', 'error') ?>
<?= ws_status('In Review', 'info') ?>

Sizes

Small Medium Large
<?= ws_badge('Small', ['size' => 'sm']) ?>
<?= ws_badge('Medium', ['size' => 'md']) ?>
<?= ws_badge('Large', ['size' => 'lg']) ?>

Pill Shape

Rounded Ideation
<?= ws_badge('Rounded', ['pill' => true]) ?>

Convenience Functions

Shorthand helpers for the most common badge types.

45 min 2 hours Strategy Retrospective
<?= ws_duration('45 min') ?>
<?= ws_duration('2 hours') ?>
<?= ws_category('Strategy', '#3B82F6') ?>
<?= ws_category('Retrospective', '#EC4899') ?>

Parameters

ParameterTypeDefaultDescription
$textstringBadge label text (required)
variantstringdefaultdefault | duration | category | status | count | new
sizestringmdsm | md | lg
iconstringnullMaterial icon name
colorstringnullCustom colour for category badges (hex)
statusstringnullsuccess | warning | error | info (for status variant)
pillboolfalseFull border-radius pill shape
idstringnullElement ID
classstring''Additional CSS classes
attrsarray[]Extra HTML attributes

Anatomy

.ws-badge — Outer <span>
.ws-badge__icon — Optional leading icon
.ws-badge__text — Label text

CSS Classes

ClassPurpose
.ws-badgeBase badge styles
.ws-badge--defaultDefault variant
.ws-badge--durationDuration variant (clock icon)
.ws-badge--categoryCategory variant (custom colour)
.ws-badge--newNew label variant
.ws-badge--countCircular count badge
.ws-badge--sm / --md / --lgSize modifiers
.ws-badge--pillPill shape
.ws-badge--success / --warning / --error / --infoStatus colour variants

Files

FilePurpose
includes/components/helpers.phpws_badge(), ws_status(), ws_duration(), ws_category()
includes/components/badge.phpBadge template
includes/components/components.cssBadge CSS (.ws-badge rules)