Creo que recientemente la diferencia en el tamaño de la pantalla entre diferentes grupos de dispositivos se está volviendo más borrosa. A pesar de esto, intenté escribir una herramienta para determinar grupos de dispositivos (teléfonos móviles, tabletas, computadoras portátiles, computadoras de escritorio) y dispositivos específicos (iPhone 5, iPhone X, iPad Pro 12, etc.). Resultó, en mi opinión, un paquete bastante conveniente de SASS mixins. Y lo que es más importante, la herramienta es fácil de usar y también le permite expandir la lista de dispositivos a los suyos sin editar la fuente.

Por cierto, 
mete la demo aquí .
Solo un par de reservas:
- No verifique la adaptabilidad en el navegador DevTools, los tamaños de los lados en la orientación horizontal del dispositivo no se calculan allí correctamente . Es mejor verificar en un dispositivo real o en un simulador (por ejemplo, xCode Simulator).
- Use group-css-media-queries para combinar las mismas consultas de medios. Sin él, se genera una gran cantidad de código @media ...repetitivo@media ...si por conveniencia usamos el@include device()en cada selector por separado. Gulp wrapper - gulp-group-css-media-queries .
Instalación
Descargue la biblioteca:
 $ yarn add sass-mediascreen  $ npm install sass-mediascreen  $ curl -O https://raw.githubusercontent.com/gvozdb/sass-mediascreen/master/_mediascreen.scss 
Y conecte los mixins a nuestra aplicación:
 @import "mediascreen"; 
Ejemplos
Así es como puede probar dispositivos específicos:
 @include device(iPhone5, portrait) { // portrait orientation // iPhone 5, iPhone 5s, iPhone 5c, iPhone SE } @include device(iPhone6Plus iPhoneXR, landscape) { // landscape orientation // iPhone 6+, iPhone 6s+, iPhone 7+, iPhone 8+, iPhone XR } @include device(iPadPro10 iPadPro11 iPadPro12) { // all orientations // iPad Pro 10.5, iPad Pro 11, iPad Pro 12.9 } 
Aquí están los grupos de dispositivos:
 @include device(desktop) { // all orientations // desktop } @include device(mobile tablet laptop, landscape) { // landscape orientation // mobile, tablet, laptop } @include device(mobile-landscape tablet laptop) { // landscape orientation // mobile // all orientations // tablet, laptop } @include device(mobile-landscape tablet laptop, portrait) { // landscape orientation // mobile // portrait orientation // tablet, laptop } 
Y estos son mixins estándar para verificar los tamaños de pantalla (de, a) y la orientación actual del dispositivo:
 @include screen(min-width, max-width, orientation) {/*...*/} @include min-screen(width) {/*...*/} @include max-screen(width) {/*...*/} @include screen-height(min-height, max-height, orientation) {/*...*/} @include min-screen-height(height) {/*...*/} @include max-screen-height(height) {/*...*/} @include landscape() {/*...*/} @include portrait() {/*...*/} 
Lista de dispositivos compatibles
Grupos- Móviles 320-767px - 
mobile , 
mobile-portrait mobile-landscape- Tabletas 768-1023px - 
tablet , 
tablet-portrait , 
tablet-landscape- Portátiles 1024-1199px - 
laptop , 
laptop-portrait , 
laptop-landscape- Escritorios> = 1200px - 
desktop , 
desktop-portrait , 
desktop-landscapeTeléfonos- iPhone 5, 5s, 5c, SE - 
iphone5 , 
iphone5s , 
iphone5c , 
iphonese- iPhone 6, 6s, 7, 8 - 
iphone6 , 
iphone6s , 
iphone7 , 
iphone8- iPhone 6+, 6s +, 7+, 8+ - 
iphone6plus , 
iphone6splus , 
iphone7plus , 
iphone8plus- iPhone X, XS - 
iphonex , 
iphonexs- iPhone XR - 
iphonexr- iPhone XS Max - 
iphonexsmaxTabletas- iPad 1, 2, Mini, Aire - 
ipad1 , 
ipad2 , 
ipadmini , 
ipadair- iPad 3, 4, Pro 9.7 "- 
ipad4 , 
ipadpro9 , 
ipadpro9- iPad Pro 10.5 "- 
ipadpro10- iPad Pro 11.0 "- 
ipadpro11Laptops- iPad Pro 12.9 "- 
ipadpro12¡Ay, en términos de tamaño de pantalla, el iPad Pro 12 es una computadora portátil!Ampliación de la lista de dispositivos.
Como dije anteriormente, puede agregar soporte para dispositivos personalizados o grupos de dispositivos sin editar la fuente de la biblioteca. Para hacer esto, antes de importar 
@import "mediascreen" , debe declarar la variable Sass 
$ms-devices con una lista de sus dispositivos:
 $ms-devices: ( desktop-sm: ( group: true, //   -   min: 1200px, max: 1919px, ), desktop-md: ( group: true, min: 1920px, max: 2879px, ), desktop-lg: ( group: true, min: 2880px, ), pixel2xl: ( group: false, //   -   width: 411px, // or 412px?.. height: 823px, pixel-ratio: 3.5, ), macbook12: ( group: false, orientation: landscape, width: 1440px, height: 900px, pixel-ratio: 2, ), imac27: ( group: false, orientation: landscape, width: 5120px, height: 2880px, ), ); @import "mediascreen"; 
Después de eso, puede verificar sus dispositivos, así como los dispositivos de biblioteca estándar:
 @include device(desktop-sm) { // desktop-sm } @include device(desktop-md) { // desktop-md } @include device(desktop-lg) { // desktop-lg } @include device(Pixel2XL, landscape) { // landscape orientation // Google Pixel 2XL } @include device(MacBook12) { // landscape orientation // MacBook 12 } @include device(iMac27) { // landscape orientation // iMac 27 } 
Referencias
Biblioteca en githubBiblioteca en el repositorio de NpmPágina de demostración