月のみちかけは太陽光の反射の仕方がかわることによって起こるので三角関数をつかえば導けます。
ただし適当
適当なので完全に再現できていない気がします。まあそれっぽくなったので気にしないことにしました。27日周期という設定です。border-radiusを使っているため対応していないブラウザでは表示されません。デモ
仕組み
仕組みは光があたる部分を半円として考えるとわりと早くわかると思います。高校数学で十分足ります。
終わりに
唐突に作りたくなったので30分足らずでやったので三日月が三日月っぽくなくても、半円になると一瞬停止しても気にしないことにしました(というか二番煎じの可能性が高いですよねこれ)。