Sergei Argutin commited on
Commit Β·
e922599
1
Parent(s): b9f2bbe
Make premium animation preview visible
Browse files- index.html +57 -3
index.html
CHANGED
|
@@ -79,13 +79,38 @@
|
|
| 79 |
.samples img{width:100%;aspect-ratio:1;object-fit:contain}
|
| 80 |
.samples figcaption{color:var(--mut);font-size:.75rem;margin-top:4px;background:var(--bg);border-radius:6px;padding:2px 4px}
|
| 81 |
.samples .tag{color:var(--acc);font-weight:700}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
</style>
|
| 83 |
</head>
|
| 84 |
<body>
|
| 85 |
<header>
|
| 86 |
<h1>Free Exercise Dataset β JSON + Images</h1>
|
| 87 |
<p class="sub">The free tier of <b>RepDB</b>: <b class="jscount">400</b> fitness exercises with flat illustrations, target muscles, equipment, MET, and instructions in English, German & Spanish. Free for personal and commercial in-app use with attribution β see <a href="https://github.com/sergei-argutin/exercise-dataset/blob/main/LICENSE-DATA.md">LICENSE-DATA.md</a>. The full paid dataset keeps growing and adds high-res classic images, transparency and animations.</p>
|
| 88 |
-
<a class="cta" href="https://repdb.co/pricing">Get the full dataset β</a>
|
| 89 |
</header>
|
| 90 |
|
| 91 |
<div class="bar">
|
|
@@ -97,7 +122,7 @@
|
|
| 97 |
<main>
|
| 98 |
<div class="promo">
|
| 99 |
<span>This is the <b>free tier</b> β <b><span class="jscount">400</span> exercises</b>, flat style, 512 px, EN/DE/ES, attribution license. The full paid dataset keeps growing and ships classic white-background 1024 px images, transparent backgrounds and looping animations.</span>
|
| 100 |
-
<a class="cta" href="https://repdb.co/pricing">See pricing β</a>
|
| 101 |
</div>
|
| 102 |
<div class="count" id="count"></div>
|
| 103 |
<div class="grid" id="grid"></div>
|
|
@@ -105,7 +130,7 @@
|
|
| 105 |
<section class="upgrade">
|
| 106 |
<h2>Upgrade samples β Standard tier preview</h2>
|
| 107 |
<p class="note"><b>Standard tier quality β evaluation only, see <a href="https://github.com/sergei-argutin/exercise-dataset/blob/main/LICENSE-DATA.md">LICENSE-DATA.md</a>.</b>
|
| 108 |
-
Looping, transparent-background exercise animations β the same clips shown on <a href="https://repdb.co">repdb.co</a> (checkerboard shows the transparency). The Standard tier adds looping animations like these for most exercises β <a href="https://repdb.co/pricing">repdb.co/pricing</a>.</p>
|
| 109 |
<div class="samples">
|
| 110 |
<figure><img src="https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/upgrade-samples/bench-leg-pull-in.webp" alt="Bench Leg Pull-in β looping transparent animation" loading="lazy"><figcaption>Bench Leg Pull-in Β· <span class="tag">animation</span></figcaption></figure>
|
| 111 |
<figure><img src="https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/upgrade-samples/cossack-squat.webp" alt="Cossack Squat β looping transparent animation" loading="lazy"><figcaption>Cossack Squat Β· <span class="tag">animation</span></figcaption></figure>
|
|
@@ -116,11 +141,23 @@
|
|
| 116 |
</section>
|
| 117 |
</main>
|
| 118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
<dialog id="dlg"><button class="x" aria-label="Close" onclick="dlg.close()">Γ</button><div class="modal" id="modal"></div></dialog>
|
| 120 |
|
| 121 |
<script>
|
| 122 |
let DATA=[];
|
| 123 |
const ASSET_BASE='https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/';
|
|
|
|
| 124 |
const grid=document.getElementById('grid'), q=document.getElementById('q'),
|
| 125 |
bodySel=document.getElementById('body'), equipSel=document.getElementById('equip'),
|
| 126 |
countEl=document.getElementById('count'), dlg=document.getElementById('dlg'), modal=document.getElementById('modal');
|
|
@@ -137,6 +174,23 @@ fetch(ASSET_BASE+'exercises.json').then(r=>r.json()).then(d=>{
|
|
| 137 |
});
|
| 138 |
dlg.onclick=ev=>{ if(ev.target===dlg) dlg.close(); };
|
| 139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
function filtered(){
|
| 141 |
const t=q.value.toLowerCase(), b=bodySel.value, eq=equipSel.value;
|
| 142 |
return DATA.filter(e=>{
|
|
|
|
| 79 |
.samples img{width:100%;aspect-ratio:1;object-fit:contain}
|
| 80 |
.samples figcaption{color:var(--mut);font-size:.75rem;margin-top:4px;background:var(--bg);border-radius:6px;padding:2px 4px}
|
| 81 |
.samples .tag{color:var(--acc);font-weight:700}
|
| 82 |
+
.dock{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;gap:12px;align-items:center;
|
| 83 |
+
max-width:1100px;margin:0 auto;padding:10px 20px calc(10px + env(safe-area-inset-bottom));
|
| 84 |
+
background:rgba(15,17,22,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-bottom:0;
|
| 85 |
+
border-radius:14px 14px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.45);
|
| 86 |
+
animation:dock-in .55s .5s cubic-bezier(.2,.8,.2,1) both}
|
| 87 |
+
@keyframes dock-in{from{transform:translateY(130%)}to{transform:translateY(0)}}
|
| 88 |
+
.dock-open{display:flex;gap:12px;align-items:center;flex:1;min-width:0;
|
| 89 |
+
background:0;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
|
| 90 |
+
.dock-open img{width:80px;height:80px;flex:none;object-fit:contain;border-radius:10px;padding:3px;
|
| 91 |
+
background-image:conic-gradient(#1b1e25 90deg,#0f1217 0 180deg,#1b1e25 0 270deg,#0f1217 0);background-size:12px 12px}
|
| 92 |
+
.dock-open:hover img,.dock-open:focus-visible img{outline:1px solid var(--acc)}
|
| 93 |
+
.dock-open:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:10px}
|
| 94 |
+
.dock-copy{min-width:0}
|
| 95 |
+
.dock-copy b{display:block;font-size:.92rem}
|
| 96 |
+
.dock-copy b .tag{color:var(--acc)}
|
| 97 |
+
.dock-copy>span{display:block;color:var(--mut);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
| 98 |
+
.dock .cta{flex:none;padding:9px 14px}
|
| 99 |
+
@media (max-width:560px){
|
| 100 |
+
.dock{gap:10px;padding:9px 12px calc(9px + env(safe-area-inset-bottom))}
|
| 101 |
+
.dock-open img{width:68px;height:68px}
|
| 102 |
+
.dock-copy>span,.dock-copy b .tag{display:none}
|
| 103 |
+
.dock-copy b{font-size:.86rem;line-height:1.25}
|
| 104 |
+
.dock .cta{padding:8px 11px;font-size:.85rem}
|
| 105 |
+
}
|
| 106 |
+
@media (prefers-reduced-motion:reduce){.dock{animation:none}}
|
| 107 |
</style>
|
| 108 |
</head>
|
| 109 |
<body>
|
| 110 |
<header>
|
| 111 |
<h1>Free Exercise Dataset β JSON + Images</h1>
|
| 112 |
<p class="sub">The free tier of <b>RepDB</b>: <b class="jscount">400</b> fitness exercises with flat illustrations, target muscles, equipment, MET, and instructions in English, German & Spanish. Free for personal and commercial in-app use with attribution β see <a href="https://github.com/sergei-argutin/exercise-dataset/blob/main/LICENSE-DATA.md">LICENSE-DATA.md</a>. The full paid dataset keeps growing and adds high-res classic images, transparency and animations.</p>
|
| 113 |
+
<a class="cta" href="https://repdb.co/pricing?utm_source=huggingface">Get the full dataset β</a>
|
| 114 |
</header>
|
| 115 |
|
| 116 |
<div class="bar">
|
|
|
|
| 122 |
<main>
|
| 123 |
<div class="promo">
|
| 124 |
<span>This is the <b>free tier</b> β <b><span class="jscount">400</span> exercises</b>, flat style, 512 px, EN/DE/ES, attribution license. The full paid dataset keeps growing and ships classic white-background 1024 px images, transparent backgrounds and looping animations.</span>
|
| 125 |
+
<a class="cta" href="https://repdb.co/pricing?utm_source=huggingface">See pricing β</a>
|
| 126 |
</div>
|
| 127 |
<div class="count" id="count"></div>
|
| 128 |
<div class="grid" id="grid"></div>
|
|
|
|
| 130 |
<section class="upgrade">
|
| 131 |
<h2>Upgrade samples β Standard tier preview</h2>
|
| 132 |
<p class="note"><b>Standard tier quality β evaluation only, see <a href="https://github.com/sergei-argutin/exercise-dataset/blob/main/LICENSE-DATA.md">LICENSE-DATA.md</a>.</b>
|
| 133 |
+
Looping, transparent-background exercise animations β the same clips shown on <a href="https://repdb.co/?utm_source=huggingface">repdb.co</a> (checkerboard shows the transparency). The Standard tier adds looping animations like these for most exercises β <a href="https://repdb.co/pricing?utm_source=huggingface">repdb.co/pricing</a>.</p>
|
| 134 |
<div class="samples">
|
| 135 |
<figure><img src="https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/upgrade-samples/bench-leg-pull-in.webp" alt="Bench Leg Pull-in β looping transparent animation" loading="lazy"><figcaption>Bench Leg Pull-in Β· <span class="tag">animation</span></figcaption></figure>
|
| 136 |
<figure><img src="https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/upgrade-samples/cossack-squat.webp" alt="Cossack Squat β looping transparent animation" loading="lazy"><figcaption>Cossack Squat Β· <span class="tag">animation</span></figcaption></figure>
|
|
|
|
| 141 |
</section>
|
| 142 |
</main>
|
| 143 |
|
| 144 |
+
<aside class="dock" aria-label="Standard tier preview">
|
| 145 |
+
<button class="dock-open" id="premiumDock">
|
| 146 |
+
<img src="https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/upgrade-samples/mountain-climbers.webp" alt="Mountain Climbers β looping transparent animation" />
|
| 147 |
+
<span class="dock-copy">
|
| 148 |
+
<b>Standard tier preview <span class="tag">β see the sample</span></b>
|
| 149 |
+
<span>Transparent looping animations and classic 1024 px images.</span>
|
| 150 |
+
</span>
|
| 151 |
+
</button>
|
| 152 |
+
<a class="cta" href="https://repdb.co/pricing?utm_source=huggingface">See pricing β</a>
|
| 153 |
+
</aside>
|
| 154 |
+
|
| 155 |
<dialog id="dlg"><button class="x" aria-label="Close" onclick="dlg.close()">Γ</button><div class="modal" id="modal"></div></dialog>
|
| 156 |
|
| 157 |
<script>
|
| 158 |
let DATA=[];
|
| 159 |
const ASSET_BASE='https://huggingface.co/datasets/sargutin/exercise-dataset/resolve/main/';
|
| 160 |
+
const PRICING_URL='https://repdb.co/pricing?utm_source=huggingface';
|
| 161 |
const grid=document.getElementById('grid'), q=document.getElementById('q'),
|
| 162 |
bodySel=document.getElementById('body'), equipSel=document.getElementById('equip'),
|
| 163 |
countEl=document.getElementById('count'), dlg=document.getElementById('dlg'), modal=document.getElementById('modal');
|
|
|
|
| 174 |
});
|
| 175 |
dlg.onclick=ev=>{ if(ev.target===dlg) dlg.close(); };
|
| 176 |
|
| 177 |
+
document.getElementById('premiumDock').onclick=()=>{
|
| 178 |
+
const samples = [
|
| 179 |
+
['bench-leg-pull-in','Bench Leg Pull-in'],
|
| 180 |
+
['cossack-squat','Cossack Squat'],
|
| 181 |
+
['bent-arm-barbell-pullover','Bent-arm Barbell Pullover'],
|
| 182 |
+
['incline-db-curl','Incline Dumbbell Curl'],
|
| 183 |
+
['mountain-climbers','Mountain Climbers']
|
| 184 |
+
];
|
| 185 |
+
modal.innerHTML=`<section class="upgrade" style="margin:0;border:0;padding:0">
|
| 186 |
+
<h2>Premium samples - Standard tier preview</h2>
|
| 187 |
+
<p class="note"><b>Standard tier quality.</b> Transparent-background looping animations - the same kind of clips shipped in the paid Standard tier. The checkerboard shows the transparency.</p>
|
| 188 |
+
<div class="samples">${samples.map(([slug,name])=>`<figure><img src="${ASSET_BASE}upgrade-samples/${slug}.webp" alt="${name} - looping transparent animation"><figcaption>${name} Β· <span class="tag">animation</span></figcaption></figure>`).join('')}</div>
|
| 189 |
+
<div class="foot">The full paid dataset keeps growing - classic 1024 px images, transparency & animations at <a href="${PRICING_URL}">repdb.co/pricing</a></div>
|
| 190 |
+
</section>`;
|
| 191 |
+
dlg.showModal();
|
| 192 |
+
};
|
| 193 |
+
|
| 194 |
function filtered(){
|
| 195 |
const t=q.value.toLowerCase(), b=bodySel.value, eq=equipSel.value;
|
| 196 |
return DATA.filter(e=>{
|