主题配置

Zenkuai UI 提供了完整的主题配置系统,包含了主题色、背景色、文字颜色等多个维度的颜色定义。

自定义主题

配置文件位置

uni_modules/zenkuai-ui/libs/config/config.js

修改示例

const config = {
    version,
    themePresets: {
        light: {
            // 修改亮色主题
            primary: '#1890ff',      // 修改主题色
            bgCard: '#fafafa',       // 修改卡片背景色
            // ... 其他颜色保持默认
        },
        dark: {
            // 修改暗色主题
            primary: '#177ddc',      // 修改暗色主题色
            bgPage: '#141414',       // 修改暗色页面背景
            // ... 其他颜色保持默认
        }
    }
}

颜色配置

主题色

primary #2979ff 主要按钮、重要信息突出显示
secondary #5856D6 次要按钮
success #19be6b 成功提示
warning #ff9900 警告提示
error #fa3534 错误提示
info #909399 信息提示
link #2979ff 链接颜色
danger #fa3534 危险操作

背景色

bgPage #f5f5f5 页面背景
bgCard #ffffff 主卡片背景
bgCard1 #f8fafc 副卡片背景
bgInput #f1f1f1 输入框背景
bgMask rgba(0, 0, 0, 0.4) 遮罩背景
BgNavbar #ffffff 导航栏背景
bgSwipeAction #ffffff 滑动操作背景

文字颜色

textPrimary #303133 主要文字
textRegular #606266 常规文字
textSecondary #909399 次要文字
textPlaceholder #c0c4cc 占位文字
textDisabled #c0c4cc 禁用文字

边框颜色

borderBase #dcdfe6 基础边框
borderLight #e4e7ed 浅色边框
borderLighter #ebeef5 更浅边框
borderExtra #f2f6fc 特别浅边框
borderColor #c0c4cc 通用边框

交互颜色

hover #ecf5ff 悬停态
selected #e6f7ff 选中态
focus #79bbff 聚焦态
disabled #c0c4cc 禁用态

渐变色

gradientPrimary linear-gradient(45deg, #2979ff, #79bbff)
gradientSuccess linear-gradient(45deg, #19be6b, #85ce61)
gradientWarning linear-gradient(45deg, #ff9900, #ffd161)
gradientError linear-gradient(45deg, #fa3534, #ff6b6b)

状态背景色

lineBg #f5f5f5 步骤条线条背景
successBg #67c23a 成功状态背景
finishBg #f0f9eb 完成状态背景
processBg #ecf5ff 进行中状态背景
skeletonBg #f2f3f5 骨架屏背景

导航和标签栏

navBgColor #ffffff 导航背景色
tabBarColor #999999 标签栏文字颜色
tabBarSelectedColor #007AFF 标签栏选中文字颜色
tabBarBgColor #ffffff 标签栏背景色

基础颜色

fillBase #eeeeee 基础填充色
white #ffffff 白色

使用方法

1. 在模板中使用

<template>
    <view class="container">
        <!-- 使用主题色 -->
        <view :style="{ 
            color: theme.textPrimary,
            background: theme.bgCard,
            borderColor: theme.borderBase 
        }">
            主题色示例
        </view>

        <!-- 使用渐变色 -->
        <view :style="{ background: theme.gradientPrimary }">
            渐变背景示例
        </view>

        <!-- 使用状态颜色 -->
        <view :style="{ background: theme.successBg }">
            成功状态背景
        </view>
    </view>
</template>

<script>
export default {
    computed: {
        theme() {
            return uni.$store.state['zk-global'].theme.current
        }
    }
}
</script>

<style>
.container {
    padding: 20rpx;
}
</style>

2. 在 JS 中动态使用

// 获取主题配置
const theme = uni.$store.state['zk-global'].theme

// 使用示例
uni.showToast({
    title: '操作成功',
    backgroundColor: theme.successBg
})

// 动态设置样式
this.$refs.myComponent.style.backgroundColor = theme.bgCard
this.$refs.myComponent.style.color = theme.textPrimary

注意事项

  • 主题色会自动适应明暗模式切换
  • 建议使用计算属性获取主题配置,以确保响应式更新
  • 渐变色只能用于背景,不能用于文字颜色
  • 某些特殊场景可能需要考虑颜色的对比度