glance.animation
https://svg-hosting.vercel.app/api/svg?url=https://scrapbox.io/api/code/issac-37765679/glance.animation/s.svg
タチャバラサン...cFQ2f7LRuLYP.icon
code:s.svg
<style>
@keyframes skewAnimation {
0% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
1% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
2% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
3% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
4% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
45% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
46% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
48% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
49% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
50% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
51% { transform: translate(-140px, 0) skew(-20deg, 30deg); }
52% { transform: translate(-120px, 0px) skew(-20deg, 30deg); }
52.4% { transform: translate(-140px, 20px) skew(-20deg, 30deg); }
52.8% { transform: translate(-120px, 3px) skew(-20deg, 30deg); }
53.2% { transform: translate(-140px, 20px) skew(-20deg, 30deg); }
53.7% { transform: translate(-140px, 0px) skew(-20deg, 30deg); }
62% { transform: translate(-400px, 0) skew(-20deg, 30deg); }
100% { transform: translate(-500px, 0) skew(-20deg, 30deg); }
}
animation: skewAnimation 10s linear infinite;
transform-origin: top left; /* Specify the origin of skew */
}
</style>
<rect x="0" y="0" width="100%" height="100%" fill="#f6f6f6" />
<g id="dots">
<rect x="0" y="0" width="200" height="200" fill="#5c89c0"/>
<rect x="200" y="0" width="200" height="200" fill="#9cbce3"/>
<rect x="0" y="200" width="200" height="200" fill="#e4d7b5"/>
<rect x="200" y="200" width="200" height="200" fill="#6e733b"/>
</g>
</svg>
変更takker.icon
不要そうなkeyframesを削った
skew変形を外に取り出した
SVG transformだとskew()がないので、skewX() skewY()で代替した
変形操作の都合で、もう一つg要素を挟んで<g id="dots"><g transform="skewX(-20) skewY(30)">...</g></g>とする必要があった
<g id="dots" transform="skewX(-20) skewY(30)">...</g>だと歪まない。おそらくCSS transformに上書きされるため
<g transform="skewX(-20) skewY(30)"><g id="dots">...</g></g>にするとどうなるかは読者の課題とする
背景色をsvgに直接指定した
<svg fill="#f6f6f6">...</svg>ではうまくいかなかったので、CSSで指定した
https://svg-hosting.vercel.app/api/svg?url=https://scrapbox.io/api/code/issac-37765679/glance.animation/t.svg
code:t.svg
<style>
svg {
}
@keyframes skewAnimation {
0% { transform: translate(-400px, 0); }
45% { transform: translate(-140px, 0); }
51% { transform: translate(-140px, 0); }
52% { transform: translate(-120px, 0px); }
52.4% { transform: translate(-140px, 20px); }
52.8% { transform: translate(-120px, 3px); }
53.2% { transform: translate(-140px, 20px); }
53.7% { transform: translate(-140px, 0px); }
62% { transform: translate(-400px, 0); }
100% { transform: translate(-500px, 0); }
}
animation: skewAnimation 10s linear infinite;
transform-origin: top left; /* Specify the origin of skew */
}
</style>
<g id="dots">
<g transform="skewX(-20) skewY(30)">
<rect x="0" y="0" width="200" height="200" fill="#5c89c0"/>
<rect x="200" y="0" width="200" height="200" fill="#9cbce3"/>
<rect x="0" y="200" width="200" height="200" fill="#e4d7b5"/>
<rect x="200" y="200" width="200" height="200" fill="#6e733b"/>
</g>
</g>
</svg>
なんか改造されているのに気づいたcFQ2f7LRuLYP.icon
すごい
https://svg-hosting.vercel.app/api/svg?url=https://scrapbox.io/api/code/issac-37765679/glance.animation/s3.svg
code:s3.svg
<!--アニメ-->
<style>
svg {
}
@keyframes skewAnimation {
0% { transform: translate(-400px, 0); }
20% { transform: translate(-300px, 0); }
21% { transform: translate(-300px, 0); }
22% { transform: translate(-300px, 0); }
23% { transform: translate(-300px, 0); }
24% { transform: translate(-300px, 0); }
25% { transform: translate(-300px, 0); }
26% { transform: translate(-300px, 0); }
27% { transform: translate(-300px, 0); }
47% { transform: translate(-130px, 0); }
48% { transform: translate(-130px, 0); }
49% { transform: translate(-130px, 0); }
50% { transform: translate(-130px, 0); }
51% { transform: translate(-130px, 0); }
52% { transform: translate(-110px, 0px); }
53.4% { transform: translate(-130px, 20px); }
53.8% { transform: translate(-110px, 3px); }
54.2% { transform: translate(-130px, 20px); }
54.7% { transform: translate(-130px, 0px); }
65% { transform: translate(-400px, 0); }
100% { transform: translate(-500px, 0); }
}
animation: skewAnimation 6s linear infinite;
transform-origin: top left; /* Specify the origin of skew */
}
</style>
<!--背景-->
<!--返本還源-->
<g id="dots">
<g transform="skewX(-20) skewY(30)">
<path d="m0,0h400v400h-400zm169,32h-1v8h-32v8h-16v8h-8v8h-16v8h8v8h-8v-8h-8v8h-16v8h-8v16h-8v16h-8v16h-8v32h-8v64h8v-32h8v16h8v8h-8v8h-8v32h8v16h8v16h8v8h8v8h8v8h8v8h8v8h8v8h16v8h8v8h32v8h80v-8h24v-8h16v-16h8v8h8v-8h8v-8h8v-8h16v-16h8v-16h8v-8h8v-8h8v-72h8v-8h-8v-40h-8v-24h-8v-16h-8v-8h-8v-16h-8v-8h-8v-8h-16v-8h-8v-8h-16v-8h-16v-8h-8v8h-8v-8h-16v-8zm-25,32h16v8h-16v8h8v8h-8v-8h-8v8h-8v-8h-8v-8h24zm-56,48h8v16h-16v-8h8zm16,8h8v8h8v8h16v16h-16v-16h-8v-8h-8zm-56,40h8v8h-8zm-8,16h8v8h-8zm304,24h8v8h-8zm-16,16h8v8h-8zm-16,40h8v8h-8zm-32,40h8v8h-8z" fill="#fb9"/>
<path d="m168,32h16v8h-16zm48,0h8v8h-8zm-80,8h8v8h-8zm112,0h8v8h-8zm-128,8h8v8h-8zm184,24h8v8h8v8h8v8h-8v-8h-8v-8h-8zm32,40h8v8h-8zm-288,8h8v8h-8zm296,8h8v8h-8zm-304,8h8v8h-8zm320,56h8v8h-8v8h-8v-8h8zm-328,32h8v8h-8zm320,24h8v24h-8v8h-8v-16h8zm-312,8h8v8h-8zm16,32h8v8h-8zm272,8h8v8h-8zm-16,16h16v8h-16zm-200,24h16v8h8v8h16v8h-24v-8h-8v-8h-8zm176,0h8v8h-8zm-24,8h16v8h-16v8h-8v-8h8zm-104,16h8v8h-8zm72,0h8v8h-8z" fill="#fb8"/>
<path d="m184,32h32v8h-32zm-40,8h8v8h-8zm120,8h8v8h-8zm16,8h8v8h-8zm-184,8h8v8h-8v8h-8v-8h8zm-56,80h8v8h-8zm312,8h8v8h-8zm-320,64h8v8h-8zm320,24h8v8h-8zm-304,32h8v8h-8zm288,8h8v8h-8zm-272,16h8v8h-8zm256,8h8v8h-8zm-16,16h8v8h-8v8h-8v-8h8zm-200,16h8v8h-8zm64,24h8v8h-8zm48,0h16v8h-16z" fill="#fa8"/>
<path d="m152,40h88v8h-88v8h-16v8h-16v-8h8v-8h24zm96,8h16v8h16v8h16v8h8v8h8v8h8v8h8v16h8v8h8v8h-8v-8h-8v-8h-8v-8h-8v-16h-8v-8h-16v-8h-8v-8h-16v-8h-16zm-144,16h8v8h-8zm-32,16h16v8h-8v8h-8v16h-8v8h-8v-16h8v-16h8zm-24,48h8v32h-8v16h-8v16h-8v-24h8v-16h8zm296,8h8v8h-8zm8,32h8v32h-8zm0,40h8v32h-8zm-312,24h8v16h-8zm16,40h8v16h-8zm280,0h8v8h-8zm-8,16h8v8h-8v8h-8v-8h8zm-256,16h8v8h8v8h8v8h-8v-8h-8v-8h-8zm224,16h8v8h-8v8h-8v-8h8zm-56,32h8v8h-8zm-56,8h32v8h-32z" fill="#ea7"/>
<path d="m152,48h96v8h16v8h16v8h8v8h16v8h8v16h8v8h8v8h8v8h8v16h8v56h-8v8h8v24h-8v8h-24v-8h16v-8h8v-16h-96v-8h-8v8h-8v8h-8v8h-8v-8h8v-8h-16v-8h-8v-8h8v8h16v-8h-8v-16h-24v-8h24v-8h16v8h8v-16h16v8h8v-8h8v-24h16v-24h-8v8h-8v8h-16v16h-16v-8h-8v24h-16v-8h-8v-16h16v-8h-8v-8h8v-8h-8v-8h-8v16h-16v24h-16v8h8v8h8v-8h8v8h8v8h-24v8h-8v8h-16v-8h8v-8h-16v16h-16v-8h-8v-8h24v-16h-8v-16h-8v-8h-8v-8h-8v-8h-8v8h-8v-8h-8v-16h-8v-8h16v-8h8v-8h24v-8h16zm17,8h-1v8h-32v8h-16v32h8v-8h16v-8h8v8h8v-16h8v-8h8v8h8v-8h16v-8h-24v-8zm96,40h-1v16h8v-16zm-193,0h16v16h-16v32h-8v-8h-8v-16h8v-8h8zm113,8h-1v8h8v-8zm40,8h-1v8h8v-8zm-129,8h8v8h-8v8h-8v8h-8v-8h8v-8h8zm8,24h8v16h8v16h8v8h-8v8h8v8h8v8h-32v-16h8v-8h8v-8h-24v-16h-16v-8h24zm-40,32h8v8h-8v8h8v24h-8v-24h-8v-8h8zm88,8h8v16h-8zm16,0h24v24h-8v-8h-16zm57,16h-1v8h8v-8zm-177,0h8v16h-8zm40,8h8v8h96v8h-96v-8h-8zm224,8h16v8h-16zm-240,8h16v16h80v16h-48v-8h-24v8h-16v-8h8v-8h-16zm168,0h16v8h-16v8h-40v8h24v8h-16v8h24v8h8v-8h8v8h-8v8h-16v-8h-16v16h-8v-8h-8v-8h8v-24h-8v-8h-8v-8h56zm24,0h24v8h-24zm32,8h16v16h-16v8h-56v-8h56zm48,16h8v16h-8v8h-8v16h-8v8h-8v8h-8v-8h-16v8h8v8h8v8h-16v8h-8v8h-8v-8h-16v-24h8v8h8v8h8v-32h16v-8h-16v-8h8v-8h8v16h16v-8h8v-8h-8v-8h24zm-248,16h8v8h-8zm168,8h8v8h-8zm-24,16h8v8h8v16h-8v-16h-8v8h-8v-8h8zm-96,24h8v8h-8zm24,0h16v8h-16z" fill="#fca"/>
<path d="m112,56h8v8h-8zm216,48h8v8h-8zm24,56h8v8h-8zm-320,32h8v24h-8zm8,56h8v8h-8zm56,80h8v8h-8zm152,24h8v8h-8zm-72,8h8v8h-8z" fill="#ea8"/>
<path d="m168,56h8v8h8v16h-8v-16h-8zm-32,8h8v8h-8zm-16,16h8v8h16v8h-16v-8h-8zm32,0h8v16h-8zm112,16h8v16h16v16h-8v-8h-8v-8h-8zm-80,8h8v8h8v8h8v-8h8v-8h8v8h8v8h-8v8h-24v-8h-8v-8h-8zm33,8h-1v8h8v-8zm-145,0h16v8h-8v8h8v8h-8v-8h-8zm184,8h8v8h8v24h-8v8h-8v-8h-8v-8h-16v-16h8v8h8v8h8v-8h8v-8h-8zm-136,8h8v8h-8v16h-8v-8h-8v8h-8v-8h8v-8h16zm56,8h24v8h-8v8h-8v-8h-8zm32,8h8v8h-8zm24,8h8v16h-8zm-176,8h8v8h-8v8h-8v-8h8zm96,0h16v8h-8v8h-8zm-48,16h16v8h8v8h-8v-8h-8v8h-8zm96,0h16v16h8v8h-16v-8h-8zm-160,8h8v16h-8zm24,0h8v8h-8zm72,0h16v16h8v-16h8v16h16v8h-40v-8h-8zm104,16h8v8h16v24h-8v-8h-8v-16h-8zm-48,16h8v8h-8zm16,0h8v16h-8z" fill="#e9c"/>
<path d="m160,64h16v8h-8v8h-24v8h-8v-8h8v-8h16zm24,0h16v8h-16zm-104,24h16v16h8v8h8v-8h8v-16h8v16h-8v8h8v8h8v8h8v16h8v16h-24v8h8v8h40v-8h8v-8h24v-8h-8v-16h-8v-16h8v-8h8v-16h8v16h-8v8h-8v8h8v24h24v-8h16v-8h8v-8h8v-8h16v8h-16v8h-8v8h-8v8h-16v8h-16v8h-24v8h8v24h8v24h-8v-16h-8v-24h-56v16h8v8h8v8h-8v-8h-8v-8h-8v-24h-8v-16h-8v-8h24v-16h-8v-8h-16v8h-8v8h-8v8h-16v16h8v-8h8v16h8v8h-8v8h8v8h-16v16h-8v8h-8v24h8v16h-8v8h8v8h8v-16h8v16h24v8h24v24h-16v-8h8v-8h-32v-8h-16v8h8v8h8v8h8v16h-8v-8h-16v-8h-8v-8h-8v-16h-8v-16h-16v-48h8v-24h-8v-24h8v-8h16v-8h-16v-24h8v8h8v-16h8v16h8v-8h8v-8h16v-8h-16v-8h-8v-16h-8zm200,16h8v8h-8zm-207,64h-1v8h-8v8h-8v8h8v24h8v-16h8v-32zm151,32h8v8h16v8h-16v-8h-8zm-159,48h-1v8h8v-8z" fill="#843"/>
<path d="m64,160h8v8h8v32h-8v-32h-8zm136,136h8v8h-8z" fill="#966"/>
<path d="m80,160h8v8h-8zm16,24h8v8h-8zm-8,16h8v8h-8zm-8,72h8v8h-8zm16,0h8v8h-8z" fill="#311"/>
<path d="m96,200h8v8h40v8h-48v8h112v8h-40v8h-80v8h-16v-8h16v-16h-8v-8h16zm56,8h48v8h-48zm56,0h16v8h24v8h-8v8h48v-8h-24v-16h80v16h-8v8h-16v8h24v-8h8v16h-8v8h-32v8h16v8h-8v8h-16v8h-16v-8h16v-16h-8v8h-32v-8h-56v-8h16v-8h-24v-8h40v-8h-24v-8h8v-8h-16zm105,8h-1v8h24v-8zm-16,16h-1v16h16v-16zm-56,16h-1v8h56v-8zm-145,0h24v8h32v8h-72v-8h16zm8,24h8v8h-8zm56,0h16v24h-24v-16h8zm56,0h8v8h-8zm-96,8h8v8h-8zm16,0h8v8h-8zm128,0h8v8h-8zm-32,8h8v8h-8zm64,8h16v8h8v8h-16v-8h-8z" fill="#dbb"/>
<path d="m168,232h16v8h8v8h8v24h-16v-8h-32v-8h16zm-104,16h8v8h-8zm8,16h16v8h-16zm120,16h8v8h32v24h32v16h16v16h-16v8h-24v8h-24v-24h16v-8h-8v-8h-16v-24h-8v16h-8z" fill="#744"/>
<path d="m104,264h32v8h8v8h8v-8h8v8h-8v8h-8v-8h-8v8h-8v-8h-16v-8h-8zm128,0h8v8h8v-8h16v16h-8v8h16v-16h16v24h-8v8h8v16h-8v-8h-8v-8h-8v8h-8v-16h-8v16h-16v-8h8v-8h8v-8h-40v-16h8v8h24v-8h-8z" fill="#a77"/>
<path d="m136,264h8v8h-8zm120,16h8v8h-8zm-72,16h8v16h8v8h-16zm-24,8h8v16h-8v8h-24v-16h8v8h8v-8h8z" fill="#d98"/>
<path d="m144,264h40v8h8v24h-8v16h-16v-8h-8v8h-16v-24h8v8h24v-24h-24v8h-8zm-80,24h8v8h-8zm24,0h16v8h32v8h-8v8h8v16h24v-8h40v-16h8v16h16v8h8v8h-16v24h-64v-8h-16v-8h-8v-8h-24v-8h-8v-8h8v8h8v-16h-8v-8h-8v-8h-8z" fill="#a75"/>
</g>
</g>
</svg>