Components/Concepts Overview

Concepts Overview

What Tuffex is, the three concept blocks behind it, and the full component index

VerifiedSince 0.3.9

Concepts Overview

Tuffex Components

Tuffex (@talex-touch/tuffex) is the Vue 3 component family powering the Talex Touch ecosystem: one set of components serves the desktop CoreBox, plugin surfaces, and this docs site itself. Components are split into suites — Basics carries the everyday interface body, Pro carries rich interaction and visual expression, AI carries AI-native interfaces, and Data carries visualization plus the standalone charts package. The suite switcher at the top of the sidebar adds Concepts as a fifth, documentation-only tab alongside these four component suites, and picking a tab takes you straight to that suite's overview.

  • Live specimens: every suite page opens with a preview grid — Basics, Pro, AI, Data — where each cell is a real, interactive component; click its name to open the docs.
  • Per-suite imports: the @talex-touch/tuffex/base, /pro and /ai entries load on demand; the chart family ships as the standalone @talex-touch/tuffex-charts package.

Installation

Three import shapes — per component, per suite barrel, or the root entry — plus the stylesheet each one needs. Start at Installation.

Design Foundations

The bottom layer of every component's visual is a set of --tx-* design tokens: the font stack with its size/weight scale, and color semantics for both light and dark themes (primary, success/warning/danger, layered text and fill). Components never define their own visuals — they consume this layer, so re-theming means changing tokens, and app-side customization should land on the same layer. The full inventory lives in Design Foundations.

Theming

Where Foundations lists the tokens, Theming is how you override them: global tokens, the dark and high-contrast selectors, the AI suite's own --tx-bui-* layer, and the ~300 per-component hooks that retheme one component or one subtree.

Icons

TxIcon decides what an icon string is rather than making the caller declare it — an Iconify class, one of seven builtin glyphs, an emoji, or an explicit URL / file source. Icons covers that resolution order and how an app teaches the component to load icons from its own storage.

Accessibility

Focus rings on :focus-visible, prefers-reduced-motion handling, the high-contrast palette, and the ARIA conventions the components share — along with a plain account of where coverage stops. See Accessibility.

Utils

Public helper functions that ship alongside the components, exported from the root entry and the ./utils subpath: nextZIndex for unified overlay stacking, toast notifications, dialog orchestration, environment guards (hasWindow and friends), haptics and animation helpers. The components themselves go through this same layer, so reusing it keeps app behavior consistent. The full API lives in Utils.

Composed Workspace Demo

This demo validates component composition in a realistic admin slice: search input, switch, button, status badges, progress, and selectable table work together in one responsive panel.

Release workspace

A practical baseline for Dashboard / Admin component composition.

Loading demo...

Tutorial Path

  • Start with Composing Tuffex interfaces to learn the “actions → status → data” page structure.
  • Start dashboard headers from the “Operations status panel” pattern, then expand into tables, trend charts, navigation settings, and detail drawers.
  • For list pages, keep keyword search, scope filtering, and no-match recovery in one path with TxSearchInput, TxSearchSelect, and TxSearchEmpty.
  • For data lists, use TxDataTable for the main body, TxPagination for navigation, and TxSkeleton / TxLayoutSkeleton for waiting states.
  • For settings pages and admin shells, use TxTabs for fixed sections, TxDropdownMenu / TxPopover for lightweight actions and short notes, and TxDrawer for dense configuration.
  • Data regions must design loading, empty, and error recovery paths together; prefer TxLoadingState, TxEmptyState, and TxErrorState.
  • Task feedback paths should mount TxToastHost for notifications, use TxTooltip for action hints, TxLoadingOverlay for local blocking refreshes, and TxSpinner for inline waiting.
  • Permission orchestration paths should use TxTree for scope, TxTreeSelect for owner team, TxTransfer for resource grants, and TxTimeline for audit progress.
  • Release configuration paths should use TxCascader for release scope, TxFlatSelect for package and rollout choices, TxSegmentedSlider for risk tiers, TxSlider for traffic ramps, and TxTagInput for short metadata.
  • Use the grouped component list below for detail pages; the sidebar only highlights migration states that still need attention, while reviewed pages are marked as Verified in the sync dashboard.
  • Dashboard pages should compose TxDataTable, TxStatusBadge, TxProgressBar, and chart components instead of hand-writing one-off SVG/status UI.

