Varendo

Badge

Present a category/status with text as well as color.

FamilyfoundationLicenseApache-2.0
StandaloneAvailable

Use the web element directly without the semantic runtime.

Semantic bindingAvailable

A registered presentation adapter can bind this component to host-owned meaning and state.

Automatic adaptationNo standard recipe

The standard recipe resolver does not select this component automatically.

Import and live example

One status/category marker whose text carries the meaning.

Interactive preview requires JavaScript.

View the complete example source
import {registerAeliqoElements} from "@varendo/web";
import {
  AeliqoAvatarElement,
  AeliqoBadgeElement,
  AeliqoButtonElement,
  AeliqoGridElement,
  AeliqoHeadingElement,
  AeliqoIconButtonElement,
  AeliqoLinkElement,
  AeliqoScrollAreaElement,
  AeliqoSeparatorElement,
  AeliqoSplitPaneElement,
  AeliqoStackElement,
  AeliqoSurfaceElement,
  AeliqoTextElement,
} from "@varendo/web/foundation";



registerAeliqoElements();

const host = document.querySelector<HTMLElement>("#aeliqo-example") ?? (() => {
  const created = document.createElement("div");
  created.id = "aeliqo-example";
  (document.body ?? document.documentElement).append(created);
  return created;
})();

function createCatalogRoot(container: HTMLElement): HTMLElement {
  const root = document.createElement("div");
  root.dataset.catalogSourceRoot = "true";
  root.style.display = "grid";
  root.style.gap = "12px";
  container.append(root);
  return root;
}

function createCatalogElement<T extends HTMLElement>(tagName: string, container: HTMLElement): T {
  const element = document.createElement(tagName) as T;
  element.setAttribute("data-aeliqo-theme", "light");
  container.append(element);
  return element;
}

function appendSlottedText(root: HTMLElement, slot: string, textContent: string): void {
  const content = document.createElement("span");
  content.slot = slot;
  content.textContent = textContent;
  root.append(content);
}

const root = createCatalogRoot(host);
(((root) => {
		const element = createCatalogElement<AeliqoBadgeElement>("aeliqo-badge", root);
		element.text = "Ready";
		element.tone = "success";
	}))(root);

Purpose

A short status or category label with a supporting tone. The text carries the meaning; color only supports it.

When to use it

When to use a different component

Properties and defaults

Tone is supplemental; the visible text remains the source of meaning.

Properties, ownership, and initial values
PropertyUse and ownershipDeclared typeInitial value
textProvides trusted plain text content. The component never interprets it as HTML.string''
toneSelects a semantic visual tone such as neutral, informative, success, warning, or danger.AeliqoBadgeTone'neutral'

Events

States and failure handling

Relevant states:

Expected result: The marker communicates its text and optional visual tone.

Keyboard, focus, and accessibility

Keyboard behavior:

Exposed semantics:

Responsive behavior

Allow a row of badges to wrap when labels grow. Keep the status text visible; color alone does not carry its meaning.

Style hooks

Generated TypeScript declaration

View generated declaration
export declare class AeliqoBadgeElement extends AeliqoFoundationElement {
    static readonly properties: {
        text: {
            type: StringConstructor;
        };
        tone: {
            type: StringConstructor;
        };
    };
    text: string;
    tone: AeliqoBadgeTone;
    protected render(): import("lit").TemplateResult<1>;
    static readonly styles: import("lit").CSSResult[];
}

Version

This page documents the Varendo 0.6 component contract.