Provide a lib like @ant-design/static-style-extract to support generate static css for SSR usage to generate raw css file for caching.
npm install @ant-design/static-style-extract
import { extractStyle } from `@ant-design/static-style-extract`;
const cssText = extractStyle(); // :where(.css-bAMboOo).ant-btn ...
use with custom theme
import { extractStyle } from `@ant-design/static-style-extract`;
const cssText = extractStyle(); // :where(.css-bAMboOo).ant-btn ...
const cssText = extractStyle((node) => (
<ConfigProvider theme={theme}>
{node}
</ConfigProvider>
));
use command line
npx @ant-design/static-style-extract@latest -i your-theme.tsx
your-theme.tsx
example
import * as React from 'react';
import { ConfigProvider } from 'antd';
const testGreenColor = '#008000';
const testRedColor = '#ff0000';
// Not a React component (Pure function)
export default (node) => (
<>
<ConfigProvider
theme={{
token: {
colorBgBase: testGreenColor,
},
}}
>
{node}
</ConfigProvider>
<ConfigProvider
theme={{
token: {
colorPrimary: testGreenColor,
},
}}
>
<ConfigProvider
theme={{
token: {
colorBgBase: testRedColor,
},
}}
>
{node}
</ConfigProvider>
</ConfigProvider>
</>
)
online example: http://react-component.github.io/static-style-extract/
npm install
npm start
npm test
npm run coverage
open coverage/ dir
static-style-extract is released under the MIT license.