UNPKG

@jscad/modeling

Version:

Constructive Solid Geometry (CSG) Library for JSCAD

27 lines (24 loc) 841 B
/** * Converts CSS color notations (string of hex values) to RGB values. * * @see https://www.w3.org/TR/css-color-3/ * @param {String} notation - color notation * @return {Array} RGB color values * @alias module:modeling/colors.hexToRgb * * @example * let mysphere = colorize(hexToRgb('#000080'), sphere()) // navy blue */ const hexToRgb = (notation) => { notation = notation.replace('#', '') if (notation.length < 6) throw new Error('the given notation must contain 3 or more hex values') const r = parseInt(notation.substring(0, 2), 16) / 255 const g = parseInt(notation.substring(2, 4), 16) / 255 const b = parseInt(notation.substring(4, 6), 16) / 255 if (notation.length >= 8) { const a = parseInt(notation.substring(6, 8), 16) / 255 return [r, g, b, a] } return [r, g, b] } module.exports = hexToRgb