Skip to content

Instantly share code, notes, and snippets.

@freshsnippets
Created March 23, 2016 20:37
Show Gist options
  • Save freshsnippets/8410e10f3e41eb4c9ab1 to your computer and use it in GitHub Desktop.
Save freshsnippets/8410e10f3e41eb4c9ab1 to your computer and use it in GitHub Desktop.
Advanced type checking in sass
////
// A collection of function for advanced type checking
// @author Hugo Giraudel
// @ref https://gist.github.com/HugoGiraudel/2933ef053ae0bf70ad8b
////
@function is-number($value)
@return type-of($value) == "number"
@function is-time($value)
@return is-number($value) and index("ms" "s", unit($value)) != null
@function is-duration($value)
@return is-time($value)
@function is-angle($value)
@return is-number($value) and index("deg" "rad" "grad" "turn", unit($value)) != null
@function is-frequency($value)
@return is-number($value) and index("Hz" "kHz", unit($value)) != null
@function is-integer($value)
@return is-number($value) and round($value) == $value
@function is-relative-length($value)
@return is-number($value) and index("em" "ex" "ch" "rem" "vw" "vh" "vmin" "vmax", unit($value)) != null
@function is-absolute-length($value)
@return is-number($value) and index("cm" "mm" "in" "px" "pt" "pc", unit($value)) != null
@function is-percentage($value)
@return is-number($value) and unit($value) == "%"
@function is-length($value)
@return is-relative-length($value) or is-absolute-length($value)
@function is-resolution($value)
@return is-number($value) and index("dpi" "dpcm" "dppx", unit($value)) != null
@function is-position($value)
@return is-length($value) or is-percentage($value) or index("top" "right" "bottom" "left" "center", $value) != null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment