Skip to content

Media

Responsive media query helpers for Emotion CSS-in-JS. Uses BREAKPOINTS values.

Also known as: responsive, breakpoints, media queries, responsive design, screen size, mobile first

When to use

  • Use mediaUp for mobile-first responsive styles.
  • Use mediaDown to target small screens.
  • Use mediaBetween to target a specific range. For raw breakpoint values, see BREAKPOINTS.

Import

tsx
import { mediaUp, mediaDown, mediaBetween } from '@vacano/ui'

mediaUp

Media query for screens at or above a breakpoint.

tsx
import { mediaUp } from '@vacano/ui'
import styled from '@emotion/styled'

const Container = styled.div`
  padding: 16px;

  ${mediaUp('md')} {
    padding: 24px;
  }

  ${mediaUp('lg')} {
    padding: 32px;
  }
`

Generates: @media (min-width: 768px), @media (min-width: 1024px)

mediaDown

Media query for screens below a breakpoint.

tsx
import { mediaDown } from '@vacano/ui'
import styled from '@emotion/styled'

const Sidebar = styled.aside`
  width: 280px;

  ${mediaDown('md')} {
    display: none;
  }
`

Generates: @media (max-width: 767px)

mediaBetween

Media query for screens between two breakpoints.

tsx
import { mediaBetween } from '@vacano/ui'
import styled from '@emotion/styled'

const Layout = styled.div`
  ${mediaBetween('md', 'lg')} {
    grid-template-columns: 1fr 1fr;
  }
`

Generates: @media (min-width: 768px) and (max-width: 1023px)

Breakpoint Values

KeymediaUpmediaDown
smmin-width: 640pxmax-width: 639px
mdmin-width: 768pxmax-width: 767px
lgmin-width: 1024pxmax-width: 1023px
xlmin-width: 1280pxmax-width: 1279px
2xlmin-width: 1536pxmax-width: 1535px

Breakpoint Type

The Breakpoint type is derived from keyof typeof BREAKPOINTS:

tsx
type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl'

This type is internal (not exported). All three functions accept Breakpoint values.

API Reference

FunctionParamsReturnsOutput format
mediaUp(bp)bp: Breakpointstring@media (min-width: {BREAKPOINTS[bp]}px)
mediaDown(bp)bp: Breakpointstring@media (max-width: {BREAKPOINTS[bp] - 1}px)
mediaBetween(min, max)min: Breakpoint, max: Breakpointstring@media (min-width: {BREAKPOINTS[min]}px) and (max-width: {BREAKPOINTS[max] - 1}px)

Released under the MIT License.