Sass MediaScreen - рд╕реАрдПрд╕рдПрд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдореЗрдВ рдЕрдВрддрд░ рдЕрдзрд┐рдХ рдзреБрдВрдзрд▓рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рджреЛрдиреЛрдВ рд╕рдореВрд╣реЛрдВ (рдореЛрдмрд╛рдЗрд▓ рдлреЛрди, рдЯреИрдмрд▓реЗрдЯ, рд▓реИрдкрдЯреЙрдк, рдбреЗрд╕реНрдХрдЯреЙрдк) рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ (iPhone 5, iPhone X, iPad Pro 12, рдЖрджрд┐) рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдирд┐рдХрд▓рд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, SASS рдорд┐рд╢реНрд░рдг рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреИрдХ рд╣реИред рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЖрдк рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрддреЗ рд╣реИрдВред


рд╡реИрд╕реЗ, рдбреЗрдореЛ рдпрд╣рд╛рдВ рдкреЛрдХ рдХрд░реЗрдВ ред

рдЖрд░рдХреНрд╖рдг рдХреЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ:



рд╕реНрдерд╛рдкрдирд╛


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

 $ yarn add sass-mediascreen  $ npm install sass-mediascreen  $ curl -O https://raw.githubusercontent.com/gvozdb/sass-mediascreen/master/_mediascreen.scss 

рдФрд░ рдорд┐рдХреНрд╕рд┐рдВрд╕ рдХреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

 @import "mediascreen"; 

рдЙрджрд╛рд╣рд░рдг


рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 @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 } 

рдпрд╣рд╛рдБ рдЙрдкрдХрд░рдг рд╕рдореВрд╣ рд╣реИрдВ:

 @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 } 

рдФрд░ рдпреЗ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ (рд╕реЗ,) рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдорд┐рд╢реНрд░рдг рд╣реИрдВ:

 @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() {/*...*/} 

рд╕рдорд░реНрдерд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА


рд╕рдореВрд╣реЛрдВ

- рдореЛрдмрд╛рдЗрд▓реНрд╕ 320-767px - mobile , mobile-portrait , mobile-landscape
- рдЯреИрдмрд▓реЗрдЯ 768-1023px - tablet , tablet-portrait , tablet-landscape
- рд▓реИрдкрдЯреЙрдк 1024-1199px - laptop , laptop-portrait , laptop-landscape
- рдбреЗрд╕реНрдХрдЯреЙрдк> = 1200px - desktop , desktop-portrait , desktop-landscape

рдЯреЗрд▓реАрдлреЛрди

- 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 рдореИрдХреНрд╕ - iphonexsmax

рдЧреЛрд▓рд┐рдпрд╛рдБ

- рдЖрдИрдкреИрдб 1, 2, рдорд┐рдиреА, рдПрдпрд░ - ipad1 , ipad2 , ipadmini , ipadair
- iPad 3, 4, рдкреНрд░реЛ 9.7 "- ipad4 , ipadpro9 , ipadpro9
- рдЖрдИрдкреИрдб рдкреНрд░реЛ 10.5 "- ipadpro10
- рдЖрдИрдкреИрдб рдкреНрд░реЛ 11.0 "- ipadpro11

рд▓реИрдкрдЯреЙрдк

- рдЖрдИрдкреИрдб рдкреНрд░реЛ 12.9 "- ipadpro12

рдХрд╛рд╢, рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, iPad Pro 12 рдПрдХ рд▓реИрдкрдЯреЙрдк рд╣реИ!

рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛, рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╕реНрдЯрдо рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @import "mediascreen" рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде $ms-devices Sass рд╡реЗрд░рд┐рдПрдмрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 $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"; 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 @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 } 

рд╕рдВрджрд░реНрдн


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреАрдереБрдм рдкрд░
рдПрдирдкреАрдПрдо рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдбреЗрдореЛ рдкреЗрдЬ

Source: https://habr.com/ru/post/hi471044/


All Articles