Badges
Generated from front/ui/catalogue/examples/Badges.json
section · static (no JavaScript) · no children. All components: component playground.
Description for the model
Section titled “Description for the model”Rewards the learner earns (gamified courses).
Live example
Section titled “Live example”Rendered from the example props below with the real component. Theme: coffee · oncall · nightsky · gravity · poland · ulam · platform · open on its own
Example
Section titled “Example”{ "component": "Badges", "props": { "eyebrow": "Recognition", "title": "What you earn", "items": [ { "name": "Certificate", "text": "A signed PDF.", "icon": "medal" }, { "name": "Skill badge", "text": "Shareable and verifiable.", "icon": "star" } ] }}| Prop | Type | Required | Notes |
|---|---|---|---|
eyebrow |
string | Small label above the title. max length 80 | |
title |
string | Section title. max length 160 | |
intro |
string | One or two sentences under the title. max length 600 | |
items |
array of objects | yes | Badges. max 8 items |
items[].name |
string | yes | Badge. max length 60 |
items[].text |
string | How to earn it. max length 160 | |
items[].icon |
"check" | "arrow" | "play" | "clock" | "calendar" | "pin" | "users" | "mail" | "shield" | "star" | "moon" | "planet" | "telescope" | "rocket" | "medal" | "book" | "terminal" | "compass" | "sigma" | "pager" | "chart" | "print" | "lock" | "sync" | "quote" | "layers" | "server" | "puzzle" | "cart" | "code" | "sparkle" | "eye" | "chat" |
Icon from the catalogue’s icon set | |
id |
string | Anchor id for in-page links (letters, digits, dashes). max length 40 |
Text fallback
Section titled “Text fallback”What a text-only client, an unknown renderer or a plain-text channel shows for the example above.
What you earnCertificateSkill badgeInvalid props
Section titled “Invalid props”A node whose props fail the schema never breaks the page: the renderer shows the plain-text fallback instead (and logs the issues in development).
{ "items": 7}Issues:
/itemsexpected array, got integer
Rendered as:
Nothing: this component has no text of its own.
Accessibility
Section titled “Accessibility”axe-core: 20 rules passed, 0 violations, 0 need manual review. Run at build time on the server-rendered HTML in jsdom. Colour contrast and layout rules need a browser and are covered by the Playwright axe scans of the reference frontend.