JSFiddle - React, Tailwind, and code Playground
by ansciath
HTML
<div id="box">
<div id="foreground-triangle"></div>
<div id="background-triangle"></div>
</div>
CSS
#box {
display: block;
position: absolute;
width: 200px;
height: 200px;
overflow: hidden;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
}
#foreground-triangle:before, #foreground-triangle:after {
background-color: red;
}
#box,
#background-triangle:before, #background-triangle:after {
background-color: silver;
}
#foreground-triangle,
#background-triangle {
display: block;
position: absolute;
}
#foreground-triangle {
width: 100%;
height: 100%;
-webkit-transform-origin: right;
-moz-transform-origin: right;
-o-transform-origin: right;
transform-origin: right;
-webkit-transform: scaleX(2);
-moz-transform: scaleX(2);
-o-transform: scaleX(2);
transform: scaleX(2);
}
#background-triangle {
width: 50%;
height: 100%;
-webkit-transform-origin: left;
-moz-transform-origin: left;
-o-transform-origin: left;
transform-origin: left;
-webkit-transform: scaleX(0.5);
-moz-transform: scaleX(0.5);
-o-transform: scaleX(0.5);
transform: scaleX(0.5);
}
#foreground-triangle:before, #foreground-triangle:after,
#background-triangle:before, #background-triangle:after {
display: block;
position: absolute;
width: 100%;
height: 50%;
content: '';
}
#foreground-triangle:before,
#background-triangle:before {
top: 0;
-webkit-transform-origin: left bottom;
-moz-transform-origin: left bottom;
-o-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: skewX(45deg);
-moz-transform: skewX(45deg);
-o-transform: skewX(45deg);
transform: skewX(45deg);
}
#foreground-triangle:after,
#background-triangle:after {
bottom: 0;
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
-o-transform-origin: left top;
transform-origin: left top;
-webkit-transform: skewX(-45deg);
...