diff --git a/apps/website/app/global.css b/apps/website/app/global.css index 22367a3..e03f7c5 100644 --- a/apps/website/app/global.css +++ b/apps/website/app/global.css @@ -1,6 +1,24 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import 'tailwindcss'; + +@config '../tailwind.config.ts'; + +/* + The default border color has changed to `currentcolor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentcolor); + } +} html { font-size: 14px; diff --git a/apps/website/app/ui/page.tsx b/apps/website/app/ui/page.tsx index 6a988e6..7f679eb 100644 --- a/apps/website/app/ui/page.tsx +++ b/apps/website/app/ui/page.tsx @@ -24,7 +24,7 @@ import { export default function UI() { return ( -
+
diff --git a/apps/website/package.json b/apps/website/package.json index 5ddb894..035ab2b 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -23,15 +23,15 @@ "@swapr-ui/eslint-config": "workspace:*", "@swapr-ui/typescript-config": "workspace:*", "@swapr/ui": "workspace:*", + "@tailwindcss/postcss": "^4.1.3", "@types/eslint": "^8.56.5", "@types/node": "latest", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", - "autoprefixer": "latest", "eslint": "^8.57.0", "eslint-config-next": "^14.2.25", "postcss": "latest", - "tailwindcss": "3.4.7", + "tailwindcss": "^4.1.3", "typescript": "^5.3.3" } } diff --git a/apps/website/postcss.config.js b/apps/website/postcss.config.js index 33ad091..52b9b4b 100644 --- a/apps/website/postcss.config.js +++ b/apps/website/postcss.config.js @@ -1,6 +1,5 @@ module.exports = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + '@tailwindcss/postcss': {}, }, } diff --git a/bun.lockb b/bun.lockb index 9b80cf6..4c2ec97 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/ui/package.json b/packages/ui/package.json index f1ac52f..e08daef 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -18,7 +18,7 @@ "scripts": { "build": "rollup -c && bun run build:tailwind", "build:storybook": "bun run build && storybook build", - "build:tailwind": "npx tailwindcss -i ./src/global.css", + "build:tailwind": "npx @tailwindcss/cli -i ./src/global.css", "lint": "eslint . --max-warnings 5", "storybook": "bun run build:tailwind && storybook dev -p 6006", "clean": "npx rimraf node_modules && npx rimraf dist && npx rimraf storybook-static && npx rimraf .turbo && npx rimraf src/tailwind.css", @@ -53,6 +53,7 @@ "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-separator": "^1.0.3", "@radix-ui/react-tooltip": "^1.1.1", + "autoprefixer": "^10.4.21", "class-variance-authority": "^0.7.0", "sonner": "^1.4.41", "tailwind-merge": "^2.2.2" @@ -72,9 +73,9 @@ "@svgr/rollup": "^8.1.0", "@swapr-ui/eslint-config": "workspace:*", "@swapr-ui/typescript-config": "workspace:*", + "@tailwindcss/postcss": "^4.1.3", "@types/eslint": "^8.56.5", "@types/react": "^18.0.15", - "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "postcss-loader": "^8.1.1", "rollup": "^2.60.0", @@ -85,7 +86,7 @@ "rollup-plugin-svg": "^2.0.0", "rollup-plugin-typescript2": "^0.36.0", "storybook": "^8.0.5", - "tailwindcss": "^3.4.1", + "tailwindcss": "^4.1.3", "tsconfig-paths-webpack-plugin": "^4.1.0", "typescript": "^5.3.3" }, @@ -93,4 +94,4 @@ "react": "^18.2.0", "react-dom": "^18.2.0" } -} \ No newline at end of file +} diff --git a/packages/ui/postcss.config.js b/packages/ui/postcss.config.js index 12a703d..483f378 100644 --- a/packages/ui/postcss.config.js +++ b/packages/ui/postcss.config.js @@ -1,6 +1,5 @@ module.exports = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + "@tailwindcss/postcss": {}, }, }; diff --git a/packages/ui/rollup.config.js b/packages/ui/rollup.config.js index be10878..b51d9ff 100644 --- a/packages/ui/rollup.config.js +++ b/packages/ui/rollup.config.js @@ -76,10 +76,7 @@ export default [ input: resolve("./src/global.css"), plugins: [ postcss({ - plugins: [ - tailwindcss({ config: "./tailwind.config.ts" }), - autoprefixer, - ], + plugins: [autoprefixer], extract: "styles.css", }), ], diff --git a/packages/ui/src/components/Button/styles.ts b/packages/ui/src/components/Button/styles.ts index c60faf9..fd9bb82 100644 --- a/packages/ui/src/components/Button/styles.ts +++ b/packages/ui/src/components/Button/styles.ts @@ -3,7 +3,7 @@ import { cva } from "class-variance-authority"; export const buttonStyles = cva( [ "flex items-center justify-center h-fit", - "select-none font-semibold text-nowrap outline-none", + "select-none font-semibold text-nowrap outline-hidden", "disabled:cursor-not-allowed disabled:ring-0 disabled:text-text-base-em", "focus:ring-[3px]", "active:ring-[3px]", diff --git a/packages/ui/src/components/ChipButton/ChipButton.tsx b/packages/ui/src/components/ChipButton/ChipButton.tsx index f14712d..d2f1e23 100644 --- a/packages/ui/src/components/ChipButton/ChipButton.tsx +++ b/packages/ui/src/components/ChipButton/ChipButton.tsx @@ -8,7 +8,7 @@ export const chipButtonStyles = cva( "select-none font-medium rounded-100 text-nowrap", "disabled:text-text-base-em disabled:cursor-not-allowed disabled:ring-0 disabled:shadow-none disabled:bg-surface-disabled-low-em disabled:border-0", "hover:bg-surface-surface-2", - "focus:outline-none", + "focus:outline-hidden", ], { variants: { diff --git a/packages/ui/src/components/Dialog/Dialog.tsx b/packages/ui/src/components/Dialog/Dialog.tsx index 499331c..591a8f0 100644 --- a/packages/ui/src/components/Dialog/Dialog.tsx +++ b/packages/ui/src/components/Dialog/Dialog.tsx @@ -29,7 +29,7 @@ const DialogOverlay = forwardRef< - + ) ); diff --git a/packages/ui/src/components/Input/Input.tsx b/packages/ui/src/components/Input/Input.tsx index f9cb737..a97f0a5 100644 --- a/packages/ui/src/components/Input/Input.tsx +++ b/packages/ui/src/components/Input/Input.tsx @@ -7,8 +7,8 @@ const inputStyles = cva( [ "flex w-full items-center text-text-high-em", "border-outline-med-em", - "group-has-[:disabled]:cursor-not-allowed group-has-[:disabled]:text-text-disabled group-has-[:disabled]:bg-surface-surface-1 group-has-[:disabled]:shadow-none group-has-[:disabled]:border-transparent", - "group-has-[:invalid]:shadow-focus-danger", + "group-has-disabled:cursor-not-allowed group-has-disabled:text-text-disabled group-has-disabled:bg-surface-surface-1 group-has-disabled:shadow-none group-has-disabled:border-transparent", + "group-has-invalid:shadow-focus-danger", ], { variants: { @@ -36,7 +36,7 @@ const inputStyles = cva( ); const inputFieldStyles = cva( - ["bg-[inherit] group-has-[:disabled]:placeholder:text-text-base-em"], + ["bg-inherit group-has-disabled:placeholder:text-text-base-em"], { variants: { variant: { @@ -97,7 +97,7 @@ const Input = forwardRef( @@ -138,12 +138,12 @@ const Input = forwardRef(
-

+

{message}

@@ -162,7 +162,7 @@ const InputField = forwardRef< return (