Niancheng AI App Builder Home
An AI app builder home page on off-white with a blue-pink-red aurora hero: transparent sticky nav with dropdowns, a big input with rotating typed prompts, three animated capability cards, a dark infrastructure showcase (sticky list with five animated scenes), a fictional logo wall, customer story carousel, growth-curve stats and a gradient closing footer.
A complete single-file page to start from. Structure, copy slots and responsive layout are all in place; copy the prompt to your model and it rewrites the copy, colors and images for your brand.
Where to use it
Home pages for AI image and video generation platforms: prompt composer, showcase and model introductions.
Install
With Builder, fetch the full page source with the 8pt CLI or call it directly from an editor connected to 8pt MCP.
Code
Single-file HTML + CSS, no build step.
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>念成 · AI 应用构建器</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+SC:wght@300;400;500;600;700;800&family=Noto+Serif+SC:wght@500;600&display=swap" rel="stylesheet"><style>
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#FCFBF8;color:#1C1C1A;font-family:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}img{display:block;max-width:100%}.page{overflow-x:clip}
.page .lg{display:inline-block;width:22px;height:22px;flex:none}.page .lg svg{width:100%;height:100%;display:block}
.nav{position:fixed;left:0;right:0;top:0;z-index:30;transition:background .3s,box-shadow .3s}.nav.sc{background:rgba(252,251,248,.86);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(0,0,0,.06)}
.nav-in{max-width:1160px;margin:0 auto;height:64px;display:flex;align-items:center;padding:0 20px}.brand{display:flex;align-items:center;gap:7px;font-weight:700;font-size:18px;letter-spacing:-.02em}
.nl{display:flex;align-items:center;gap:4px;margin-left:40px;font-size:14px;font-weight:500}.nl>a,.nd-b{display:inline-flex;align-items:center;gap:3px;height:34px;padding:0 10px;border:0;background:transparent;border-radius:8px;transition:background .2s}.nl>a:hover,.nd-b:hover{background:rgba(0,0,0,.05)}
.nd{position:relative}.nd-b svg{transition:transform .2s}.nd.open .nd-b svg{transform:rotate(180deg)}
.nd-m{position:absolute;left:0;top:42px;width:300px;padding:8px;background:#fff;border-radius:14px;box-shadow:0 20px 40px -12px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05);opacity:0;transform:translateY(-6px);pointer-events:none;transition:.2s}.nd.open .nd-m{opacity:1;transform:none;pointer-events:auto}
.nd-m a{display:flex;gap:12px;align-items:center;padding:9px 10px;border-radius:10px}.nd-m a:hover{background:#F5F4EF}.nd-i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#F5F4EF;color:#55554F;flex:none}.nd-m b{display:block;font-size:13.5px;font-weight:500}.nd-m small{font-size:12px;color:#7A7A75}
.nr{margin-left:auto;display:flex;gap:8px;align-items:center}.b-ghost{height:32px;padding:0 12px;border-radius:8px;border:0;background:#fff;box-shadow:0 0 0 1px #DEDCD5;font-size:13px;font-weight:500;display:inline-flex;align-items:center}.b-dark{height:32px;padding:0 13px;border-radius:8px;background:#1C1C1A;color:#fff;font-size:13px;font-weight:500;display:inline-flex;align-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);transition:background .2s}.b-dark:hover{background:#333}
.burger{display:none;width:38px;height:38px;border:0;background:transparent;border-radius:8px;place-items:center}.burger i{display:block;width:20px;height:1.6px;background:#1C1C1A;margin:4px 0;transition:.25s}.nav.mo .burger i:first-child{transform:translateY(5.6px) rotate(45deg)}.nav.mo .burger i:nth-child(2){opacity:0}.nav.mo .burger i:last-child{transform:translateY(-5.6px) rotate(-45deg)}
.mnav{display:none}
…