Migration Dashboard

  • In progress: this page is still being edited; demos/API may change.
  • AI migrated: migration is complete, but source-code verification is recommended.
  • Reviewed: manually reviewed.
ComponentSync Status
Accessibility— Not migrated
Agents— Not migrated
AgentTrace— Not migrated
AI Elements— Not migrated
AI Suite— Not migrated
Alert— Not migrated
AllocationBar— Not migrated
ApprovalCard— Not migrated
Attachment Tray— Not migrated
AutoSizer— Not migrated
Avatar— Not migrated
Avatar Variants— Not migrated
Badge— Not migrated
BaseAnchor— Not migrated
BaseSurface— Not migrated
Basics Suite— Not migrated
BlankSlate— Not migrated
BorderBeam— Not migrated
Breadcrumb— Not migrated
Button— Not migrated
Card— Not migrated
CardItem— Not migrated
Cascader— Not migrated
CellLink— Not migrated
Chain of Thought— Not migrated
Chart Colors— Not migrated
Charts— Not migrated
Chat— Not migrated
ChatComposer— Not migrated
Checkbox— Not migrated
CodeEditor— Not migrated
CodeStream— Not migrated
Collapse— Not migrated
CommandPalette— Not migrated
Container— Not migrated
Context Indicator— Not migrated
ContextCards— Not migrated
ContextMenu— Not migrated
Conversation Stream— Not migrated
CornerOverlay— Not migrated
Custom Chart— Not migrated
Data Suite— Not migrated
DataTable— Not migrated
DatePicker— Not migrated
Design Foundations— Not migrated
Dialog— Not migrated
DiffTable— Not migrated
Divider— Not migrated
DotIndicator— Not migrated
Drawer— Not migrated
DropdownMenu— Not migrated
EdgeFadeMask— Not migrated
Empty— Not migrated
EmptyState— Not migrated
ErrorState— Not migrated
FileUploader— Not migrated
FilterChips— Not migrated
FineTuneCard— Not migrated
FlatDropdown— Not migrated
FlatInput— Not migrated
FlatRadio— Not migrated
FlatSelect— Not migrated
Flex— Not migrated
FlipOverlay— Not migrated
Floating— Not migrated
Form— Not migrated
Fusion— Not migrated
GlassSurface— Not migrated
GlowText— Not migrated
GradientBorder— Not migrated
GradualBlur— Not migrated
Grid— Not migrated
GridLayout— Not migrated
GroupBlock— Not migrated
GuideState— Not migrated
Icon— Not migrated
IconChip— Not migrated
Icons— Not migrated
ImageGallery— Not migrated
ImageUploader— Not migrated
InlineCitation— Not migrated
Input— Not migrated
InsightCards— Not migrated
Installation— Not migrated
Kbd— Not migrated
KeyframeStrokeText— Not migrated
LayoutSkeleton— Not migrated
Liquid— Not migrated
LoadingOverlay— Not migrated
LoadingState— Not migrated
Maps— Not migrated
MarkdownEditor— Not migrated
MarkdownView Markdown— Not migrated
Message Actions— Not migrated
Modal— Not migrated
NavBar— Not migrated
NoData— Not migrated
NoSelection— Not migrated
NumberInput— Not migrated
OfflineState— Not migrated
OutlineBorder— Not migrated
Pagination— Not migrated
PermissionState— Not migrated
Picker— Not migrated
Popover— Not migrated
Pro Suite— Not migrated
Progress— Not migrated
ProgressBar— Not migrated
PromptBar— Not migrated
Radio— Not migrated
Rating— Not migrated
Reasoning Disclosure— Not migrated
RecommendationCard— Not migrated
ResizeBox— Not migrated
SankeyChart— Not migrated
Scroll— Not migrated
ScrubField— Not migrated
SearchEmpty— Not migrated
SearchInput— Not migrated
SearchPanel— Not migrated
SearchSelect— Not migrated
SegmentedSlider— Not migrated
Select— Not migrated
SelectionActions— Not migrated
SidebarNav— Not migrated
SignalMeter— Not migrated
Skeleton— Not migrated
Slider— Not migrated
SortableList— Not migrated
Sources— Not migrated
SparkChart— Not migrated
Spinner— Not migrated
Splitter— Not migrated
Stack— Not migrated
Stagger— Not migrated
StatCard— Not migrated
StatusBadge— Not migrated
Steps— Not migrated
Stream Markdown— Not migrated
Suggestion Chips— Not migrated
Switch— Not migrated
TabBar— Not migrated
Tabs— Not migrated
Tag— Not migrated
TagInput— Not migrated
TaskRows— Not migrated
Textarea— Not migrated
TextMorph— Not migrated
TextTransformer— Not migrated
Theming— Not migrated
Thinking Orb— Not migrated
Timeline— Not migrated
TimeseriesChart— Not migrated
Toast— Not migrated
Tool Call Card— Not migrated
Tool Confirmation— Not migrated
ToolChips— Not migrated
Tooltip— Not migrated
Transfer— Not migrated
Transition— Not migrated
Tree— Not migrated
TreeSelect— Not migrated
TuffLogoStroke— Not migrated
TypingIndicator— Not migrated
Utils— Not migrated
VersionCapsule— Not migrated
VirtualList— Not migrated
WorkingIndicator— Not migrated

