diff --git a/.changeset/replace-inject-styles-with-style-precedence.md b/.changeset/replace-inject-styles-with-style-precedence.md new file mode 100644 index 00000000..31d64620 --- /dev/null +++ b/.changeset/replace-inject-styles-with-style-precedence.md @@ -0,0 +1,7 @@ +--- +'@youversion/platform-core': minor +'@youversion/platform-react-hooks': minor +'@youversion/platform-react-ui': minor +--- + +Replace module-level injectStyles() side effect with React 19 style precedence hoisting via YouVersionProvider. Add static CSS export at @youversion/platform-react-ui/styles.css for non-React consumers. diff --git a/AGENTS.md b/AGENTS.md index 5c0c2fc4..05a34bfe 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -98,7 +98,7 @@ pnpm --filter @youversion/platform-react-ui build **React 19.1.2 exact pinning**: pnpm overrides lock all React packages to exact version -**Tailwind CSS injection**: Auto-injected as JS constant via tsup define (no build step needed by consumers) +**Tailwind CSS injection**: Built CSS embedded as JS constant via tsup define, rendered by `YouVersionProvider` using React 19 ` + ); +} diff --git a/packages/ui/src/styles/global.css b/packages/ui/src/styles/global.css index 7cd3d0eb..a3e99a06 100644 --- a/packages/ui/src/styles/global.css +++ b/packages/ui/src/styles/global.css @@ -2,13 +2,15 @@ * Tailwind v4 CSS Layer Strategy * ============================== * All SDK styles are wrapped in custom @layer directives (yv-sdk-*) so that - * when injected into a consumer's app, they sit below unlayered author styles - * in the CSS cascade. This prevents our SDK from overriding consumer CSS. + * they sit below unlayered author styles in the CSS cascade. This prevents + * our SDK from overriding consumer CSS. * * LAYER ORDER IS CRITICAL. We declare Tailwind v4's standard layer names - * (theme, base, components, utilities) BEFORE our yv-sdk-* layers. Because - * injectStyles() appends our