8pt

Story Stat Carousel

客户故事轮播•卡片
介绍

客户故事横向轮播:两侧卡片只露出虚构品牌字标,居中卡片展开为故事简介、渐变左边框引语、三项示意数据、头像署名与阅读按钮;点击侧卡或左右按钮平滑切换。

拆自整页模板 念成 AI 应用构建器首页,可以单独使用,也能和同一模板拆出的其他组件拼回整页。

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

适用场景

功能介绍、案例与作品、团队成员、文章列表等需要把信息成组展示的区块。

安装

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

$ npm i -g @8pt-dev/cli && 8pt add story-stat-carousel
mcp › 使用 8pt MCP 调用 get_component("story-stat-carousel")

代码

Story Stat Carousel 的源码,动效只用 transform 与 opacity,并尊重减少动态效果设置。

<section class="x-ssc"><div class="ssc-h"><h2>成果,都在生产环境里</h2><p>这些团队用念成做出了自己需要的软件,如今生意就跑在上面。</p><a href="#" class="ssc-all">查看全部客户故事<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg></a></div><div class="ssc-vp"><div class="ssc-tr"><article class="ssc-c on" data-i="0"><div class="ssc-wm"><span class="wm wm0">青檐学社</span></div><div class="ssc-full"><div class="ssc-top"><span class="wm wm0">青檐学社</span><span class="ssc-tag">示意数据</span></div><div class="ssc-mid"><div><p class="ssc-s">三个大学生从零做出一套 AI 学习系统,帮任何人学得更快。</p><blockquote>“当我发现它真的能把我想要的东西做出来,第一反应是:这是我见过最酷的工具。”</blockquote></div><dl><div><dt>¥96 万</dt><dd>上线 30 天年化收入</dd></div><div><dt>2600+</dt><dd>两天内注册用户</dd></div><div><dt>¥5400 万</dt><dd>宣布的合作规模</dd></div></dl></div><div class="ssc-ft"><img src="https://8pt.dev/api/media/f905a6898be726e4e2c08376.webp" alt="" loading="lazy"><div><b>许清禾</b><small>联合创始人</small></div><a href="#" class="ssc-rd">阅读故事<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a></div></div></article><article class="ssc-c" data-i="1"><div class="ssc-wm"><span class="wm wm1">禾序<i>物流</i></span></div><div class="ssc-full"><div class="ssc-top"><span class="wm wm1">禾序<i>物流</i></span><span class="ssc-tag">示意数据</span></div><div class="ssc-mid"><div><p class="ssc-s">一个四人运营团队,用一个周末替换掉了三套零散的调度表格。</p><blockquote>“以前要等排期的内部工具,现在我们自己下午就能改好。”</blockquote></div><dl><div><dt>3 套</dt><dd>被替换的旧系统</dd></div><div><dt>40%</dt><dd>调度耗时减少</dd></div><div><dt>2 天</dt><dd>从想法到上线</dd></div></dl></div><div class="ssc-ft"><img src="https://8pt.dev/api/media/49f1008001811031d1c6d91a.webp" alt="" loading="lazy"><div><b>周以宁</b><small>运营负责人</small></div><a href="#" class="ssc-rd">阅读故事<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a></div></div></article><article class="ssc-c" data-i="2"><div class="ssc-wm"><span class="wm wm2">栖木 <b>HOME</b></span></div><div class="ssc-full"><div class="ssc-top"><span class="wm wm2">栖木 <b>HOME</b></span><span class="ssc-tag">示意数据</span></div><div class="ssc-mid"><div><p class="ssc-s">家居品牌把季度上新页交给设计师自己搭,开发只负责审核。</p><blockquote>“设计稿到上线之间那道墙,终于拆掉了。”</blockquote></div><dl><div><dt>12 个</dt><dd>季度上新页面</dd></div><div><dt>1 人</dt><dd>即可维护</dd></div><div><dt>3 倍</dt><dd>迭代速度</dd></div></dl></div><div class="ssc-ft"><img src="https://8pt.dev/api/media/c347fe6cd95f3f4671c6987a.webp" alt="" loading="lazy"><div><b>林栖</b><small>品牌设计总监</small></div><a href="#" class="ssc-rd">阅读故事<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a></div></div></article><article class="ssc-c" data-i="3"><div class="ssc-wm"><span class="wm wm3">鹿鸣<i>诊所</i></span></div><div class="ssc-full"><div class="ssc-top"><span class="wm wm3">鹿鸣<i>诊所</i></span><span class="ssc-tag">示意数据</span></div><div class="ssc-mid"><div><p class="ssc-s">连锁诊所做了一套预约与回访工具,前台不再手抄排班。</p><blockquote>“患者自己约、自己改,前台终于能专心接待了。”</blockquote></div><dl><div><dt>8 家</dt><dd>门店同时使用</dd></div><div><dt>65%</dt><dd>线上预约占比</dd></div><div><dt>0</dt><dd>额外开发人力</dd></div></dl></div><div class="ssc-ft"><img src="https://8pt.dev/api/media/38505aff3ebbc7e9e0b7cb8c.webp" alt="" loading="lazy"><div><b>陈野</b><small>数字化负责人</small></div><a href="#" class="ssc-rd">阅读故事<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a></div></div></article></div></div><div class="ssc-nav"><button type="button" class="ssc-p" aria-label="上一个"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M15 6l-6 6 6 6"/></svg></button><button type="button" class="ssc-n" aria-label="下一个"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg></button></div></section>
.x-ssc{--ink:#1C1C1A;--mut:#5F5F5B;--line:#E9E7E1;--cream:#FCFBF8;--card:#F5F4EF;--blue:#4C7DFF;--pink:#FF66CC;--red:#FF2E63;--org:#FF7A1A;font-family:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-align:left;color:var(--ink)}.x-ssc,.x-ssc *{box-sizing:border-box}.x-ssc a{color:inherit;text-decoration:none}.x-ssc button{font:inherit;cursor:pointer;color:inherit}.x-ssc img{display:block;max-width:100%}.x-ssc{width:100%;padding:0;overflow:hidden}.x-ssc .ssc-h{text-align:center;max-width:520px;margin:0 auto 34px;padding:0 20px}.x-ssc h2{margin:0 0 12px;font-size:clamp(28px,3vw,36px);font-weight:600;letter-spacing:-.03em}.x-ssc .ssc-h p{margin:0 0 18px;font-size:15px;line-height:1.6;color:var(--mut)}.x-ssc .ssc-all{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500}.x-ssc .ssc-all:hover{text-decoration:underline}.x-ssc .ssc-vp{position:relative;height:440px}.x-ssc .ssc-tr{position:absolute;left:0;top:0;display:flex;align-items:center;gap:14px;height:100%;transition:transform .7s cubic-bezier(.65,0,.25,1)}.x-ssc .ssc-c{position:relative;flex:none;width:300px;height:340px;border-radius:16px;background:var(--card);overflow:hidden;transition:width .7s cubic-bezier(.65,0,.25,1),height .7s cubic-bezier(.65,0,.25,1),background .4s;cursor:pointer}.x-ssc .ssc-c.on{width:min(720px,calc(100vw - 40px));height:420px;background:#F1F0EB;cursor:default}.x-ssc .ssc-wm{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .4s}.x-ssc .ssc-c.on .ssc-wm{opacity:0;pointer-events:none}.x-ssc .ssc-full{position:absolute;left:0;top:0;width:min(720px,calc(100vw - 40px));height:420px;padding:26px 30px;display:flex;flex-direction:column;opacity:0;transition:opacity .35s;pointer-events:none}.x-ssc .ssc-c.on .ssc-full{opacity:1;transition-delay:.35s;pointer-events:auto}.x-ssc .wm{font-size:28px;color:#1C1C1A;letter-spacing:.02em;white-space:nowrap}.x-ssc .wm0{font-family:"Noto Serif SC",serif;font-weight:600}.x-ssc .wm1{font-weight:800;letter-spacing:.12em}.x-ssc .wm1 i,.x-ssc .wm3 i{font-style:normal;font-weight:400;font-size:.6em;margin-left:4px;color:#666}.x-ssc .wm2{font-weight:300}.x-ssc .wm2 b{font-weight:700;letter-spacing:.2em;font-size:.7em}.x-ssc .wm3{font-weight:600;font-style:italic}.x-ssc .ssc-top{display:flex;align-items:center;justify-content:space-between}.x-ssc .ssc-top .wm{font-size:24px}.x-ssc .ssc-tag{font-size:11px;color:#8A8A85;border:1px solid #DDDCD6;border-radius:999px;padding:2px 8px}.x-ssc .ssc-mid{display:grid;grid-template-columns:1fr 190px;gap:30px;margin-top:30px;flex:1}.x-ssc .ssc-s{margin:0 0 20px;font-size:13px;line-height:1.6;color:#55554F}.x-ssc blockquote{margin:0;padding-left:14px;border-left:2px solid;border-image:linear-gradient(180deg,#FF7A1A,#FF3D8B,#7B61FF) 1;font-size:19px;font-weight:500;line-height:1.45;letter-spacing:-.01em}.x-ssc dl{margin:0;display:grid;gap:14px;align-content:start}.x-ssc dt{font-size:26px;font-weight:500;letter-spacing:-.02em}.x-ssc dd{margin:2px 0 0;font-size:12px;color:var(--mut)}.x-ssc .ssc-ft{display:flex;align-items:center;gap:12px}.x-ssc .ssc-ft img{width:42px;height:42px;border-radius:8px;object-fit:cover}.x-ssc .ssc-ft b{display:block;font-size:13px;font-weight:500}.x-ssc .ssc-ft small{font-size:12px;color:var(--mut)}.x-ssc .ssc-rd{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;background:#fff;box-shadow:0 0 0 1px var(--line),0 2px 4px rgba(0,0,0,.04);font-size:13px;font-weight:500;transition:box-shadow .2s}.x-ssc .ssc-rd:hover{box-shadow:0 0 0 1px #ccc,0 4px 10px rgba(0,0,0,.08)}.x-ssc .ssc-nav{display:flex;justify-content:center;gap:10px;margin-top:22px}.x-ssc .ssc-nav button{width:40px;height:40px;border-radius:10px;border:0;background:#fff;box-shadow:0 0 0 1px var(--line);display:grid;place-items:center;transition:background .2s}.x-ssc .ssc-nav button:hover{background:var(--card)}.x-ssc .ssc-nav button:disabled{opacity:.4;cursor:default}@media (max-width:700px){.x-ssc .ssc-vp{height:620px}.x-ssc .ssc-c.on,.x-ssc .ssc-full{height:600px}.x-ssc .ssc-mid{grid-template-columns:1fr;gap:18px;margin-top:20px}.x-ssc dl{grid-template-columns:repeat(3,1fr)}.x-ssc dt{font-size:19px}.x-ssc blockquote{font-size:16px}.x-ssc .ssc-full{padding:22px 20px}.x-ssc .ssc-c{width:260px}}@media (prefers-reduced-motion:reduce){.x-ssc *,.x-ssc *::before,.x-ssc *::after{animation:none!important;transition:none!important}}.x-ssc{padding:48px 0;background-image:radial-gradient(rgba(28,28,26,.12) 1.1px,transparent 1.4px);background-size:18px 18px;background-position:center}.x-ssc{width:1200px;max-width:100%;box-sizing:border-box}
(root) => {const vp=root.querySelector('.ssc-vp'),tr=root.querySelector('.ssc-tr'),cs=[...root.querySelectorAll('.ssc-c')],pv=root.querySelector('.ssc-p'),nx=root.querySelector('.ssc-n');let i=0;
const lay=()=>{const W=vp.clientWidth,gap=14,small=cs[0].classList.contains('on')?(cs[1]||cs[0]).offsetWidth:cs[0].offsetWidth;const sw=W<700?260:300,big=Math.min(720,W-40);let off=0;for(let k=0;k<i;k++)off+=sw+gap;tr.style.transform='translateX('+(W/2-off-big/2)+'px)';pv.disabled=i===0;nx.disabled=i===cs.length-1};
const go=n=>{i=Math.max(0,Math.min(cs.length-1,n));cs.forEach((c,k)=>c.classList.toggle('on',k===i));lay()};
const a=()=>go(i-1),b=()=>go(i+1),c=e=>{const el=e.target.closest('.ssc-c');if(el&&!el.classList.contains('on')){e.preventDefault();go(+el.dataset.i)}else if(e.target.closest('.ssc-rd'))e.preventDefault()};
pv.addEventListener('click',a);nx.addEventListener('click',b);tr.addEventListener('click',c);const ro=new ResizeObserver(lay);ro.observe(vp);go(1);
return ()=>{ro.disconnect();pv.removeEventListener('click',a);nx.removeEventListener('click',b)}}
订阅 Builder 查看完整源码。查看价格

同一模板的其他组件

查看全部

Aurora Prompt Hero

Integration Tile Grid

Trio Capability Cards

Infra Tab Showcase

Wireframe Globe Arc

Growth Stat Chart

Gradient Footer Panel

更多卡片组件

查看全部

Live Deploy Bento

Trio Capability Cards

Collage Topic Cards

Agent Use Cards

AI Feature Bento

Tagged Journal Cards

MCP Connect Steps

Masonry Review Wall

更多组件

查看全部

Tabbed Logo Testimonial

Dot Matrix Glow Hero

Dotted Globe Features

Chaos Versus Ship Split

Segmented Pricing Tiers

Floating Tile CTA Banner

Aurora Prompt Hero

Integration Tile Grid

继续探索