JSFiddle - React, Tailwind, and code Playground

by phloe

HTML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 24" width="360" height="240">
	<g transform="translate(18 18)">
		<g transform="rotate(-45)">
			<!--path id="logo__back_2" d="" class="logo__back"/-->
			<path id="logo__front" d="" class="logo__front"/>
			<path id="logo__back" d="" class="logo__back"/>
		</g>
	</g>
</svg>

CSS

.logo__front {
	fill: #333;
}
.logo__back {
	fill: #999;
}

JavaScript

const ar = (r, x = r, y = r, clockwise = 1) => `a${r} ${r} 0 0 ${clockwise} ${x} ${y}`;

const u = 6;
const s = u;
const ir = 2;
const or = ir + s;
const hu = u / 2;
const uh = 2 * u;
const lu = u - ir*2;

const yd = Math.sqrt(Math.pow(or, 2) - Math.pow(or - u, 2));
const xd = u;

const yd2 = ir;
const xd2 = or - Math.sqrt(Math.pow(or, 2) - Math.pow(ir, 2));

const d3 = `M0 ${hu}
			h${-lu/2}
			${ar(or, -or, -or)}
			v${-(lu + u)}
			${ar(or, or, -or)}
			h${lu}
			${ar(or, or, or)}
			v${lu + u}
			${ar(or, -xd, yd)}
			v${-(uh - ir + u)}
			${ar(ir, -ir, -ir, 0)}
			h${-lu}
			${ar(ir, -ir, ir, 0)}
			v${lu + u}
			${ar(ir, ir, ir, 0)}
			h${lu/2}`;

const d4 = `M${u/2} ${u/2-ir}
			${ar(ir, ir, ir, 0)}
			h${lu + u}
			${ar(ir, ir, -ir, 0)}
			v${-lu}
			${ar(ir, -ir, -ir, 0)}
			h${-(u - ir + xd2)}
			${ar(or, xd2, -yd2, 0)}
			v${-(u - ir)}
			h${u - ir}
			${ar(or, or, or)}
			v${lu}
			${ar(or, -or, or)}
			h${-(lu + u)}
			${ar(or, -or, -or)}
			v${-lu}
			${ar(or, xd, -yd)}
			`;



logo__front.setAttribute("d", d3);
logo__back.setAttribute("d", d4);