1.0.10 • Published 1 year ago

@twind/next v1.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@twind/next Latest Release MIT License

Twind integration for Next.js

Installation

npm install @twind/next

Usage

Edit twind-nextjs

  1. Create a twind.config.js (optional)
/** @type {import('twind').Configuration} */
export default {
  theme: {
    extend: {
      screens: {
        standalone: { raw: '(display-mode:standalone)' },
      },
    },
  },
}
  1. Create/Update your pages/_app.js
import withTwindApp from '@twind/next/app'
import twindConfig from '../twind.config'

export default withTwindApp(twindConfig)
import withTwindApp from '@twind/next/app'

export default withTwindApp()
import withTwindApp from '@twind/next/app'
import twindConfig from '../twind.config'

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default withTwindApp(twindConfig, MyApp)
import withTwindApp from '@twind/next/app'

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default withTwindApp(MyApp)
  1. Create/Update your pages/_document.js
import withTwindDocument from '@twind/next/document'
import twindConfig from '../twind.config'

export default withTwindDocument(twindConfig)
import withTwindDocument from '@twind/next/document'

export default withTwindDocument()
import withTwindDocument from '@twind/next/document'
import twindConfig from '../twind.config'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }
}

export default withTwindDocument(twindConfig, MyDocument)
import withTwindDocument from '@twind/next/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }
}

export default withTwindDocument(MyDocument)
  1. Use twind
import NextHead from 'next/head'
import * as React from 'react'
import { tw } from 'twind'

const Home = () => (
  <>
    <NextHead>
      <meta charSet="UTF-8" />
      <title>Twind Next.js Example</title>
      <meta name="viewport" content="width=device-width, initial-scale=1" />
    </NextHead>

    <main className={tw`h-screen bg-purple-400 flex items-center justify-center`}>
      <h1 className={tw`font-bold text(center 5xl white sm:gray-800 md:pink-700)`}>
        This is Twind!
      </h1>
    </main>
  </>
)

export default Home

Usage with the shim

TL;DR replace @twind/next/app with @twind/next/shim/app and @twind/next/document with @twind/next/shim/document

Edit twind-shim-nextjs

  1. Create a twind.config.js (optional)
/** @type {import('twind').Configuration} */
export default {
  theme: {
    extend: {
      screens: {
        standalone: { raw: '(display-mode:standalone)' },
      },
    },
  },
}
  1. Create/Update your pages/_app.js
import withTwindApp from '@twind/next/shim/app'
import twindConfig from '../twind.config'

export default withTwindApp(twindConfig)
import withTwindApp from '@twind/next/shim/app'

export default withTwindApp()
import withTwindApp from '@twind/next/shim/app'
import twindConfig from '../twind.config'

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default withTwindApp(twindConfig, MyApp)
import withTwindApp from '@twind/next/shim/app'

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default withTwindApp(MyApp)
  1. Create/Update your pages/_document.js
import withTwindDocument from '@twind/next/shim/document'
import twindConfig from '../twind.config'

export default withTwindDocument(twindConfig)
import withTwindDocument from '@twind/next/shim/document'

export default withTwindDocument()
import withTwindDocument from '@twind/next/shim/document'
import twindConfig from '../twind.config'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }
}

export default withTwindDocument(twindConfig, MyDocument)
import withTwindDocument from '@twind/next/shim/document'

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }
}

export default withTwindDocument(MyDocument)
  1. Use twind
import NextHead from 'next/head'
import * as React from 'react'

const Home = () => (
  <>
    <NextHead>
      <meta charSet="UTF-8" />
      <title>Twind Next.js Example</title>
      <meta name="viewport" content="width=device-width, initial-scale=1" />
    </NextHead>

    <main className="h-screen bg-purple-400 flex items-center justify-center">
      <h1 className="font-bold text(center 5xl white sm:gray-800 md:pink-700)">This is Twind!</h1>
    </main>
  </>
)

export default Home

License

MIT

1.0.10

1 year ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago