css Rotation Classes

Several of the demos on this site link to a stylesheet called “rotation.css”. It is shown here for easy reference.

The stylesheet defines rotations for a number of fundamental symmetries (with vendor prefixes): triangular (in 120° increments), quadrilateral (90°), pentagonal (72°), hexagonal (60°), heptagonal (51.4°), octagonal (45°), nonogonal (40°), decagonal (36°), dodecagonal (30°), hexadecagonal (22.5°) and (wait for it), hexatriacontagonal (10°). Of course, some of the symmetries overlap each other, and you are unlikely to need all of them for a given project.

The defined classes use degrees as the unit of rotation, but it’s worth pointing out that you can use other units: gradians (e.g., tranform:rotate(123grad), with 400 gradians in a full circle); radians (e.g., transform:rotate(1.8573rad), with 2π radians per circle); and “turns” (e.g., transform:rotate(.5turn), with one turn per circle; turns can be incremented down to at least the thousandth place: transform:rotate(.005turn).)

3D rotations are also possible with the following syntax (with example values): transform:rotateX(45deg); transform:rotateY(200grad); transform:rotateZ(1rad). The axis of rotation is appended to the word “rotate”, so rotateZ is essentially the same as the ordinary rotate property, the z-axis being perpendicular to the page; rotateX and rotateY are the interesting ones, since a element will seem to rotate into the space above or below from the plane of the page.

