A CLI library in Nim, inspired by Ratatui.
- 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
- Unix like operation system (Linux, macOS, etc)
nimble install celina
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
https://fox0430.github.io/celina/celina.html
https://fox0430.github.io/celina/widgets/base.html
https://fox0430.github.io/celina/widgets/button.html
https://fox0430.github.io/celina/widgets/input.html
https://fox0430.github.io/celina/widgets/list.html
https://fox0430.github.io/celina/widgets/progress.html
https://fox0430.github.io/celina/widgets/table.html