create: scaffold's unlayered body styles defeat its own @layer base rules (and any shadcn theme)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- css, react, tailwindcss
- Ambito
- build-system, frontend, tooling
Direzione di ricerca
Inizia con il src/styles.css generato e riproduci il problema usando il comando npx TanStack CLI create, quindi applica un preset shadcn ed esegui npm run build. Risali da src/styles.css al template dello scaffold di create e verifica che le regole di base del template e un preset applicato controllino i colori e il font di body senza essere sovrascritti da regole non appartenenti a un layer.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Which project does this relate to?
Create Tanstack App
Describe the bug
The generated src/styles.css has an unlayered body rule that permanently defeats the @layer base { body { … } } rule further down in the same file.
@import 'tailwindcss' sets up @layer theme, base, components, utilities. Unlayered CSS outranks all layered CSS, so in a fresh scaffold:
/* line 166 — unlayered → wins */
body {
margin: 0;
color: var(--sea-ink);
font-family: var(--font-sans);
background-color: var(--bg-base);
background: radial-gradient(...);
}
/* line 339 — layered → can never take effect */
@layer base {
body {
background-color: var(--background);
color: var(--foreground);
}
}
The @layer base block is dead code as shipped — --background and --foreground never reach body.
This becomes a functional bug with the shadcn add-on. shadcn apply --preset <code> writes its theme into those same custom properties, so applying any preset from ui.shadcn.com/create has no visible effect:
--background/--foregroundlose to--bg-base/--sea-ink- the preset's font loses too — presets emit
@layer base { html { @apply font-serif } }, which the unlayeredbody { font-family: var(--font-sans) }(line 169) overrides a { color: var(--lagoon-deep) }(line 208, unlayered) overrides the theme's link colour
The CLI prints "Preset applied successfully.", the values written are correct, and the build passes. The page just doesn't change. Reproduces with apply <code>, --only theme, and --only theme,font.
Your Example Website or App
N/A — this is a create scaffolding bug. It happens when the project is generated, so there's no app to link. See Steps to Reproduce.
Steps to Reproduce the Bug or Issue
npx @tanstack/cli@latest create demo \
--framework react --non-interactive --add-ons shadcn \
--no-examples --package-manager npm --toolchain eslint --no-git --no-intent
cd demo
# any preset code from https://ui.shadcn.com/create
npx shadcn@latest apply --preset b5VsmmRNAG -y
npm run build
grep -o "body{[^}]*}" dist/client/assets/styles-*.css
Actual output — four body rules, the shadcn one first and losing to three unlayered ones:
body{background-color:var(--background);color:var(--foreground)} /* @layer base — loses */
body{color:var(--sea-ink);background-color:var(--bg-base);background:radial-…} /* unlayered — wins */
body{background:radial-gradient(…)} /* unlayered — wins */
body{-webkit-font-smoothing:antialiased;overflow-x:hidden} /* unlayered */
Visually: the page renders the scaffold's teal/green palette and Manrope, not the selected preset's palette and font.
Expected behavior
The @layer base rules the template itself ships should be able to take effect,
and an applied shadcn preset should govern the page's colours and font.
Concretely: after shadcn apply, body should resolve to the preset's
--background / --foreground, and the preset's font should apply — instead of
being silently overridden by the scaffold's own unlayered decorative rules.
Screenshots or Videos
No response
Platform
OS: macOS 27.0 (build 26A428), Darwin 27.0.0, arm64
Node: 24.14.1
npm: 11.16.0
@tanstack/cli: 0.71.0
@tanstack/create: 0.70.0
shadcn: 4.21.0
tailwindcss: 4.1.18
vite: 8.0.0
react: 19.2.0
Additional context
No response
- Lingua principale
- TypeScript
- Stelle
- 1.3k
- Fork
- 185
- Merge medio
- 18h 45m
- PR unite (30g)
- 2
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TanStack/cli
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
Tutte le issue di TanStack/cli
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
vicharanashala/fln#563 ·