Skip to content

Commit

Permalink
fix: 🐛 tremor chart library styling was not working with shadcn
Browse files Browse the repository at this point in the history
  • Loading branch information
growupanand committed Feb 14, 2024
1 parent da36a5a commit 2b21f28
Show file tree
Hide file tree
Showing 11 changed files with 197 additions and 54 deletions.
4 changes: 4 additions & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
"@convoform/api": "workspace:*",
"@convoform/db": "workspace:*",
"@convoform/ui": "workspace:*",
"@headlessui/tailwindcss": "^0.2.0",
"@hookform/resolvers": "^3.3.2",
"@mdx-js/loader": "^3.0.0",
"@mdx-js/react": "^3.0.0",
"@next/mdx": "^14.1.0",
"@sentry/nextjs": "^7.91.0",
"@tailwindcss/typography": "^0.5.10",
"@tanstack/react-query": "^5.18.1",
"@tanstack/react-table": "^8.11.8",
"@tremor/react": "^3.13.3",
Expand All @@ -45,11 +47,13 @@
"remark-gfm": "^4.0.0",
"superjson": "^2.2.1",
"tailwind-merge": "^2.0.0",
"tailwindcss-animate": "^1.0.7",
"zod": "^3.22.4"
},
"devDependencies": {
"@convoform/eslint-config": "workspace:*",
"@convoform/tsconfig": "workspace:*",
"@tailwindcss/forms": "^0.5.7",
"@tanstack/react-query-devtools": "^5.17.21",
"@types/node": "^20",
"@types/nprogress": "^0.2.3",
Expand Down
8 changes: 7 additions & 1 deletion apps/web/postcss.config.js
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
module.exports = require("@convoform/ui/postcss.config");
// eslint-disable-next-line no-undef
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
2 changes: 1 addition & 1 deletion apps/web/src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Metadata } from "next";

import "@convoform/ui/globals.css";
import "../globals.css";
import "nprogress/nprogress.css";

import { Toaster } from "@convoform/ui/components/ui/toaster";
Expand Down
File renamed without changes.
166 changes: 166 additions & 0 deletions apps/web/src/lib/config/tailwind.config/tremor.chart.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
import headlessui_tailwindcss from "@headlessui/tailwindcss";
import tailwindcss_forms from "@tailwindcss/forms";
import type { Config } from "tailwindcss";
import colors from "tailwindcss/colors";

