terminal-layout
Under construction do not use for production.
This is an experiment with terminal layout
Features
- Grid with optional border where menus and text can fit
- Multiple menus changing focus on tab
- Colored text views, center text
Menu and text can easily be colored (text and background).
Docs
Layout
var layout = require("terminal-layout")()
- setColors(color, backcolor)
- setWidth(width) //
- grid(cols) // creates new grid view
- text(string) // creates new text view
- menu(title) // creates new menu view
- print(view) // prints view (resets focus to first focusable view)
- paint() // prints view
- kill() // destroys layout (do this to quit application)
- focusNext() // focus on next focusable view
- focus(view) // focus a view
Grid
var grid = layout.grid(3);
- add(view) // adds view to grid at first possible slot
- cols // number of columns
- border // have border around cells or not, Default: true
Text
var text = layout.text("My text string");
- text // Text to print
- color // color of text
- backcolor // background color
- center // center align text, Default false
Menu
var menu = layout.menu("MY MENU TITLE");
- add(label, callback) // Add a menu option
- title // title of menu
- color // text color for menu
- backcolor // background color
Example
Example with 3 menus and som text
var layout = ;layout; layout;var grid = layout;gridborder = false; grid;var header = layouttext"SUPERAPP";headercenter = true;grid;grid; var menu_grid = layout;grid; var menu = layout;menu;menu;menubackcolor = "green";menu_grid; var submenu = layout;submenutitle = "Subber";submenu;submenu;submenu;menu_grid; var thirdGrid = layout; var mainmenu = layout;mainmenutitle = "ANIMALS";mainmenu;mainmenu;mainmenu;thirdGrid; var table = layout;table;table;tableborder = true;thirdGrid; grid; layout;
License
MIT