Skip to content
This repository has been archived by the owner on Mar 29, 2024. It is now read-only.
/ crepe-ui Public archive

🥞 a Chakra UI port using Panda + Ark-UI

Notifications You must be signed in to change notification settings

astahmer/crepe-ui

Repository files navigation

repo archived cause Chakra-ui V3 is very close and now uses the same styling API as Panda, which means you can just pick recipe/slot recipes from there and almost copy/paste components ! -> Chakra imports recipes using useRecipe, with Panda those will be generated in styled-system/recipes

ex: button recipe https://github.com/chakra-ui/chakra-ui/blob/1195171b9ec8b351daf7d36be3f012ccf63ba61d/packages/react/src/theme/recipes/button.ts button component https://github.com/chakra-ui/chakra-ui/blob/1195171b9ec8b351daf7d36be3f012ccf63ba61d/packages/react/src/components/button/button.tsx

🥞 crepe-ui, a Chakra UI port using Panda+Ark-UI

  • pnpm i
  • pnpm dev
  • cd packages/components
  • pnpm demo
Screenshot 2024-01-03 at 23 48 32 Screenshot 2024-01-03 at 23 48 40

We only need to watch/rebuild the packages/preset-chakra due to using custom conditions, since Panda doesn't support them yet.

Updating the packages/preset-chakra will trigger a static.css file generation, which is used by the demo.

TODO

  • update Ark-UI and remove all the pasted UseXXXProps types when v1 is released

  • create other frameworks implementation, only the React one is done

  • for each frameworks, export 2 different versions:

    1. for Panda users, with @crepe-ui/styled-system as external dependency
    2. for non-Panda users, with everything bundled
  • make a version of the components that is RSC-compatible = without createStyleContext

    • could use defineParts
    • or could just keep using slots but with explicit props passing

Missing Chakra components

Editable, Number Input, Pin Input, Radio, Range Slider, Slider, Stat, Circular Progress, Spinner, Toast, Highlight, Drawer, Menu, Accordion, Breadcrumb, Stepper