You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chakra UI extendTheme中如何根据色模式切换全局shadow.xl阴影颜色

解决方案

Chakra UI 的 shadows 主题配置项本身不支持直接传入适配颜色模式的函数,你可以通过全局 CSS 变量实现需求,具体修改如下:

import { extendTheme, mode } from '@chakra-ui/react'

const theme = extendTheme({
  shadows: {
    // 引用后续定义的全局CSS变量
    xl: 'var(--shadow-xl)',
  },
  styles: {
    global: props => ({
      // 在全局根节点根据当前颜色模式赋值阴影变量
      ':root': {
        '--shadow-xl': mode('8px 8px 20px #fff', '8px 8px 20px #000')(props)
      },
      body: {
        color: mode(gray500, '#fff')(props),
        bg: mode(gray100, '#161616')(props),
        fontWeight: 300,
      },
    }),
  },
});

修改后所有用到shadow="xl"的组件都会自动跟随全局颜色模式切换阴影颜色,无需额外修改组件层代码。


内容的提问来源于stack exchange,提问作者quippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:06:02