Concepts Overview
What Tuffex is, the three concept blocks behind it, and the full component index
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,/proand/aientries load on demand; the chart family ships as the standalone@talex-touch/tuffex-chartspackage.
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.
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, andTxSearchEmpty. - For data lists, use
TxDataTablefor the main body,TxPaginationfor navigation, andTxSkeleton/TxLayoutSkeletonfor waiting states. - For settings pages and admin shells, use
TxTabsfor fixed sections,TxDropdownMenu/TxPopoverfor lightweight actions and short notes, andTxDrawerfor dense configuration. - Data regions must design loading, empty, and error recovery paths together; prefer
TxLoadingState,TxEmptyState, andTxErrorState. - Task feedback paths should mount
TxToastHostfor notifications, useTxTooltipfor action hints,TxLoadingOverlayfor local blocking refreshes, andTxSpinnerfor inline waiting. - Permission orchestration paths should use
TxTreefor scope,TxTreeSelectfor owner team,TxTransferfor resource grants, andTxTimelinefor audit progress. - Release configuration paths should use
TxCascaderfor release scope,TxFlatSelectfor package and rollout choices,TxSegmentedSliderfor risk tiers,TxSliderfor traffic ramps, andTxTagInputfor 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
Verifiedin 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.
| Component | Sync 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.
| Suite | Groups | Components | Entry |
|---|---|---|---|
| Basics Suite | General / Form / Layout / Navigation / Data Display / Feedback / Status & Empty | 91 | @talex-touch/tuffex/base |
| Pro Suite | Interaction / Effects / Primitives | 27 | @talex-touch/tuffex/pro |
| AI Suite | Chat / Agents / Reasoning / Context & Insight | 29 | @talex-touch/tuffex/ai |
| Data Suite | Charts / Visualization | 10 | @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
- Form
- Input
- FlatInput
- Textarea
- NumberInput
- SearchInput
- TagInput
- ScrubField
- Select
- FlatSelect
- SearchSelect
- TreeSelect
- Cascader
- Picker
- DatePicker
- Radio
- FlatRadio
- Checkbox
- Switch
- Slider
- SegmentedSlider
- Rating
- FileUploader
- ImageUploader
Layout
Navigation
Data Display
- DataTable
- Tree
- SortableList
- Timeline
- Transfer
- StatCard
- CellLink
- DotIndicator
- FilterChips
- MarkdownView
- ImageGallery
Feedback
Status & Empty
- Empty
- EmptyState
- NoData
- NoSelection
- SearchEmpty
- ErrorState
- OfflineState
- PermissionState
- GuideState
- BlankSlate
- LoadingState
- Skeleton
- LayoutSkeleton
Pro
Rich interaction, visual effects and low-level primitives, importable through the @talex-touch/tuffex/pro category entry. Suite page: Pro Suite.
Interaction
Effects
- GlassSurface
- GradientBorder
- OutlineBorder
- BorderBeam
- CornerOverlay
- GradualBlur
- EdgeFadeMask
- GlowText
- KeyframeStrokeText
- TuffLogoStroke
- TextMorph
- TextTransformer
- Transition
- Stagger
- Fusion
- Liquid
- FlipOverlay
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
- Chat
- ChatComposer
- PromptBar
- AttachmentTray
- MessageActions
- SuggestionChips
- TypingIndicator
- ConversationStream
Agents
Reasoning
- AI Elements
- ChainOfThought
- ReasoningDisclosure
- ThinkingOrb
- StreamMarkdown
- CodeStream
- InlineCitation
- Sources
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.tsdefines the exported component slug set used by docs coverage. - Demo registry:
apps/nexus/app/components/content/demo-registry.tsmaps eachTuffDemoWrapperdemo on this page to a standalone Vue demo file. - Preview grid:
apps/nexus/app/components/docs/DocsComponentsGallery.vuerenders the live "Preview" grid on each suite page; it takes a requiredsuiteprop and renders that band only. - Verified coverage: Coverage:
apps/nexus/test/docs/tuffex-component-docs-coverage.test.tsverifies exported components have English and Chinese docs, localized hubs link documented components, and all demo references resolve to registered Vue files.