drop me a line on Twitter<\/a> if you have any questions about perspective or any other topic in this article.<\/p>\n","protected":false},"excerpt":{"rendered":"As someone who loves creating CSS animations, one of the more powerful tools I use is perspective. While the perspective […]<\/p>\n","protected":false},"author":277647,"featured_media":320296,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_share_on_mastodon":"0","_share_on_mastodon_status":"%title% %permalink%"},"categories":[4],"tags":[1321,1293,1147],"class_list":["post-320275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","tag-perspective","tag-perspective-origin","tag-transform"],"acf":{"show_toc":"No"},"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/08\/perspective-cubes.png?fit=1200%2C600&ssl=1","jetpack-related-posts":[{"id":145808,"url":"https:\/\/css-tricks.com\/creating-a-3d-cube-image-gallery\/","url_meta":{"origin":320275,"position":0},"title":"Creating a 3D Cube Image Gallery","author":"Kushagra Gour","date":"August 6, 2013","format":false,"excerpt":"The following is a guest post by Kushagra Gour (@chinchang457). Kushagra wrote to me to show me a fun interactive demo he made. It touches on many of the concepts of 3D transforms in CSS, a topic we haven't covered a ton here. So here's Kushagra taking the reins to\u2026","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":388313,"url":"https:\/\/css-tricks.com\/3d-layered-text-the-basics\/","url_meta":{"origin":320275,"position":1},"title":"3D Layered Text: The Basics","author":"Amit Sheen","date":"August 18, 2025","format":false,"excerpt":"A client asked me to create a bulging text effect. With a bit of cleverness and some advanced CSS, I managed to get a result I\u2019m genuinely proud of, which is covered in this three-part series.","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2025\/07\/bulging-text.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2025\/07\/bulging-text.jpg?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2025\/07\/bulging-text.jpg?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2025\/07\/bulging-text.jpg?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2025\/07\/bulging-text.jpg?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":333063,"url":"https:\/\/css-tricks.com\/re-creating-the-porky-pig-animation-from-looney-tunes-in-css\/","url_meta":{"origin":320275,"position":2},"title":"Re-Creating the Porky Pig Animation from Looney Tunes in CSS","author":"Kilian Valkhof","date":"January 26, 2021","format":false,"excerpt":"You know, Porky Pig coming out of those red rings announcing the end of a Looney Tunes cartoon. We\u2019ll get there, but first we need to cover some CSS concepts. Everything in CSS is a box, or rectangle. Rectangles stack, and can be displayed on top of, or below, other\u2026","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/01\/3QtAnNyg.jpeg?fit=1200%2C947&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/01\/3QtAnNyg.jpeg?fit=1200%2C947&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/01\/3QtAnNyg.jpeg?fit=1200%2C947&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/01\/3QtAnNyg.jpeg?fit=1200%2C947&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/01\/3QtAnNyg.jpeg?fit=1200%2C947&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":21784,"url":"https:\/\/css-tricks.com\/3d-button-parallax\/","url_meta":{"origin":320275,"position":3},"title":"3D Button Parallax","author":"Alexander Futekov","date":"May 27, 2013","format":false,"excerpt":"The following is a guest post by Alexander Futekov. We recently published an article by Joshua Bader in which a 3D inset look was adjusted as the page scrolled to give it a more realistic interaction. This is similar only Alexander is using an extruded look on buttons and employing\u2026","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":323488,"url":"https:\/\/css-tricks.com\/css-in-3d-learning-to-think-in-cubes-instead-of-boxes\/","url_meta":{"origin":320275,"position":4},"title":"CSS in 3D: Learning to Think in Cubes Instead of Boxes","author":"Jhey Tompkins","date":"October 23, 2020","format":false,"excerpt":"My path to learning CSS was a little unorthodox. I didn't start as a front-end developer. I was a Java developer. In fact, my earliest recollections of CSS were picking colors for things in Visual Studio. It wasn't until later that I got to tackle and find my love for\u2026","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/10\/jhey-workspace.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/10\/jhey-workspace.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/10\/jhey-workspace.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/10\/jhey-workspace.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2020\/10\/jhey-workspace.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":254602,"url":"https:\/\/css-tricks.com\/simplifying-css-cubes-custom-properties\/","url_meta":{"origin":320275,"position":5},"title":"Simplifying CSS Cubes with Custom Properties","author":"Ana Tudor","date":"May 16, 2017","format":false,"excerpt":"I know there are a ton of pure CSS cube tutorials out there. I've done a few myself. But for mid-2017, when CSS Custom Properties are supported in all major desktop browsers, they all feel... outdated and very WET. I thought I should do something to fix this problem, so\u2026","rel":"","context":"In "Articles"","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2017\/06\/cube_pastel.png?fit=1200%2C599&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2017\/06\/cube_pastel.png?fit=1200%2C599&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2017\/06\/cube_pastel.png?fit=1200%2C599&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2017\/06\/cube_pastel.png?fit=1200%2C599&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2017\/06\/cube_pastel.png?fit=1200%2C599&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/320275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/277647"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=320275"}],"version-history":[{"count":10,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/320275\/revisions"}],"predecessor-version":[{"id":320937,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/320275\/revisions\/320937"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media\/320296"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=320275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=320275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=320275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}