CSS helpers that help you styling on the fly
npm install modori

CSS helpers that help you styling on the fly🚀
``bash`
npm install -S modori
HTML
`HTML`
Styles
`CSS`
[m-mr~="1vg"] > + {
margin-top: 24px;
}
HTML
`HTML`
Styles
`CSS
[m-fnt~="0.5s"] {
font-size: 8px !important;
}
[m-tal~="ce"] {
text-align: center;
}
`
HTML Text
`HTML`
Styles
`CSS
[m-pd~="1.25"] {
padding: 32px;
}
[m-pd~="0.5b!"] {
padding-bottom: 12px !important;
}
`
Attribute name format for properties: m-[shorthand name]. Where [shorthand name] is any shorthand name of css property.
``
m-pd // padding
m-mr // margin
m-tal // text-align
Attribute name format for utilities : m-utils.``
m-utils="utils1"
m-utils="utils1 utils2"
General value naming format : [label]. Where [lable] any label that present value.
``
m-mr="1t" // margin-top: 24px
m-mr="0.5t" // margin-top: 12px
m-mr="-1.5t" // margin-top: -36px
m-mr="0.75t 1b" // margin-top: 18px; margin-bottom: 24px;!important
Name format for values with flag: [label]!.``
m-mr="1t!" // margin-top: 24px !important
* Properties
* Utilites
- mean that value of attribute may be only one.
Single value: no - mean that value of attribute may be array of values.
For example, If "single value" is yes, then this construction is wrong: m-di="bl ab", but this is correct: m-di="bl". If "single value" is no, then m-di="bl ab" is correct and this m-di="bl".Several helpers have special value shorthand format. One of them is
[multiplier][param]. Where [multiplier] is number(1, 1.25, 3.5). For calculation value of property just multiply [multiplier] by the base value, where base value by default is 24px. For example, if [multipler] is 0.5, then value will be 0.5 24px = 12px*, it\s simple. [param] is parameter or side, for example, m-mr="0.5t"(margin-top: 12px), where t is shorthand for top side.[text value shorthand]:[param], for example, auto:t. * shorthand: di
* path scss: scss/display/all.scss
* path css: css/display/all.css
* single value: yes
Value : shorthand:
* block: bl
* inline: in
* inline-block: inbl
* table: ta
* table-row: tar
* table-cell: tac
* flex: fl
* none: none
* shorthand: pos
* path scss: scss/position/all.scss
* path css: css/position/all.css
* single value: yes
Value : shorthand:
* absolute: ab
* static: st
* relative: re
* fixed: fi
* shorthand: flt
* path scss: scss/float/all.scss
* path css: css/float/all.css
* single value: yes
Value : shorthand:
* left: le
* right: ri
* none: none
* shorthand: z
* path scss: scss/z-index/all.scss
* path css: css/z-index/all.css
* single value: yes
Value : shorthand:
* 9999: max
* -1: -1
* 0: 0
* 1: 1
* 2: 2
* 3: 3
* 4: 4
* 5: 5
* 6: 6
* 7: 7
* 8: 8
* 9: 9
* 10: 10
* shorthand: mr
* paths scss:
* scss/margin/all.scss - all
* scss/margin/short.scss - margin
* scss/margin/top.scss - margin-top
* scss/margin/left.scss - margin-left
* scss/margin/right.scss - margin-right
* scss/margin/bottom.scss - margin-bottom
* scss/margin/vertical.scss - vertical margins
* scss/margin/horizontal.scss - horizontal margins
* scss/margin/vgaps.scss - vertical gaps
* scss/margin/hgaps.scss - horizontal gaps
* paths css:
* css/margin/all.css - all
* css/margin/short.css - margin
* css/margin/top.css - margin-top
* css/margin/left.css - margin-left
* css/margin/right.css - margin-right
* css/margin/bottom.css - margin-bottom
* css/margin/vertical.css - vertical margins
* css/margin/horizontal.css - horizontal margins
* css/margin/vgaps.css - vertical gaps
* css/margin/hgaps.css - horizontal gaps
* single value: no
Value : [multiplier] or value shorthand:
* 0: : 0
* 6px: : 0.25
* 12px: : 0.5
* 18px: : 0.75
* 24px: : 1
* 30px: : 1.25
* 36px: : 1.5
* 42px: : 1.75
* 48px: : 2
* 54px: : 2.25
* 60px: : 2.5
* 66px: : 2.75
* 72px: : 3
* 78px: : 3.25
* 84px: : 3.5
* 90px: : 3.75
* 96px: : 4
* 102px: : 4.25
* 108px: : 4.5
* 114px: : 4.75
* 120px: : 5
* 126px: : 5.25
* 132px: : 5.5
* 138px: : 5.75
* 144px: : 6
* auto: : auto
Values have is\s negative variant: m-mr="-0.5t!"
Property : [param] shorthandmargin-top
* : tmargin-left
* : lmargin-right
* : rmargin-bottom
* : bmargin
* : omitted, m-mr="0.5"margin-top margin-bottom
* : vmargin-left margin-right
* : h
Special shorthands: vg and hg.
`HTML`
Styles
`CSS`
[m-mr~="1vg"] > + {
margin-top: 24px;
}
Examples
``
m-mr="0.5t 0.5l 0.5r 0.5b"
m-mr="0.5t 1l! 1r! 0.5b"
m-mr="-1v -1h"
m-mr="-1.25vg"
m-mr="2.25hg"
m-mr="0!"
m-mr="auto:v 5.25t"
* shorthand: pdscss/padding/all.scss
* paths scss:
* - allscss/padding/short.scss
* - paddingscss/padding/top.scss
* - padding-topscss/padding/left.scss
* - padding-leftscss/padding/right.scss
* - padding-rightscss/padding/bottom.scss
* - padding-bottomscss/padding/vertical.scss
* - vertical paddingscss/padding/horizontal.scss
* - horizontal paddingscss/padding/vgaps.scss
* - vertical gapsscss/padding/hgaps.scss
* - horizontal gapscss/padding/all.css
* paths css:
* - allcss/padding/short.css
* - paddingcss/padding/top.css
* - padding-topcss/padding/left.css
* - padding-leftcss/padding/right.css
* - padding-rightcss/padding/bottom.css
* - padding-bottomcss/padding/vertical.css
* - vertical paddingcss/padding/horizontal.css
* - horizontal paddingcss/padding/vgaps.css
* - vertical gapscss/padding/hgaps.css
* - horizontal gapsno
* single value:
Value : [multiplier]:0:
* : 06px:
* : 0.2512px:
* : 0.518px:
* : 0.7524px:
* : 130px:
* : 1.2536px:
* : 1.542px:
* : 1.7548px:
* : 254px:
* : 2.2560px:
* : 2.566px:
* : 2.7572px:
* : 378px:
* : 3.2584px:
* : 3.590px:
* : 3.7596px:
* : 4102px:
* : 4.25108px:
* : 4.5114px:
* : 4.75120px:
* : 5126px:
* : 5.25132px:
* : 5.5138px:
* : 5.75144px:
* : 6
Property : [param] shorthandpadding-top
* : tpadding-left
* : lpadding-right
* : rpadding-bottom
* : bpadding
* : omitted, m-pd="0.5"padding-top padding-bottom
* : vpadding-left padding-right
* : h
Examples
``
m-pd="0.5t 0.5l 0.5r 0.5b"
m-pd="0.5t 1l! 1r! 0.5b"
m-pd="1v 1h"
m-pd="0!"
* shorthand: fntscss/font/all.scss
* paths scss:
* - allscss/font/size.scss
* - font-sizescss/font/weight.scss
* - font-weightcss/font/all.css
* paths css:
* - allcss/font/size.css
* - font-sizecss/font/weight.css
* - font-weightno
* single value:
For font size base value is 16px.
(font size) Value : [multiplier] or value shorthand:0:
* : 04px:
* : 0.258px:
* : 0.512px:
* : 0.7516px:
* : 120px:
* : 1.2524px:
* : 1.528px:
* : 1.7532px:
* : 236px:
* : 2.2540px:
* : 2.544px:
* : 2.7548px:
* : 352px:
* : 3.2556px:
* : 3.560px:
* : 3.7564px:
* : 468px:
* : 4.2572px:
* : 4.576px:
* : 4.7580px:
* : 584px:
* : 5.2588px:
* : 5.592px:
* : 5.7596px:
* : 6inherit:
* : in
For font weight base value is 1.
(font weight) Value : [multiplier] or value shorthand:
* 100: : 100200:
* : 200300:
* : 300400:
* : 400500:
* : 500600:
* : 600700:
* : 700800:
* : 800900:
* : 900[param]
Property : shorthandfont-size
* : sfont-weight
* : w
Examples
``
m-fnt="0.5s 200w"
m-fnt="5.5s 900w"
* shorthand: lhscss/line-height/all.scss
* path scss css/line-height/all.css
* path css yes
* single value:
Value : [multiplier] or value shorthand:0:
* : 06px:
* : 0.2512px:
* : 0.518px:
* : 0.7524px:
* : 130px:
* : 1.2536px:
* : 1.542px:
* : 1.7548px:
* : 254px:
* : 2.2560px:
* : 2.566px:
* : 2.7572px:
* : 378px:
* : 3.2584px:
* : 3.590px:
* : 3.7596px:
* : 4102px:
* : 4.25108px:
* : 4.5114px:
* : 4.75120px:
* : 5126px:
* : 5.25132px:
* : 5.5138px:
* : 5.75144px:
* : 6normal:
* : nrinherit:
* : in
Property : [param] shorthandline-height
* : omitted
Examples
``
m-lh="0.5"
m-lh="3.5"
m-lh="2.75"
* shorthand: talscss/text-align/all.scss
* path scss: css/text-align/all.css
* path css: yes
* single value: left
Value : shorthand:
* : leright
* : ricenter
* : cejustify
* : juinherit
* : in
Utilises
Utilises may be one or more, for example, m-utils="utils1 crfx utils2".
* clearfix
No need description.
* shorthand: crfxscss/utils/all.scss
* path scss: css/utils/all.css
* path css:
Customization
Some helpers have _settings.scss file that contain sets of variable for customization generation of it.
For example
`SCSS`
$margin-base: 24px !dafault; // base for value
$margin-step: 1 / 4 !dafault; // step
$margin-limit: 24 !dafault; // limit of generations
$margin-import: true !dafault; // whether generate helper with !important
You may choose what to include into your project.
Sass
`SCSS
@import "~modori/scss/display/all";
@import "~modori/scss/margin/top";
@import "~modori/scss/box.sccs";
@import "~modori/scss/typography.sccs";
// or all
@import "~modori/scss/all";
`
Webpack or another bundler:
`JavaScript
import 'modori/display/all.css';
import 'modori/margin/top.css';
import 'modori/margin/left.css';
import 'modori/margin/all.css';
// or all
import 'modori/css/all';
`
HTML:
`HTML`
Variables for base sizes:
`SCSS``
$base-font-size: 16px !default; // for font-size
$base-size: 24px !default; // for margins, padding etc