Skip to content

API

SinleUI 向外暴露全局可操作的框架对象 $snui(框架配置与全局能力)、snu(工具库聚合门面)、一系列钩子、核心库(颜色库 ColorLib/TinyColor、日期库 DateLib/Dayuts)以及大量类型定义。

注意

不可直接从插件内部任何 .uts 文件导入对象或类型,所有对象及类型均从 @/uni_modules/sinle-ui 导入;UniError / SourceError 等错误对象为 uni-app x 运行时内置全局对象,无需导入。

typescript
import {
	$snui,
	snu,
	syncStatusBarColor,
	ColorLib,
	TinyColor,
	DateLib,
	Dayuts,
	dayuts,
	isDayuts,
	dayutsIntl,
	useTheme,
	useStyle,
	useFactors,
	useHover,
	useResolve,
	useI18n,
	t,
	locale,

	SUPPORTED_LOCALES,
	SN_DEFAULT_STYLE_ID,
	createCalendarDayPaint,
	createCalendarDayContent
} from '@/uni_modules/sinle-ui'

模块导出总览

分类导出内容说明
框架对象$snuiSnui 单例实例,框架全局配置与主题、风格控制入口
工具库snu工具方法聚合门面(静态类,包含随机、缓动、校验等 10 组方法),详见
钩子useTheme / useStyle / useFactors / useHover / useResolve / useI18n在组件中获取主题、风格、乘数、点击态、解析、国际化能力的 hooks
颜色库ColorLib / TinyColor颜色解析、转换与色板生成,详见
日期库DateLib / Dayuts / dayuts / isDayuts / dayutsIntl日期解析、格式化与国际化,详见
全局函数syncStatusBarColor / createCalendarDayPaint / createCalendarDayContent / t状态栏颜色同步、日历天定制工具、国际化翻译
常量SN_DEFAULT_STYLE_ID / SUPPORTED_LOCALES / locale默认风格 id、支持的语言列表、当前组件语言
错误UniError统一错误类型(uni-app x 运行时内置),详见
类型核心类型SnColorBaseSnStyle、手势事件、弹窗配置等全部类型
typescript
const SN_DEFAULT_STYLE_ID = 'default'

默认风格 id 常量。


UniError 为 uni-app x 运行时内置的统一错误类型(uni 错误规范),全局 API 失败时通过 fail 回调返回。

名称类型描述
errSubjectString错误主题(模块)名称,多级模块使用 :: 分割
errCodeNumber错误码,见错误码对照表
errMsgString错误描述信息
causeSourceError | UniAggregateError | null源错误信息

详见错误处理机制

$snui.colors 的类型。一个主题下的全部语义化颜色集合。字段分为特殊色与功能色两类,颜色随 sn-page 注入的 --sn-* CSS 变量自动切换主题。

提示

后缀带 Dark 的是比原色更深的颜色,并非暗黑主题专属;带 Light 的是更浅的颜色。暗黑主题与亮色主题分别拥有独立的 SnColorBase 对象。

字段类型描述
transparentString透明色(非 CSS 的 transparent,变化时不会闪黑)
pageString页面背景色
frontString前景色,一般用作块状组件背景色
darkString亮色模式为黑色,暗色模式为白色
lightString亮色模式为白色,暗色模式为黑色
disabledString禁用状态颜色
disabledTextString禁用状态文字颜色
disabledDarkString更深的禁用背景色
disabledDarkTextString更深的禁用文字颜色
lineString线条颜色
lineDarkString更深的线条颜色
lineTextString线条文字颜色
titleString标题颜色
textString文本颜色
textLightString更浅的文本颜色
toastString轻提示背景色
shadowString阴影颜色(2.0 新增)

每种功能色包含 9 个字段(以 primary 为例,其余功能色将 primary 替换为 info / success / error / warning):

字段类型描述
primaryString主题色(原色)
primaryActiveString激活态
primaryTextString主题色背景上的文字前景色
primaryLightString更浅的主色
primaryLightActiveString激活态更浅主色
primaryLightTextString更浅主色背景上的前景色
primaryDarkString更深的主题色
primaryDarkActiveString激活态更深的主题色
primaryDarkTextString更深的主题色背景上的前景色

一套完整风格(皮肤)对象,即内置风格文件导出的结构。

字段类型描述
idString风格唯一 id,如 'default'
colorBasesSnColorBases亮/暗两套颜色集
topbarHeightString导航栏高度(不含状态栏)
lightBgColorString亮色模式页面默认背景色
darkBgColorString暗色模式页面默认背景色
marginFactorNumber外间距乘数
paddingFactorNumber内间距乘数
radiusFactorNumber圆角乘数
fontsizeFactorNumber字号乘数
aniTimeFactorNumber动画时长乘数
aniTimeShortNumber基础短动画时长(ms)
aniTimeNormalNumber基础标准动画时长(ms)
aniTimeLongNumber基础长动画时长(ms)

一套风格中亮/暗两套颜色集的容器。

字段类型描述
lightSnColorBase亮色主题颜色集
darkSnColorBase暗色主题颜色集



$snui

