This repository contains a plugin for integrating Chakra UI v3 with Refine, an open-source, headless React framework for building enterprise internal tools, admin panels, dashboards, and B2B applications. This plugin provides seamless integration, allowing you to leverage the powerful and accessible components of Chakra UI v3 within your Refine projects.
Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications.
Refine is headless by design, offering unlimited styling and customization options. Moreover, refine ships with ready-made integrations for Ant Design, Material UI, Mantine, and Chakra UI for convenience.
Refine has connectors for 15+ backend services, including REST API, GraphQL, and popular services like Airtable, Strapi, Supabase, Firebase, and NestJS.
To use Refine with Chakra UI, you need to install the following package @ffimnsr/refine-chakra-ui-v3
along with the Chakra UI packages:
npm install @ffimnsr/refine-chakra-ui-v3 @chakra-ui/react
Start a new project with Refine in seconds using the following command:
npm create refine-app@latest my-refine-app
Or you can create a new project on your browser:
Here's Refine in action, the below code is an example of a simple CRUD application using Refine + React Router + Material UI:
import { GitHubBanner, Refine, WelcomePage } from "@refinedev/core"
import {
useNotificationProvider,
RefineThemes,
ErrorComponent,
} from "@refinedev/chakra-ui-v3"
import { BrowserRouter, Routes, Route } from "react-router"
import { ChakraProvider } from "@chakra-ui/react"
import dataProvider from "@refinedev/simple-rest"
import routerProvider, {
UnsavedChangesNotifier,
DocumentTitleHandler,
} from "@refinedev/react-router"
function App() {
return (
<BrowserRouter>
<GitHubBanner />
<ChakraProvider value={RefineThemes.Default}>
<Refine
routerProvider={routerProvider}
dataProvider={dataProvider("https://api.fake-rest.refine.dev")}
notificationProvider={useNotificationProvider}
options={{
syncWithLocation: true,
warnWhenUnsavedChanges: true,
}}
>
<Routes>
<Route index element={<WelcomePage />} />
<Route path="*" element={<ErrorComponent />} />
</Routes>
<UnsavedChangesNotifier />
<DocumentTitleHandler />
</Refine>
</ChakraProvider>
</BrowserRouter>
)
}
export default App