DEV Community

Cover image for Alternating Case & Small Caps - How Unicode Text Styling Works in JavaScript
TechMind
TechMind

Posted on • Originally published at techmind.click

Alternating Case & Small Caps - How Unicode Text Styling Works in JavaScript

Two of the most requested text styles for social media - alternating case and small caps - are easy to implement in JavaScript. Here is how they work under the hood.

Alternating Case - Pure String Logic

No Unicode needed. Just alternate the casing on each character:

javascriptfunction toAlternatingCase(text) {
  return [...text]
    .map((char, i) =>
      i % 2 === 0
        ? char.toLowerCase()
        : char.toUpperCase()
    )
    .join('');
}

toAlternatingCase("Hello World");
// → "hElLo wOrLd"
Enter fullscreen mode Exit fullscreen mode

Note: spaces and punctuation count as characters in the index — so spacing affects the pattern slightly. Some implementations skip non-alpha characters:

javascriptfunction toAlternatingCaseSkipSpaces(text) {
  let alphaIndex = 0;
  return [...text].map(char => {
    if (!/[a-zA-Z]/.test(char)) return char;
    return alphaIndex++ % 2 === 0
      ? char.toLowerCase()
      : char.toUpperCase();
  }).join('');
}
Enter fullscreen mode Exit fullscreen mode

Small Caps - Unicode Character Mapping

Small caps require Unicode small capital characters — actual different code points, not formatting:

typescriptconst SMALL_CAPS_MAP: Record<string, string> = {
  a:'', b:'ʙ', c:'', d:'', e:'',
  f:'', g:'ɢ', h:'ʜ', i:'ɪ', j:'',
  k:'', l:'ʟ', m:'', n:'ɴ', o:'',
  p:'', q:'Q', r:'ʀ', s:'s', t:'',
  u:'', v:'', w:'', x:'x', y:'ʏ', z:'',
};

function toSmallCaps(text: string): string {
  return [...text.toLowerCase()]
    .map(c => SMALL_CAPS_MAP[c] ?? c)
    .join('');
}

toSmallCaps("Hello World");
// → "ʜᴇʟʟᴏ ᴡᴏʀʟᴅ"

Enter fullscreen mode Exit fullscreen mode

Why This Works Cross-Platform

These Unicode characters display on Instagram, WhatsApp, Discord, LinkedIn - everywhere — because they are actual letters, not HTML or markdown. HTML bold/italic gets stripped; Unicode characters do not.

For a free manual tool: TechMind.click - paste, click Alternating Case or Small Caps, copy. Client-side, no sign-up.

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.