Installation // Example // Contribution // Acknowledgement
Run the following in your favorit console:
yarn add rescript-chakra
OR
npm install --save rescript-chakra
Don't forget install dependencies requirements of @chakra-ui/react
(Skip when exist)
yarn add @chakra-ui/react @emotion/react@^11 @emotion/styled@^11 framer-motion@^4
OR
npm i @chakra-ui/react @emotion/react@^11 @emotion/styled@^11 framer-motion@^4
Then, add rescript-chakra
in your bsconfig.json
:
-- "bs-dependencies": [],
++ "bs-dependencies": [rescript-chakra],
chakra-ui
example here// JavaScript 🟨 | TypeScript 🟦
import { Box } from "@chakra-ui/react"
// m={2} refers to the value of `theme.space[2]`
<Box m={2}>Tomato</Box>
// You can also use custom values
<Box maxW="960px" mx="auto" />
// sets margin `8px` on all viewports and `16px` from the first breakpoint and up
<Box m={[2, 3]} />
// ReScript 🟥
open Chakra
@react.component
let make = () => <>
// m={2} refers to the value of `theme.space[2]`
<Box m={#2}> {"Tomato"->React.string} </Box>
// You can also use custom values
<Box maxW={#px(960)} mx=#auto />
// sets margin `8px` on all viewports and `16px` from the first breakpoint and up
<Box m={#array([#2, #3])} />
</>
Or you can check this Example.
All of Binding for Chakra-UI isn't completed, if you want to support this project, see the list below 🙌.
This is following and closely same with Chakra-UI. See Style Props and Implemented typed Props with typed CSS-Properties use bs-css.
All of Style Props implementation is write in File:Chakra__MakeProps.res
commit
message.I'm use hygen.io for generate new component binding base on Box.res
, see _templates/Box/new/new.ejs.t
USAGE:
hygen Box new --name Name
<Flex />
hygen Box new --name Flex