CSS Viewer Cube using CSS Animations and Transforms
Example: This approach involves defining CSS animations for the cube’s rotation and using CSS transforms to manipulate its orientation.
import React from 'react';
import styled, {
keyframes
} from 'styled-components';
const rotateAnimation = keyframes`
from {
transform: rotateX(0deg) rotateY(0deg);
}
to {
transform: rotateX(360deg) rotateY(360deg);
}
`;
const CubeContainer = styled.div`
width: 200px;
height: 200px;
position: relative;
perspective: 800px;
`;
const Cube = styled.div`
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
animation: ${rotateAnimation} 10s infinite linear;
`;
const CubeFace = styled.div`
width: 200px;
height: 200px;
position: absolute;
background-color: ${({ color }) => color};
border: 2px solid black;
`;
const FrontFace = styled(CubeFace)`
transform: translateZ(100px);
`;
const BackFace = styled(CubeFace)`
transform: translateZ(-100px) rotateY(180deg);
`;
const RightFace = styled(CubeFace)`
transform: rotateY(90deg) translateZ(100px);
`;
const LeftFace = styled(CubeFace)`
transform: rotateY(-90deg) translateZ(100px);
`;
const TopFace = styled(CubeFace)`
transform: rotateX(90deg) translateZ(100px);
`;
const BottomFace = styled(CubeFace)`
transform: rotateX(-90deg) translateZ(100px);
`;
const CubeViewer = () => {
return (
<CubeContainer>
<Cube>
<FrontFace color="red"></FrontFace>
<BackFace color="blue"></BackFace>
<RightFace color="green"></RightFace>
<LeftFace color="yellow"></LeftFace>
<TopFace color="orange"></TopFace>
<BottomFace color="purple"></BottomFace>
</Cube>
</CubeContainer>
);
};
export default CubeViewer;
Output:
CSS Viewer Cube in React without Three.js
A CSS viewer cube is a visually appealing and interactive way to display images or content on a webpage. It resembles a 3D cube that can be rotated along its axes to reveal different faces. While traditionally, libraries like Three.js have been used to achieve this effect.
In this article, we’ll explore how to create a CSS viewer cube in React without relying on Three.js.
We will discuss about the approaches of creating a CSS viewer cube without Three.js using React:
Table of Content
- CSS Viewer Cube using CSS Animations and Transforms
- CSS Viewer Cube React State and Event Handling
Contact Us