Theme

组合色板、局部主题与组件默认样式。

实时预览

正在加载预览…

参数配置

全部字段 37

ComponentTheme

Styles · 0

Theme

MotionTokens
ShadowTokens
Palettes
列表项 · 11
列表项 · 11
列表项 · 11
列表项 · 11
列表项 · 11
列表项 · 11
列表项 · 11

Go 代码

Go
// Inside a view; c is *ui.Context, t is nui.Theme.
local := t.WithComponent(nui.ComponentButton, nui.ComponentTheme{Color: nui.ColorDefault, Size: nui.SizeDefault, Variant: nui.VariantDefault})
nui.Button(c.Key("local"), local, "Local theme", nui.ButtonOptions{})
nui.Button(c.Key("override"), local, "Instance override", nui.ButtonOptions{Color: nui.Warning})
nui.Button(c.Key("parts"), t, "Part style override", nui.ButtonOptions{UI: nui.Styles{nui.Root: {Radius: nui.Set(float32(999)), PaddingX: nui.Set(float32(24))}}}).AlignSelf(ui.Start)

使用说明

第一个按钮使用局部组件主题,第二个用实例颜色覆盖它,第三个通过 UI 调整圆角和水平内边距。修改颜色、尺寸和样式,比较全局主题、局部默认值与实例覆盖的优先级。

API 参考

Light

源码
func Light() Theme
func Dark() Theme

NewTheme

源码
func NewTheme(dark bool, p Palettes) Theme
func Set[T any](v T) Optional[T]

Theme

源码
type Theme struct {
	Dark                                                                bool
	Background, MutedBackground, Elevated, Accented, InvertedBackground ui.Color
	Dimmed, Muted, Toned, Text, Highlighted, Inverted                   ui.Color
	Border, BorderMuted, BorderAccented, BorderInverted                 ui.Color
	Primary, Secondary, Success, Info, Warning, Error                   ui.Color
	Radius, FontSize, Density, TextScale, ContainerWidth                float32
	Font, MonoFont                                                      string
	Motion                                                              MotionTokens
	Shadow                                                              ShadowTokens
	HighContrast                                                        bool
	Palettes                                                            Palettes
	// contains filtered or unexported fields
}
字段类型说明
Darkbool

Go 零值: false

深色主题快照或深色模式标志。

Backgroundui.Color

Go 零值: zero value

背景颜色。

MutedBackgroundui.Color

Go 零值: zero value

主题中的 MutedBackground 语义颜色。

Elevatedui.Color

Go 零值: zero value

主题中的 Elevated 语义颜色。

Accentedui.Color

Go 零值: zero value

主题中的 Accented 语义颜色。

InvertedBackgroundui.Color

Go 零值: zero value

主题中的 InvertedBackground 语义颜色。

Dimmedui.Color

Go 零值: zero value

主题中的 Dimmed 语义颜色。

Mutedui.Color

Go 零值: zero value

主题中的 Muted 语义颜色。

Tonedui.Color

Go 零值: zero value

主题中的 Toned 语义颜色。

Textui.Color

Go 零值: zero value

显示的文字内容。

Highlightedui.Color

Go 零值: zero value

主题中的 Highlighted 语义颜色。

Invertedui.Color

Go 零值: zero value

反转数值或视觉方向。

Borderui.Color

Go 零值: zero value

主题中的 Border 语义颜色。

BorderMutedui.Color

Go 零值: zero value

主题中的 BorderMuted 语义颜色。

BorderAccentedui.Color

Go 零值: zero value

主题中的 BorderAccented 语义颜色。

BorderInvertedui.Color

Go 零值: zero value

主题中的 BorderInverted 语义颜色。

Primaryui.Color

Go 零值: zero value

主题中的 Primary 语义颜色。

Secondaryui.Color

Go 零值: zero value

主题中的 Secondary 语义颜色。

Successui.Color

Go 零值: zero value

主题中的 Success 语义颜色。

Infoui.Color

Go 零值: zero value

主题中的 Info 语义颜色。

Warningui.Color

Go 零值: zero value

主题中的 Warning 语义颜色。

Errorui.Color

Go 零值: zero value

错误状态或错误说明。

Radiusfloat32

Go 零值: 0

圆角半径。

FontSizefloat32

Go 零值: 0

字体大小。

Densityfloat32

Go 零值: 0

控件间距的缩放比例。

TextScalefloat32

Go 零值: 0

文字缩放比例。

ContainerWidthfloat32

Go 零值: 0

默认容器宽度。

Fontstring

Go 零值: ""

字体族名称。

MonoFontstring

Go 零值: ""

等宽字体族。

MotionMotionTokens

Go 零值: zero value

动态效果与减少动画配置。

ShadowShadowTokens

Go 零值: zero value

阴影颜色、模糊和偏移配置。

HighContrastbool

Go 零值: false

启用高对比度主题处理。

PalettesPalettes

Go 零值: zero value

主题使用的语义色板集合。

ComponentTheme

源码
type ComponentTheme struct {
	Color   Color
	Size    Size
	Variant Variant
	UI      Styles
}
字段类型说明
ColorColor

Go 零值: ColorDefault

语义颜色;默认值继承主题或组件配色。

SizeSize

Go 零值: SizeDefault

组件尺寸;默认值继承主题或组件尺寸。

VariantVariant

Go 零值: VariantDefault

组件外观样式,支持范围取决于组件。

UIStyles

Go 零值: zero value

以部件名称为键覆盖外观和间距。

PartStyle

源码
type PartStyle struct {
	Background, Foreground, BorderColor           Optional[ui.Color]
	Radius, BorderWidth, Opacity                  Optional[float32]
	FontSize, LineHeight, PaddingX, PaddingY, Gap Optional[float32]
	Font                                          Optional[string]
	Weight                                        Optional[int]
	Shadow                                        Optional[ShadowTokens]
}
字段类型说明
BackgroundOptional[ui.Color]

Go 零值: unset

背景颜色。

ForegroundOptional[ui.Color]

Go 零值: unset

前景文字或图标颜色。

BorderColorOptional[ui.Color]

Go 零值: unset

边框颜色。

RadiusOptional[float32]

Go 零值: unset

圆角半径。

BorderWidthOptional[float32]

Go 零值: unset

边框宽度。

OpacityOptional[float32]

Go 零值: unset

不透明度,通常为 0 到 1。

FontSizeOptional[float32]

Go 零值: unset

字体大小。

LineHeightOptional[float32]

Go 零值: unset

文字行高。

PaddingXOptional[float32]

Go 零值: unset

水平内边距,单位为 DIP。

PaddingYOptional[float32]

Go 零值: unset

垂直内边距,单位为 DIP。

GapOptional[float32]

Go 零值: unset

相邻内容之间的间距。

FontOptional[string]

Go 零值: unset

字体族名称。

WeightOptional[int]

Go 零值: unset

字体粗细。

ShadowOptional[ShadowTokens]

Go 零值: unset

阴影颜色、模糊和偏移配置。

Decoration

源码
type Decoration struct {
	UI    Styles
	Style func(Slot, ui.Element)
}
字段类型说明
UIStyles

Go 零值: zero value

以部件名称为键覆盖外观和间距。

Stylefunc(Slot, ui.Element)

Go 零值: nil

同步配置当前构建的部件;不要保留 Element。

Optional

源码
type Optional[T any] struct {
	Value T
	Set   bool
}
字段类型说明
ValueT

Go 零值: zero value

控件值、字段值或数据读取函数。

Setbool

Go 零值: false

区分显式值与继承默认值。