chore: configure Tailwind 4 and align lib tsconfigs

Wire Tailwind CSS 4 in the portal-shell app per ADR-0016 (the future
host of spartan-ng components in libs/shared/ui will read from the
Tailwind tokens via the shared-tokens lib).

- pnpm add -D tailwindcss @tailwindcss/postcss postcss
- apps/portal-shell/postcss.config.js declares @tailwindcss/postcss
- apps/portal-shell/src/styles.scss renamed to styles.css and now
  contains a single @import 'tailwindcss' directive. Plain CSS for the
  global file avoids the Sass @import deprecation warning that fires
  when Tailwind directives sit inside SCSS. Component-level styles can
  still use SCSS.
- apps/portal-shell/project.json styles entry updated accordingly.

Side fix: align libs/shared/tokens and libs/shared/util tsconfigs from
module: commonjs to module: esnext. The Nx @nx/js:library --bundler=
tsc generator emits commonjs by default, but tsconfig.base.json
specifies moduleResolution: bundler, which TS only allows alongside
esnext or es2015+ modules. Without the alignment, those libs failed to
build (TS5095). All apps and libs now build green.

spartan-ng wiring is intentionally NOT in this commit. spartan-ng is
currently at 0.0.1-alpha.681 - clearly pre-1.0, which trips the
project rule against pre-1.0 dependencies. ADR-0016 chose spartan-ng
with the copy-paste mitigation, but the alpha state warrants an
explicit go/no-go decision before committing the workspace to it.
This commit is contained in:
Julien Gautier
2026-04-30 17:50:35 +02:00
parent d797becc2b
commit bd8eefb44a
8 changed files with 265 additions and 15 deletions
+5
View File
@@ -0,0 +1,5 @@
module.exports = {
plugins: {
'@tailwindcss/postcss': {},
},
};
+1 -1
View File
@@ -20,7 +20,7 @@
"input": "apps/portal-shell/public"
}
],
"styles": ["apps/portal-shell/src/styles.scss"]
"styles": ["apps/portal-shell/src/styles.css"]
},
"configurations": {
"production": {
+10
View File
@@ -0,0 +1,10 @@
/*
* Global styles for portal-shell.
*
* Tailwind CSS 4 (CSS-first config). Theme tokens (palette, contrast tiers,
* spacing, motion) will be defined under @theme via the libs/shared/tokens
* library. spartan-ng components copy-pasted into libs/shared/ui will read
* from these tokens.
*/
@import 'tailwindcss';
-1
View File
@@ -1 +0,0 @@
/* You can add global styles to this file, and also import other style files */