Suite Overview

Each suite has one overview page carrying its own live preview and its own component list — the first entry under that suite's sidebar tab.

SuiteGroupsComponentsEntry
Basics SuiteGeneral / Form / Layout / Navigation / Data Display / Feedback / Status & Empty91@talex-touch/tuffex/base
Pro SuiteInteraction / Effects / Primitives27@talex-touch/tuffex/pro
AI SuiteChat / Agents / Reasoning / Context & Insight29@talex-touch/tuffex/ai
Data SuiteCharts / Visualization10@talex-touch/tuffex/pro (visualization) + @talex-touch/tuffex-charts (charts)

Concepts is the fifth suite tab — documentation-only, with no component entry of its own. This page is that tab's overview: library positioning, design foundations and utils above, the full component index below.

Basics

The everyday building blocks, importable through the @talex-touch/tuffex/base category entry. Suite page: Basics Suite. Design foundations live in Foundations; shared helpers in Utils.

General

Form

Layout

Data Display

Feedback

Status & Empty

Pro

Rich interaction, visual effects and low-level primitives, importable through the @talex-touch/tuffex/pro category entry. Suite page: Pro Suite.

Interaction

Effects

Primitives

AI Suite

AI-native interface components, partly adapted from Beautiful UI (MIT) — see the AI Suite page for full showcases — importable through the @talex-touch/tuffex/ai category entry.

Chat

Agents

Reasoning

Context & Insight

Data

Data visualization and charts: the main package's visualization components (imported through @talex-touch/tuffex/pro) plus the standalone @talex-touch/tuffex-charts package (kumo-shaped, no echarts). Suite page: Data Suite.

Charts

Docs for the standalone @talex-touch/tuffex-charts package (kumo), installed separately from the main tuffex package.

Visualization

Review Notes

  • Hub scope: this page is the Concepts suite overview and the component documentation index; per-component API / props / best-practice details live in the linked component pages.
  • Source registry: packages/tuffex/packages/components/src/components.ts defines the exported component slug set used by docs coverage.
  • Demo registry: apps/nexus/app/components/content/demo-registry.ts maps each TuffDemoWrapper demo on this page to a standalone Vue demo file.
  • Preview grid: apps/nexus/app/components/docs/DocsComponentsGallery.vue renders the live "Preview" grid on each suite page; it takes a required suite prop and renders that band only.
  • Verified coverage: Coverage: apps/nexus/test/docs/tuffex-component-docs-coverage.test.ts verifies exported components have English and Chinese docs, localized hubs link documented components, and all demo references resolve to registered Vue files.