JSFiddle - React, Tailwind, and code Playground
by Jordan Mann
HTML
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div class="wrapper">
<a draggable="true" href="javascript:[...document.querySelectorAll('.file_download_btn')].map(x => x.click())">📁</a>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
<span class="pointer">☝️</span>
</div>
<h1>
Drag the blue box to<br>your bookmarks bar.
</h1>
</body>
</html>
CSS
html, body {
height: 100%;
}
body {
font-family: sans-serif;
padding: 5rem;
box-sizing: border-box;
font-size: 2rem;
margin: 0;
}
a {
color: blue;
text-decoration: none;
font-weight: bold;
padding: 0.5rem;
padding-bottom: 0;
background-color: hsl(203, 92%, 75.5%);
border-radius: 0.5rem;
width: fit-content;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%) scale(1);
box-shadow: 0 0.2rem 0.2rem rgba(0,0,0,0.5);
transition: box-shadow 0.2s ease-out, transform 0.2s ease-out;
}
a:hover {
box-shadow: 0rem 0.5rem 0.5rem rgba(0,0,0,0.5);
transform: translate(-50%,-60%) scale(1.05);
}
.wrapper {
width: min(20rem, 100%);
height: min(20rem, 100%);
margin: auto;
position: relative;
}
.pointer {
--r: 0deg;
transform: translateX(-50%) rotate(calc(0turn + var(--r))) translateY(150%);
position: absolute;
top: 50%;
left: 50%;
transform-origin: top;
animation: rotateOffset 10s linear infinite;
text-shadow: 0 0 0.5rem rgba(0,0,0,0.5);
}
@keyframes rotateOffset {
from {
transform: translateX(-50%) rotate(calc(0turn + var(--r))) translateY(150%);
}
to {
transform: translateX(-50%) rotate(calc(1turn + var(--r))) translateY(150%);
}
}
.pointer:nth-of-type(2) {
--r: 45deg;
}
.pointer:nth-of-type(3) {
--r: 90deg;
}
.pointer:nth-of-type(4) {
--r: 135deg;
}
.pointer:nth-of-type(5) {
--r: 180deg;
}
.pointer:nth-of-type(6) {
--r: 225deg;
}
.pointer:nth-of-type(7) {
--r: 270deg;
}
.pointer:nth-of-type(8) {
--r: 315deg;
}
h1 {
font-size: 2rem;
text-align: center;
color: #333;
}