我想在我的react组件中使用tailwind主题,为此我做了以下代码:
import theme from "tailwindcss/defaultTheme"; console.log(theme)
另外,我创建了tailwind.config.js文件,在其中对主题进行了新的更改。这样做我遇到了一个问题,因为console.log(theme)的值是默认的顺风值,即使我覆盖了它们。如何从tailwind主题中获取更新值?
tailwind.config.js
console.log(theme)
ulydmbyx1#
我们假设在tailwind.config.js中定义了以下内容:
const colors = require('tailwindcss/colors') module.exports = { theme: { colors: { white: colors.slate[50], dark: colors.slate[900], }, }, // content: ... // plugins: ... }
现在我们可以在导入配置文件后访问属性white
white
import { theme } from './tailwind.config.js' const color = theme.colors['white']
由于tailwind JIT不能处理动态类名,我们可以创建自己的getter来使用tailwind默认值和我们的配置
import { spacing as defaultSpacing } from 'tailwindcss/defaultTheme' import { theme } from '../tailwind.config.js' // path may vary export const getThemeColor = (color) => theme.colors[color] export const getTailwindSpacing = t => defaultSpacing[`${t}`]
并在代码中的任何地方使用它和常用的style属性
style
export const SomeComponent = () => { const someCalculatedValue = 2 * 2 return ( <div style={{ right: tailwindSpacing(someCalculatedValue) backgroundColor: getThemeColor('white') }}> some content </div> ) }
import { spacing as defaultSpacing } from 'tailwindcss/defaultTheme' import { theme } from '../tailwind.config.js' // path may vary export const getThemeColor = (color: string) => theme.colors[color] export const getTailwindSpacing = (spacing: number) => { const number = `${spacing}` as keyof typeof defaultSpacing return defaultSpacing[number] }
1条答案
按热度按时间ulydmbyx1#
我们假设在
tailwind.config.js
中定义了以下内容:现在我们可以在导入配置文件后访问属性
white
奖金
由于tailwind JIT不能处理动态类名,我们可以创建自己的getter来使用tailwind默认值和我们的配置
并在代码中的任何地方使用它和常用的
style
属性typescript 版本