Skip to content

Quick reference — when to reach for which component

You already adopted some of the library. The risk is reaching for raw HTML the next time a need comes up that another Tkx* component already covers.

This page is the use-case index: skim by what you’re trying to build, not by component name. Each row is one line, one trigger phrase, one component — designed to be readable in under 60 seconds.

If you find yourself hand-rolling something that’s not here, that’s a real signal — open an issue at github.com/007krcs/tekivex-ui/issues and we’ll add a row (or a component).


You want to show…UseNotes
Inline success/error/warning/info banner with icon + dismissTkxAlert4 variants. Has title + children slots. Built-in icons. aria-live="polite".
Transient feedback after an action (“Saved”, “Copied”)TkxSnackbarAuto-dismiss timer, slide-in animation, anchor positioning.
Toast-style stacked notificationsTkxToastProvider + useToast()Imperative API. Queues, dedupes, respects reduced motion.
Empty-state placeholder (“No results”, “Nothing here yet”)TkxEmptyIcon + heading + description + optional CTA slot.
Full-page result screen (success / error / 404 / 403 / 500)TkxResultFor routing-level outcomes. Wraps content with a centered icon + heading.

Most common miss: writing a hand-rolled emerald <div> for a success banner instead of <TkxAlert variant="success">. That’s losing the sanitized title, the aria-live announce, and the dismiss button for zero gain.


You want to capture…Use
Text, with label + error + hintTkxInput
Numbers (currency, percent, integer, ranges)TkxNumberInput
Single choice from a small listTkxRadio
Single choice from a long listTkxSelect
Multiple choicesTkxCheckbox
Toggle on/offTkxToggle
Slider / rangeTkxSlider
DateTkxDatePicker
Time(use TkxDatePicker with showTime)
ColorTkxColorPicker
File (single or multi)TkxFileUpload — magic-byte verified
OTP / verification codeTkxOTP
Phone number with country pickerTkxPhoneInput
Search with suggestionsTkxAutocomplete
Hierarchical select (region → country → state)TkxCascader
@mention / # tag in textareaTkxMentions
Submit button with loading + disabled statesTkxButton
2 / 3 / N option segmented controlTkxSegmented
Move items between two listsTkxTransferList
Multi-step wizardTkxStepper
Build the whole form declarativelyTkxFormBuilder (docs page not published yet — see source)

For the validation layer (Zod / Valibot / React Hook Form), see tekivex-ui/headlessuseFormWithZod, useFormWithValibot, and createRHFBindings.


You want to render…Use
Simple table with sort/filter/paginateTkxDataGrid — also: column pinning, row grouping, cell editing, tree data
Pivot / cross-tabTkxPivotTable (docs page pending)
Spreadsheet-style editingTkxSpreadsheet (docs page pending)
Hierarchical tree of nodesTkxTreeView — or TkxDataGrid with childRowsKey
Org chartTkxOrgChart
Mind mapTkxMindMap (docs page pending)
Gantt chartTkxGantt (docs page pending)
Kanban boardTkxKanban (docs page pending)
Flowchart / node graphTkxFlowChart (docs page pending)
KPI tileTkxStatistic
Card grid for list itemsTkxCard
Avatar (image + initials fallback + presence dot)TkxAvatar
Status / category pillTkxBadge or TkxTag
Timeline of eventsTkxTimeline
Lazy image with skeleton + lightboxTkxImage

import { ... } from 'tekivex-ui/charts';
You want to show…Use
Line / area / bar / pie / donut / scatter / radarThe full Recharts-backed set
Inline trend strip (no axes)TkxSparkline — own-SVG, zero deps
Speedometer / arc gaugeTkxGauge — own-SVG
Matrix / cohort / correlation heatmapTkxHeatmap — own-SVG
Conversion funnel with drop-off %TkxFunnelChart — own-SVG
TreemapTkxTreemap — squarified, own-SVG

The 5 own-SVG primitives (Sparkline, Gauge, Heatmap, Funnel, Treemap) don’t need Recharts at all. They’re under 1 kB each gzip.


