apps/public-docsite-v9/src/Concepts/Migration/FromV0/Components/Grid.mdx
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="Concepts/Migration/from v0/Components/Grid Migration" />To help with the migration we also offer a shim that can be checked here
Before:
import { Grid } from '@fluentui/react-northstar';
const Component = () => <Grid />;
After:
import { Grid } from '@fluentui/react-migration-v0-v9';
const Component = () => <Grid />;
| `Grid` props | migrate guide |
|---|---|
| className | keep it as is |
| content | see [Migrate content prop](#migrate-content-prop) in this document |
| variables, design, styles | see [Migrate style overrides](#migrate-style-overrides) in this document |
| accessibility | see [migrate-custom-accessibility.md](?path=/docs/concepts-migration-from-v0-custom-accessibility--docs) |
| columns | see [Migrate columns and rows](#migrate-columns-and-rows) |
| rows | see [Migrate columns and rows](#migrate-columns-and-rows) |
content propMove content to JSX children.
Before:
import { Grid } from '@fluentui/react-northstar';
const Component = () => <Grid content="hi" />;
After:
import { Grid } from '@fluentui/react-migration-v0-v9';
const Component = () => <Grid>hi</Grid>;
Note: If this is your first migration, please read the general guide on how to migrate styles. Also check examples in "how to migrate styles" for Box component.
variables:Before:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-northstar';
export const Component = () => <Grid variables={{ isSomething: true }} />;
// in grid-styles.ts
export const gridStyles = {
root: ({ variables: { isSomething } }) => ({
...(isSomething && { color: 'red' }),
}),
};
After:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-migration-v0-v9';
import { useStyles } from './COMPONENT_NAME.styles.ts';
export const Component = () => {
const classes = useStyles();
return <Grid className={classes.root} />;
};
// in COMPONENT_NAME.styles.ts
import { makeStyles } from '@fluentui/react-components';
export const useStyles = makeStyles({
root: { color: 'red' },
});
Classes for grids up to 3 rows and columns are prepared in the V9 component:
Before:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-northstar';
export const Component = () => <Grid columns="2" rows="2" />;
After:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-migration-v0-v9';
export const Component = () => <Grid columns={2} rows={2} />;
If the number of columns/rows is higher than 3 or if custom template is used, style overrides need to be used:
Before:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-northstar';
export const Component = () => <Grid columns="5" rows="2fr repeat(2, 1fr)" />;
After:
// in COMPONENT_NAME.tsx
import { Grid } from '@fluentui/react-migration-v0-v9';
import { useStyles } from './COMPONENT_NAME.styles.ts';
export const Component = () => {
const classes = useStyles();
return <Grid className={classes.root} />;
};
// in COMPONENT_NAME.styles.ts
import { makeStyles, grid } from '@fluentui/react-migration-v0-v9';
export const useStyles = makeStyles({
root: {
...grid.columns('5'),
...grid.rows('2fr repeat(2, 1fr)'),
},
});