--- /dev/null
+/* @flow */
+"use strict";
+
+const _ = require("lodash");
+const blurInterpolation = require("./blurInterpolation");
+const isStandardSyntaxValue = require("./isStandardSyntaxValue");
+const valueParser = require("postcss-value-parser");
+
+/**
+ * Get unit from value node
+ *
+ * Returns `null` if the unit is not found.
+ */
+module.exports = function(node /*: Object*/) /*: ?string*/ {
+ if (!node || (node && !node.value)) {
+ return null;
+ }
+
+ const value = blurInterpolation(node.value, "")
+ // ignore hack unit
+ .replace("\\0", "")
+ .replace("\\9", "")
+ // ignore decimal place
+ .replace(".", "");
+
+ if (
+ node.type !== "word" ||
+ !isStandardSyntaxValue(value) ||
+ !_.isFinite(parseInt(value)) ||
+ node.value[0] === "#"
+ ) {
+ return null;
+ }
+
+ const parsedUnit = valueParser.unit(value);
+
+ if (!parsedUnit) {
+ return null;
+ }
+
+ return parsedUnit.unit;
+};