8pt

Gradient Footer Panel

渐变收尾页脚•导航
介绍

收尾区:小标签、行动标题与带打字占位的输入框,背景由米白过渡到蓝、粉、红、橙的竖向渐变;下方米色圆角页脚卡片含标志、五列链接和向上弹出的语言切换菜单。

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

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

适用场景

官网顶部导航、标签切换、分段控制、侧边导航和页脚。

安装

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

$ npm i -g @8pt-dev/cli && 8pt add gradient-footer-panel
mcp › 使用 8pt MCP 调用 get_component("gradient-footer-panel")

代码

Gradient Footer Panel 的源码,动效只用 transform 与 opacity,并尊重减少动态效果设置。

<section class="x-gfp"><div class="gfp-bg" aria-hidden="true"></div><div class="gfp-cta"><small>AI 应用构建器</small><h2>准备好让想法上线了吗?</h2><form class="gfp-box cmp" action="#"><div class="cmp-f"><textarea rows="2" aria-label="描述你的想法"></textarea><span class="cmp-ph">让念成帮我做<b class="cmp-t"></b><i class="cmp-c"></i></span></div><div class="cmp-bar"><button type="button" class="cmp-add" 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="M12 5v14M5 12h14"/></svg></button><span class="cmp-sp"></span><div class="cmp-mode"><button type="button" class="cmp-mb" aria-haspopup="true"><span>构建</span><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="M6 9l6 6 6-6"/></svg></button><div class="cmp-menu"><button type="button" class="on">构建</button><button type="button">规划</button><button type="button">问答</button></div></div><button type="button" class="cmp-mic" aria-label="语音输入"><svg viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5 11a7 7 0 0 0 14 0M12 18v3"/></svg></button><button type="submit" class="cmp-go" aria-label="发送"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M6 11l6-6 6 6"/></svg></button></div></form></div><footer class="gfp-card"><div class="gfp-l"><span class="lg"><svg viewBox="0 0 32 32"><defs><linearGradient id="lgG" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FF7A1A"/><stop offset=".5" stop-color="#FF3D8B"/><stop offset="1" stop-color="#7B61FF"/></linearGradient></defs><path d="M6 4h12a10 10 0 0 1 10 10v4a10 10 0 0 1-10 10H10a6 6 0 0 1-6-6V6a2 2 0 0 1 2-2z" fill="url(#lgG)"/><path d="M15.5 9l1.6 4.4 4.4 1.6-4.4 1.6-1.6 4.4-1.6-4.4-4.4-1.6 4.4-1.6z" fill="#fff"/></svg></span><div class="gfp-lang"><button type="button" class="gfp-lb"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18"/></svg><span>简体中文</span><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg></button><div class="gfp-lm"><button type="button" class="on">简体中文</button><button type="button">English</button><button type="button">日本語</button></div></div></div><nav><b>公司</b><a href="#">加入我们</a><a href="#">媒体资料</a><a href="#">企业版</a><a href="#">安全</a><a href="#">信任中心</a><a href="#">合作</a></nav><nav><b>产品</b><a href="#">价格</a><a href="#">学生优惠</a><a href="#">小团队</a><a href="#">创业者</a><a href="#">设计师</a><a href="#">内部工具</a><a href="#">下载应用</a></nav><nav><b>资源</b><a href="#">学习中心</a><a href="#">模板</a><a href="#">指南</a><a href="#">连接器</a><a href="#">视频</a><a href="#">博客</a><a href="#">帮助</a></nav><nav><b>条款</b><a href="#">隐私政策</a><a href="#">Cookie 设置</a><a href="#">服务条款</a><a href="#">平台规则</a><a href="#">无障碍</a></nav><nav><b>社区</b><a href="#">成为伙伴</a><a href="#">联盟计划</a><a href="#">行为准则</a><a href="#">社区论坛</a><a href="#">视频频道</a></nav></footer></section>
.x-gfp{--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-gfp,.x-gfp *{box-sizing:border-box}.x-gfp a{color:inherit;text-decoration:none}.x-gfp button{font:inherit;cursor:pointer;color:inherit}.x-gfp img{display:block;max-width:100%}.x-gfp .cmp{position:relative;width:100%;max-width:720px;margin:0 auto;background:rgba(255,255,255,.96);border-radius:28px;padding:16px 14px 12px 20px;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 24px 60px -24px rgba(40,20,80,.35),0 0 0 1px rgba(20,20,20,.05);text-align:left;transition:box-shadow .3s}.x-gfp .cmp:focus-within{box-shadow:0 0 0 4px rgba(76,125,255,.18),0 24px 60px -24px rgba(40,20,80,.35)}.x-gfp .cmp-f{position:relative}.x-gfp .cmp textarea{width:100%;border:0;outline:0;resize:none;background:transparent;font:inherit;font-size:16px;line-height:1.5;color:var(--ink);padding:0;min-height:48px}.x-gfp .cmp-ph{position:absolute;left:0;top:0;font-size:16px;line-height:1.5;color:#8A8A85;pointer-events:none;white-space:nowrap;overflow:hidden;max-width:100%}.x-gfp .cmp-ph b{font-weight:400}.x-gfp .cmp-c{display:inline-block;width:1.5px;height:17px;background:#8A8A85;vertical-align:-3px;margin-left:1px;animation:cmpB 1s steps(1) infinite}.x-gfp .cmp.has .cmp-ph{opacity:0}@keyframes cmpB{50%{opacity:0}}.x-gfp .cmp-bar{display:flex;align-items:center;gap:6px;margin-top:4px}.x-gfp .cmp-sp{flex:1}.x-gfp .cmp-add{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:#6B6B66;transition:background .2s}.x-gfp .cmp-add:hover{background:var(--card)}.x-gfp .cmp-mode{position:relative}.x-gfp .cmp-mb{display:flex;align-items:center;gap:4px;height:30px;padding:0 10px;border:0;background:transparent;border-radius:10px;font-size:13px;color:#5F5F5B}.x-gfp .cmp-mb:hover{background:var(--card)}.x-gfp .cmp-mb svg{transition:transform .2s}.x-gfp .cmp-mode.open .cmp-mb svg{transform:rotate(180deg)}.x-gfp .cmp-menu{position:absolute;right:0;top:36px;z-index:5;min-width:120px;background:#fff;border-radius:12px;padding:6px;box-shadow:0 12px 32px -8px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05);opacity:0;transform:translateY(-4px);pointer-events:none;transition:.18s}.x-gfp .cmp-mode.open .cmp-menu{opacity:1;transform:none;pointer-events:auto}.x-gfp .cmp-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:8px;font-size:13px}.x-gfp .cmp-menu button:hover{background:var(--card)}.x-gfp .cmp-menu button.on{font-weight:600}.x-gfp .cmp-mic{width:30px;height:30px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;color:#6B6B66}.x-gfp .cmp-mic:hover{background:var(--card)}.x-gfp .cmp-mic.rec{color:var(--red);animation:cmpP 1.2s infinite}@keyframes cmpP{50%{box-shadow:0 0 0 6px rgba(255,46,99,.15)}}.x-gfp .cmp-go{width:30px;height:30px;border:0;border-radius:50%;background:#1C1C1A;color:#fff;display:grid;place-items:center;opacity:.25;transition:opacity .2s,transform .2s}.x-gfp .cmp.has .cmp-go{opacity:1}.x-gfp .cmp.sent .cmp-go{transform:translateY(-3px)}.x-gfp .lg{display:inline-block;width:30px;height:30px;flex:none}.x-gfp .lg svg{width:100%;height:100%;display:block}.x-gfp{position:relative;width:100%;padding:70px 32px 32px;overflow:hidden;isolation:isolate;background:var(--cream)}.x-gfp .gfp-bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(130% 60% at 50% 34%,#FCFBF8 30%,rgba(252,251,248,0) 55%),linear-gradient(180deg,#FCFBF8 0%,#B9C8FF 26%,#5B7CFF 38%,#FF66CC 60%,#FF2E63 80%,#FF7A1A 100%);background-size:100% 100%;animation:gfpS 14s ease-in-out infinite alternate}@keyframes gfpS{to{filter:hue-rotate(-12deg) saturate(1.1)}}.x-gfp .gfp-cta{text-align:center;max-width:620px;margin:0 auto 64px}.x-gfp .gfp-cta small{display:block;font-size:14px;color:#6B6B66;margin-bottom:8px}.x-gfp h2{margin:0 0 26px;font-size:clamp(26px,3vw,34px);font-weight:600;letter-spacing:-.03em}.x-gfp .cmp{max-width:580px;border-radius:22px}.x-gfp .gfp-card{display:grid;grid-template-columns:1.1fr repeat(5,1fr);gap:24px;max-width:1280px;margin:0 auto;padding:30px 30px 26px;background:#F6F4EE;border-radius:18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.25)}.x-gfp .gfp-l{display:flex;flex-direction:column;justify-content:space-between;gap:20px}.x-gfp nav b{display:block;font-size:13px;font-weight:600;margin-bottom:14px}.x-gfp nav a{display:block;font-size:13px;color:#6B6B66;margin-bottom:9px;transition:color .2s}.x-gfp nav a:hover{color:#1C1C1A}.x-gfp .gfp-lang{position:relative;align-self:flex-start}.x-gfp .gfp-lb{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:9px;border:0;background:#fff;box-shadow:0 0 0 1px var(--line);font-size:12px}.x-gfp .gfp-lm{position:absolute;left:0;bottom:36px;min-width:130px;background:#fff;border-radius:10px;padding:5px;box-shadow:0 12px 30px -8px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05);opacity:0;transform:translateY(4px);pointer-events:none;transition:.18s}.x-gfp .gfp-lang.open .gfp-lm{opacity:1;transform:none;pointer-events:auto}.x-gfp .gfp-lm button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:6px 10px;border-radius:7px;font-size:12px}.x-gfp .gfp-lm button:hover{background:var(--card)}.x-gfp .gfp-lm button.on{font-weight:600}@media (max-width:900px){.x-gfp{padding:56px 14px 14px}.x-gfp .gfp-card{grid-template-columns:repeat(2,1fr);padding:24px 20px}.x-gfp .gfp-l{grid-column:1/-1;flex-direction:row;align-items:center}}@media (prefers-reduced-motion:reduce){.x-gfp *,.x-gfp *::before,.x-gfp *::after{animation:none!important;transition:none!important}}.x-gfp{width:1200px;max-width:100%;box-sizing:border-box}
(root) => {const cl=[];const cmpInit=(f,list,cl)=>{if(!f)return;const ta=f.querySelector('textarea'),t=f.querySelector('.cmp-t'),md=f.querySelector('.cmp-mode'),mb=f.querySelector('.cmp-mb'),mic=f.querySelector('.cmp-mic');let li=0,ci=list[0].length,del=false,tm;
const red=matchMedia('(prefers-reduced-motion: reduce)').matches;
const tick=()=>{const w=list[li];if(red){t.textContent=w;return}if(!del){if(ci>=w.length){t.textContent=w;del=true;tm=setTimeout(tick,2200);return}ci++;t.textContent=w.slice(0,ci);if(ci>=w.length){del=true;tm=setTimeout(tick,1600);return}}else{ci--;t.textContent=w.slice(0,ci);if(ci<=0){del=false;li=(li+1)%list.length}}tm=setTimeout(tick,del?35:85)};tick();
const upd=()=>f.classList.toggle('has',ta.value.trim().length>0);ta.addEventListener('input',upd);
const tog=e=>{e.stopPropagation();md.classList.toggle('open')};mb.addEventListener('click',tog);
const pick=e=>{const b=e.target.closest('.cmp-menu button');if(!b)return;md.querySelectorAll('.cmp-menu button').forEach(x=>x.classList.toggle('on',x===b));mb.querySelector('span').textContent=b.textContent;md.classList.remove('open')};md.addEventListener('click',pick);
const out=()=>md.classList.remove('open');document.addEventListener('click',out);
const mc=()=>mic.classList.toggle('rec');mic.addEventListener('click',mc);
const sub=e=>{e.preventDefault();f.classList.add('sent');setTimeout(()=>{f.classList.remove('sent');ta.value='';upd()},500)};f.addEventListener('submit',sub);
cl.push(()=>{clearTimeout(tm);document.removeEventListener('click',out)})};cmpInit(root.querySelector('.cmp'),["一个读书会报名页…","一家咖啡馆的会员系统…","团队周报自动汇总工具…"],cl);
const lg=root.querySelector('.gfp-lang'),lb=root.querySelector('.gfp-lb');const t=e=>{e.stopPropagation();lg.classList.toggle('open')};lb.addEventListener('click',t);
const p=e=>{const b=e.target.closest('.gfp-lm button');if(!b)return;lg.querySelectorAll('.gfp-lm button').forEach(x=>x.classList.toggle('on',x===b));lb.querySelector('span').textContent=b.textContent;lg.classList.remove('open')};lg.addEventListener('click',p);
…
订阅 Builder 查看完整源码。查看价格

同一模板的其他组件

查看全部

Aurora Prompt Hero

Integration Tile Grid

Trio Capability Cards

Infra Tab Showcase

Wireframe Globe Arc

Growth Stat Chart

Story Stat Carousel

更多导航组件

查看全部

Pill Dropdown Header

Motto Column Footer

Pill Link Footer

Notch Pill Nav

Closing CTA Footer

Giant Wordmark Footer

Connect Way Tabs

Animated Tabs

更多组件

查看全部

Tabbed Logo Testimonial

Dot Matrix Glow Hero

Dotted Globe Features

Chaos Versus Ship Split

Segmented Pricing Tiers

Live Deploy Bento

Floating Tile CTA Banner

Aurora Prompt Hero

继续探索