+ `,
+})
+export class IconBadgeDisabledDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.ts
new file mode 100644
index 000000000..cac5f7a69
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.ts
@@ -0,0 +1,36 @@
+import {Component} from "@angular/core"
+import {Star} from "lucide-angular"
+
+import {IconBadgeDirective} from "@qualcomm-ui/angular/badge"
+import {provideIcons} from "@qualcomm-ui/angular-core/lucide"
+
+@Component({
+ imports: [IconBadgeDirective],
+ providers: [provideIcons({Star})],
+ selector: "icon-badge-emphasis-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class IconBadgeEmphasisDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.ts
new file mode 100644
index 000000000..935257aa0
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.ts
@@ -0,0 +1,24 @@
+import {Component} from "@angular/core"
+import {Star} from "lucide-angular"
+
+import {IconBadgeDirective} from "@qualcomm-ui/angular/badge"
+import {provideIcons} from "@qualcomm-ui/angular-core/lucide"
+
+@Component({
+ imports: [IconBadgeDirective],
+ providers: [provideIcons({Star})],
+ selector: "icon-badge-icon-demo",
+ template: `
+
+
+
+
+
+
+
+
+ `,
+})
+export class IconBadgeIconDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.ts
new file mode 100644
index 000000000..716019778
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.ts
@@ -0,0 +1,24 @@
+import {Component} from "@angular/core"
+import {Star} from "lucide-angular"
+
+import {IconBadgeDirective} from "@qualcomm-ui/angular/badge"
+import {provideIcons} from "@qualcomm-ui/angular-core/lucide"
+
+@Component({
+ imports: [IconBadgeDirective],
+ providers: [provideIcons({Star})],
+ selector: "icon-badge-size-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class IconBadgeSizeDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.ts
new file mode 100644
index 000000000..651c48073
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.ts
@@ -0,0 +1,76 @@
+import {Component} from "@angular/core"
+import {Star} from "lucide-angular"
+
+import {IconBadgeDirective} from "@qualcomm-ui/angular/badge"
+import {provideIcons} from "@qualcomm-ui/angular-core/lucide"
+
+@Component({
+ imports: [IconBadgeDirective],
+ providers: [provideIcons({Star})],
+ selector: "icon-badge-variant-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class IconBadgeVariantDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx
new file mode 100644
index 000000000..a0923fe3c
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx
@@ -0,0 +1,57 @@
+---
+title: Number Badge
+---
+
+import {QdsDemo} from "~components/demo"
+import {
+ TypeDocProps,
+ TypeDocAngularAttributes,
+} from "@qualcomm-ui/react-mdx/typedoc"
+
+# {frontmatter.title}
+
+Display numeric values in compact, color-coded containers. Use number badges to show counts, notifications, or other numerical indicators.
+
+```typescript
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+```
+
+## Examples
+
+### Value
+
+Use the [value](./#value-1) input for auto formatting, or use content projection for manual content.
+
+
+
+### Max (Auto Formatting)
+
+When using the [value](./#value-1) input with [max](./#max), overflow values are automatically formatted. If value exceeds max, the badge displays "max+" and applies special styling. The default max is 99.
+
+
+
+### Variant
+
+Multiple color and style options are available via the [variant](./#variant-1) input: `neutral` (default), `neutral-outline`, `brand`, `brand-outline`, `info`, `success`, `warning`, `danger`, `persistent-black` and `persistent-white`.
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) input. Three sizes are available: `sm`, `md` (default), and `lg`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) input to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### q-number-badge
+
+
+
+
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.ts
new file mode 100644
index 000000000..e72e3098e
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.ts
@@ -0,0 +1,17 @@
+import {Component} from "@angular/core"
+
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [NumberBadgeDirective],
+ selector: "number-badge-disabled-demo",
+ template: `
+
+
+
+
+
+
+ `,
+})
+export class NumberBadgeDisabledDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.ts
new file mode 100644
index 000000000..dc9588d19
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.ts
@@ -0,0 +1,19 @@
+import {Component} from "@angular/core"
+
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [NumberBadgeDirective],
+ selector: "number-badge-max-demo",
+ template: `
+
+
+
+
+
+
+
+
+ `,
+})
+export class NumberBadgeMaxDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.ts
new file mode 100644
index 000000000..680d410b7
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.ts
@@ -0,0 +1,18 @@
+import {Component} from "@angular/core"
+
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [NumberBadgeDirective],
+ selector: "number-badge-size-demo",
+ template: `
+
+
+
+
+
+
+
+ `,
+})
+export class NumberBadgeSizeDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.ts
new file mode 100644
index 000000000..690f70ab2
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.ts
@@ -0,0 +1,18 @@
+import {Component} from "@angular/core"
+
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [NumberBadgeDirective],
+ selector: "number-badge-value-demo",
+ template: `
+
+
+ 42
+
+
+
+
+ `,
+})
+export class NumberBadgeValueDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-variant-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-variant-demo.ts
new file mode 100644
index 000000000..7bda87b61
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-variant-demo.ts
@@ -0,0 +1,25 @@
+import {Component} from "@angular/core"
+
+import {NumberBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [NumberBadgeDirective],
+ selector: "number-badge-variant-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class NumberBadgeVariantDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx
new file mode 100644
index 000000000..3daa8deb8
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx
@@ -0,0 +1,51 @@
+---
+title: Status Badge
+---
+
+import {QdsDemo} from "~components/demo"
+import {
+ TypeDocProps,
+ TypeDocAngularAttributes,
+} from "@qualcomm-ui/react-mdx/typedoc"
+
+# {frontmatter.title}
+
+Display colored dot indicators to communicate status or availability. Use status badges to show online/offline states, connection status, or other binary conditions.
+
+```typescript
+import {StatusBadgeDirective} from "@qualcomm-ui/angular/badge"
+```
+
+## Examples
+
+### Emphasis
+
+Use the [emphasis](./#emphasis-1) input to convey semantic meaning with colors.
+
+
+
+### Variant
+
+The [variant](./#variant-1) input controls the aspect of the badge. Two variants are available: `filled` (default) and `outlined`.
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) input. Five sizes are available: `xs`, `sm`, `md` (default), `lg`, and `xl`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) input to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### q-status-badge
+
+
+
+
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.ts
new file mode 100644
index 000000000..a9635c7d2
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.ts
@@ -0,0 +1,17 @@
+import {Component} from "@angular/core"
+
+import {StatusBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [StatusBadgeDirective],
+ selector: "status-badge-disabled-demo",
+ template: `
+
+
+
+
+
+
+ `,
+})
+export class StatusBadgeDisabledDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.ts
new file mode 100644
index 000000000..c5d6e04a6
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.ts
@@ -0,0 +1,21 @@
+import {Component} from "@angular/core"
+
+import {StatusBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [StatusBadgeDirective],
+ selector: "status-badge-emphasis-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class StatusBadgeEmphasisDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.ts
new file mode 100644
index 000000000..81ff7a21e
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.ts
@@ -0,0 +1,20 @@
+import {Component} from "@angular/core"
+
+import {StatusBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [StatusBadgeDirective],
+ selector: "status-badge-size-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class StatusBadgeSizeDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.ts
new file mode 100644
index 000000000..72bc771af
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.ts
@@ -0,0 +1,21 @@
+import {Component} from "@angular/core"
+
+import {StatusBadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [StatusBadgeDirective],
+ selector: "status-badge-variant-demo",
+ template: `
+
+
+
+
+
+
+
+
+
+
+ `,
+})
+export class StatusBadgeVariantDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx
new file mode 100644
index 000000000..9a7472542
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx
@@ -0,0 +1,51 @@
+---
+title: Text Badge
+---
+
+import {QdsDemo} from "~components/demo"
+import {
+ TypeDocProps,
+ TypeDocAngularAttributes,
+} from "@qualcomm-ui/react-mdx/typedoc"
+
+# {frontmatter.title}
+
+Display text labels in compact, color-coded containers. Use text badges to categorize content, show status, or highlight information with concise labels.
+
+```typescript
+import {BadgeDirective} from "@qualcomm-ui/angular/badge"
+```
+
+## Examples
+
+### Emphasis
+
+Use the [emphasis](./#emphasis-1) input to convey semantic meaning or categorize content.
+
+
+
+### Variant
+
+The [variant](./#variant-1) input controls the aspect of the badge. Two variants are available: `default` (bolder appearance) and `subtle` (muted appearance).
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) input. Three sizes are available: `sm`, `md` (default), and `lg`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) input to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### q-badge
+
+
+
+
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.ts
new file mode 100644
index 000000000..1f31fcaae
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.ts
@@ -0,0 +1,17 @@
+import {Component} from "@angular/core"
+
+import {BadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [BadgeDirective],
+ selector: "text-badge-disabled-demo",
+ template: `
+
+
+ Enabled
+ Disabled
+
+
+ `,
+})
+export class TextBadgeDisabledDemo {}
diff --git a/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-emphasis-demo.ts b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-emphasis-demo.ts
new file mode 100644
index 000000000..8b5be0654
--- /dev/null
+++ b/packages/docs/angular-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-emphasis-demo.ts
@@ -0,0 +1,33 @@
+import {Component} from "@angular/core"
+
+import {BadgeDirective} from "@qualcomm-ui/angular/badge"
+
+@Component({
+ imports: [BadgeDirective],
+ selector: "text-badge-emphasis-demo",
+ template: `
+
+ blue
+ cyan
+ green
+ kiwi
+ magenta
+ orange
+ purple
+ red
+ teal
+ yellow
+
+
+ `,
+})
+export class TextBadgeVariantDemo {}
diff --git a/packages/docs/react-docs/package.json b/packages/docs/react-docs/package.json
index 5121d3e05..0745a5508 100644
--- a/packages/docs/react-docs/package.json
+++ b/packages/docs/react-docs/package.json
@@ -11,7 +11,8 @@
"build:site": "react-router build --mode production",
"build:typedoc": "qui-typedoc build",
"watch:typedoc": "qui-typedoc watch",
- "dev": "run-p dev:app typecheck",
+ "clean": "shx rm -rf .react-router",
+ "dev": "pnpm clean && run-p dev:app typecheck",
"dev:app": "vite -c vite.config.ts",
"lint": "eslint --quiet",
"start": "cross-env NODE_ENV=production react-router-serve ./build/server/index.js",
diff --git a/packages/docs/react-docs/qui-docs.config.ts b/packages/docs/react-docs/qui-docs.config.ts
index b165e570e..d0e3d99cc 100644
--- a/packages/docs/react-docs/qui-docs.config.ts
+++ b/packages/docs/react-docs/qui-docs.config.ts
@@ -57,6 +57,11 @@ export default {
{
id: "all-components",
},
+ {
+ group: "Data Display",
+ id: "badges",
+ ignoreRouteMetaOrder: true,
+ },
],
expanded: true,
groupOrder: [
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/_icon-badge.mdx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/_icon-badge.mdx
new file mode 100644
index 000000000..7fc731fd7
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/_icon-badge.mdx
@@ -0,0 +1,54 @@
+---
+title: Icon Badge
+---
+
+import {TypeDocAttributes, TypeDocProps} from "@qualcomm-ui/react-mdx/typedoc"
+import {Demo} from "~components/demo"
+import * as demos from "./demos"
+
+# {frontmatter.title}
+
+Display icons within compact, color-coded containers. Use icon badges to represent actions, status, or categories with visual symbols instead of text.
+
+```typescript
+import {IconBadge} from "@qualcomm-ui/react/badge"
+```
+
+## Examples
+
+### Icon
+
+Use the [icon](./#icon-1) prop to provide a Lucide icon, or use [children](./#children) for custom SVG content.
+
+
+
+### Emphasis
+
+Use the [emphasis](./#emphasis-1) prop to convey semantic meaning or categorize content.
+
+
+
+### Variant
+
+The [variant](./#variant-1) prop controls the aspect of the badge. Two variants are available: `default` (bolder appearance) and `subtle` (muted appearance).
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) prop. Six sizes are available: `xxs`, `xs`, `sm`, `md` (default), `lg`, and `xl`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) prop to visually indicate that the badge is inactive.
+
+
+## API
+
+### \
+
+
+
+
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-disabled-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-disabled-demo.tsx
new file mode 100644
index 000000000..b65e764ce
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-disabled-demo.tsx
@@ -0,0 +1,16 @@
+import type {ReactElement} from "react"
+
+import {Star} from "lucide-react"
+
+import {IconBadge} from "@qualcomm-ui/react/badge"
+
+export function IconBadgeDisabledDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.tsx
new file mode 100644
index 000000000..61e2ef674
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-emphasis-demo.tsx
@@ -0,0 +1,32 @@
+import type {ReactElement} from "react"
+
+import {Star} from "lucide-react"
+
+import {IconBadge} from "@qualcomm-ui/react/badge"
+
+export function IconBadgeEmphasisDemo(): ReactElement {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.tsx
new file mode 100644
index 000000000..dc51f3402
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-icon-demo.tsx
@@ -0,0 +1,20 @@
+import type {ReactElement} from "react"
+
+import {Star} from "lucide-react"
+
+import {IconBadge} from "@qualcomm-ui/react/badge"
+
+export function IconBadgeIconDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.tsx
new file mode 100644
index 000000000..ed586b9a5
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-size-demo.tsx
@@ -0,0 +1,20 @@
+import type {ReactElement} from "react"
+
+import {Star} from "lucide-react"
+
+import {IconBadge} from "@qualcomm-ui/react/badge"
+
+export function IconBadgeSizeDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.tsx
new file mode 100644
index 000000000..bd9031fa9
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/icon-badge-variant-demo.tsx
@@ -0,0 +1,32 @@
+import type {ReactElement} from "react"
+
+import {Star} from "lucide-react"
+
+import {IconBadge} from "@qualcomm-ui/react/badge"
+
+export function IconBadgeVariantDemo(): ReactElement {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/index.ts b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/index.ts
new file mode 100644
index 000000000..00af16584
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/icon-badge+/demos/index.ts
@@ -0,0 +1,5 @@
+export * from "./icon-badge-disabled-demo"
+export * from "./icon-badge-emphasis-demo"
+export * from "./icon-badge-icon-demo"
+export * from "./icon-badge-size-demo"
+export * from "./icon-badge-variant-demo"
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx
new file mode 100644
index 000000000..22b8b77bd
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/_number-badge.mdx
@@ -0,0 +1,61 @@
+---
+title: Number Badge
+---
+
+import {TypeDocAttributes, TypeDocProps} from "@qualcomm-ui/react-mdx/typedoc"
+import {Demo} from "~components/demo"
+import * as demos from "./demos"
+
+# {frontmatter.title}
+
+Display numeric values in compact, color-coded containers. Use number badges to show counts, notifications, or other numerical indicators.
+
+```typescript
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+```
+
+## Examples
+
+### Value
+
+Use the [value](./#value-1) prop for auto formatting, or use [children](./#children) for manual content.
+
+
+
+### Max (Auto Formatting)
+
+When using the [value](./#value-1) prop with [max](./#max), overflow values are automatically formatted. If value exceeds max, the badge displays "max+" and applies special styling. The default max is 99.
+
+
+
+### Emphasis
+
+Multiple color and style options are available via the [emphasis](./#emphasis-1) prop: `neutral` (default), `neutral-outline`, `brand`, `brand-outline`, `info`, `success`, `warning`, `danger`, `persistent-black` and `persistent-white`.
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) prop. Three sizes are available: `sm`, `md` (default), and `lg`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) prop to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### \
+
+
+
+
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/index.ts b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/index.ts
new file mode 100644
index 000000000..5f0eaf639
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/index.ts
@@ -0,0 +1,5 @@
+export * from "./number-badge-disabled-demo"
+export * from "./number-badge-emphasis-demo"
+export * from "./number-badge-max-demo"
+export * from "./number-badge-size-demo"
+export * from "./number-badge-value-demo"
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.tsx
new file mode 100644
index 000000000..e8a3a361c
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-disabled-demo.tsx
@@ -0,0 +1,14 @@
+import type {ReactElement} from "react"
+
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+
+export function NumberBadgeDisabledDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-emphasis-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-emphasis-demo.tsx
new file mode 100644
index 000000000..10e4a3156
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-emphasis-demo.tsx
@@ -0,0 +1,22 @@
+import type {ReactElement} from "react"
+
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+
+export function NumberBadgeEmphasisDemo(): ReactElement {
+ return (
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.tsx
new file mode 100644
index 000000000..be9d81694
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-max-demo.tsx
@@ -0,0 +1,16 @@
+import type {ReactElement} from "react"
+
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+
+export function NumberBadgeMaxDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.tsx
new file mode 100644
index 000000000..cdf6c398c
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-size-demo.tsx
@@ -0,0 +1,15 @@
+import type {ReactElement} from "react"
+
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+
+export function NumberBadgeSizeDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.tsx
new file mode 100644
index 000000000..fcb9b9333
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/number-badge+/demos/number-badge-value-demo.tsx
@@ -0,0 +1,15 @@
+import type {ReactElement} from "react"
+
+import {NumberBadge} from "@qualcomm-ui/react/badge"
+
+export function NumberBadgeValueDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+ 42
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx
new file mode 100644
index 000000000..4d39cadf6
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/_status-badge.mdx
@@ -0,0 +1,55 @@
+---
+title: Status Badge
+---
+
+import {TypeDocAttributes, TypeDocProps} from "@qualcomm-ui/react-mdx/typedoc"
+import {Demo} from "~components/demo"
+import * as demos from "./demos"
+
+# {frontmatter.title}
+
+Display colored dot indicators to communicate status or availability. Use status badges to show online/offline states, connection status, or other binary conditions.
+
+```typescript
+import {StatusBadge} from "@qualcomm-ui/react/badge"
+```
+
+## Examples
+
+### Emphasis
+
+Use the [emphasis](./#emphasis-1) prop to convey semantic meaning with colors.
+
+
+
+### Variant
+
+The [variant](./#variant-1) prop controls the aspect of the badge. Two variants are available: `filled` (default) and `outlined`.
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) prop. Five sizes are available: `xs`, `sm`, `md` (default), `lg`, and `xl`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) prop to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### \
+
+
+
+
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/index.ts b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/index.ts
new file mode 100644
index 000000000..2e6e93f8f
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/index.ts
@@ -0,0 +1,4 @@
+export * from "./status-badge-disabled-demo"
+export * from "./status-badge-emphasis-demo"
+export * from "./status-badge-size-demo"
+export * from "./status-badge-variant-demo"
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.tsx
new file mode 100644
index 000000000..04947a793
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-disabled-demo.tsx
@@ -0,0 +1,14 @@
+import type {ReactElement} from "react"
+
+import {StatusBadge} from "@qualcomm-ui/react/badge"
+
+export function StatusBadgeDisabledDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.tsx
new file mode 100644
index 000000000..72c1f8572
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-emphasis-demo.tsx
@@ -0,0 +1,18 @@
+import type {ReactElement} from "react"
+
+import {StatusBadge} from "@qualcomm-ui/react/badge"
+
+export function StatusBadgeEmphasisDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.tsx
new file mode 100644
index 000000000..39831fd72
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-size-demo.tsx
@@ -0,0 +1,17 @@
+import type {ReactElement} from "react"
+
+import {StatusBadge} from "@qualcomm-ui/react/badge"
+
+export function StatusBadgeSizeDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.tsx
new file mode 100644
index 000000000..ec3e6ee80
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/status-badge+/demos/status-badge-variant-demo.tsx
@@ -0,0 +1,18 @@
+import type {ReactElement} from "react"
+
+import {StatusBadge} from "@qualcomm-ui/react/badge"
+
+export function StatusBadgeVariantDemo(): ReactElement {
+ return (
+
+ {/* preview */}
+
+
+
+
+
+
+ {/* preview */}
+
+ )
+}
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx
new file mode 100644
index 000000000..be9f774cd
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/_text-badge.mdx
@@ -0,0 +1,49 @@
+---
+title: Text Badge
+---
+
+import {TypeDocAttributes, TypeDocProps} from "@qualcomm-ui/react-mdx/typedoc"
+import {Demo} from "~components/demo"
+import * as demos from "./demos"
+
+# {frontmatter.title}
+
+Display text labels in compact, color-coded containers. Use text badges to categorize content, show status, or highlight information with concise labels.
+
+```typescript
+import {Badge} from "@qualcomm-ui/react/badge"
+```
+
+## Examples
+
+### Emphasis
+
+Use the [emphasis](./#emphasis-1) prop to convey semantic meaning or categorize content.
+
+
+
+### Variant
+
+The [variant](./#variant-1) prop controls the aspect of the badge. Two variants are available: `default` (bolder appearance) and `subtle` (muted appearance).
+
+
+
+### Size
+
+Control dimensions using the [size](./#size-1) prop. Three sizes are available: `sm`, `md` (default), and `lg`.
+
+
+
+### Disabled
+
+Set the [disabled](./#disabled-1) prop to visually indicate that the badge is inactive.
+
+
+
+## API
+
+### \
+
+
+
+
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/index.ts b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/index.ts
new file mode 100644
index 000000000..e8625d17c
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/index.ts
@@ -0,0 +1,4 @@
+export * from "./text-badge-disabled-demo"
+export * from "./text-badge-emphasis-demo"
+export * from "./text-badge-size-demo"
+export * from "./text-badge-variant-demo"
diff --git a/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.tsx b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.tsx
new file mode 100644
index 000000000..7b196dfb3
--- /dev/null
+++ b/packages/docs/react-docs/src/routes/components+/badges+/text-badge+/demos/text-badge-disabled-demo.tsx
@@ -0,0 +1,16 @@
+import type {ReactElement} from "react"
+
+import {Badge} from "@qualcomm-ui/react/badge"
+
+export function TextBadgeDisabledDemo(): ReactElement {
+ return (
+