A UI component library for building custom interfaces in Neovim.
nui.nvim is a UI component library for Neovim that provides a set of reusable blocks and components to create rich, interactive user interfaces directly within the editor. It enables plugin developers to build complex UI elements like popups, menus, inputs, and layouts without dealing with low-level API complexities.
Neovim plugin developers who need to create consistent, maintainable, and interactive user interfaces within the editor, such as those building custom file explorers, debuggers, or configuration tools.
Developers choose nui.nvim because it offers a simple, extensible foundation with ready-to-use components like Popup, Input, Menu, and Layout, reducing the need to manually manage Neovim's window and buffer APIs. Its class-like inheritance system and focus on consistency make it easier to build and maintain complex UI plugins.
UI Component Library for Neovim.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes a built-in object system similar to middleclass, allowing for easy inheritance and custom method addition, as shown in the Timer example extending Popup.
Offers ready-to-use components like Popup, Input, Menu, and Layout with built-in event handling and focus management, reducing manual Neovim API work.
Each component has detailed wiki pages and code examples with GIFs, making it easier to learn and implement complex UIs.
Focuses on simplicity and consistency, providing a foundation that helps teams build and maintain complex Neovim plugins with reusable code.
Tightly coupled to Neovim 0.5.0+, making it incompatible with Vim or older Neovim versions, limiting use in mixed or legacy environments.
Offers basic borders and text highlighting, but more complex theming or visual customization requires additional work outside the library, as it prioritizes structure over style.
Has a smaller community and fewer third-party extensions compared to established Neovim UI libraries, which could affect long-term support and integration ease.