8pt

OCR Scan Card

截图文字识别卡•动效
介绍

左侧一张小票照片被蓝色扫描光反复扫过,识别出的文字逐行出现高亮框;右侧搜索框自动轮流输入关键词,结果列表对应高亮匹配项,演示「图片里的字也能搜到」。

拆自整页模板 随贴 Mac 剪贴板历史官网,可以单独使用,也能和同一模板拆出的其他组件拼回整页。

纯 HTML、CSS 与少量原生 JS,没有框架依赖。复制提示词交给 Claude Code、Cursor、Trae 或 Codex,模型会把 OCR Scan Card 加进你的项目并换成你的配色。

适用场景

滚动、悬停与入场动效,给页面增加节奏感;动效只用 transform 和 opacity。

安装

订阅 Builder 后,用 8pt CLI 装进项目,或在已接入 8pt MCP 的编辑器里直接调用。

$ npm i -g @8pt-dev/cli && 8pt add ocr-scan-card
mcp › 使用 8pt MCP 调用 get_component("ocr-scan-card")

代码

OCR Scan Card 的源码,动效只用 transform 与 opacity,并尊重减少动态效果设置。

<div class="x-ocr"><div class="x-ocr__shot"><img src="https://8pt.dev/api/media/a889a9ff944e5c79e2b1c3af.webp" alt="一张小票照片" draggable="false"><span class="x-ocr__beam" aria-hidden="true"></span><span class="x-ocr__box" style="--x:24%;--y:14%;--w:40%;--h:5%;--d:.2s"></span><span class="x-ocr__box" style="--x:20%;--y:32%;--w:52%;--h:5%;--d:.5s"></span><span class="x-ocr__box x-ocr__box--hit" style="--x:20%;--y:45%;--w:56%;--h:5%;--d:.8s"></span><span class="x-ocr__box" style="--x:20%;--y:58%;--w:48%;--h:5%;--d:1.1s"></span><span class="x-ocr__box" style="--x:20%;--y:80%;--w:58%;--h:5%;--d:1.4s"></span></div><div class="x-ocr__side"><label class="x-ocr__search"><svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="6.5"/><path d="M16 16l4 4"/></svg><span class="x-ocr__q"></span><i class="x-ocr__caret"></i></label><ul class="x-ocr__res"><li class="x-ocr__item is-hit"><span class="x-ocr__th x-ocr__th--a"></span><span><b>咖啡小票</b><small>识别到 <mark>燕麦拿铁</mark> · 刚刚</small></span></li><li class="x-ocr__item"><span class="x-ocr__th x-ocr__th--b"></span><span><b>白板照片</b><small>周会待办与排期</small></span></li><li class="x-ocr__item"><span class="x-ocr__th x-ocr__th--c"></span><span><b>报错截图</b><small>构建失败的提示信息</small></span></li></ul><span class="x-ocr__tag"><svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V6a2 2 0 0 1 2-2h2"/><path d="M16 4h2a2 2 0 0 1 2 2v2"/><path d="M20 16v2a2 2 0 0 1-2 2h-2"/><path d="M8 20H6a2 2 0 0 1-2-2v-2"/><path d="M8 9.5h8"/><path d="M8 12.5h8"/><path d="M8 15.5h5"/></svg>截图与图片里的字,也能搜到</span></div></div>
.x-ocr{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center;width:100%;max-width:980px;margin:0 auto;padding:32px;border-radius:30px;background:#f3f3f5;color:#0b0b0f;font-family:"PingFang SC","Noto Sans SC","Noto Sans CJK SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}.x-ocr *,.x-ocr *::before,.x-ocr *::after{box-sizing:border-box}.x-ocr svg{width:1em;height:1em;flex:none}.x-ocr__shot{position:relative;aspect-ratio:510/600;max-height:560px;margin:0 auto;width:100%;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}.x-ocr__shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.x-ocr__beam{position:absolute;left:0;right:0;top:0;height:22%;background:linear-gradient(180deg,transparent,rgba(61,123,255,.28) 80%,rgba(61,123,255,.9) 100%);animation:x-ocr-scan 3.6s cubic-bezier(.45,0,.55,1) infinite}@keyframes x-ocr-scan{0%{transform:translateY(-100%)}70%,100%{transform:translateY(460%)}}.x-ocr__box{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border-radius:6px;background:rgba(61,123,255,.14);box-shadow:inset 0 0 0 1.5px rgba(61,123,255,.7);opacity:0;animation:x-ocr-box 3.6s var(--d) ease-out infinite}.x-ocr__box--hit{background:rgba(255,200,40,.35);box-shadow:inset 0 0 0 2px #f5a623}@keyframes x-ocr-box{0%{opacity:0;transform:scale(.96)}10%,80%{opacity:1;transform:none}100%{opacity:0}}.x-ocr__side{display:flex;flex-direction:column;gap:14px}.x-ocr__search{display:flex;align-items:center;gap:10px;height:52px;padding:0 18px;border-radius:16px;background:#fff;color:#8a8a93;font-size:18px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 10px 30px -18px rgba(0,0,0,.3)}.x-ocr__q{color:#0b0b0f;font-size:16px;font-weight:600}.x-ocr__caret{width:2px;height:20px;margin-left:-6px;background:#3d7bff;animation:x-ocr-blink 1s steps(1) infinite}@keyframes x-ocr-blink{50%{opacity:0}}.x-ocr__res{display:grid;gap:8px;margin:0;padding:0;list-style:none}.x-ocr__item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:#fff;opacity:.6;transition:opacity .3s,box-shadow .3s,transform .3s}.x-ocr__item b{display:block;font-size:14px;font-weight:600}.x-ocr__item small{display:block;margin-top:2px;font-size:12px;color:#7a7a84}.x-ocr__item mark{padding:0 3px;border-radius:4px;background:#ffe08a;color:inherit}.x-ocr__item.is-hit{opacity:1;box-shadow:0 0 0 2px #3d7bff;transform:translateX(4px)}.x-ocr__th{width:44px;height:44px;flex:none;border-radius:11px;background:url(https://8pt.dev/api/media/a889a9ff944e5c79e2b1c3af.webp) center/cover}.x-ocr__th--b{background:linear-gradient(135deg,#f1f5ff,#cfdcf5)}.x-ocr__th--c{background:linear-gradient(135deg,#2b2b31,#5a1f24)}.x-ocr__tag{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;height:34px;padding:0 14px;border-radius:99px;background:#e6e6ea;font-size:13px;color:#3a3a42}@media (max-width:720px){.x-ocr{grid-template-columns:1fr;padding:18px}.x-ocr__shot{max-height:300px;aspect-ratio:auto;height:300px}}@media (prefers-reduced-motion:reduce){.x-ocr__beam,.x-ocr__box,.x-ocr__caret{animation:none}.x-ocr__box{opacity:1}.x-ocr__item{transition:none}}
(root) => {
  const q = root.querySelector('.x-ocr__q');
  const items = [...root.querySelectorAll('.x-ocr__item')];
  const words = ['拿铁', '周会', '构建失败'];
  let w = 0, i = 0, dir = 1, t = 0;
  const step = () => {
    const word = words[w];
    i += dir;
    q.textContent = word.slice(0, i);
    if (dir > 0 && i === word.length) { items.forEach((x, k) => x.classList.toggle('is-hit', k === w)); dir = -1; t = setTimeout(step, 1800); return; }
    if (dir < 0 && i === 0) { dir = 1; w = (w + 1) % words.length; t = setTimeout(step, 400); return; }
    t = setTimeout(step, dir > 0 ? 220 : 90);
…
订阅 Builder 查看完整源码。查看价格

同一模板的其他组件

查看全部

Sky Hero Headline

Device Price Card

Two Column FAQ

Notch Pill Nav

Clip Library Window

Inline Shortcut Typer

更多动效组件

查看全部

Chaos Versus Ship Split

Integration Tile Grid

Infra Tab Showcase

Ticker CTA Band

Chrome Outline Wordmark

Prompt Hub Diagram

Dual Row Quote Marquee

Ask AI Composer

更多组件

查看全部

Tabbed Logo Testimonial

Dot Matrix Glow Hero

Dotted Globe Features

Segmented Pricing Tiers

Live Deploy Bento

Floating Tile CTA Banner

Aurora Prompt Hero

Trio Capability Cards

继续探索