postcss-ellipsis
Version:
A postcss plugin to add automatically add overflow: hidden and white-space: nowrap when text-overflow: ellipsis is declared
33 lines (31 loc) • 1.29 kB
JavaScript
/**
* POSTCSS ELLIPSIS
* A postcss plugin to add automatically add overflow: hidden and white-space: nowrap when text-overflow: ellipsis is declared
* version 1.0.0
* author Arpad Hegedus <hegedus.arpad@gmail.com>
*/
// load dependencies
let postcss = require('postcss'),
util = require('postcss-plugin-utilities');
// export plugin
module.exports = postcss.plugin('postcss-visibility', options => {
return css => {
css.walkDecls('text-overflow', decl => {
let parent = decl.parent;
if (decl.value === 'ellipsis') {
let display = 'block',
width = null;
parent.walkDecls('width', d => { width = d.value; });
parent.walkDecls('display', d => {
display = null;
if (d.value !== 'block' && (d.value === 'inline-block' && !width)) {
d.value = 'block';
}
});
if (display) { decl.before({ prop: 'display', value: display }); }
decl.before({ prop: 'overflow', value: 'hidden' });
decl.before({ prop: 'white-space', value: 'nowrap' });
}
});
}
});