react-responsive-font-size

Set your font-size according to the parent element height.

Usage no npm install needed!

<script type="module">
  import reactResponsiveFontSize from 'https://cdn.skypack.dev/react-responsive-font-size';
</script>

README

react-responsive-font-size

Set the font-size responsively according to the parent element height.

Get the package

npm

npm install react-responsive-font-size

yarn

yarn add react-responsive-font-size

Usage

This package contains two methods for setting your font-size according to the parent element height.

Provider

The easiest and prefered way is to use ResponsiveFontSize as a provider.

import { ResponsiveFontSize } from 'react-responsive-font-size'

function MyComponent() {
  return (
    <div style={{height: 400px}}>
      <ResponsiveFontSize ratio={0.5} optionsObject={{ setFontSize: true, globalVariableName: '--my-variable', lockFontSize: false }}>
        The font-size is now set to 50% the height of the parent element (200px)
      </ResponsiveFontSize>
    </div>
  )
}

Hook

The second way is to use the hook, which is used by the provider as well.

import { useResponsiveFontSize } from 'react-responsive-font-size'

function MyComponent() {
  const myRef = useResponsiveFontSize(0.5, { setFontSize: true, globalVariableName: '--my-variable', lockFontSize: false })

  return (
    <div style={{height: 400px}}>
      <div ref={myRef}>
        The font-size is now set to 50% the height of the parent element (200px)
      </div>
    </div>
  )
}

Options

You have a few options for adjusting the behavior of you font-size.

  • ratio: A number value between 0 and 1. This value is multiplied by the height of the parent container which is then set as the new font-size.

  • optionsObject: Optional settings for modifying the behavior.

    • setFontSize: Boolean. Actually set the font-size for child elements. Default: true
    • globalVariableNam: String. Set a global css variable with the name you gave it. Default: null
    • lockFontSize: Boolean. Lock the current font-size. Disables responive behavior. Default: false

Contributing

Feel free to open issues or pull requests in the GitHub repository.