# GPUI Compoment A UI component library for building desktop application by using GPUI. The goal of this project is to provide a set of UI components for building desktop applications, and it is based on [GPUI](https://gpui.rs). ## Showcase This is an example of build app by using GPUI. ## Demo [main-app-windows.zip](https://github.com/user-attachments/files/16049565/main-app.zip) - Updated at 2024/07/01 [main-app-windows.zip](https://github.com/user-attachments/files/16039599/main-app.zip) - Updated at 2024/06/29 ## TODO - [x] Theming - [ ] TextField - [x] Ctrl+a, e to move cursor to start/end - [x] Copy, Cut, Paste by keyboard - [ ] ContextMenu to let user copy, cut, paste - [ ] Selection by mouse, drag to select text - [x] Cursor blinking - [ ] Textarea - [x] Input icon - [ ] InputOTP - [x] Button - [x] Button with Icon - [x] IconButton - [x] Glost / Outline Button - [x] Label - [x] Icon - [x] Checkbox - [x] With label - [x] Radio - [ ] RadioGroup - [x] Switch - [x] With Label (Left, Right side) - [ ] Toggle Animation - [x] Dropdown - [x] Tabs - [x] Tab - [x] TabBar - [x] Notification - [x] Tooltip - [x] Popover - [x] Floating Popover - [x] Child window Popover - [x] Dockpanel - [x] Resizable - [x] Progress - [ ] ProgressBar - [ ] Loading - [ ] Skeleton - [ ] DatePicker - [ ] DateTimePicker - [ ] TimePicker - [ ] DateRangePicker - [ ] ColorPicker - [x] List - [x] A complex List example. - [x] Table - [x] row, column selection - [x] Left, Right / Up, Down to selection column or row. - [x] Horizontal scroll - [x] Vertical scroll - [ ] Column resizing - [ ] Column ordering - [ ] Sort event emit - [ ] Drawer - [ ] Modal ## How to build ```bash cargo run ``` ## License There have a part of UI components from [Zed](https://github.com/zed-industries/zed/tree/main/crates/ui), that are under GPL v3.0 license. - workspace - scrollbar Other UI components are under Apache License. - UI design based on [shadcn/ui](https://ui.shadcn.com). - Icon from [Lucide](https://lucide.dev).