// modifiers for skin tones on the Fitzpatrick scale
const modifiers = [
'\u{1f3fb}', // skin type 1-2
'\u{1f3fc}', // skin type 3
'\u{1f3fd}', // skin type 4
'\u{1f3fe}', // skin type 5
'\u{1f3ff}', // skin type 6
];
// baby emoji with fitzpatrick skin tone 4
const baby_4 = 'πΆπ½';
// replaces any skin tone modifiers with the given modifier
// if no modifier is provided, existing modifiers are removed
function replaceModifier (emoji, modifier) {
let ret = emoji;
for(let i = 0; i < modifiers.length; i++) {
ret = `${ret}`.split(modifiers[i]).join(modifier || '');
}
return ret;
}
const baby = replaceModifier(baby_4, '');
// πΆ
console.log(baby_4);
// change modifiers
for(let i = 0; i < modifiers.length; i++) {
console.log(replaceModifier(baby_4, modifiers[i]));
}
// πΆπ»
// πΆπΌ
// πΆπ½
// πΆπΎ
// πΆπΏ
// add skin tone modifier to emoji with no skin tone
// supports ZWJ sequences
function addModifier(emoji, baseEmoji, modifier) {
return emoji.split(baseEmoji).join(baseEmoji + modifier);
}
const peopleHoldingHands = 'π§βπ€βπ§';
// π§βπ€βπ§
const person = 'π§';
// add modifiers
for(let i = 0; i < modifiers.length; i++) {
console.log(addModifier(peopleHoldingHands, person, modifiers[i]));
}
// π§π»βπ€βπ§π»
// π§πΌβπ€βπ§πΌ
// π§π½βπ€βπ§π½
// π§πΎβπ€βπ§πΎ
// π§πΏβπ€βπ§πΏ
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.