YesPlayMusic/packages/web/components/DailyTracksCard.tsx

46 lines
1.5 KiB
TypeScript
Raw Normal View History

2022-05-29 17:53:27 +08:00
import Icon from './Icon'
import { cx, css, keyframes } from '@emotion/css'
const move = keyframes`
0% {
transform: translateY(0);
}
100% {
transform: translateY(-50%);
}
`
2022-03-13 14:40:38 +08:00
const DailyTracksCard = () => {
return (
2022-03-17 19:30:43 +08:00
<div className='relative h-[198px] cursor-pointer overflow-hidden rounded-2xl'>
2022-03-13 14:40:38 +08:00
{/* Cover */}
<img
2022-05-12 02:45:43 +08:00
className={cx(
2022-03-13 14:40:38 +08:00
'absolute top-0 left-0 w-full will-change-transform',
2022-05-29 17:53:27 +08:00
css`
animation: ${move} 38s infinite;
animation-direction: alternate;
`
2022-03-13 14:40:38 +08:00
)}
2022-03-17 19:30:43 +08:00
src='https://p2.music.126.net/QxJA2mr4hhb9DZyucIOIQw==/109951165422200291.jpg?param=1024y1024'
2022-03-13 14:40:38 +08:00
/>
{/* 每日推荐 */}
2022-03-17 19:30:43 +08:00
<div className='absolute flex h-full w-1/2 items-center bg-gradient-to-r from-[#0000004d] to-transparent pl-8'>
<div className='grid grid-cols-2 grid-rows-2 gap-2 text-[64px] font-semibold leading-[64px] text-white opacity-[96]'>
2022-03-13 14:40:38 +08:00
{Array.from('每日推荐').map(word => (
<div key={word}>{word}</div>
))}
</div>
</div>
{/* Play button */}
2022-03-17 19:30:43 +08:00
<button className='btn-pressed-animation absolute right-6 bottom-6 grid h-11 w-11 cursor-default place-content-center rounded-full border border-white border-opacity-[.08] bg-white bg-opacity-[.14] text-white backdrop-blur backdrop-filter transition-all hover:bg-opacity-[.44]'>
2022-05-29 17:53:27 +08:00
<Icon name='play-fill' className='ml-0.5 h-6 w-6' />
2022-03-13 14:40:38 +08:00
</button>
</div>
)
}
export default DailyTracksCard