so fancy
javascript :: fun unicode font tool
background
as an aspiring text artist and amateur typographer, i've always been interested in making cool stuff with the fonts provided by my computer. back in the day, we had cp437 (which the ANSI artscene still uses it in it's SACUE file format to this day). this was the latin characterset, other countries all had their own. see the full inra list.
in the early nineteen hundred and nineties the unicode consortium was formed to solve this problem. over time we, the tech community at large, developed the utf-8 spec. this allowed for all of the latin and international characters, plus tons more like emojis to all be unified under one characterset for greater interoperability world wide.
today, there's tons of neat "other" characters in the unicode blocks like mathematical alphanumeric symbols, letterlike symbols, and latin extended-e. lots of people including myself have been making cool "fonts" out of these by hand for decades, but i got tired of the manual work.
that's why i wrote sofancy, a fun unicode font tool written in javascript.
examples
asian ㄚㄖㄩ 丂ㄖ 千卂几匚ㄚ asian2 リのひ 丂の キム刀ᄃリ bent Ӌօմ Ϛօ Ƒąղçվ bold 𝐘𝐨𝐮 𝐒𝐨 𝐅𝐚𝐧𝐜𝐲 bolditalic 𝙔𝙤𝙪 𝙎𝙤 𝙁𝙖𝙣𝙘𝙮 circled Ⓨⓞⓤ Ⓢⓞ Ⓕⓐⓝⓒⓨ currency ɎØɄ ₴Ø ₣₳₦₵Ɏ cursive 𝓨𝓸𝓾 𝓢𝓸 𝓕𝓪𝓷𝓬𝔂 doublestruck 𝕐𝕠𝕦 𝕊𝕠 𝔽𝕒𝕟𝕔𝕪 flip ⅄on Ƨo Էɑucλ fraktur 𝔜𝔬𝔲 𝔖𝔬 𝔉𝔞𝔫𝔠𝔶 frakturbold 𝖄𝖔𝖚 𝕾𝖔 𝕱𝖆𝖓𝖈𝖞 futureAlien ᖻᓍᑘ Sᓍ ᖴᗩᘉᑢᖻ greek уσυ ѕσ ƒαη¢у invertedsquares 🆈🅾🆄 🆂🅾 🅵🅰🅽🅲🆈 italic 𝘠𝘰𝘶 𝘚𝘰 𝘍𝘢𝘯𝘤𝘺 mirror γoυ Ƨo ꟻɒИɔγ mirrorflip ⅄on So ꓞɐuɔʎ mono 𝚈𝚘𝚞 𝚂𝚘 𝙵𝚊𝚗𝚌𝚢 neon YOᑌ ᔕO ᖴᗩᑎᑕY squares 🅈🄾🅄 🅂🄾 🄵🄰🄽🄲🅈 squiggle1 ץ๏ย ร๏ Ŧคภςץ squiggle2 Yσυ Sσ Fαɳƈყ squiggle3 ʏօʊ ֆօ ʄǟռƈʏ squiggle4 ᎩᎧᏬ ᏕᎧ ᎦᏗᏁፈᎩ squiggle5 ყơų ʂơ ʄąŋƈყ squiggle6 ฯ໐น Ş໐ fคຖ¢ฯ subscript Yₒᵤ ₛₒ Fₐₙcy superscript ʸᵒᵘ ˢᵒ ᶠᵃⁿᶜʸ symbols ¥ðµ §ð £åñ¢¥ upperangle YӨЦ ƧӨ FΛПᄃY upsidedown ⅄on So Ⅎɐuɔʎ wide You So Fancy
usage
ῳɛıཞɖ ųŋıƈơɖɛ ʄƖɛҳıŋɠ? 😜
usage: sofancy [-f (font) | -t | -r] string flags: -f|--font (font) : output in a single font -t|--titles : display titles in output -r|--random : pick a random font (clobbers -f) examples: sofancy -f wide aesthetics aesthetics sofancy -t some string | fzf | xsel -i git commit -m "$(sofancy -tr message | sed 's/^.* /docs: /')"
install
use npm to globally install:
npm i -g sofancyor clone and install locally:
git clone git@github.com:xero/sofancy.git sofancy cd sofancy npm i -g .
notes
on unix systems node "bins" are normally placed in /usr/local/lib/node or /usr/local/lib/node_modules unless your export a custom NODE_PATH. either way, make sure the appropriate directory is in your environment.
demo
i made a fun web based version as well https://sofancy.0w.nz
for the easy copy pasta ^c^v