Skip to content

Components

JSVision components are terminal-native visual building blocks. Standard components cover focused jobs such as input, selection, scrolling, and window chrome. The Data Grid and Code Editor are larger workspaces with their own guided learning paths and multiple live examples.

Start with the smallest component that owns the behavior you need, then compose it into an application shell. Every component page explains public state, sizing, interaction, theming, and the boundary between related choices.

Specialist workspaces

Data Grid →

Display or edit typed tabular data, then add sorting, filtering, validation, aggregation, master/detail views, data-at-scale strategies, and export.

Code Editor →

Build a language-aware editing workspace with documents, syntax highlighting, folding, search, language intelligence, large-document tiers, themes, and host-safety boundaries.

Component families

FamilyChoose it forComponents
FoundationsCustom drawing and child compositionView · Group
Application shellApp lifecycle, desktops, screens, windows, menus, and statusApplication · Desktop · Router · Window · Menu Bar · Status Line
ControlsCommands, text/value entry, choices, toggles, and read-only messagesButton · Input · Text · Label · Check Group · Radio Group · Multi-check Group · Slider · Switch
Containers and navigationModal tasks, lists, scrolling, trees, tabs, splits, and dropdown historyDialog · List View · List Box · Scroller · Scroll Bar · Tree · Tabs · Split View · Combo Box · History
FeedbackDeterminate progress and compact busy stateProgress Bar · Spinner
DateAlways-visible or compact date selectionCalendar · Date Picker
ColorPalette browsing or compact popup color selectionColor Swatch · Color Picker
SurfaceOff-screen drawing buffers and visual viewportsSurface · Surface View
Editing and outputGeneral text editing, memo fields, editor chrome, indicators, and terminal outputEditor · Memo · Edit Window · Indicator · Terminal
FormsDeclarative modal data collection and validationForm Dialog
FilesReady-made file tasks or composable file-system viewsFile Dialog · Change Directory Dialog · File List · Directory List · File Input · File Info Pane · File Editor

How applications fit together

text
Application
├─ Desktop
│  ├─ Window
│  └─ Dialog
└─ Router
   └─ Screen Group
      ├─ Containers
      └─ Controls

An Application owns the event loop and shared chrome. A Desktop manages overlapping windows; a Router swaps full-screen groups. Inside either route, containers organize focusable controls while leaf views draw content or accept input.

NeedChooseInstead of
Draw one custom leafViewGroup when you need child composition
Manage movable windowsDesktopRouter for screen-stack navigation
Keep a modeless movable surface openWindowDialog for one modal task
Render a generic item modelList ViewList Box for string-list convenience
Scroll content through a viewportScrollerScroll Bar for a standalone position control
Keep a month visibleCalendarDate Picker for compact dropdown selection
Show a palette gridColor SwatchColor Picker for popup/value entry
Draw into an off-screen bufferSurfaceSurface View to display one
Edit ordinary textEditor, Memo, or Edit WindowCode Editor for language-aware editing
Display or navigate a simple tableDataGridEditableDataGrid for typed editing
Run a complete file taskFile DialogComposable file views for a custom workflow

Learn the shared systems