UNPKG

radix-themes-tw

Version:

Integrate Radix Themes with Tailwind CSS

215 lines (190 loc) 6.63 kB
// for reference: // https://tailwindcss.com/docs/theme#default-theme-variable-reference import { accentColors, grayColors, } from "@radix-ui/themes/dist/esm/props/color.prop"; // all this colors follow same structure const allColors = [ "accent", ...new Set([...accentColors, ...grayColors]), ].filter((color) => color !== "auto"); export function generateTheme({ showComments = true, }: { showComments?: boolean; }) { return ` ${ showComments ? "/** This file is autogenerated by the script. Do not edit it manually. */" : "" } @custom-variant dark (&:where(.dark, .dark *)); @custom-variant translucent (&:where([data-panel-background="translucent"] *)); @custom-variant solid (&:where([data-panel-background="solid"] *)); @theme inline { /* colors - other */ --color-overlay: var(--color-overlay); --color-panel: var(--color-panel); --color-panel-solid: var(--color-panel-solid); --color-panel-translucent: var(--color-panel-translucent); --color-transparent: transparent; --color-background: var(--color-background); --color-whiteA-1: var(--white-a1); --color-whiteA-2: var(--white-a2); --color-whiteA-3: var(--white-a3); --color-whiteA-4: var(--white-a4); --color-whiteA-5: var(--white-a5); --color-whiteA-6: var(--white-a6); --color-whiteA-7: var(--white-a7); --color-whiteA-8: var(--white-a8); --color-whiteA-9: var(--white-a9); --color-whiteA-10: var(--white-a10); --color-whiteA-11: var(--white-a11); --color-whiteA-12: var(--white-a12); --color-blackA-1: var(--black-a1); --color-blackA-2: var(--black-a2); --color-blackA-3: var(--black-a3); --color-blackA-4: var(--black-a4); --color-blackA-5: var(--black-a5); --color-blackA-6: var(--black-a6); --color-blackA-7: var(--black-a7); --color-blackA-8: var(--black-a8); --color-blackA-9: var(--black-a9); --color-blackA-10: var(--black-a10); --color-blackA-11: var(--black-a11); --color-blackA-12: var(--black-a12); /* spacing */ --spacing-rx-1: var(--space-1); --spacing-rx-2: var(--space-2); --spacing-rx-3: var(--space-3); --spacing-rx-4: var(--space-4); --spacing-rx-5: var(--space-5); --spacing-rx-6: var(--space-6); --spacing-rx-7: var(--space-7); --spacing-rx-8: var(--space-8); --spacing-rx-9: var(--space-9); /* font size */ --text-1: var(--font-size-1); --text-2: var(--font-size-2); --text-3: var(--font-size-3); --text-4: var(--font-size-4); --text-5: var(--font-size-5); --text-6: var(--font-size-6); --text-7: var(--font-size-7); --text-8: var(--font-size-8); --text-9: var(--font-size-9); /* line height */ --text-1--line-height: var(--line-height-1); --text-2--line-height: var(--line-height-2); --text-3--line-height: var(--line-height-3); --text-4--line-height: var(--line-height-4); --text-5--line-height: var(--line-height-5); --text-6--line-height: var(--line-height-6); --text-7--line-height: var(--line-height-7); --text-8--line-height: var(--line-height-8); --text-9--line-height: var(--line-height-9); --leading-1: var(--line-height-1); --leading-2: var(--line-height-2); --leading-3: var(--line-height-3); --leading-4: var(--line-height-4); --leading-5: var(--line-height-5); --leading-6: var(--line-height-6); --leading-7: var(--line-height-7); --leading-8: var(--line-height-8); --leading-9: var(--line-height-9); /* letter spacing */ --text-1--letter-spacing: var(--letter-spacing-1); --text-2--letter-spacing: var(--letter-spacing-2); --text-3--letter-spacing: var(--letter-spacing-3); --text-4--letter-spacing: var(--letter-spacing-4); --text-5--letter-spacing: var(--letter-spacing-5); --text-6--letter-spacing: var(--letter-spacing-6); --text-7--letter-spacing: var(--letter-spacing-7); --text-8--letter-spacing: var(--letter-spacing-8); --text-9--letter-spacing: var(--letter-spacing-9); --tracking-1: var(--letter-spacing-1); --tracking-2: var(--letter-spacing-2); --tracking-3: var(--letter-spacing-3); --tracking-4: var(--letter-spacing-4); --tracking-5: var(--letter-spacing-5); --tracking-6: var(--letter-spacing-6); --tracking-7: var(--letter-spacing-7); --tracking-8: var(--letter-spacing-8); --tracking-9: var(--letter-spacing-9); /* font weight */ --font-weight-light: 300; --font-weight-regular: 400; --font-weight-normal: 400; --font-weight-normal: 500; --font-weight-medium: 700; /* border radius */ --radius-1: var(--radius-1); --radius-2: var(--radius-2); --radius-3: var(--radius-3); --radius-4: var(--radius-4); --radius-5: var(--radius-5); --radius-6: var(--radius-6); --radius-item: max(var(--radius-2),var(--radius-full)); --radius-full: 9999px; /* shadow */ --shadow-1: var(--shadow-1); --shadow-2: var(--shadow-2); --shadow-3: var(--shadow-3); --shadow-4: var(--shadow-4); --shadow-5: var(--shadow-5); --shadow-6: var(--shadow-6); /* colors - all */ ${allColors ?.map((key) => ` --color-${key}-1: var(--${key}-1); --color-${key}-2: var(--${key}-2); --color-${key}-3: var(--${key}-3); --color-${key}-4: var(--${key}-4); --color-${key}-5: var(--${key}-5); --color-${key}-6: var(--${key}-6); --color-${key}-7: var(--${key}-7); --color-${key}-8: var(--${key}-8); --color-${key}-9: var(--${key}-9); --color-${key}-10: var(--${key}-10); --color-${key}-11: var(--${key}-11); --color-${key}-12: var(--${key}-12); --color-${key}A-1: var(--${key}-a1); --color-${key}A-2: var(--${key}-a2); --color-${key}A-3: var(--${key}-a3); --color-${key}A-4: var(--${key}-a4); --color-${key}A-5: var(--${key}-a5); --color-${key}A-6: var(--${key}-a6); --color-${key}A-7: var(--${key}-a7); --color-${key}A-8: var(--${key}-a8); --color-${key}A-9: var(--${key}-a9); --color-${key}A-10: var(--${key}-a10); --color-${key}A-11: var(--${key}-a11); --color-${key}A-12: var(--${key}-a12); --color-${key}-contrast: var(--${key}-contrast); --color-${key}-surface: var(--${key}-surface); --color-${key}-track: var(--${key}-track); --color-${key}-indicator: var(--${key}-indicator); `.trimEnd() ) .join("\n")} /* breakpoints */ --breakpoint-xs: 520px; --breakpoint-sm: 768px; --breakpoint-md: 1024px; --breakpoint-lg: 1280px; --breakpoint-xl: 1640px; } `.trim(); } export function generateThemeWithImports() { return ` /** This file is autogenerated by the script. Do not edit it manually. */ @layer theme, base, radix-themes, components, utilities; @import 'tailwindcss'; @import '@radix-ui/themes/styles.css' layer(radix-themes); ${generateTheme({ showComments: false })} `.trim(); }