Skip to content

Bdeering1/console-menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Console Menu

A simple yet powerful library for creating beautiful console menus in rust.

Usage

To get started, create a Menu object and pass it a list of MenuOptions. A simple example:

use console_menu::{Menu, MenuOption, MenuProps};

let menu_options = vec![
    MenuOption::new("option 1", || println!("option one!")),
    MenuOption::new("option 2", || println!("option two!")),
    MenuOption::new("option 3", || println!("option three!")),
];
let mut menu = Menu::new(menu_options, MenuProps::default());
menu.show();
Screen Shot 2023-11-26 at 6 09 02 PM

Menus are controlled using the arrow keys to move around, enter to select an option, and escape to exit. Vim style keybindings are also supported. Menus can include a title, footer message, and any combination of 8-bit colored backgrounds and text.

let menu_options = vec![
    MenuOption::new("eggs", || println!("menu item one!")),
    MenuOption::new("bacon", || println!("menu item two!")),
    MenuOption::new("toast", || println!("menu item three!")),
];

let mut menu = Menu::new(menu_options, MenuProps {
    title: "My Breakfast Menu",
    message: "*coffee is free!",
    fg_color: 233,
    bg_color: 32,
    msg_color: Some(236),
    ..MenuProps::default()
});
menu.show();
Screen Shot 2023-11-29 at 12 56 45 PM

Menus can be nested, and options can include any type of callback. Please refer to the docs for more information.

About

A simple yet powerful library for creating beautiful console menus in rust.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages