Responsive styling is supported out of the box using our default breakpoints. Our responsive support uses a mobile first approach, so @media(min-width) rules are used for all breakpoints.
Breakpoints
{ base: '0', small: '480px', medium: '768px', large: '992px', xl: '1280px', xxl: '1536px', } Example
Import any of our primitives and use either the object or array syntax to changes styles responsively. Resize your browser window window to see the styles change.
import { Flex, View } from '@aws-amplify/ui-react'; import '@aws-amplify/ui-react/styles.css'; <Flex direction={{ base: 'column', large: 'row' }}> <View width="100%" backgroundColor={{ base: 'orange', large: 'yellow' }}> Hello </View> <View width="100%" backgroundColor={['orange', 'orange', 'orange', 'yellow']}> there! </View> </Flex>; Hello
there!
Object Syntax
When using the object syntax, you can specify a style for multiple viewpoint ranges. The example below shows setting a style of orange from base (0em) through small, and yellow from medium (48em) upwards.
// View will be orange from 0 to 47em, then change to yellow from 48em upwards. <View backgroundColor={{ base: 'orange', medium: 'yellow' }} /> Or you can use the object syntax to specify styling for each breakpoint individually
// View background color and text color will change at each breakpoint <View color={{ base: 'black', small: 'black', medium: 'black', large: 'white', xl: 'white', xxl: 'white', }} backgroundColor={{ base: 'red', small: 'orange', medium: 'yellow', large: 'green', xl: 'blue', xxl: 'purple', }} > Hello </View> Hello
Array syntax
When using the array syntax, specify each breakpoint styling in order from base up to xxl. If only a few styles are specified, all the breakpoints above will have the same style.
<Text as="span" fontSize={['1rem', '2rem', '3rem', '4rem', '5rem', '6rem']} lineHeight="normal" > {' 🐈 '} </Text> <Text as="span" fontSize={['1rem', '2rem', '3rem']} lineHeight="normal"> {' 🐕 '} </Text> useBreakpointValue
A responsive design can be achieved for all properties using the useBreakpointValue hook. The hook will accept the object or array syntax and return the value of the current breakpoint.
import { Alert, AlertVariations, useBreakpointValue, } from '@aws-amplify/ui-react'; export const UseBreakpointValueObjectExample = () => { const variation = useBreakpointValue({ base: 'info', small: 'warning', medium: 'error', large: 'success', }) as AlertVariations; return <Alert variation={variation}>Responsive Alert</Alert>; }; import { Alert, AlertVariations, useBreakpointValue, } from '@aws-amplify/ui-react'; export const UseBreakpointValueArrayExample = () => { const variation = useBreakpointValue([ 'info', 'warning', 'error', 'success', ]) as AlertVariations; return <Alert variation={variation}>Responsive Alert</Alert>; };