"use client"; import { useIsDark } from "./useIsDark"; import { fr, type ColorOptions, type ColorDecisions } from "./fr"; export type ColorTheme = { isDark: boolean; options: ColorOptions<"css var">; decisions: ColorDecisions<"css var">; }; /** * A hook is no longer required to get the colors, this will soon be deprecated * when the documentation is updated to reflect the new way of getting the colors. * * Before you would do: * ```ts * import { useColors } from "@codegouvfr/react-dsfr/useColors"; * // ... * const theme = useColors(); * // ... * theme.decisions.background.default.grey.default * ``` * Now you should do: * ```ts * import { fr } from "@codegouvfr/react-dsfr"; * // ... * fr.colors.decisions.background.default.grey.default * ``` * We don't need a hook anymore as the the colors are expressed as CSS variables and thus don't need to be * switched at runtime when the user changes the dark mode. * * If however you need the colors in the HEX format you can do: * * ```ts * import { fr } from "@codegouvfr/react-dsfr"; * import { useIsDark } from "@codegouvfr/react-dsfr/useIsDark"; * // ... * const { isDark } = useIsDark(); * const theme = fr.colors.getHex({ isDark }); * // ... * theme.decisions.background.default.grey.default * ``` **/ export function useColors(): ColorTheme { const { isDark } = useIsDark(); return { isDark, "options": fr.colors.options, "decisions": fr.colors.decisions }; }