快速开始
最小示例
swift
import SwiftUI
import LhUI
struct Demo: View {
var body: some View {
LhTheme {
LhButton(
onClick: { /* 处理点击 */ },
type: .primary,
text: "主要按钮"
)
}
}
}LhTheme 是主题容器,内部所有 Lh 组件通过 Environment 自动消费令牌;不包裹时回退明色色板。
类型与尺寸
swift
// 六种类型
LhButton(onClick: {}, text: "默认") // .default
LhButton(onClick: {}, type: .primary, text: "主要")
LhButton(onClick: {}, type: .success, text: "成功")
LhButton(onClick: {}, type: .warning, text: "警告")
LhButton(onClick: {}, type: .danger, text: "危险")
LhButton(onClick: {}, type: .info, text: "信息")
// 三种尺寸
LhButton(onClick: {}, size: .small, text: "小型")
LhButton(onClick: {}, size: .medium, text: "中型")
LhButton(onClick: {}, size: .large, text: "大型")状态
swift
// 禁用:不响应点击,呈现禁用样式
LhButton(onClick: {}, disabled: true, text: "禁用")
// 加载中:显示指示器,不触发 onClick
LhButton(onClick: {}, loading: true, text: "加载中")
// 两者共存:按禁用优先处理(黄金用例 disabled-precedes-loading)
LhButton(onClick: {}, disabled: true, loading: true, text: "禁用优先")图标与花纹底
swift
// 图标名按本地图标体系解析(SF Symbol 映射见 LhButtonStyle.icon(for:),未登记名不绘制)
LhButton(onClick: {}, type: .primary, icon: "search", text: "搜索")
// 国风花纹底纹(消费 color.decoration 令牌)
LhButton(onClick: {}, type: .primary, bgPattern: true, text: "花纹底")明暗主题
swift
LhTheme(isDark: isDark) {
// 内部所有组件自动切换暗色令牌(core 预计算值,无运行时调色)
}组件示例预览
原生 UI 无法在浏览器实时渲染,本站用内联静态 HTML 手机框模拟器展示外观:
iOS(SwiftUI)外观的 HTML 模拟预览,非真机渲染;样式值全部取自 core 令牌快照,与真机同源同值。真机外观以 #Preview 与设备截图为准。
模拟器的暗色与站点联动:右上角切换主题,手机框内颜色即变(暗色令牌由 core 预计算)。