:doodle { @size: 1164px 1100px; background: url('') no-repeat center/cover; box-shadow: 0 0 6px #000; position: relative; z-index: 1; } @size: 100px; clip-path: @shape( fill: evenodd; points: 400; x: cos(2t) * cos(5t) * sin(t); y: sin(2t) * sin(4t) * cos(5t); ); position: absolute; background: rgb(@m3(@r(255))); offset-path: path('M212 180a300 120 0 1 0 600 0a300 120 0 1 0 -600 0z'); animation: move 40s infinite linear var(--state); cursor: pointer; @keyframes move { to { offset-distance: 100%; } } :doodle { @size: auto 4em; top: 10px; --geci: "css-doodle player"; --motion: cover2; --tt: 1s;}/* 单元格两个伪元素显示lrc歌词 */ display: grid; place-items: center start; :before, :after { content: var(--geci); color:LightGrey; /* 歌词底色 */ font: bold 2em sans-serif; text-shadow: 1px 1px 2px #000; white-space: pre; } :after { position: absolute; width: 0; color: DarkSeaGreen; /* 同步歌词颜色 */ overflow: hidden; animation: var(--motion) var(--tt) linear forwards var(--state); } @keyframes cover1 { from { width: 0; } to { width: 100%; } } @keyframes cover2 { from { width: 0; } to { width: 100%; } }