Skip to content
SulluxPublic

About

A utility library for crafting declarative, high-performance TUI applications.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

@sullux/tui

An enterprise-grade, declarative, component-driven User Interface framework designed from the ground up for terminal grids.

@sullux/tui solves the complexity of terminal UI development by cleanly separating markup structure and layout styling (expressed in logic-free YAML) from runtime behavior and event dispatching (expressed in pure, functional JavaScript).


Documentation

Full documentation is available in the docs/ directory:


Quick Example

# view.yaml
type: border
borderStyle: rounded
borderFg: '#7aa2f7'
inner:
  - type: text
    bold: true
    text: 'Hello from TUI YAML!'
// app.js
const { Tui } = require('@sullux/tui')

const app = Tui({ view: './view.yaml' })
app.start()

Contributing Guide

We prioritize clean, maintainable, and testable source files. All contributions must adhere to the following guidelines:

  1. Vanilla JavaScript: Vanilla Node.js ONLY. No TypeScript compilation, no build transpilation, no custom binary compilers. Standard imports strictly functional (CJS).
  2. Functional Paradigm over Object-Oriented: Zero classes. Zero usage of the this keyword. Prefer pure, stateless factories that receive a state context object (ctx) and return immutable configurations.
  3. Auditability & Standalone Modules: Keep files short (ideally under 100 lines). Sub-divide complicated modules into localized folders with an index.js file to protect monorepo workspace imports.
  4. Prettier Format Style: Standard Prettier formatting with explicit trailing commas and absolutely zero semicolons (enforced by .prettierrc).

License

Distributed under the MIT License. See docs/license.md for full terms.

About

A utility library for crafting declarative, high-performance TUI applications.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages