MyGo · 原生桌面 · 明暗主题

Onevra原生桌面组件库

Onevra 是 MyGo 的组件库:主题化控件、窗口外壳、Lucide 图标,以及聊天、Markdown、代码、图表与关系图等复杂视图——一套专注的工具包,可按需取用。

go get github.com/oneo-me/onevra/source

组件库中已经实现的组件

以下控件现在都已实现,每个都附带包文档与测试,统一从 github.com/oneo-me/onevra/source/components 引入。

复杂视图位于各自独立的包中,见下一节。

浏览组件

复杂视图,各自独立成包

除了单个控件,Onevra 还实现了应用真正需要的完整视图。每个视图都是独立包,自带文档与测试。

components/chart
BarLineAreaStackedBarDonutBubble

分类图表支持平滑更新、交互图例、键盘选中,以及自定义空状态与详情内容。

components/graph
View

可交互的力导向关系图,支持平移、缩放、悬停与拖动节点。

components/command
CommandPaletteCommandDialog

可搜索、键盘驱动的命令面板,可嵌入使用或置于对话框中。

components/code
ParseDocument

只读语法高亮,提供明暗两套配色,可单独使用或嵌入 Markdown。

components/markdown
MarkdownParseMarkdown

可选择的 CommonMark 与 GFM 文档,支持应用提供的图片与自定义代码块视图。

components/chat
ConversationComposerTurnActivityRow

对话包含消息轮次、工具活动分组、折叠摘要、附件与输入区。

components/gesture
ClassifyNavigation

面向自定义画布的滚轮、捏合与触控板平移缩放。

更少样板,更多产品

创建窗口,用 Onevra 控件构建内容,状态始终由你自己的值持有。

package main

import (
	"log"

	"github.com/egoist/mygo"
	"github.com/egoist/mygo/ui"
	"github.com/oneo-me/onevra/source/components"
	"github.com/oneo-me/onevra/source/shells/plain"
	"github.com/oneo-me/onevra/source/theme"
)

func main() {
	mygo.App.WhenReady(func() {
		shell := plain.NewShell(plain.ShellOptions{
			Title: "Hello Onevra",
			Theme: theme.Onevra,
			Content: func(c *ui.Context) {
				ui.Column(c).Fill().Padding(24).Children(func() {
					components.Text(c, "Hello, Onevra!")
				})
			},
		})
		shell.Window().OnClosed(func() { mygo.App.Quit() })
	})
	if err := mygo.App.Run(); err != nil {
		log.Fatal(err)
	}
}

跟随桌面的主题

Onevra 的调色板覆盖控件、外壳与窗口边框。切换一次外观,整个应用随之改变。

primary
secondary
muted
accent
border
foreground
  • 暖色中性色,陶土强调色明暗两套调色板共享同一强调色系,深色模式会提亮强调色以保证可读性。
  • 感知系统设置预设跟随桌面的明暗外观、文字缩放与高对比度设置。
  • 一次切换,两种氛围选择浅色、深色或跟随系统,所有组件与原生窗口边框同步切换。

一分钟即可上手

Onevra 需要 Go 1.27.1 或更高版本。添加模块后即可运行 Gallery。

1添加依赖
go get github.com/oneo-me/onevra/source@latest
2运行 Gallery
cd source && go run ./examples/gallery
3体验起始应用
cd source && go run ./examples/desktop
每个起始应用都自带本地化、偏好设置与打包配置。pkg.go.dev

常见问题

在打开文档之前,先看几个简短的回答。

准备好用 Onevra 构建了吗?

浏览组件,运行 Gallery,与我们一起打磨这个组件库。