From 8181bd61ec7748fa2b69b911835c3426d232236a Mon Sep 17 00:00:00 2001
From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com>
Date: Fri, 27 Feb 2026 13:34:59 +0700
Subject: [PATCH] feat: refactor setup tailwind and css
---
apps/web/src/apps/index.tsx | 5 +-
.../src/apps/modules/example/example.page.tsx | 2 +-
apps/web/src/main.css | 4 +-
packages/ui/package.json | 16 ++++--
packages/ui/src/components/index.ts | 4 --
packages/ui/src/index.ts | 2 -
packages/ui/src/{globals.css => theme.css} | 3 --
pnpm-lock.yaml | 51 ++++---------------
8 files changed, 28 insertions(+), 59 deletions(-)
delete mode 100644 packages/ui/src/components/index.ts
delete mode 100644 packages/ui/src/index.ts
rename packages/ui/src/{globals.css => theme.css} (99%)
diff --git a/apps/web/src/apps/index.tsx b/apps/web/src/apps/index.tsx
index 2d5110c..689f224 100644
--- a/apps/web/src/apps/index.tsx
+++ b/apps/web/src/apps/index.tsx
@@ -1,6 +1,9 @@
import { lazy, Suspense } from 'react';
import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
-import { NotFound, Forbidden, Maintenance, ComingSoon } from '@repo/ui';
+import { NotFound } from '@repo/ui/components/system-pages/not-found';
+import { Forbidden } from '@repo/ui/components/system-pages/forbidden';
+import { Maintenance } from '@repo/ui/components/system-pages/maintenance';
+import { ComingSoon } from '@repo/ui/components/system-pages/coming-soon';
const AuthModule = lazy(() => import('./auth'));
const AppModule = lazy(() => import('./modules'));
diff --git a/apps/web/src/apps/modules/example/example.page.tsx b/apps/web/src/apps/modules/example/example.page.tsx
index a72890b..e6c1363 100644
--- a/apps/web/src/apps/modules/example/example.page.tsx
+++ b/apps/web/src/apps/modules/example/example.page.tsx
@@ -1,3 +1,3 @@
export default function ExamplePage() {
- return
example
;
+ return example
;
}
diff --git a/apps/web/src/main.css b/apps/web/src/main.css
index 7ca3c1a..1a6a0b5 100644
--- a/apps/web/src/main.css
+++ b/apps/web/src/main.css
@@ -1 +1,3 @@
-@import '@repo/ui/global.css';
+@import 'tailwindcss';
+@import '@repo/ui/theme.css';
+@source "../../../packages/ui/src";
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 9b4ea97..bf2fdcd 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -2,8 +2,10 @@
"name": "@repo/ui",
"version": "0.0.0",
"exports": {
- ".": "./src/index.ts",
- "./global.css": "./src/globals.css"
+ "./theme.css": "./src/theme.css",
+ "./components/*": "./src/components/*.tsx",
+ "./hooks/*": "./src/hooks/*.ts",
+ "./utils/*": "./src/utils/*.ts"
},
"license": "MIT",
"scripts": {
@@ -11,12 +13,13 @@
"test": "vitest run",
"test:watch": "vitest --watch"
},
+ "peerDependencies": {
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3"
+ },
"dependencies": {
"@repo/utils": "workspace:*",
- "@tailwindcss/vite": "^4.1.18",
"dayjs": "^1.11.19",
- "react": "^19.2.3",
- "react-dom": "^19.2.3",
"tailwind-merge": "^3.4.0",
"tailwind-variants": "^3.2.2",
"tailwindcss": "^4.1.18"
@@ -24,10 +27,13 @@
"devDependencies": {
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
+ "@tailwindcss/vite": "^4.1.18",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.2",
"eslint": "^8.57.1",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
"typescript": "5.5.4",
"vite": "^5.1.4",
"vitest": "^4.0.17"
diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts
deleted file mode 100644
index 3b8c2a2..0000000
--- a/packages/ui/src/components/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from './system-pages/coming-soon';
-export * from './system-pages/forbidden';
-export * from './system-pages/maintenance';
-export * from './system-pages/not-found';
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
deleted file mode 100644
index d1c67c0..0000000
--- a/packages/ui/src/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-// UI Components
-export * from './components';
diff --git a/packages/ui/src/globals.css b/packages/ui/src/theme.css
similarity index 99%
rename from packages/ui/src/globals.css
rename to packages/ui/src/theme.css
index f5db9ed..964e3ea 100644
--- a/packages/ui/src/globals.css
+++ b/packages/ui/src/theme.css
@@ -1,6 +1,3 @@
-@import 'tailwindcss';
-@source "../src";
-
/* =========================================
THEME VARIABLES (CENTRALIZED)
========================================= */
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ef118d1..a17388b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -164,18 +164,9 @@ importers:
'@repo/utils':
specifier: workspace:*
version: link:../utils
- '@tailwindcss/vite':
- specifier: ^4.1.18
- version: 4.1.18(vite@5.4.17)
dayjs:
specifier: ^1.11.19
version: 1.11.19
- react:
- specifier: ^19.2.3
- version: 19.2.3
- react-dom:
- specifier: ^19.2.3
- version: 19.2.3(react@19.2.3)
tailwind-merge:
specifier: ^3.4.0
version: 3.4.0
@@ -192,6 +183,9 @@ importers:
'@repo/typescript-config':
specifier: workspace:*
version: link:../configs/typescript
+ '@tailwindcss/vite':
+ specifier: ^4.1.18
+ version: 4.1.18(vite@5.4.17)
'@types/react':
specifier: ^19.2.7
version: 19.2.7
@@ -204,6 +198,12 @@ importers:
eslint:
specifier: ^8.57.1
version: 8.57.1
+ react:
+ specifier: ^19.2.3
+ version: 19.2.3
+ react-dom:
+ specifier: ^19.2.3
+ version: 19.2.3(react@19.2.3)
typescript:
specifier: 5.5.4
version: 5.5.4
@@ -1872,7 +1872,6 @@ packages:
magic-string: 0.30.21
source-map-js: 1.2.1
tailwindcss: 4.1.18
- dev: false
/@tailwindcss/oxide-android-arm64@4.1.18:
resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==}
@@ -1880,7 +1879,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-darwin-arm64@4.1.18:
@@ -1889,7 +1887,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-darwin-x64@4.1.18:
@@ -1898,7 +1895,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-freebsd-x64@4.1.18:
@@ -1907,7 +1903,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18:
@@ -1916,7 +1911,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-linux-arm64-gnu@4.1.18:
@@ -1925,7 +1919,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-linux-arm64-musl@4.1.18:
@@ -1934,7 +1927,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-linux-x64-gnu@4.1.18:
@@ -1943,7 +1935,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-linux-x64-musl@4.1.18:
@@ -1952,7 +1943,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-wasm32-wasi@4.1.18:
@@ -1960,7 +1950,6 @@ packages:
engines: {node: '>=14.0.0'}
cpu: [wasm32]
requiresBuild: true
- dev: false
optional: true
bundledDependencies:
- '@napi-rs/wasm-runtime'
@@ -1976,7 +1965,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide-win32-x64-msvc@4.1.18:
@@ -1985,7 +1973,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: false
optional: true
/@tailwindcss/oxide@4.1.18:
@@ -2004,7 +1991,6 @@ packages:
'@tailwindcss/oxide-wasm32-wasi': 4.1.18
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
- dev: false
/@tailwindcss/vite@4.1.18(vite@5.4.17):
resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==}
@@ -2015,7 +2001,6 @@ packages:
'@tailwindcss/oxide': 4.1.18
tailwindcss: 4.1.18
vite: 5.4.17
- dev: false
/@tybys/wasm-util@0.10.1:
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
@@ -3397,7 +3382,6 @@ packages:
/detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
- dev: false
/detect-newline@4.0.1:
resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==}
@@ -3470,7 +3454,6 @@ packages:
dependencies:
graceful-fs: 4.2.11
tapable: 2.3.0
- dev: false
/err-code@2.0.3:
resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
@@ -4449,7 +4432,6 @@ packages:
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- dev: false
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -4857,7 +4839,6 @@ packages:
/jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
- dev: false
/jju@1.4.0:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
@@ -4964,7 +4945,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: false
optional: true
/lightningcss-darwin-arm64@1.30.2:
@@ -4973,7 +4953,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: false
optional: true
/lightningcss-darwin-x64@1.30.2:
@@ -4982,7 +4961,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: false
optional: true
/lightningcss-freebsd-x64@1.30.2:
@@ -4991,7 +4969,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: false
optional: true
/lightningcss-linux-arm-gnueabihf@1.30.2:
@@ -5000,7 +4977,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/lightningcss-linux-arm64-gnu@1.30.2:
@@ -5009,7 +4985,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/lightningcss-linux-arm64-musl@1.30.2:
@@ -5018,7 +4993,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/lightningcss-linux-x64-gnu@1.30.2:
@@ -5027,7 +5001,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/lightningcss-linux-x64-musl@1.30.2:
@@ -5036,7 +5009,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: false
optional: true
/lightningcss-win32-arm64-msvc@1.30.2:
@@ -5045,7 +5017,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: false
optional: true
/lightningcss-win32-x64-msvc@1.30.2:
@@ -5054,7 +5025,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: false
optional: true
/lightningcss@1.30.2:
@@ -5074,7 +5044,6 @@ packages:
lightningcss-linux-x64-musl: 1.30.2
lightningcss-win32-arm64-msvc: 1.30.2
lightningcss-win32-x64-msvc: 1.30.2
- dev: false
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -6831,12 +6800,10 @@ packages:
/tailwindcss@4.1.18:
resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==}
- dev: false
/tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
- dev: false
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}