mirror of
https://github.com/fox0430/celina
synced 2026-01-01 23:10:51 +00:00
No description
| .github | ||
| celina | ||
| examples | ||
| tests | ||
| .gitignore | ||
| celina.nim | ||
| celina.nimble | ||
| LICENSE | ||
| README.md | ||
Celina
A CLI library in Nim, inspired by Ratatui.
Features
- High-performance terminal rendering with buffer-based system
- Constraint-based responsive layout system
- Full Unicode support with proper display width handling
- Event-driven architecture for keyboard and mouse input
- Widget system for building interactive components
- Async programming support with asyncdispatch or Chronos
Platform Support
- Unix like operation system (Linux, macOS, etc)
Install
nimble install celina
Examples
Check out the examples/ directory for sample applications demonstrating various features:
hello_world.nim: Basic application displaying "Hello, World!" with simple event handlingasync_hello_world.nim: Asynchronous version using Chronosbutton_demo.nim: Interactive button widget, various styles, and click handlingcolor_demo.nim: 24-bit RGB color support demonstration with gradients, palettes, and animationscursor_demo.nim: Terminal cursor control including position, visibility, and style managementinput_demo.nim: Text input widgets including password fields, borders, search, and real-time value displaylist_demo.nim: List widget with single/multiple selection modes, keyboard/mouse navigation, scrolling, and custom stylingmouse_demo.nim: Mouse event handling including clicks, drag, wheel scroll, and movement detectionprogress_demo.nim: Progress bar widgets with various styles, customizable colors, bracket display options, and animated demonstrationstable_demo.nim: Table widget with custom column widths, multiple selection modes, border styles, vim-like navigation, and scrolling support for large datasetstabs_demo.nim: Tab widget demonstration with multiple tabs, keyboard navigation, dynamic tab management, and content switchingwindow_demo.nim: Window management system with multiple overlapping windows, focus control, and modal dialogsasync_file_manager.nim: Real-world file manager implementation with async I/O, multi-window UI, and vim-style navigation
Documentation
Core
https://fox0430.github.io/celina/celina.html
Widgets
Base
https://fox0430.github.io/celina/widgets/base.html
Button
https://fox0430.github.io/celina/widgets/button.html
Input
https://fox0430.github.io/celina/widgets/input.html
List
https://fox0430.github.io/celina/widgets/list.html
Progress
https://fox0430.github.io/celina/widgets/progress.html
Table
https://fox0430.github.io/celina/widgets/table.html
Tabs
https://fox0430.github.io/celina/widgets/tabs.html