You want…Use
LLM conversation surface (user / assistant / system, string content)TkxChat
Peer-to-peer chat with media, reactions, threading, edit/delete, delivery states, typing indicatorTkxPeerChat (demo) — new in v3.19
One AI chat bubble in a custom layoutTkxAIChatBubble (experimental subpath)
Render a single agent turn (text + tool_use + tool_result)TkxAgentMessage from tekivex-ui/agent

Most common mistake: using TkxChat for peer-to-peer messaging. The 3-role enum (user | assistant | system) is from OpenAI’s Chat Completions API — it doesn’t model real people. Use TkxPeerChat for that.


You want…Use
Full app shell (header + sidebar + content + footer)TkxLayout
Sticky top navTkxAppBar
Mobile bottom tab barTkxBottomNav
TabsTkxTabs
BreadcrumbsTkxBreadcrumb
Dropdown menu (with submenus, separators, checks)TkxMenu
Single dropdown buttonTkxDropdown
Command palette (⌘K)TkxCommand or TkxCommandPalette (docs page pending)
Scroll-spy anchor listTkxAnchor
Sticky element on scrollTkxAffix
Pagination controlsTkxPagination
Action toolbarTkxToolbar
Floating action button with quick actionsTkxSpeedDial

You want…Use
Modal dialogTkxModal — focus trap, scroll lock, 4 sizes
Side sheetTkxDrawer — top/right/bottom/left
Hover tooltipTkxTooltip
Click popoverTkxPopover
Loading spinnerTkxSpin
Progress bar (linear or circular)TkxProgress
Loading skeleton placeholderTkxSkeleton
Guided product tourTkxTour

import { ... } from 'tekivex-ui/headless' — zero UI, just the engines:

You want to…Use
Strip XSS from a user-supplied stringsanitizeString(input)
Strip bidi/zero-width Trojan-Source chars from text inputsanitizeUnicode(input)
Safely parse JSON without prototype pollutionsanitizeJSON(input)
Verify a file’s real type by reading magic bytes (not Content-Type)sniffMimeType(arrayBuffer)
Redact PII before sending text to an LLM or logsscrubPII(text) — regex + Luhn-validated CC
Build a strict CSP policy in one linebuildTkxCSP({...})
Install a Trusted Types policyinstallTrustedTypes()
Append-only SHA-256 hash-chained audit logaudit() / verifyAuditIntegrity() / getAuditLog()
Detect iframe embeddingisFramed()
Per-token-bucket client-side rate limitcreateRateLimiter(n, intervalMs)
Check WCAG contrastcontrastRatio(fg, bg), meetsAA(fg, bg), meetsAAA(fg, bg)

These are the things that make consumer reviews say “wait, this just ships?”. They do.


import { TkxAadhaarInput, TkxKycInputs, ... } from 'tekivex-ui';

Aadhaar (with Verhoeff checksum), PAN, Voter ID, Driving License, INR currency formatting (lakh / crore), India Post PIN lookup, Tithi / Nakshatra / Hijri / Hebrew / Buddhist lunar calendars. Used by any product selling into India that doesn’t want to roll its own validators.


import { I18nProvider, useLocale } from 'tekivex-ui/i18n';

44 locales including RTL (ar-SA, he-IL, fa-IR). Tree-shakeable per-locale.

Also at tekivex-ui/i18n: getPluralCategory(locale, n) and pluralize(locale, n, forms) for CLDR plural rules.


You want…Install
Real WebGL 3D / 360° / WebXR / holographicnpm install tekivex-3d three
Browser-only PDF rendering (no Puppeteer)npm install tekivex-pdf
PDF templates (invoice, certificate, resume, etc.)npm install tekivex-templates
Standalone security kernel (framework-agnostic)npm install tekivex-security-core
Tokens for Figmanpm install tekivex-figma-kit

Three possibilities:

  1. The use case is real but no component exists yet. Open an issue. Your specific case might be on the roadmap, or it might be a real gap.
  2. The component exists but isn’t on this page. Open an issue, we’ll add the row. (See scripts/generate-component-mdx.mjs — keeping this page in sync is a known follow-up.)
  3. You can’t tell which of two components to use. Open an issue with the trade-off you’re weighing. The decision criteria belong on this page if they aren’t already.

The library has 116 production components and most consumers use 15-25 of them. The discoverability gap is real. This page is the first attempt to close it — feedback welcome.