/* ROTATION.css */ .rot10deg { -moz-transform: rotate(10deg); -webkit-transform: rotate(10deg); -o-transform: rotate(10deg); -ms-transform: rotate(10deg); transform: rotate(10deg); } .rot15deg { -moz-transform: rotate(15deg); -webkit-transform: rotate(15deg); -o-transform: rotate(15deg); -ms-transform: rotate(15deg); transform: rotate(15deg); } .rot20deg { -moz-transform: rotate(20deg); -webkit-transform: rotate(20deg); -o-transform: rotate(20deg); -ms-transform: rotate(20deg); transform: rotate(20deg); } .rot22deg { -moz-transform: rotate(22.5deg); -webkit-transform: rotate(22.5deg); -o-transform: rotate(22.5deg); -ms-transform: rotate(22.5deg); transform: rotate(22.5deg); } .rot30deg { -moz-transform: rotate(30deg); -webkit-transform: rotate(30deg); -o-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } /* decagonal */ .rot36deg { -moz-transform: rotate(36deg); -webkit-transform: rotate(36deg); -o-transform: rotate(36deg); -ms-transform: rotate(36deg); transform: rotate(36deg); } /* nonogonal */ .rot40deg { -moz-transform: rotate(40deg); -webkit-transform: rotate(40deg); -o-transform: rotate(40deg); -ms-transform: rotate(40deg); transform: rotate(40deg); } .rot45deg { -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .rot50deg { -moz-transform: rotate(50deg); -webkit-transform: rotate(50deg); -o-transform: rotate(50deg); -ms-transform: rotate(50deg); transform: rotate(50deg); } /* heptagonal */ .rot51deg { -moz-transform: rotate(51.4deg); -webkit-transform: rotate(51.4deg); -o-transform: rotate(51.4deg); -ms-transform: rotate(51.4deg); transform: rotate(51.4deg); } .rot60deg { -moz-transform: rotate(60deg); -webkit-transform: rotate(60deg); -o-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .rot67deg { -moz-transform: rotate(67.5deg); -webkit-transform: rotate(67.5deg); -o-transform: rotate(67.5deg); -ms-transform: rotate(67.5deg); transform: rotate(67.5deg); } .rot70deg { -moz-transform: rotate(70deg); -webkit-transform: rotate(70deg); -o-transform: rotate(70deg); -ms-transform: rotate(70deg); transform: rotate(70deg); } /* pentagonal/decagonal */ .rot72deg { -moz-transform: rotate(72deg); -webkit-transform: rotate(72deg); -o-transform: rotate(72deg); -ms-transform: rotate(72deg); transform: rotate(72deg); } .rot75deg { -moz-transform: rotate(75deg); -webkit-transform: rotate(75deg); -o-transform: rotate(75deg); -ms-transform: rotate(75deg); transform: rotate(75deg); } /* nonogonal */ .rot80deg { -moz-transform: rotate(80deg); -webkit-transform: rotate(80deg); -o-transform: rotate(80deg); -ms-transform: rotate(80deg); transform: rotate(80deg); } .rot90deg { -moz-transform: rotate(90deg); -webkit-transform: rotate(90deg); -o-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .rot100deg { -moz-transform: rotate(100deg); -webkit-transform: rotate(100deg); -o-transform: rotate(100deg); -ms-transform: rotate(100deg); transform: rotate(100deg); } /* heptagonal */ .rot102deg { -moz-transform: rotate(102.9deg); -webkit-transform: rotate(102.9deg); -o-transform: rotate(102.9deg); -ms-transform: rotate(102.9deg); transform: rotate(102.9deg); } .rot105deg { -moz-transform: rotate(105deg); -webkit-transform: rotate(105deg); -o-transform: rotate(105deg); -ms-transform: rotate(105deg); transform: rotate(105deg); } .rot108deg { -moz-transform: rotate(108deg); -webkit-transform: rotate(108deg); -o-transform: rotate(108deg); -ms-transform: rotate(108deg); transform: rotate(108deg); } .rot110deg { -moz-transform: rotate(110deg); -webkit-transform: rotate(110deg); -o-transform: rotate(110deg); -ms-transform: rotate(110deg); transform: rotate(110deg); } .rot112deg { -moz-transform: rotate(112.5deg); -webkit-transform: rotate(112.5deg); -o-transform: rotate(112.5deg); -ms-transform: rotate(112.5deg); transform: rotate(112.5deg); } .rot120deg { -moz-transform: rotate(120deg); -webkit-transform: rotate(120deg); -o-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .rot130deg { -moz-transform: rotate(130deg); -webkit-transform: rotate(130deg); -o-transform: rotate(130deg); -ms-transform: rotate(130deg); transform: rotate(130deg); } .rot135deg { -moz-transform: rotate(135deg); -webkit-transform: rotate(135deg); -o-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); } .rot140deg { -moz-transform: rotate(140deg); -webkit-transform: rotate(140deg); -o-transform: rotate(140deg); -ms-transform: rotate(140deg); transform: rotate(140deg); } /* pentagonal/decagonal */ .rot144deg { -moz-transform: rotate(144deg); -webkit-transform: rotate(144deg); -o-transform: rotate(144deg); -ms-transform: rotate(144deg); transform: rotate(144deg); } .rot150deg { -moz-transform: rotate(150deg); -webkit-transform: rotate(150deg); -o-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } /* heptagonal */ .rot154deg { -moz-transform: rotate(154.3deg); -webkit-transform: rotate(154.3deg); -o-transform: rotate(154.3deg); -ms-transform: rotate(154.3deg); transform: rotate(154.3deg); } .rot157deg { -moz-transform: rotate(157.5deg); -webkit-transform: rotate(157.5deg); -o-transform: rotate(157.5deg); -ms-transform: rotate(157.5deg); transform: rotate(157.5deg); } .rot160deg { -moz-transform: rotate(160deg); -webkit-transform: rotate(160deg); -o-transform: rotate(160deg); -ms-transform: rotate(160deg); transform: rotate(160deg); } .rot165deg { -moz-transform: rotate(165deg); -webkit-transform: rotate(165deg); -o-transform: rotate(165deg); -ms-transform: rotate(165deg); transform: rotate(165deg); } .rot170deg { -moz-transform: rotate(170deg); -webkit-transform: rotate(170deg); -o-transform: rotate(170deg); -ms-transform: rotate(170deg); transform: rotate(170deg); } /* decagonal */ .rot180deg { -moz-transform: rotate(180deg); -webkit-transform: rotate(180deg); -o-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .rot190deg { -moz-transform: rotate(190deg); -webkit-transform: rotate(190deg); -o-transform: rotate(190deg); -ms-transform: rotate(190deg); transform: rotate(190deg); } .rot195deg { -moz-transform: rotate(195deg); -webkit-transform: rotate(195deg); -o-transform: rotate(195deg); -ms-transform: rotate(195deg); transform: rotate(195deg); } .rot200deg { -moz-transform: rotate(200deg); -webkit-transform: rotate(200deg); -o-transform: rotate(200deg); -ms-transform: rotate(200deg); transform: rotate(200deg); } .rot202deg { -moz-transform: rotate(202.5deg); -webkit-transform: rotate(202.5deg); -o-transform: rotate(202.5deg); -ms-transform: rotate(202.5deg); transform: rotate(202.5deg); } /* heptagonal */ .rot205deg { -moz-transform: rotate(205.7deg); -webkit-transform: rotate(205.7deg); -o-transform: rotate(205.7deg); -ms-transform: rotate(205.7deg); transform: rotate(205.7deg); } .rot210deg { -moz-transform: rotate(210deg); -webkit-transform: rotate(210deg); -o-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } /* pentagonal/decagonal */ .rot216deg { -moz-transform: rotate(216deg); -webkit-transform: rotate(216deg); -o-transform: rotate(216deg); -ms-transform: rotate(216deg); transform: rotate(216deg); } .rot220deg { -moz-transform: rotate(220deg); -webkit-transform: rotate(220deg); -o-transform: rotate(220deg); -ms-transform: rotate(220deg); transform: rotate(220deg); } .rot225deg { -moz-transform: rotate(225deg); -webkit-transform: rotate(225deg); -o-transform: rotate(225deg); -ms-transform: rotate(225deg); transform: rotate(225deg); } .rot230deg { -moz-transform: rotate(230deg); -webkit-transform: rotate(230deg); -o-transform: rotate(230deg); -ms-transform: rotate(230deg); transform: rotate(230deg); } .rot240deg { -moz-transform: rotate(240deg); -webkit-transform: rotate(240deg); -o-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .rot247deg { -moz-transform: rotate(247.5deg); -webkit-transform: rotate(247.5deg); -o-transform: rotate(247.5deg); -ms-transform: rotate(247.5deg); transform: rotate(247.5deg); } .rot250deg { -moz-transform: rotate(250deg); -webkit-transform: rotate(250deg); -o-transform: rotate(250deg); -ms-transform: rotate(250deg); transform: rotate(250deg); } /* decagonal */ .rot252deg { -moz-transform: rotate(252deg); -webkit-transform: rotate(252deg); -o-transform: rotate(252deg); -ms-transform: rotate(252deg); transform: rotate(252deg); } .rot255deg { -moz-transform: rotate(255deg); -webkit-transform: rotate(255deg); -o-transform: rotate(255deg); -ms-transform: rotate(255deg); transform: rotate(255deg); } /* heptagonal */ .rot257deg { -moz-transform: rotate(257.1deg); -webkit-transform: rotate(257.1deg); -o-transform: rotate(257.1deg); -ms-transform: rotate(257.1deg); transform: rotate(257.1deg); } .rot260deg { -moz-transform: rotate(260deg); -webkit-transform: rotate(260deg); -o-transform: rotate(260deg); -ms-transform: rotate(260deg); transform: rotate(260deg); } .rot270deg { -moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -o-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .rot280deg { -moz-transform: rotate(280deg); -webkit-transform: rotate(280deg); -o-transform: rotate(280deg); -ms-transform: rotate(280deg); transform: rotate(280deg); } .rot285deg { -moz-transform: rotate(285deg); -webkit-transform: rotate(285deg); -o-transform: rotate(285deg); -ms-transform: rotate(285deg); transform: rotate(285deg); } /* pentagonal/decagonal */ .rot288deg { -moz-transform: rotate(288deg); -webkit-transform: rotate(288deg); -o-transform: rotate(288deg); -ms-transform: rotate(288deg); transform: rotate(288deg); } .rot290deg { -moz-transform: rotate(290deg); -webkit-transform: rotate(290deg); -o-transform: rotate(290deg); -ms-transform: rotate(290deg); transform: rotate(290deg); } .rot292deg { -moz-transform: rotate(292.5deg); -webkit-transform: rotate(292.5deg); -o-transform: rotate(292.5deg); -ms-transform: rotate(292.5deg); transform: rotate(292.5deg); } .rot300deg { -moz-transform: rotate(300deg); -webkit-transform: rotate(300deg); -o-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } /* heptagonal */ .rot308deg { -moz-transform: rotate(308.6deg); -webkit-transform: rotate(308.6deg); -o-transform: rotate(308.6deg); -ms-transform: rotate(308.6deg); transform: rotate(308.6deg); } .rot310deg { -moz-transform: rotate(310deg); -webkit-transform: rotate(310deg); -o-transform: rotate(310deg); -ms-transform: rotate(310deg); transform: rotate(310deg); } .rot315deg { -moz-transform: rotate(315deg); -webkit-transform: rotate(315deg); -o-transform: rotate(315deg); -ms-transform: rotate(315deg); transform: rotate(315deg); } .rot320deg { -moz-transform: rotate(320deg); -webkit-transform: rotate(320deg); -o-transform: rotate(320deg); -ms-transform: rotate(320deg); transform: rotate(320deg); } /* decagonal */ .rot324deg { -moz-transform: rotate(324deg); -webkit-transform: rotate(324deg); -o-transform: rotate(324deg); -ms-transform: rotate(324deg); transform: rotate(324deg); } .rot330deg { -moz-transform: rotate(330deg); -webkit-transform: rotate(330deg); -o-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .rot337deg { -moz-transform: rotate(337.5deg); -webkit-transform: rotate(337.5deg); -o-transform: rotate(337.5deg); -ms-transform: rotate(337.5deg); transform: rotate(337.5deg); } .rot340deg { -moz-transform: rotate(340deg); -webkit-transform: rotate(340deg); -o-transform: rotate(340deg); -ms-transform: rotate(340deg); transform: rotate(340deg); } .rot345deg { -moz-transform: rotate(345deg); -webkit-transform: rotate(345deg); -o-transform: rotate(345deg); -ms-transform: rotate(345deg); transform: rotate(345deg); } .rot350deg { -moz-transform: rotate(350deg); -webkit-transform: rotate(350deg); -o-transform: rotate(350deg); -ms-transform: rotate(350deg); transform: rotate(350deg); } .rot360deg { -moz-transform: rotate(360deg); -webkit-transform: rotate(360deg); -o-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); }