What is the most adequate way of styling Refine projects?

Im currently working on a project that uses Ant Design and I'm wondering what is the best way to style it. In files generated with Swizzle, I see style.ts files containing objects with css properties. Is this the norm or can css modules be used?
3 Replies
kapa.ai
kapa.ai4mo ago
Hi @Chrystian Ferreira. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Refine provides an integration package for Ant Design, which offers a set of ready-to-use components and hooks that connect Refine with Ant Design components. This integration is not a replacement for the Ant Design package, but it provides components and hooks for easier usage of Ant Design components in combination with Refine's features and functionalities [^1^]. Refine has moved away from including CSS files in the package. Instead, it supports importing on demand with CSS-in-JS. The original styles/antd.less has been abandoned. If you need to reset some basic styles, you should import @refinedev/antd/dist/reset.css [^2^]. You can customize the design and theme in your project with Refine. For example, Refine provides a set of carefully crafted themes for Ant Design which outputs a nice UI with Refine's components with light and dark theme support. These themes are exported as RefineThemes object from the @refinedev/antd package and can be used in <ConfigProvider /> component of Ant Design [^3^]. If you need to customize components beyond what's provided out of the box, Refine offers a feature called "swizzling". This allows you to customize the components and use your own components. The swizzle command creates a copy of the component in your project's src directory, allowing you to customize as your needs [^4^][^5^]. Here's an example of how to swizzle a component:
npm run refine swizzle
npm run refine swizzle
Then select the package and the component you want to swizzle [^6^]. In terms of styling, you can use the method that best suits your needs and preferences, whether that's CSS-in-JS, CSS modules, or another approach. The key is to ensure that your styling approach works well with the Ant Design and Refine components you're using. ^1^]: [Refine Ant Design Introduction (https://refine.dev/docs/ui-integrations/ant-design/introduction) ^2^]: [Refine Ant Design Migration Guide (https://refine.dev/docs/ui-integrations/ant-design/migration-guide#updating-imports) ^3^]: [Refine Ant Design Predefined Components and Views (https://refine.dev/docs/ui-integrations/ant-design/introduction#predefined-components-and-views) ^4^]: [Refine Ant Design ThemedLayout Customizing with Swizzle (https://refine.dev/docs/ui-integrations/ant-design/components/themed-layout#customizing-with-swizzle) ^5^]: [Refine CLI Swizzle (https://refine.dev/docs/packages/cli#swizzle) ^6^]: [Refine Ant Design ThemedLayout Usage (https://refine.dev/docs/ui-integrations/ant-design/components/themed-layout#usage-1) ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai4mo ago
<@1072217596058939412> kapa.ai is still learning and improving, please let us know how it did by reacting below
uncomfortable-jade
uncomfortable-jade4mo ago
Hello @Chrystian Ferreira, refine doesn't impose any way to style your app. If you are using Ant Design, you should check Ant Design docs.