Built-in Components
Vue TermUI ships a small, composable set of components. They're unprefixed (Box, Text, …) — there's no DOM to clash with in a terminal — and imported explicitly from vue-termui:
import { Box, Text, Newline, Input, Select, ProgressBar } from 'vue-termui'The components
| Component | Purpose |
|---|---|
<Box> | Flexbox container — layout, borders, spacing, color |
<Text> | Styled text — colors and attributes |
<Newline> | One or more line breaks |
<Input> | Single-line text input with v-model |
<Select> | Scrollable single-choice list with v-model |
<ProgressBar> | Horizontal progress bar |
Host tags
Under the hood, components compile to host tags in the reserved tui- namespace that the renderer understands directly: <tui-box>, <tui-text>, <tui-input> and <tui-select>. The tui- prefix keeps generic names like box or select free for your own components. These host tags work in templates too, but the components give you typed props, sensible defaults, and prop coercion — so prefer the components in app code.
<!-- equivalent, but prefer <Box> / <Text> -->
<tui-box>
<tui-text>hello</tui-text>
</tui-box>No auto-import
Vue TermUI does not register a global component resolver or auto-import plugin. Import what you use, explicitly. It's a little more typing, but everything stays fully typed and there's no build-time magic to reason about.
Coming from the old version?
The previous, pre-OpenTUI version had a Tui-prefix (TuiBox), auto-imports, a class-based style syntax, and <Link> / <TextTransform> components. The rewrite drops the prefix and the magic; <Link> and <TextTransform> are not yet ported.