Next.js
Add Reflexjs to a Next.js project.
Using a starter
The easiest way to get started is to use the nextjs-starter template. This sets up everything automatically for you.
npx create-next-app -e https://github.com/reflexjs/nextjs-starter
Once your site is ready, you can run yarn dev
to start the development environment.
Add to existing site
If you're starting from scratch, create a new Next.js project using create-next-app:
npx create-next-app# oryarn create next-app
You can also add Reflexjs to an existing Nextjs site.
Install dependencies
Add reflexjs to your site.
npm i reflexjs# oryarn add reflexjs
Create a theme
Generate a theme using the Reflexjs CLI utility.
npx reflexjs --preset base
This will create a theme.js
file using the base preset at the root of your project.
Update _app.js
Create src/pages/_app.js
with the following code:
src/pages/_app.jsimport { ThemeProvider } from "reflexjs"import theme from "../src/theme"export default function App({ Component, pageProps }) {return (<ThemeProvider theme={theme}><Component {...pageProps} /></ThemeProvider>)}
Update _document.js
Add InitializeColorMode
to src/pages/_document.js
src/pages/_document.jsimport Document, { Html, Main, NextScript, Head } from "next/document"import { InitializeColorMode } from "reflexjs"export default class extends Document {render() {return (<Html lang="en"><Head /><body><InitializeColorMode /><Main /><NextScript /></body></Html>)}}
Add the Babel preset
Reflexjs uses a custom jsx
pragma to convert style props. To enable this pragma, create a .babelrc
file at the root of your project with the following:
{"presets": [["next/babel",{"preset-react": {"runtime": "automatic","importSource": "reflexjs"}}]]}
If you prefer manually enabling it, you can set the pragma in your file as follow:
pages/index.tsx/** @jsxImportSource "reflexjs" */export default function IndexPage() {return <p variant="text">Hello World!</p>}
You are now ready to start the development server using yarn dev
.