dfcreative/mucss

View on GitHub
margin.js

Summary

Maintainability
A
3 hrs
Test Coverage
/**
 * Get margins of an element.
 * @module mucss/margins
 */

var parse = require('./parse-value');
var Rect = require('./rect');

/**
 * Return margins of an element.
 *
 * @param    {Element}   el   An element which to calc margins.
 * @return   {Object}   Paddings object `{top:n, bottom:n, left:n, right:n}`.
 */
module.exports = function(el){
    if (el === window) return Rect();

    if (!(el instanceof Element)) throw Error('Argument is not an element');

    var style = window.getComputedStyle(el);

    return Rect(
        parse(style.marginLeft),
        parse(style.marginTop),
        parse(style.marginRight),
        parse(style.marginBottom)
    );
};