@hover/gatsby-plugin
v4.0.0
Published
Drop-in Blueprint support for Gatsby sites
Downloads
16
Readme
Contents
Installation
To use Blueprint in your Gatsby site, you need to install the plugin and its peer dependencies.
npm i @hover/gatsby-plugin @hover/blueprint @emotion/react @emotion/styled framer-motion
# or
yarn add @hover/gatsby-plugin @hover/blueprint @emotion/react @emotion/styled framer-motion
Usage
- Add
@hover/gatsby-plugin
as a plugin in your Gatsby config.
// gatsby-config.js
module.exports = {
plugins: ["@hover/gatsby-plugin"],
}
- Use Blueprint
// src/pages/index.js
import React from "react"
import { Box, Body } from "@hover/blueprint"
function IndexPage() {
return (
<Box padding={600}>
<Body size={500}>Hello World</Text>
</Box>
)
}
export default IndexPage
Plugin options
By default, this plugin adds the main context provider (BlueprintProvider
) to make all components work correctly. Any options
specified in the plugin configuration will be passed to the BlueprintProvider
.
- BlueprintProvider composes ChakraProvider, which configures the Blueprint theme and accepts ChakraProvider Props
<BlueprintProvider resetCSS={resetCSS} portalZIndex={portalZIndex}>
{element}
</BlueprintProvider>
You can disable either of these with Gatsby options:
// gatsby-config.js
module.exports = {
plugins: [
{
resolve: "@hover/gatsby-plugin",
options: {
/**
* @property {boolean} [resetCSS=false]
* if `false`, this plugin will not use `<CSSReset />
*/
resetCSS: true,
/**
* @property {number} [portalZIndex=40]
* The z-index to apply to all portal nodes. This is useful
* if your app uses a lot z-index to position elements.
*/
portalZIndex: 40,
},
},
],
}
Customizing the theme
⚠️ Note: this should only be necessary for augmenting or adding components that Blueprint does not support. Any necessary customizations should be discussed with the design systems team so we can consider incorporating them upstream in @hover/chakra-theme.
To use customize the theme in your Gatsby site, you can shadow the plugin's
src/@hover/gatsby-plugin/theme.js
file with your own theme:
// src/@hover/gatsby-plugin/theme.js
import { extendTheme } from "@hover/blueprint"
const theme = {
colors: {
primary: "rebeccapurple",
},
}
export default extendTheme(theme)
You can learn more about custom theme at Chakra UI's documentation.