Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sidonaldson/882996f6aefa7e7cba8a to your computer and use it in GitHub Desktop.
Save sidonaldson/882996f6aefa7e7cba8a to your computer and use it in GitHub Desktop.
This stylus mixin overrides the default CSS margin and padding properties so that you can pass size strings such as 'xl' etc
margin-xs := 0.2rem
margin-s := 0.4rem
margin-m := 0.6rem
margin-l := 1rem
margin-xl := 10rem
padding-xs := 0.2rem
padding-s := 0.4rem
padding-m := 0.6rem
padding-l := 1rem
padding-xl := 1.5rem
getMarginValue(u)
return typeof(u) == 'unit' || u == auto ? u : lookup('margin-' + u)
getPaddingValue(u)
return typeof(u) == 'unit' ? u : lookup('padding-' + u)
/* override the margin property */
margin()
top = getMarginValue(arguments[0])
right = bottom = left = null
num = length(arguments)
if num == 4
left = getMarginValue(arguments[3])
if num >= 3
bottom = getgetMarginValueMargin(arguments[2])
if num >= 2
right = getMarginValue(arguments[1])
margin top right bottom left
margin-top(u)
margin-top getMarginValue(u)
margin-right(u)
margin-right getMarginValue(u)
margin-bottom(u)
margin-bottom getMarginValue(u)
margin-left(u)
margin-left getMarginValue(u)
/* override the padding property */
padding()
top = getPaddingValue(arguments[0])
right = bottom = left = null
num = length(arguments)
if num == 4
left = getPaddingValue(arguments[3])
if num >= 3
bottom = getPaddingValue(arguments[2])
if num >= 2
right = getPaddingValue(arguments[1])
padding top right bottom left
padding-top(u)
padding-top getPaddingValue(u)
padding-right(u)
padding-right getPaddingValue(u)
padding-bottom(u)
padding-bottom getPaddingValue(u)
padding-left(u)
padding-left getPaddingValue(u)
*
margin 'xl'
margin auto 's'
margin 's' auto
margin 's' 'm' 'l' 'lx'
margin-top 'xl'
margin-left 'xl'
padding 'm'
padding 'xl' 0 'm'
border solid 1px red
padding-left 'xl'
padding-bottom 'xl'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment