UNPKG

svg-patterns

Version:
46 lines (38 loc) 1.16 kB
'use strict'; var dom = require('virtual-dom/h'); var _require = require('../helpers'), M = _require.M, l = _require.l, pattern = _require.pattern; // credit to @riccardoscalco! // taken from https://github.com/riccardoscalco/textures/blob/ca09566cb9e2dd0bf572639a7e17a9a96717c5e1/textures.coffee#L303 var tile = function tile(s) { return M(s / 4, s / 4) + l(s / 2, s / 2) + M(s / 4, s * 3 / 4) + l(s / 2, -s / 2); }; var defaults = { size: 10, // size of the pattern fill: 'none', // any SVG-compatible color strokeWidth: .8, stroke: '#343434', // any SVG-compatible color background: null // any SVG-compatible color }; var crosses = function crosses() { var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; opt = Object.assign({}, defaults, opt); Object.assign(opt, { width: opt.size, height: opt.size, bg: opt.background, children: [dom('path', { d: tile(opt.size), fill: opt.fill, stroke: opt.stroke, 'stroke-width': opt.strokeWidth + '', 'stroke-linecap': 'square' })] }); return pattern(opt); }; module.exports = crosses;