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

如何在MUI React的TimePicker中修改时钟颜色与Ok按钮字体颜色

MUI React TimePicker 样式自定义(sx/slotProps 实现)

问题背景

尝试通过CSS className修改MUI React TimePicker的时钟数字颜色、Ok按钮字体颜色等属性未成功,需改用sx或slotProps实现深色主题下的样式适配,需调整的元素包括:弹出时钟的数字色、选中时间的高亮样式、底部OK按钮颜色、输入框文字及边框色等。

解决方案

针对TimePicker的不同组件模块,通过sx属性覆盖主容器及输入框样式,通过slotProps指定弹出层、时钟面板及操作按钮的样式,以下是调整后的完整代码:

<TimePicker
  ampm={false}
  views={['hours', 'minutes', 'seconds']}
  // 主输入容器及输入框样式
  sx={{
    backgroundColor: "#333335",
    '& .MuiOutlinedInput-root': {
      '& fieldset': {
        borderColor: '#555', // 输入框默认边框色
      },
      '&:hover fieldset': {
        borderColor: '#fff', // 鼠标悬浮时边框色
      },
      '&.Mui-focused fieldset': {
        borderColor: '#04395E', // 聚焦时边框色
      },
    },
    '& .MuiInputBase-input': {
      color: '#FFFF', // 输入框文字色
      fontSize: '1.4rem',
      fontWeight: 'bold',
    },
  }}
  slotProps={{
    // 弹出层及内部时钟面板样式
    popper: {
      sx: {
        '& .MuiPaper-root': {
          backgroundColor: '#333335', // 弹出层整体背景色
        },
        // 时钟数字按钮样式
        '& .MuiTimeClock-root': {
          '& .MuiTimeClock-digitButton': {
            color: '#fff', // 未选中数字的文字色
            '&.Mui-selected': {
              backgroundColor: '#04395E', // 选中数字的背景色
              color: '#fff', // 选中数字的文字色
            },
            '&:hover': {
              backgroundColor: '#04395E80', // 鼠标悬浮时数字按钮背景色
            },
          },
        },
        // 底部操作栏(含OK按钮)样式
        '& .MuiDialogActions-root': {
          backgroundColor: '#333335',
          '& .MuiButton-text': {
            color: '#fff', // OK按钮文字色
            '&:hover': {
              backgroundColor: '#04395E80', // OK按钮悬浮背景色
            },
          },
        },
        // 时间切换箭头图标样式
        '& .MuiIconButton-root': {
          color: '#fff', // 箭头图标颜色
          '&:hover': {
            backgroundColor: '#04395E80', // 箭头悬浮背景色
          },
        },
      },
    },
  }}
  value={selectedTime}
  onChange={(newTime: any) => setSelectedTime(newTime)}
  timeSteps={{ hours: 1, minutes: 1, seconds: 1 }}
/>

关键修改说明

  • 输入框样式:通过& .MuiOutlinedInput-root精准定位输入框容器,覆盖不同状态下的边框色;通过& .MuiInputBase-input设置输入框文字样式
  • 时钟面板样式:使用& .MuiTimeClock-digitButton定位时钟数字按钮,分别配置未选中、选中、悬浮状态的颜色
  • OK按钮样式:在MuiDialogActions-root容器下定位按钮元素,修改文字色及交互状态
  • 弹出层背景:通过MuiPaper-root设置弹出面板的整体背景色,适配深色主题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:44:52