cssobjectjs
Version:
A Parser CSS in Javascript Vanilla
117 lines (78 loc) • 2.33 kB
JavaScript
/**
* @enum ICSS
* CSS Symbols
*/
const ICSS = {
/** Empty Character */
EMPTY: '',
/** At Character */
AT: '@',
/** Dots Character */
DOTS: ':',
/** Comma Character */
COMMA: ',',
/** Semicolon Character */
SEMICOLON: ';',
/** Break Line Character */
BREAK_LINE: '\n',
/** Important Rule Character */
IMPORTANT: '!',
/** Variable Index Characters */
VARIABLE: '--',
/** Comment Block Characters */
COMMENT: {
/** Begin Comment Block Index */
BEGIN: '/*',
/** End Comment Block Index */
END: '*/'
},
/** Block Characters */
BLOCK: {
/** Begin Block Character */
BEGIN: '{',
/** End Block Character */
END: '}',
/** Double End Block Characters */
DOUBLE_END: '}}'
},
/** Bracket Characters */
BRACKET: {
/** Begin Bracket Character */
BEGIN: '(',
/** End Bracket Character */
END: ')',
/** Empty Brackets Characters */
EMPTY: '()',
/** End Rule Bracket Characters */
END_RULE: ');'
},
/** Data URI Character */
DATA_URI: {
/** Data URI Index Character */
KEY: 'data:',
/** Data URI Characters (to replace) */
KEYS: {':': '=', ';': '&'},
/** Data URI Characters (inverted keys) */
VALUES: {'=': ':', '&': ';'}
},
/** Pseudo Characters */
PSEUDO: {
/** Pseudo Indexs Characters */
KEYS: [':', '::', '@'],
/** Pseudo Class Character */
CLASS: ':',
/** Pseudo Element Character */
ELEMENT: '::',
/** Pseudo Event Character (custom pseudo type) */
EVENT: '@'
},
/** Regex to Commments Characters */
REGEX_COMMENTS: /\/\*(\r|\n|.)*\*\//g,
/** Regex to Functions Characters */
REGEX_BRACKETS: /\(([^)]+)\)/,
/** Regex Replace to CSS Characters */
REGEX_REPLACE: (str, obj) => {
return str.replace(new RegExp(Object.keys(obj).join('|'), 'g'), i => obj[i])
}
}
export default ICSS