$snuiSnui 类的单例实例,是 SinleUI 的全局配置中心。所有风格、主题、尺寸乘数、动画时长、页面背景等设置均通过它读写,修改后自动持久化,并实时驱动页面(sn-page 会差量更新 CSS 变量)。

属性

名称类型只读描述
colorsSnColorBase当前主题(light/dark)下的颜色集对象,例如 $snui.colors.primaryText
currentStyleIdString当前风格 id,赋值为不存在的 id 时仅输出警告并保持原值
themeString当前主题模式,可选值 light | dark,设置时会自动关闭 autoTheme
autoThemeBoolean是否跟随系统外观自动切换主题(默认开启)
grayModeBoolean哀悼置灰(灰度模式)开关,开启后全局呈现黑白效果
grayLevelNumber哀悼置灰程度(0-100,默认 100 全灰),仅当 grayMode 开启时生效
topbarHeightStringsn-topbar 导航栏高度(不含状态栏),默认 88px
lightBgColorString亮色模式页面默认背景色
darkBgColorString暗色模式页面默认背景色
loggingBoolean是否开启框架日志输出(默认开启)
localeString当前组件语言(BCP 47 标签,如 'zh-Hans' / 'en'),赋值即切换并持久化,不支持的语言仅输出警告并保持原值
marginFactorNumber外间距乘数
paddingFactorNumber内间距乘数
radiusFactorNumber圆角乘数
fontsizeFactorNumber字号乘数
aniTimeFactorNumber动画时长乘数,0 关闭动画、1 标准速度、2 慢速
aniTimeShortNumber短动画时长(ms),读取 = rounded(baseAniTimeShort × aniTimeFactor);赋值按当前乘数反算写入基础时长并持久化(乘数为 0 时直接写入)
aniTimeNormalNumber标准动画时长(ms),读取 = rounded(baseAniTimeNormal × aniTimeFactor);赋值按当前乘数反算写入基础时长并持久化(乘数为 0 时直接写入)
aniTimeLongNumber长动画时长(ms),读取 = rounded(baseAniTimeLong × aniTimeFactor);赋值按当前乘数反算写入基础时长并持久化(乘数为 0 时直接写入)
baseAniTimeShortNumber基础短动画时长(ms),默认 150
baseAniTimeNormalNumber基础标准动画时长(ms),默认 250
baseAniTimeLongNumber基础长动画时长(ms),默认 400

方法

名称参数返回值描述
setColor(theme: string, key: string, value: string)-设置指定主题(light | dark)中指定颜色键的值。颜色键必须是 SnColorBase 中存在的字段,否则输出警告。设置后自动持久化
setColorBase(theme: string, colorBase: SnColorBase)-整体替换指定主题的颜色集,一键修改项目配色

| syncSystemTheme | () | - | 若 autoTheme 为开启,则应用系统当前外观主题 |

示例

typescript
// 切换主题
$snui.theme = 'dark'

// 修改字号乘数
$snui.fontsizeFactor = 1.2

// 自定义主题色
$snui.setColor('light', 'primary', '#4d82ff')
$snui.setColorBase('dark', myDarkColorBase)

syncStatusBarColor

同步状态栏文字与背景颜色

将原生状态栏文字颜色与背景色同步为当前主题下的样式(亮色下黑字白底,暗色下白字黑底)。

参数返回值描述
-依据当前 $snui.theme 同步系统状态栏颜色

createCalendarDayPaint / createCalendarDayContent

创建 sn-calendar-view 日期格定制所需的数据结构与内容。

名称参数返回值描述
createCalendarDayPaint(input: SnCalendarDayPaintInput)SnCalendarDayPaint创建日期涂色数据,用于自定义日期背景、文本颜色等
createCalendarDayContent(input: SnCalendarDayContentInput)SnCalendarDayContent创建日期内容数据,用于自定义日期内图标、圆点等

createCalendarDayPaint(input) 的入参类型,字段与 SnCalendarDayPaint 一致。

日期格绘制配置(由 SnCalendarDayContent.paint 携带,经 formatter 或 createCalendarDayPaint 构造)。

名称类型必填描述
backgroundColorString背景颜色
borderColorString边框颜色
borderWidthNumber边框宽度
fontSizeString | Number日期字号
prefixColorString前缀文字颜色
textColorString日期文字颜色
suffixColorString后缀文字颜色
prefixFontSizeNumber前缀字号
suffixFontSizeNumber后缀字号
fontWeightString字重
showDotBoolean是否显示圆点
dotColorString圆点颜色
dotPositionSnCalendarDayDotPosition圆点位置

圆点标记位置。

可选值备注
left左侧
right右侧
top顶部
bottom底部

createCalendarDayContent(input) 的入参类型:prefix / text / suffix / showDot / dotColor / dotPosition / paintSnCalendarDayPaintInput),快捷设置圆点相关字段。

日期格内容(formatter 返回值)。

名称类型必填描述
prefixString前缀文字(如「休」)
textString日期文本(默认为日号)
suffixString后缀文字(如「今天」)
paintSnCalendarDayPaint | null绘制配置

Snui(类)

Snui 类定义与 $snui 实例的属性、方法一致,完整风格对象结构参见 SnStyle

使用 MIT 协议