Skip to content

Commit b2bb7a7

Browse files
authored
Add initial examples.html file with templates
1 parent a1bd4af commit b2bb7a7

1 file changed

Lines changed: 203 additions & 0 deletions

File tree

‎examples.html‎

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
6+
<title>devtemDesign Examples | Live SaaS, Portfolio & Open Source Landing Pages</title>
7+
<meta name="description" content="Live devtemDesign examples: a SaaS landing page, a portfolio and an open source project page. Preview on desktop and mobile, switch between 7 templates, and copy the full code.">
8+
<meta name="keywords" content="devtemDesign examples, landing page examples, SaaS landing page template, portfolio template, open source project page, JavaScript page generator, glassmorphism templates">
9+
<meta name="author" content="DevTemple">
10+
<meta name="robots" content="index, follow, max-image-preview:large">
11+
<meta name="color-scheme" content="dark">
12+
<meta name="theme-color" content="#050b14">
13+
<link rel="canonical" href="https://design.devtem.org/examples">
14+
<meta property="og:type" content="website">
15+
<meta property="og:site_name" content="devtemDesign">
16+
<meta property="og:title" content="devtemDesign Examples">
17+
<meta property="og:description" content="Live landing page examples with a template switcher and copyable code.">
18+
<meta property="og:url" content="https://design.devtem.org/examples">
19+
<meta property="og:image" content="https://design.devtem.org/assets/images/og.jpg">
20+
<meta name="twitter:card" content="summary_large_image">
21+
<meta name="twitter:title" content="devtemDesign Examples">
22+
<meta name="twitter:description" content="Live landing page examples with a template switcher and copyable code.">
23+
<meta name="twitter:image" content="https://design.devtem.org/assets/images/og.jpg">
24+
<link rel="icon" href="https://design.devtem.org/assets/images/logo.png">
25+
<script type="application/ld+json">
26+
{"@context":"https://schema.org","@graph":[
27+
{"@type":"CollectionPage","name":"devtemDesign Examples","url":"https://design.devtem.org/examples","description":"Live landing page examples built with devtemDesign.","publisher":{"@type":"Organization","name":"DevTemple"},"hasPart":[
28+
{"@type":"CreativeWork","name":"SaaS landing page","description":"Stats, features, yearly pricing, FAQ and CTA using the ocean template."},
29+
{"@type":"CreativeWork","name":"Portfolio","description":"Process steps, selected work and a closing CTA using the sunset template."},
30+
{"@type":"CreativeWork","name":"Open source project page","description":"Install steps, brand marquee and FAQ using the cyber template."}]},
31+
{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"devtemDesign","item":"https://design.devtem.org/"},{"@type":"ListItem","position":2,"name":"Examples","item":"https://design.devtem.org/examples"}]}]}
32+
</script>
33+
<style>
34+
:root{--bg:#050b14;--fg:#f4f9ff;--mut:#9fb0c8;--line:rgba(255,255,255,.1);--card:#0c1524;--acc:#7af4ff;--acc2:#b77cff}
35+
*{box-sizing:border-box;margin:0;padding:0}
36+
html{scroll-behavior:smooth}
37+
body{background:var(--bg);color:var(--fg);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}
38+
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
39+
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
40+
button,select{font:inherit;color:inherit}
41+
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:rgba(5,11,20,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
42+
.logo{font-weight:800;color:var(--fg)}.logo b{color:var(--acc)}.logo:hover{text-decoration:none}
43+
.top nav{display:flex;gap:16px;font-size:.88rem}.top nav a{color:var(--mut)}
44+
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
45+
.hd{padding:48px 0 24px}
46+
.hd h1{font-size:clamp(1.9rem,6vw,3rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:12px}
47+
.hd h1 span{background:linear-gradient(120deg,var(--acc),var(--acc2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
48+
.hd p{color:var(--mut);max-width:620px}
49+
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 16px}
50+
.tab{padding:9px 16px;border-radius:99px;border:1px solid var(--line);background:none;cursor:pointer;color:var(--mut);transition:.2s}
51+
.tab:hover{color:var(--fg);border-color:var(--acc)}
52+
.tab[aria-selected=true]{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#050b14;border-color:transparent;font-weight:700}
53+
.desc{color:var(--mut);margin-bottom:16px;max-width:720px}
54+
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
55+
.bar .sp{flex:1}
56+
.seg{display:inline-flex;border:1px solid var(--line);border-radius:99px;overflow:hidden}
57+
.seg button{padding:7px 14px;background:none;border:0;cursor:pointer;color:var(--mut);font-size:.85rem}
58+
.seg button[aria-pressed=true]{background:rgba(255,255,255,.1);color:var(--fg)}
59+
select{background:var(--card);border:1px solid var(--line);border-radius:99px;padding:7px 14px;font-size:.85rem}
60+
.btn{padding:7px 16px;border-radius:99px;border:1px solid var(--line);background:none;cursor:pointer;font-size:.85rem}
61+
.btn:hover{border-color:var(--acc);color:var(--acc)}
62+
.stage{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px;display:flex;justify-content:center}
63+
.frame{width:100%;max-width:100%;height:70vh;min-height:460px;border:0;border-radius:10px;background:#000;transition:max-width .3s}
64+
.frame.m{max-width:390px}
65+
pre{display:none;width:100%;max-height:70vh;overflow:auto;background:#060b16;border-radius:12px;padding:16px;font:.8rem/1.55 ui-monospace,Menlo,monospace;color:#d6e2f5;white-space:pre}
66+
.code .frame{display:none}.code pre{display:block}.code .stage{padding:0;border:0;background:none}
67+
.list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:56px 0}
68+
.list div{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--card)}
69+
.list h3{font-size:1rem;margin-bottom:6px}.list p{color:var(--mut);font-size:.9rem}
70+
footer{border-top:1px solid var(--line);padding:24px 18px;text-align:center;color:var(--mut);font-size:.85rem}
71+
noscript{display:block;padding:16px;color:var(--mut)}
72+
@media(max-width:640px){.top nav a:nth-child(1){display:none}.bar .sp{display:none}.frame{height:62vh}}
73+
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
74+
</style>
75+
</head>
76+
<body>
77+
<header class="top">
78+
<a class="logo" href="/">devtem<b>Design</b></a>
79+
<nav aria-label="Site"><a href="/">Home</a><a href="/docs">Docs</a><a href="/examples" aria-current="page">Examples</a><a href="https://github.com/devtem-dev/devtemDesign">GitHub</a></nav>
80+
</header>
81+
82+
<main class="wrap">
83+
<section class="hd">
84+
<h1>Real pages, <span>one config object</span></h1>
85+
<p>Every preview below is a live page built with devtemDesign 0.1.0. Switch templates, check the mobile layout, then copy the full code.</p>
86+
</section>
87+
88+
<div class="tabs" role="tablist" aria-label="Examples" id="tabs"></div>
89+
<p class="desc" id="desc"></p>
90+
91+
<div class="bar">
92+
<div class="seg" role="group" aria-label="View"><button type="button" id="vPrev" aria-pressed="true">Preview</button><button type="button" id="vCode" aria-pressed="false">Code</button></div>
93+
<div class="seg" role="group" aria-label="Device"><button type="button" id="dDesk" aria-pressed="true">Desktop</button><button type="button" id="dMob" aria-pressed="false">Mobile</button></div>
94+
<label><span style="position:absolute;left:-9999px">Template</span><select id="tpl"></select></label>
95+
<span class="sp"></span>
96+
<button class="btn" type="button" id="copy">Copy code</button>
97+
<button class="btn" type="button" id="open">Open full page</button>
98+
</div>
99+
100+
<div id="view">
101+
<div class="stage"><iframe class="frame" id="frame" title="Live example preview" loading="lazy"></iframe><pre id="code" tabindex="0"></pre></div>
102+
</div>
103+
<noscript>Examples need JavaScript. See the <a href="/docs">documentation</a> for the config reference.</noscript>
104+
105+
<section class="list" aria-label="What each example shows">
106+
<div><h3>SaaS landing page</h3><p>Count-up stats, three features, a Monthly/Yearly pricing toggle, FAQ accordion and a closing CTA band.</p></div>
107+
<div><h3>Portfolio</h3><p>Hero with brand marquee, a process in three steps, selected work as panels and a contact CTA.</p></div>
108+
<div><h3>Open source project</h3><p>Install steps, tooling marquee, feature cards, FAQ and a full footer with social links.</p></div>
109+
</section>
110+
<p style="color:var(--mut);margin-bottom:56px">Need every option? Read the <a href="/docs">configuration reference</a>.</p>
111+
</main>
112+
<footer>&copy; 2026 Figsh &middot; MIT licensed &middot; <a href="https://devtem.org">DevTemple</a></footer>
113+
114+
<script>
115+
var V="0.1.0",CSS="https://cdn.jsdelivr.net/npm/devtemdesign@"+V+"/style.min.css",JS="https://cdn.jsdelivr.net/npm/devtemdesign@"+V+"/script.min.js",FA="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css";
116+
var TEMPLATES=["figsh","cyber","aurora","monochrome","sunset","ocean","paper"];
117+
var ft=function(n){return{tagline:"Built with devtemDesign.",copy:"\u00a9 2026 "+n,legal:[{label:"Privacy",href:"#"},{label:"Terms",href:"#"}]}};
118+
119+
var EXAMPLES=[
120+
{id:"saas",name:"SaaS landing",desc:"A product page with stats, features, yearly pricing, FAQ and a closing CTA.",cfg:{
121+
template:"ocean",logoName:"ORBIT",
122+
navLinks:[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"FAQ",href:"#faq"}],
123+
ctaText:"Start free",ctaHref:"#pricing",
124+
heroBadge:"New: team workspaces",heroTitleLine1:"Ship analytics,",heroTitleLine2:"not dashboards",
125+
heroSubtitle:"Orbit turns raw events into answers your whole team can read.",
126+
primaryBtnText:"Start free",primaryBtnHref:"#pricing",secondaryBtnText:"See features",secondaryBtnHref:"#features",
127+
stats:[{value:"12k+",label:"Teams"},{value:"99.9%",label:"Uptime"},{value:"4.8",label:"Average rating"}],
128+
featuresTitle:"Everything in one place",
129+
features:[{title:"Live metrics",desc:"Streams update in under a second.",icon:"\u26a1"},{title:"Shared boards",desc:"One link for the whole team.",icon:"\ud83d\udcca"},{title:"Alerts",desc:"Get pinged before customers notice.",icon:"\ud83d\udd14"}],
130+
yearlyBadge:"Save 20%",
131+
pricing:[{tier:"Starter",amount:"$0",desc:"For side projects.",features:["3 boards","7 day history"],cta:"Start free",href:"#"},
132+
{tier:"Team",amount:"$19",period:"/mo",yearly:{amount:"$182",period:"/yr"},featured:true,badge:"Most popular",desc:"For growing teams.",features:["Unlimited boards","1 year history","Priority support"],cta:"Go Team",href:"#"}],
133+
faq:[{q:"Is there a free plan?",a:"Yes. Starter is free forever."},{q:"Can I cancel anytime?",a:"Yes, from the billing page in two clicks."}],
134+
cta:{title:"See your data differently",text:"Create account",href:"#"},footer:ft("Orbit")}},
135+
{id:"portfolio",name:"Portfolio",desc:"A designer portfolio with a process section, work panels and a contact CTA.",cfg:{
136+
template:"sunset",logoName:"AMARA",
137+
navLinks:[{label:"Work",href:"#work"},{label:"Process",href:"#how"},{label:"Contact",href:"#contact"}],
138+
ctaText:"Hire me",ctaHref:"#contact",
139+
heroBadge:"Available for projects",heroTitleLine1:"Product design",heroTitleLine2:"with a point of view",
140+
heroSubtitle:"Independent designer helping startups launch interfaces people enjoy.",
141+
primaryBtnText:"See my work",primaryBtnHref:"#work",
142+
brands:["Figma","Webflow","Notion","Stripe","Linear"],brandsSubtitle:"Tools and clients",
143+
stepsTitle:"How we work",
144+
steps:[{title:"Discover",desc:"Goals, users and constraints."},{title:"Design",desc:"Flows, then polished screens."},{title:"Deliver",desc:"Handoff and launch support."}],
145+
panelsLabel:"Selected work",panelsTitle:"Recent projects",
146+
panels:[{tag:"fintech",title:"Pocket Bank",desc:"Mobile onboarding redesign."},{tag:"health",title:"Calm Clinic",desc:"Booking flow for 40 clinics."},{tag:"saas",title:"Tidy CRM",desc:"Design system from scratch."}],
147+
cta:{title:"Have a project in mind?",sub:"I reply within one working day.",text:"Email me",href:"mailto:hello@example.com"},footer:ft("Amara Okoye")}},
148+
{id:"oss",name:"Open source",desc:"A project page for a developer library with install steps and FAQ.",cfg:{
149+
template:"cyber",logoName:"TINYQ",
150+
navLinks:[{label:"Install",href:"#how"},{label:"Features",href:"#features"},{label:"FAQ",href:"#faq"}],
151+
ctaText:"GitHub \u2192",ctaHref:"#",
152+
heroBadge:"v2.1.0 // MIT",heroTitleLine1:"A 2kb query",heroTitleLine2:"library for the browser",
153+
heroSubtitle:"Tiny, typed and tree-shakable. No dependencies.",
154+
primaryBtnText:"Get started",primaryBtnHref:"#how",secondaryBtnText:"Star on GitHub",secondaryBtnHref:"#",
155+
brands:["TypeScript","ESM","Vite","Deno","Bun"],brandsSubtitle:"Works everywhere",
156+
featuresTitle:"Small on purpose",
157+
features:[{title:"2kb gzipped",desc:"Smaller than most icons.",icon:"\ud83d\udce6"},{title:"Fully typed",desc:"Inference all the way down.",icon:"\ud83e\udde0"},{title:"Tree-shakable",desc:"Only ship what you import.",icon:"\ud83c\udf32"}],
158+
stepsTitle:"Up and running",
159+
steps:[{title:"Install",desc:"npm i tinyq"},{title:"Import",desc:"import { q } from 'tinyq'"},{title:"Query",desc:"q('.btn').on('click', run)"}],
160+
faq:[{q:"Does it support IE11?",a:"No. It targets modern browsers."},{q:"How do I contribute?",a:"Open an issue or send a pull request."}],
161+
footer:{tagline:"Tiny tools for the web.",copy:"\u00a9 2026 tinyq",
162+
social:[{icon:"fab fa-github",href:"#",label:"GitHub"},{icon:"fab fa-npm",href:"#",label:"npm"}],legal:[{label:"License (MIT)",href:"#"}]}}}
163+
];
164+
165+
function build(cfg){
166+
return "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>"+cfg.logoName+"</title>\n"+
167+
"<link rel=\"stylesheet\" href=\""+FA+"\">\n<link rel=\"stylesheet\" href=\""+CSS+"\">\n<script src=\""+JS+"\"><\/script>\n</head>\n<body>\n<div id=\"app-root\"></div>\n<script>\ndevtemDesign(\"app-root\", "+JSON.stringify(cfg,null,2)+");\n<\/script>\n</body>\n</html>";
168+
}
169+
170+
var $=function(i){return document.getElementById(i)};
171+
var cur=0,tpl=EXAMPLES[0].cfg.template,mobile=false,code=false;
172+
var tabs=$("tabs"),sel=$("tpl");
173+
174+
EXAMPLES.forEach(function(e,i){var b=document.createElement("button");b.className="tab";b.type="button";b.setAttribute("role","tab");b.textContent=e.name;b.onclick=function(){pick(i,true)};tabs.appendChild(b)});
175+
TEMPLATES.forEach(function(t){var o=document.createElement("option");o.value=t;o.textContent="Template: "+t;sel.appendChild(o)});
176+
177+
function html(){var c=JSON.parse(JSON.stringify(EXAMPLES[cur].cfg));c.template=tpl;return build(c)}
178+
function render(){
179+
var h=html();
180+
$("code").textContent=h;
181+
$("frame").srcdoc=h;
182+
}
183+
function pick(i,keepTpl){
184+
cur=i;if(!keepTpl||true)tpl=EXAMPLES[i].cfg.template;
185+
sel.value=tpl;$("desc").textContent=EXAMPLES[i].desc;
186+
Array.prototype.forEach.call(tabs.children,function(b,j){b.setAttribute("aria-selected",j===i)});
187+
render();
188+
history.replaceState(null,"","#"+EXAMPLES[i].id);
189+
}
190+
sel.onchange=function(){tpl=sel.value;render()};
191+
function seg(a,b,on){$(a).setAttribute("aria-pressed",on);$(b).setAttribute("aria-pressed",!on)}
192+
$("vPrev").onclick=function(){code=false;$("view").classList.remove("code");seg("vPrev","vCode",true)};
193+
$("vCode").onclick=function(){code=true;$("view").classList.add("code");seg("vCode","vPrev",true);$("vPrev").setAttribute("aria-pressed",false)};
194+
$("dDesk").onclick=function(){mobile=false;$("frame").classList.remove("m");seg("dDesk","dMob",true)};
195+
$("dMob").onclick=function(){mobile=true;$("frame").classList.add("m");seg("dMob","dDesk",true);$("dDesk").setAttribute("aria-pressed",false)};
196+
$("copy").onclick=function(){var b=$("copy");navigator.clipboard.writeText(html()).then(function(){b.textContent="Copied";setTimeout(function(){b.textContent="Copy code"},1500)},function(){b.textContent="Copy failed";setTimeout(function(){b.textContent="Copy code"},1500)})};
197+
$("open").onclick=function(){var u=URL.createObjectURL(new Blob([html()],{type:"text/html"}));window.open(u,"_blank");setTimeout(function(){URL.revokeObjectURL(u)},60000)};
198+
199+
var start=EXAMPLES.findIndex(function(e){return "#"+e.id===location.hash});
200+
pick(start>-1?start:0);
201+
</script>
202+
</body>
203+
</html>

0 commit comments

Comments
 (0)