UNPKG

@wener/ui

Version:

158 lines (149 loc) 4.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BoxShuffle = void 0; const react_1 = __importDefault(require("react")); const styled_components_1 = __importDefault(require("styled-components")); const polished_1 = require("polished"); const cbox = (props) => ` position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); `; const BoxShuffleContainer = styled_components_1.default.div ` --size: ${(props) => props['size'] || '3em'}; .container { ${cbox}; transform-style: preserve-3d; perspective: 2000px; transform: rotateX(-30deg) rotateY(-45deg); *, *:before, *:after { box-sizing: border-box; } } .holder { ${cbox}; transform-style: preserve-3d; transform: translate3d(0em, var(--size), calc(var(--size) * 0.5)); &:nth-child(3) { transform: rotateY(-90deg) rotateX(90deg) translate3d(0, var(--size), calc(var(--size) * 0.5)); } &:first-child { transform: rotateZ(-90deg) rotateX(-90deg) translate3d(0, var(--size), calc(var(--size) * 0.5)); } } ${(props) => (props.colors || ['#1FBCD3', '#CBE2B4', '#F6B6CA']).map((color, i) => ` .holder:nth-child(${i + 1}){ .box{ background-color: ${color}; &:before{ background-color: ${polished_1.darken(0.2, color)}; } &:after{ background-color: ${polished_1.darken(0.1, color)}; } } } } `)} .info { ${cbox}; padding-top: 180px; .title { font-size: 20px; font-weight: 400; text-align: center; color: #212121; } .detail { font-size: 14px; font-weight: 200; text-align: center; } } .box { ${cbox}; transform-style: preserve-3d; animation: ani-box 6s infinite; width: var(--size); height: var(--size); //opacity: .9; &:before, &:after { position: absolute; width: 100%; height: 100%; content: ''; } &:before { left: 100%; bottom: 0; transform: rotateY(90deg); transform-origin: 0 50%; } &:after { left: 0; bottom: 100%; transform: rotateX(90deg); transform-origin: 0 100%; } } @keyframes ani-box { 8.33% { transform: translate3d(-50%, -50%, 0) scaleZ(2); } 16.7% { transform: translate3d(-50%, -50%, calc(-1 * var(--size))) scaleZ(1); } 25% { transform: translate3d(-50%, -100%, calc(-1 * var(--size))) scaleY(2); } 33.3% { transform: translate3d(-50%, -150%, calc(-1 * var(--size))) scaleY(1); } 41.7% { transform: translate3d(-100%, -150%, calc(-1 * var(--size))) scaleX(2); } 50% { transform: translate3d(-150%, -150%, calc(-1 * var(--size))) scaleX(1); } 58.3% { transform: translate3d(-150%, -150%, 0) scaleZ(2); } 66.7% { transform: translate3d(-150%, -150%, 0) scaleZ(1); } 75% { transform: translate3d(-150%, -100%, 0) scaleY(2); } 83.3% { transform: translate3d(-150%, -50%, 0) scaleY(1); } 91.7% { transform: translate3d(-100%, -50%, 0) scaleX(2); } 100% { transform: translate3d(-50%, -50%, 0) scaleX(1); } } `; exports.BoxShuffle = (props) => { const { title, detail } = props; return (react_1.default.createElement(BoxShuffleContainer, null, react_1.default.createElement("div", { className: "container" }, react_1.default.createElement("div", { className: "holder" }, react_1.default.createElement("div", { className: "box" })), react_1.default.createElement("div", { className: "holder" }, react_1.default.createElement("div", { className: "box" })), react_1.default.createElement("div", { className: "holder" }, react_1.default.createElement("div", { className: "box" }))), react_1.default.createElement("div", { className: "info" }, react_1.default.createElement("div", { className: "title" }, title), react_1.default.createElement("div", { className: "detail" }, detail)))); }; //# sourceMappingURL=BoxShuffle.js.map