@kokojer/react-responsive
v1.1.2
Published
This package provides access to the hook and the "MediaQuery" component for managing the adaptive
Downloads
6
Readme
React-responsive
This package provides access to the hook and the "MediaQuery" component for managing the adaptive
Usage
With hook:
import React from 'react'
import { useMediaQuery } from '@kokojer/react-responsive'
const Example = () => {
const isDesktopOrLaptop = useMediaQuery({
query: '(min-width: 1224px)'
})
const isBigScreen = useMediaQuery({ query: '(min-width: 1824px)' })
const isTabletOrMobile = useMediaQuery({ query: '(max-width: 1224px)' })
const isPortrait = useMediaQuery({ query: '(orientation: portrait)' })
const isRetina = useMediaQuery({ query: '(min-resolution: 2dppx)' })
return <div>
<h1>Device Test!</h1>
{isDesktopOrLaptop && <p>You are a desktop or laptop</p>}
{isBigScreen && <p>You have a huge screen</p>}
{isTabletOrMobile && <p>You are a tablet or mobile phone</p>}
<p>Your are in {isPortrait ? 'portrait' : 'landscape'} orientation</p>
{isRetina && <p>You are retina</p>}
</div>
}
With component:
import MediaQuery from '@kokojer/react-responsive'
const Example = () => (
<div>
<h1>Device Test!</h1>
<MediaQuery minWidth={1224}>
<p>You are a desktop or laptop</p>
<MediaQuery minWidth={1824}>
<p>You also have a huge screen</p>
</MediaQuery>
</MediaQuery>
<MediaQuery minResolution="2dppx">
{/* You can also use a function (render prop) as a child */}
{(matches) =>
matches
? <p>You are retina</p>
: <p>You are not retina</p>
}
</MediaQuery>
</div>
)
Available props and their types:
{
orientation?: "landscape" | "portrait";
minResolution?: number | `${number}dppx`; //value in dppx
maxResolution?: number | `${number}dppx`; //value in dppx
minWidth?: number; //value in px
maxWidth?: number; //value in px
minHeight?: number; //value in px
maxHeight?: number; //value in px
}