UNPKG

@wix/design-system

Version:

@wix/design-system

316 lines (287 loc) 9.75 kB
## Feature Examples ### Size - description: <p>Adjust the component size using the <code>size</code> prop. Choose from 3 sizes:</p><li><code>medium</code> (default) - can be used in all common cases.</li><li><code>small</code> - best for dense layouts.</li><li><code>tiny</code> - should be used sparingly, for dense and narrow layouts.</li><p></p><p></p> - example: ```jsx <StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" size="medium">Medium</Badge> <Badge uppercase="false" size="small">Small</Badge> <Badge uppercase="false" size="tiny">Tiny</Badge> </StorybookComponents.Stack> </StorybookComponents.Stack>; ``` ### Type - description: <p>Control the appearance of the badge according to its priority with the <code>type</code> prop. Choose from 3 styles:</p><li><code>solid</code> (default)</li><li><code>outlined</code></li><li><code>transparent</code></li> - example: ```jsx <StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" type="solid">Solid</Badge> <Badge uppercase="false" type="outlined">Outlined</Badge> <Badge uppercase="false"type="transparent">Transparent</Badge> </StorybookComponents.Stack> </StorybookComponents.Stack>; ``` ### Skin - description: <p>Control the appearance of badges with the <code>skin</code> prop. Choose from 13 skins:</p><li><code>general</code> (default) - used for default statuses.</li><li><code>standard</code>, <code>neutralStandard</code> - used for statuses that are relevant to current user task.</li><li><code>danger</code>, <code>neutralDanger</code> - used for critical issues that require user action.</li><li><code>success</code>, <code>neutralSuccess</code> - used for success or positive status.</li><li><code>neutral</code>, <code>neutralLight</code> - used for completed or pending status, when no action is needed at the moment.</li><li><code>warning</code>, <code>warningLight</code> - used for unresolved, but not critical issues.</li><li><code>urgent</code> - used for unresolved and time sensitive issues that require user action.</li><li><code>premium</code> - used for items or functions related to Premium Plans.</li> - example: ```jsx <StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" skin="general">General</Badge> <Badge uppercase="false" skin="standard">Standard</Badge> <Badge uppercase="false" skin="danger">Danger</Badge> <Badge uppercase="false" skin="success">Success</Badge> <Badge uppercase="false" skin="neutral">Neutral</Badge> <Badge uppercase="false" skin="warning">Warning</Badge> <Badge uppercase="false" skin="urgent">Urgent</Badge> <Badge uppercase="false" skin="premium">Premium</Badge> </StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column" margin="54px 0"> <Badge uppercase="false" skin="neutralStandard">Neutral Standard</Badge> <Badge uppercase="false" skin="neutralDanger">Neutral Danger</Badge> <Badge uppercase="false" skin="neutralSuccess">Neutral Success</Badge> <Badge uppercase="false" skin="neutralLight">Neutral Light</Badge> <Badge uppercase="false" skin="warningLight">Warning Light</Badge> </StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" skin="general" type="outlined"> General </Badge> <Badge uppercase="false" skin="standard" type="outlined"> Standard </Badge> <Badge uppercase="false" skin="danger" type="outlined"> Danger </Badge> <Badge uppercase="false" skin="success" type="outlined"> Success </Badge> <Badge uppercase="false" skin="neutral" type="outlined"> Neutral </Badge> <Badge uppercase="false" skin="warning" type="outlined"> Warning </Badge> <Badge uppercase="false" skin="urgent" type="outlined"> Urgent </Badge> <Badge uppercase="false" skin="premium" type="outlined"> Premium </Badge> </StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column" margin="54px 0"> <Badge uppercase="false" skin="neutralStandard" type="outlined"> Neutral Standard </Badge> <Badge uppercase="false" skin="neutralDanger" type="outlined"> Neutral Danger </Badge> <Badge uppercase="false" skin="neutralSuccess" type="outlined"> Neutral Success </Badge> <Badge uppercase="false" skin="neutralLight" type="outlined"> Neutral Light </Badge> <Badge uppercase="false" skin="warningLight" type="outlined"> Warning Light </Badge> </StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" skin="general" type="transparent"> General </Badge> <Badge uppercase="false" skin="standard" type="transparent"> Standard </Badge> <Badge uppercase="false" skin="danger" type="transparent"> Danger </Badge> <Badge uppercase="false" skin="success" type="transparent"> Success </Badge> <Badge uppercase="false" skin="neutral" type="transparent"> Neutral </Badge> <Badge uppercase="false" skin="warning" type="transparent"> Warning </Badge> <Badge uppercase="false" skin="urgent" type="transparent"> Urgent </Badge> <Badge uppercase="false" skin="premium" type="transparent"> Premium </Badge> </StorybookComponents.Stack> </StorybookComponents.Stack>; ``` ### Letter case - description: <p>Decide whether a badge is written in all uppercase letters or in sentence case with the <code>uppercase</code> prop.</p><p></p><p>By default, badges are written in lowercase.</p> - example: ```jsx <StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge>Upper case</Badge> <Badge uppercase={false}>Lower case</Badge> </StorybookComponents.Stack> </StorybookComponents.Stack>; ``` ### Affix - description: <p>Add more context to a badge with affix icons: </p><li><code>prefixIcon</code> - used to emphasize status message.</li><li><code>suffixIcon</code> - used to emphasize statuses that trigger popovers.</li> - example: ```jsx <StorybookComponents.Stack> <StorybookComponents.Stack flexDirection="column"> <Badge uppercase="false" prefixIcon={<Icons.LockLockedSmall />}>Prefix icon</Badge> <Badge uppercase="false" suffixIcon={<Icons.ChevronDownSmall />}>Suffix icon</Badge> </StorybookComponents.Stack> </StorybookComponents.Stack>; ``` ## Common Use Case Examples ### Item status - description: <p>Use badges to communicate item status. Highlight items that require user attention. </p> - example: ```jsx () => { const records = [ { number: '#1439', total: '$105.55', status: ( <Badge size="small" skin="neutralLight"> Paid </Badge> ), }, { number: '#4152', total: '$928.41', status: ( <Badge size="small" skin="neutralLight"> Paid </Badge> ), }, { number: '#9261', total: '$710.68', status: ( <Badge size="small" skin="neutralLight"> Paid </Badge> ), }, { number: '#9359', total: '$219.78', status: ( <Badge size="small" skin="danger"> Overdue </Badge> ), }, { number: '#5560', total: '$782.01', status: ( <Badge size="small" skin="urgent"> Partially paid </Badge> ), }, { number: '#6690', total: '$406.27', status: ( <Badge size="small" skin="neutralLight"> Paid </Badge> ), }, { number: '#5948', total: '$475.22', status: ( <Badge size="small" skin="success"> Sent </Badge> ), }, ]; const secondaryAction = [ { icon: <Icons.DuplicateSmall />, text: 'Duplicate', onClick: () => {}, }, { icon: <Icons.DeleteSmall />, text: 'Delete', onClick: () => {}, }, ]; const columns = [ { title: 'Number', render: row => row.number, width: '30%', }, { title: 'Total', render: row => row.total, width: '30%', align: 'start', }, { title: 'Status', render: row => row.status, width: '30%', align: 'start', }, { render: row => ( <TableActionCell size="small" secondaryActions={secondaryAction} /> ), width: '10%', }, ]; return ( <Card> <Table data={records} columns={columns} showSelection> <TableToolbar> <TableToolbar.ItemGroup position="start"> <TableToolbar.Item> <TableToolbar.Label>7 invoices</TableToolbar.Label> </TableToolbar.Item> </TableToolbar.ItemGroup> </TableToolbar> <Table.Content /> </Table> </Card> ); }; ``` ### Promote - description: <p>Use badges to draw more attention to new or recommended features and tools.</p> - example: ```jsx <Card> <MarketingLayout title="Get listed on Google Search" description="Continue with your SEO setup checklist and connect to Google Search Console." actions={<Button size="small">Go for It</Button>} size="tiny" badge={<Badge size="small">Recommended</Badge>} image={ <Box width="100%" align="right"> <Image width="120px" src="PromotionalPromoteMarketingHomeSEO.svg" transparent /> </Box> } /> </Card>; ```