12345678910111213141516171819202122232425262728293031323334353637383940 |
- // @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)
- `
- }
|