1.1.5 • Published 5 years ago
sass-mediaquery-singleline v1.1.5
Never again use media queries!
Install
npm install sass-mediaquery-singleline --saveHow to import
On your scss (with webpack), add:
@import '~sass-mediaquery-singleline/main';The calc is based on vw metric considering the desktop width and mobile width - whatever your metric unit (px, pt, etc) :D - providing by designer's layout (Figma, Zeplin, PSD, Sketch, etc).
So, you need to change the below sass variables to your respective layout viewport widths:
// default values
$deskSize: 1920;
$mobileSize: 375;Custom variables
// custom available variables
$deskSize: 1920 !default;
$mobileSize: 375 !default;
$mobileIdentifier: 768 !default;
$considerMinimalFont: true !default;
$minFont: 10 !default;
$minFontResolution: 1280 !default;deskSize(Number) Desktop width defined by the designer layoutmobileSize(Number) Mobile width defined by the designer layoutmobileIdentifier(Number) Defines @media mobile identifier (max-width) to start calc with third attr() function paramconsiderMinimalFont(Boolean) Defines if you want se a minimal font on tiny resolutions(minFontResolution)minFont(Number) The minimal font according to defined resolution(minFontResolution)minFontResolution(Number) Defines the resolution thatminFontwill be applied
Usage:
.an-element {
@include attr(height, 200, 140); // height 200(calculated) on desk and height 140(calculated) on mobile
@include attr(display, flex, block); // display: flex on desk and display: block on mobile
@include attr(flex-direction, false, column); // media mobile with flex-direction: column, but on desk wasn't created
@include mediaAttr(height, 100, 320); // media max-width: 320px with height: 100[calculated]
@include attr(width, 20px, 15px); // values with units will be put exactly what you type
}attr($attr, $desk, $mobile)Set an attribute responsible equals to desktop and mobile according to designer's resolutionsattr(CSS Attribute) Required The attribute name that you want responsible and/or calculateddesk(CSS Value|Number) Not Required, can befalseThe desktop resolution value according to designer's layout or a value with unit to set an exact valuemobile(CSS Value|Number) Not Required, can befalseThe mobile resolution value according to designer's layout or a value with unit to set an exact value
mediaAttr($attr, $value, $resolution)Set an attribute responsible according to defined resolution parameterattr(CSS Attribute) Required The attribute name that you need responsible and/or calculatedvalue(CSS Value|Number) Required The resolution value that will be applied toresolutionor a value with unit to set an exact valueresolution(Number|CSS Media Condition) Required The resolution that the value will be applied
Dev
If you want to dev or test this mixin, run the command below
npm run dev
Tip: Use a css minifier
Licence
sass-mediaquery-singleline is open-sourced software licensed under the MIT license.