chart.js中的自定义Tailwind CSS颜色

nfs0ujit  于 2023-08-05  发布在  Chart.js
关注(0)|答案(2)|浏览(235)

我有一个React应用程序,它使用Chart.js来渲染图表。我想使用Tailwind CSS配置中定义的自定义颜色来自定义图表中标签的颜色。我已经在我的tailwind.config.js和CSS文件中设置了自定义颜色,但我不确定如何将这些颜色用于我的图表标签。
以下是我的代码中的相关组件:

index.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

.theme-light {
  --labelColor: #000000;
}

.theme-dark {
  --labelColor: #ffffff;
}

字符串

tailwind.config.js:

module.exports = {
  theme: {
    extend: {
      colors: {
        labelColor: 'var(--labelColor)',
      },
    },
  },
  plugins: [],
};

chart.jsx:

import React from 'react';
import { Bar } from 'react-chartjs-2';
import { Chart, registerables } from 'chart.js';

Chart.register(...registerables);

const Graph = ({ chartData }) => {
  const options = {
    plugins: {
      legend: {
        display: true,
        labels: {
          usePointStyle: true,
          color: **labelColor**,
        }
      }
    },
    scales: {
      x: {
        ticks: {
          display: true,
          color: **labelColor**,
        }
      },
      y: {
        ticks: {
          display: true,
          color: **labelColor**,
        }
      }
    }
  }

  const datasets = [];

  chartData.forEach((data, index) => {
    datasets.push({
      label: data.name,
      data: data.data,
    });
  });

  const data = {
    labels: chartData[0].labels,
    datasets: datasets,
  }

  return <Bar data={data} options={options} />;
}

export default Graph;


在这种情况下,对使用自定义Tailwind颜色的最合适方法有什么建议吗?

ijxebb2r

ijxebb2r1#

要在Chart.js标签中使用自定义Tailwind颜色,您可以按照以下步骤操作:
1.将自定义颜色的Tailwind CSS类名导入chart.jsx文件。例如,如果在Tailwind配置中定义了一个名为labelColor的自定义颜色,则导入其类名:

import 'tailwindcss/dist/tailwind.css'; // Import the Tailwind CSS file
import React from 'react';
import { Bar } from 'react-chartjs-2';
import { Chart, registerables } from 'chart.js';

Chart.register(...registerables);

const Graph = ({ chartData }) => {
  // Rest of the code
}

字符串
1.修改Graph组件中的options对象,以使用标签和刻度的自定义颜色类名:

const options = {
  plugins: {
    legend: {
      display: true,
      labels: {
        usePointStyle: true,
        color: 'text-labelColor', // Use the class name for the custom color
      },
    },
  },
  scales: {
    x: {
      ticks: {
        display: true,
        color: 'text-labelColor', // Use the class name for the custom color
      },
    },
    y: {
      ticks: {
        display: true,
        color: 'text-labelColor', // Use the class name for the custom color
      },
    },
  },
};


请注意,我们在类名前面加上text-,因为Tailwind CSS使用text-前缀作为文本相关样式。
1.更新JSX以将Tailwind CSS类应用到组件:

return <Bar data={data} options={options} className="text-labelColor" />;


在这里,我们将text-labelColor类直接应用到Bar组件,以确保使用自定义颜色。
通过这些更改,您的图表的标签和刻度现在应该使用Tailwind CSS配置中定义的自定义颜色进行样式化。确保在chart.jsx文件的开头导入Tailwind CSS文件,以正确应用样式。

thigvfpy

thigvfpy2#

我不认为你将能够以这种方式使用自定义颜色,因为顺风自定义颜色经常与类属性一起使用,然后你试图使用它们的方式取决于chart.js模块的兼容性,以接受颜色作为自定义顺风颜色变量。另一种方法是在一个单独的文件中声明所有的自定义颜色,并将它们导出为变量,然后您将能够通过导入该文件来使用它们。

相关问题