rsnext/examples/with-patternfly/README.md
Fabian Mastenbroek 09a4fadf79
Fix PatternFly 4 example (#25356)
This change fixes the issues with the PatternFly example showing how to
use PatternFly 4 in conjunction with Next.js:

1. next-transpile-modules has been updated to 7.2.0, which adds support
   for Global CSS imports used by PatternFly 4. This eliminates the
   custom Webpack modification that were necessary previously.
2. All dependencies have been updated to the latest version.
3. Documentation has been updated to include troubleshooting steps.

Addresses #20916
2021-05-22 15:06:14 +00:00

2.5 KiB

PatternFly 4 example

This example shows how to use Next.js with the PatternFly 4 design system.

Deploy your own

Deploy the example using Vercel:

Deploy with Vercel

How to use

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example with-patternfly with-patternfly-app
# or
yarn create next-app --example with-patternfly with-patternfly-app

Deploy it to the cloud with Vercel (Documentation).

Troubleshooting

Global CSS cannot be imported from within node_modules

PatternFly 4 packages published on npm use Global CSS imports for styling of React components, which is not supported by Next.js. To workaround this issue, this example uses next-transpile-modules to transpile the packages during compilation. As a consequence, all packages that depend on @patternfly/react-styles need to be transpiled as well.

If you receive this error, verify whether all packages that depend on @patternfly/react-styles are specified in next.config.js.

PatternFly components do not appear to be styled

If your Next.js application compiles successfully, but PatternFly components in your application do not appear to be styled, make sure you have applied the global PatternFly stylesheet in pages/_app.js:

// In pages/_app.js
import App from 'next/app'
import '@patternfly/react-core/dist/styles/base.css'

...

All components styles are imported when using a PatternFly component

This is expected behavior in development mode. Tree shaking will remove these imports in production builds.