Я пытаюсь создать веб-сайт с темным режимом и хочу проанализировать темную опору в компонентах в стиле попутного ветра. Во всех местах, за исключением действий, таких как наведение, активация, фокусировка и т. д., реквизиты работают, но когда я пытаюсь использовать наведение и анализировать реквизит darkMode, ничего не работает. Библиотека, которую я использую, называется «компоненты в стиле попутного ветра».
Я пытался использовать разные подходы к реквизиту, но ни один из них не сработал.
Это часть со стилем
export const NavbarListLI = tw.li`
flex flex-row justify-between items-center
mx-5 bg-slate-100 px-3 py-2 rounded-xl cursor-pointer
${({ dark }) => Colors(dark).buttons.primary}
hover:${({ dark }) => Colors(dark).list.hover}
hover:rounded-full
`
Здесь заявлены темный и белый режимы
import React, { useEffect } from "react"
const lightPalette = {
background: "bg-white",
greenish: "honeydew",
defGray: "#aaa",
orangeish: "rgba(255, 100, 25, 0.1)",
kaki: "#62807e",
light: "#e1e5f0",
darkBlue: "#315481",
lightBeige: "#eee",
hotRed: "#ff3046",
darkBrown: "rgba(34, 25, 25, 0.1)",
mint: "#C1E1D2",
whiteBg: "bg-white",
buttons: {
primary: "bg-black text-white",
},
list: { static: "bg-black", hover: "bg-slate-200" },
}
const darkPalette = {
background: "bg-black",
buttons: {
primary: "bg-white text-black",
},
list: { static: "bg-white", hover: "bg-slate-800" },
}
const Colors = (darkMode) => (darkMode ? darkPalette : lightPalette)
export default Colors
Я не думаю, что tailwindcss распознает ваши классы hover:*
Https://tailwindcss.com/docs/content-configuration#dynamic-class-names
Вы не можете использовать hover:${({ dark }) => Colors(dark).list.hover}, вы должны использовать полную метку "hover:bg-black" и т. д.
Для работы Tailwind CSS потребуется полное имя класса, если иное не указано в файле конфигурации.
В этом случае использования, поскольку свойство является просто фиксированным hover, имеет смысл просто указать полное имя класса наведения в darkPalette.
Попробуйте отредактировать darkPalette:
const darkPalette = {
background: "bg-black",
buttons: {
primary: "bg-white text-black",
},
// Keep the full class name here for Tailwind 👇
list: { static: "bg-white", hover: "hover:bg-slate-800" },
};
И в стилях также используйте полное имя класса:
export const NavbarListLI = tw.li`
flex flex-row justify-between items-center
mx-5 bg-slate-100 px-3 py-2 rounded-xl cursor-pointer
${({ dark }) => Colors(dark).buttons.primary}
${({ dark }) => Colors(dark).list.hover}
hover:rounded-full`;
Надеюсь, это поможет.
Это сделало трюк! Спасибо за ваше решение!