material-ui 在主题调色板中添加对CSS color-mix()的支持

utugiqy6  于 4个月前  发布在  其他
关注(0)|答案(4)|浏览(51)

重复

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

摘要 💡

我想使用CSS的 color-mix 函数为我的调色板颜色创建所有主要/浅色/深色变体,以简化此过程。然而,似乎 decomposeColor 函数尚不支持此功能。

示例 🌈

const DARKEN_PERCENT = 33;
const LIGHTEN_PERCENT = 33;

const makeColor = (color: string, contrast: string) => ({
    main: color,
    light: `color-mix(in hsl, ${color} ${LIGHTEN_PERCENT}%, #fff)`,
    dark: `color-mix(in hsl, ${color} ${DARKEN_PERCENT}%, #000)`,
    contrastText: contrast,
});

export const theme = createTheme({
    palette: {
        mode: 'dark',
        primary: makeColor(..., '#fff'),
        secondary: makeColor(..., '#000'),
        error: makeColor(..., '#000'),
        warning: makeColor(..., '#000'),
        info: makeColor(..., '#000'),
        success: makeColor(..., '#fff'),
    },
    ...
});

动机 🔦

允许我们使用原生的 color-mix CSS 函数简化新主题的创建。

8ljdwjyq

8ljdwjyq2#

你好,我可以拿这个吗?

qlfbtfca

qlfbtfca3#

翻译结果为:@chimericdream我不介意接手这个任务,因为我一直在努力修复一些颜色功能。不过出于好奇,MUI的$x_1^a_0b_1^x$和$x_1^a_1b_1^x$助手是否适用于这个用例?

z2acfund

z2acfund4#

@arronhunt他们可能也会,至少对于我上面的例子。然而,它仍然不可能混合任意颜色,这就是color-mix变得非常强大的地方。

相关问题