const config = {
content: [
"./src/**/*.{js,ts,jsx,tsx}",
"./node_modules/@tremor/**/*.{js,ts,jsx,tsx}",
],
theme: {
transparent: "transparent",
current: "currentColor",
extend: {
colors: {
// light mode
tremor: {
brand: {
faint: colors.blue[50],
muted: colors.blue[200],
subtle: colors.blue[400],
DEFAULT: colors.blue[500],
emphasis: colors.blue[700],
inverted: colors.white,
},
background: {
muted: colors.gray[50],
subtle: colors.gray[100],
DEFAULT: colors.white,
emphasis: colors.gray[700],
},
border: {
DEFAULT: colors.gray[200],
},
ring: {
DEFAULT: colors.gray[200],
},
content: {
subtle: colors.gray[400],
DEFAULT: colors.gray[500],
emphasis: colors.gray[700],
strong: colors.gray[900],
inverted: colors.white,
},
},
// dark mode
"dark-tremor": {
brand: {
faint: "#0B1229",
muted: colors.blue[950],
subtle: colors.blue[800],
DEFAULT: colors.blue[500],
emphasis: colors.blue[400],
inverted: colors.blue[950],
},
background: {
muted: "#131A2B",
subtle: colors.gray[800],
DEFAULT: colors.gray[900],
emphasis: colors.gray[300],
},
border: {
DEFAULT: colors.gray[800],
},
ring: {
DEFAULT: colors.gray[800],
},
content: {
subtle: colors.gray[600],
DEFAULT: colors.gray[500],
emphasis: colors.gray[200],
strong: colors.gray[50],
inverted: colors.gray[950],
},
},
},
boxShadow: {
// light
"tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)",
"tremor-card":
"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
"tremor-dropdown":
"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
// dark
"dark-tremor-input": "0 1px 2px 0 rgb(0 0 0 / 0.05)",
"dark-tremor-card":
"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
"dark-tremor-dropdown":
"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
},
borderRadius: {
"tremor-small": "0.375rem",
"tremor-default": "0.5rem",
"tremor-full": "9999px",
},
fontSize: {
"tremor-label": ["0.75rem", { lineHeight: "1rem" }],
"tremor-default": ["0.875rem", { lineHeight: "1.25rem" }],
"tremor-title": ["1.125rem", { lineHeight: "1.75rem" }],
"tremor-metric": ["1.875rem", { lineHeight: "2.25rem" }],
},
},
},
safelist: [
{
pattern:
/^(bg-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
variants: ["hover", "ui-selected"],
},
{
pattern:
/^(text-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
variants: ["hover", "ui-selected"],
},
{
pattern:
/^(border-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
variants: ["hover", "ui-selected"],
},
{
pattern:
/^(ring-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
},
{
pattern:
/^(stroke-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
},
{
pattern:
/^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
},
],
plugins: [headlessui_tailwindcss, tailwindcss_forms],
};

// add tremor config to your exist tailwind.config.ts
export const withTremorConfig = (existConfig: Omit<Config, "content">) => {
return {
...existConfig,
content: [...existConfig.content, ...config.content],
theme: {
...existConfig.theme,
...config.theme,
extend: {
...existConfig.theme?.extend,
...config.theme.extend,
colors: {
...existConfig.theme?.extend?.colors,
...config.theme.extend.colors,
},
boxShadow: {
...existConfig.theme?.extend?.boxShadow,
...config.theme.extend.boxShadow,
},
fontSize: {
...existConfig.theme?.extend?.fontSize,
...config.theme.extend.fontSize,
},
},
},
safelist: [...(existConfig.safelist ?? []), ...config.safelist],
plugins: [...(existConfig.plugins ?? []), ...config.plugins],
};
};

export default config;
1 change: 0 additions & 1 deletion apps/web/tailwind.config.js

This file was deleted.

21 changes: 5 additions & 16 deletions packages/ui/tailwind.config.ts → apps/web/tailwind.config.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import headlessui_tailwindcss from "@headlessui/tailwindcss";
import tailwindcss_forms from "@tailwindcss/forms";
import tailwindcss_typography from "@tailwindcss/typography";
import type { Config } from "tailwindcss";
import tailwindcssAnimate from "tailwindcss-animate";

import { withTremorConfig } from "./src/lib/config/tailwind.config/tremor.chart";

const config = {
darkMode: ["class"],
content: [
"./pages/**/*.{ts,tsx}",
"./components/**/*.{ts,tsx}",
"./app/**/*.{ts,tsx}",
"./src/**/*.{ts,tsx}",
"../../packages/ui/src/**/*.{ts,tsx}",
],
content: ["./src/**/*.{ts,tsx}", "../../packages/ui/src/**/*.{ts,tsx}"],
prefix: "",
theme: {
container: {
Expand Down Expand Up @@ -79,12 +73,7 @@ const config = {
},
},
},
plugins: [
headlessui_tailwindcss,
tailwindcss_forms,
tailwindcss_typography,
tailwindcssAnimate,
],
plugins: [tailwindcss_typography, tailwindcssAnimate],
} satisfies Config;

export default config;
export default withTremorConfig(config);
4 changes: 2 additions & 2 deletions packages/ui/components.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/globals.css",
"config": "../../apps/web/tailwind.config.ts",
"css": "../../apps/web/src/globals.css",
"baseColor": "slate",
"cssVariables": true,
"prefix": ""
Expand Down
8 changes: 0 additions & 8 deletions packages/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
},
"dependencies": {
"@headlessui/react": "^1.7.18",
"@headlessui/tailwindcss": "^0.2.0",
"@hookform/resolvers": "^3.3.2",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-alert-dialog": "^1.0.5",
Expand All @@ -28,7 +27,6 @@
"@radix-ui/react-tabs": "^1.0.4",
"@radix-ui/react-toast": "^1.1.5",
"@radix-ui/react-tooltip": "^1.0.7",
"@tailwindcss/typography": "^0.5.10",
"@tremor/react": "^3.13.3",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
Expand All @@ -37,24 +35,18 @@
"react": "^18",
"react-hook-form": "^7.48.2",
"tailwind-merge": "^2.0.0",
"tailwindcss-animate": "^1.0.7",
"vaul": "^0.8.0"
},
"devDependencies": {
"@convoform/eslint-config": "workspace:*",
"@convoform/tsconfig": "workspace:*",
"@tailwindcss/forms": "^0.5.7",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"postcss": "^8",
"tailwindcss": "^3.3.0",
"typescript": "^5"
},
"exports": {
"./globals.css": "./src/globals.css",
"./postcss.config": "./postcss.config.js",
"./tailwind.config": "./tailwind.config.ts",
"./lib/*": "./src/lib/*.ts",
"./components/*": [
"./src/components/*.tsx",
Expand Down
7 changes: 0 additions & 7 deletions packages/ui/postcss.config.js

This file was deleted.

0 comments on commit 2b21f28

Please sign in to comment.