node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


React aspect ratio component

npm version npm downloads

Small component that allows you to create responsive elements that will keep their ratio on different screen sizes.

It uses standard CSS hack to achieve it. Please note that Ratio ads wrapper element which makes things easier in certain scenarios.



import React, { Component } from 'react';
import Ratio from 'react-ratio';
export default class Example extends Component {
  render() {
    return (
      <Ratio ratio={ 16 / 9 }>


  • ratio, default 1

    Aspect ratio value. E.g. for 16:9 ratio, pass 16 / 9.

    Zero will default it back to one.

  • className, default ''

    Wrapper element class name

  • ratioClassName, default ''

    Helper div class name.

  • contentClassName, default ''

    Content div class name

  • style, default {}

    Object with CSS styles for the wrapper element. By default it adds display: block but it can be overridden.

  • tagName, default 'div'

    HTML element to be used for the wrapper element. E.g. you can pass a or aside.

All other props will be pass to the wrapper element. This is useful for passing accessibility props like aria-label or tabIndex.