An open API service indexing awesome lists of open source software.

https://github.com/longbridge/gpui-component

UI components for building fantastic desktop application by using GPUI.
https://github.com/longbridge/gpui-component

gpui macos shadcn ui windows

Last synced: about 2 months ago
JSON representation

UI components for building fantastic desktop application by using GPUI.

Awesome Lists containing this project

README

        

# GPUI Component

> This is still an early stage of development, we may change API frequently.
> But the features is ok to use, you must keep tracking our changes.

UI components for building fantastic desktop application by using [GPUI](https://gpui.rs).

## Features

- Accordion
- Alert
- Badge
- Breadcrumb
- Button, Link
- Checkbox, Radio, Switch
- ColorPicker
- DatePicker, DateRangePicker, Calendar
- Dock, Tiles
- Drawer
- Dropdown
- Icon
- Label
- List
- Menu
- Modal
- Notification
- Popover
- Progress & Indicator
- Resizable
- Sidebar
- Skeleton
- Slider
- Table
- Tabs
- TextInput, TextArea, OtpInput
- TextView (Markdown, Simple HTML) to native rendering, syntax highlighting.
- Theming
- TitleBar
- Toggle, ToggleGroup
- Tooltip
- WebView

## Showcase

Here is the first application: [Longbridge](https://longbridge.com) that is built by using GPUI Component.

> It still under development, not published yet.

SCR-20250107-kagq
SCR-20250107-kaky
SCR-20250107-kapd
SCR-20250107-kfvk

We build multi-themes support in application, this feature is not including in GPUI Component. It is based on `Theme` feature, so it easy to do.

## Usage

GPUI and GPUI Component still in development, so we need add dependency by git.

And GPUI Component depends on `gpui` by special version (It keep updated to upstream) for including WebView support.

```toml
gpui = { git = "https://github.com/huacnlee/zed.git", branch = "webview" }
gpui-component = { git = "https://github.com/longbridge/gpui-component.git" }
```

### WebView

GPUI Component have `WebView` element based on [Wry](https://github.com/tauri-apps/wry), this is an optional feature, you can enable it by feature flag.

```toml
gpui-component = { git = "https://github.com/longbridge/gpui-component.git", features = ["webview"] }
```

More usage can be found in [story](https://github.com/longbridge/gpui-component/tree/main/crates/story) directory.

### Icons

GPUI Component have `Icon` element, but it does not include SVG files by default.

The example is using [Lucide](https://lucide.dev) icons, but you can use any icons you like, just named the svg files like [IconName](https://github.com/longbridge/gpui-component/blob/main/crates/ui/src/icon.rs#L86) defined the path name.
You can add icons that you need in your project.

## Demo

If you want to see the demo, here is a some demo applications.

- [gpui-app-windows.zip](https://github.com/user-attachments/files/17396296/gpui-app-windows.zip) - Updated at 2024/10/16

## Development

```bash
cargo run
```

More examples can be found in `examples` directory.

Checkout [DEVELOPMENT](DEVELOPMENT) to see more details.

## License

Apache-2.0

- UI design based on [shadcn/ui](https://ui.shadcn.com).
- Icon from [Lucide](https://lucide.dev).