Download the PHP package xocdr/ext-tui without Composer
On this page you can find all versions of the php package xocdr/ext-tui. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download xocdr/ext-tui
More information about xocdr/ext-tui
Files in xocdr/ext-tui
Informations about the package ext-tui
ext-tui
A PHP C extension for building terminal user interfaces with component-based architecture and Yoga flexbox layout.
Features
- Flexbox Layout: Facebook's Yoga layout engine for CSS-like flexbox positioning
- Component-Based: Build UIs with
ContainerNodeandContentNodecomponents - Full UTF-8 Support: Proper handling of Unicode text including CJK wide characters
- Rich Text Styling: Bold, italic, underline, colors (RGB), and more
- Keyboard Input: Full keyboard event handling with modifiers (Ctrl, Alt, Shift)
- Mouse Support: Click, scroll, and drag events with hit testing
- Terminal Resize: Automatic layout recalculation on terminal resize
- Clipboard: OSC 52 clipboard read/write (works over SSH)
- Hyperlinks: Clickable OSC 8 terminal hyperlinks
- Bracketed Paste: Detect and handle pasted text
- Focus Management: Tab navigation, focus groups, focus traps
- Drawing Primitives: Lines, rectangles, circles, ellipses, triangles
- Canvas Graphics: High-resolution drawing with Braille, block, or ASCII modes
- Animation: Easing functions, interpolation, color gradients
- Sprites: Frame-based animated sprites with collision detection
- Tables: Formatted table rendering with alignment and borders
- Progress Indicators: Progress bars, busy bars, and spinners
- Timers: Interval-based callbacks for animations and updates
- High Performance: All rendering done in C with minimal PHP overhead
Requirements
- PHP 8.0+
- C compiler with C++20 support (for Yoga)
- Unix-like operating system (macOS, Linux)
- Terminal with UTF-8 support
Installation
From Source
Verify Installation
Quick Start
Hello World
Interactive Counter
Drawing with Canvas
Progress Bar with Buffer
Documentation
Full documentation is available in the docs/ folder:
Manual (Tutorials & Guides)
- Getting Started - Installation and first app
- Components & Layout - ContainerNode, ContentNode, flexbox layouts
- Styling - Colors, text attributes, borders
- Input Handling - Keyboard events, focus, resize
- Drawing - Buffers, canvas, primitives, sprites, tables
- Animation - Easing, interpolation, effects
Reference
- Functions - Complete function reference
- Classes - ContainerNode, ContentNode, Key, Instance
- Constants - TUIEASE, TUICANVAS, etc.
Specifications
- ext-tui Specification - Complete C extension specification
- xocdr/tui Specification - PHP library specification
API Overview
Application Lifecycle
Event Handlers
Focus Management
Timers
Terminal Info
Text Utilities
Drawing Buffers
Drawing Primitives
Canvas (High-Resolution Drawing)
Animation
Tables
Progress Indicators
Sprites
Classes
All classes are in the Xocdr\Tui\Ext namespace.
ContainerNode
Flexbox container component.
ContentNode
Text display component.
Instance
Running TUI application handle.
Key
Keyboard event object (passed to input handlers).
Constants
Mouse Tracking Modes
TUI_MOUSE_MODE_OFF, TUI_MOUSE_MODE_CLICK, TUI_MOUSE_MODE_BUTTON, TUI_MOUSE_MODE_ALL
String-Based Options
Many functions use string values instead of constants:
- Easing:
"linear","in_quad","out_quad","in_out_quad","in_cubic","out_cubic", etc. - Canvas modes:
"braille","block","ascii" - Spinner types:
"dots","line","bounce","circle" - Clipboard targets:
"clipboard","primary","secondary"
See Constants Reference for complete list.
Known Limitations
- macOS/Linux only: Uses POSIX APIs (termios, poll, signals)
- No Windows support: Consider WSL for Windows users
See docs/limitations.md for full details.
Related Projects
- xocdr/tui - PHP library with hooks wrapping ext-tui
- xocdr/tui-widgets - Pre-built widget components
License
MIT License - see LICENSE