You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1022 B
41 lines
1022 B
// @flow
|
|
|
|
/**
|
|
* Generates a media query to target HiDPI devices.
|
|
*
|
|
* @example
|
|
* // Styles as object usage
|
|
* const styles = {
|
|
* [hiDPI(1.5)]: {
|
|
* width: 200px;
|
|
* }
|
|
* }
|
|
*
|
|
* // styled-components usage
|
|
* const div = styled.div`
|
|
* ${hiDPI(1.5)} {
|
|
* width: 200px;
|
|
* }
|
|
* `
|
|
*
|
|
* // CSS as JS Output
|
|
*
|
|
* '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
|
* only screen and (min--moz-device-pixel-ratio: 1.5),
|
|
* only screen and (-o-min-device-pixel-ratio: 1.5/1),
|
|
* only screen and (min-resolution: 144dpi),
|
|
* only screen and (min-resolution: 1.5dppx)': {
|
|
* 'width': '200px',
|
|
* }
|
|
*/
|
|
|
|
export default function hiDPI(ratio?: number = 1.3): string {
|
|
return `
|
|
@media only screen and (-webkit-min-device-pixel-ratio: ${ratio}),
|
|
only screen and (min--moz-device-pixel-ratio: ${ratio}),
|
|
only screen and (-o-min-device-pixel-ratio: ${ratio}/1),
|
|
only screen and (min-resolution: ${Math.round(ratio * 96)}dpi),
|
|
only screen and (min-resolution: ${ratio}dppx)
|
|
`
|
|
}
|