skill
Make a Wiki Component Page
Public Made by Adomby adom
Create a wiki component page the RIGHT way. Pages are keyed manufacturer-mpn and scoped to ONE DATASHEET, so a datasheet covering six voltages and three packages is ONE page covering all of them, never six pages. Two manufacturers publishing the same MPN are two pages, because their limits genuinely differ. Renders through a hand-built readme.html on the Adom theme tokens with a fixed ten-section shape (identity, at a glance, specifications, symbol+footprint viewers, pin map, variants, assets, i
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1">
<style>
/* Adom theme system: studio-dark token base (adom/adom-theme-system) */
:root{
--bg:#0d1117;--surface:#161b22;--elevated:#1c2128;--overlay:#21262d;--border:#30363d;
--text:#e6edf3;--text-body:#c9d1d9;--text-2:#8b949e;--text-3:#484f58;
--accent:#00b8b1;--accent-hover:#00d4cb;--accent-bright:#00e6dc;--on-accent:#05221f;
--blue:#64abff;--blue-fill:#0061ef;--purple:#8c6bf7;
--green:#3fb950;--red:#f85149;--yellow:#d29922;
}
*{box-sizing:border-box}
html,body{background:var(--bg);margin:0}
body{color:var(--text-body);padding:20px 8px 44px;font-family:Satoshi,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;line-height:1.55;font-size:15px}
.wrap{max-width:1180px;margin:0 auto}
h1{font-size:30px;margin:0;font-weight:800;letter-spacing:-.01em;color:var(--text)}
h2{font-size:20px;font-weight:700;margin:34px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border);color:var(--text)}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
code{background:rgba(139,148,158,.16);padding:1px 6px;border-radius:5px;font-size:.88em;font-family:"JetBrains Mono",ui-monospace,Menlo,monospace}
.ident{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mfr{color:var(--text-2);font-size:15px}
.badge{margin-left:auto;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--on-accent);background:linear-gradient(90deg,var(--accent-bright),var(--blue));padding:5px 14px;border-radius:20px}
.oneline{color:var(--text-body);font-size:15.5px;margin:14px 0 16px}
.metarow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.m{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-size:12.5px;color:var(--text-2)}
.m b{color:var(--text);font-weight:700}
.callout{background:rgba(0,184,177,.09);border:1px solid rgba(0,184,177,.25);border-left:4px solid var(--accent);border-radius:10px;padding:13px 16px;font-size:14px;color:var(--text-body);margin:6px 0 4px}
.sib{background:rgba(140,107,247,.08);border:1px solid rgba(140,107,247,.24);border-left:4px solid var(--purple);border-radius:10px;padding:13px 16px;font-size:14px;color:var(--text-body);margin:0 0 18px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0}
@media(max-width:720px){.grid{grid-template-columns:1fr 1fr}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px}
.card .k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.card .v{font-size:22px;font-weight:800;margin-top:7px;color:var(--text)}
.card .s{color:var(--text-2);font-size:13px;margin-top:5px}
.spec{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--border);font-size:14px}
.spec:first-child{border-top:0}
.spec .lbl{min-width:200px;color:var(--accent);font-weight:600}
.viewers2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.viewers2{grid-template-columns:1fr}}
.vh{font-size:13px;font-weight:600;color:var(--text-2);margin:0 0 7px}
.vframe{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:block}
.pinwrap{columns:2;column-gap:20px}
@media(max-width:720px){.pinwrap{columns:1}}
.pg{break-inside:avoid;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.pgh{display:flex;align-items:center;gap:9px;font-weight:700;font-size:13px;letter-spacing:.04em;padding:10px 14px;border-left:4px solid;background:var(--elevated);color:var(--text)}
.pgh .dot{width:9px;height:9px;border-radius:50%}
.pgh .ct{margin-left:auto;color:var(--text-2);font-weight:600;font-size:12px}
.pt{width:100%;border-collapse:collapse;font-size:13px}
.pt td{padding:6px 14px;border-top:1px solid var(--border)}
.pt .pn{color:var(--text-2);width:34px;text-align:right;font-variant-numeric:tabular-nums}
.pt .nm{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-weight:600;white-space:nowrap;color:var(--text)}
.pt .fx{color:var(--text-body)}
.vgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
@media(max-width:820px){.vgrid{grid-template-columns:1fr}}
.vcard{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.vcard h3{margin:0;font-size:16px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--text)}
.vcard .sub{color:var(--text-2);font-size:12.5px;margin:6px 0 12px}
.vcard .oc{font-size:12px;color:var(--text-2);margin-top:8px}
.vcard .oc b{color:var(--text)}
.vcard code{font-size:12px}
.oc code{background:rgba(100,171,255,.16);color:#dbe9ff;border:1px solid rgba(100,171,255,.32);padding:2px 8px;font-weight:600}
.occode{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px 22px;margin:4px 0 18px;text-align:center}
.ocbig{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:clamp(28px,5.5vw,50px);font-weight:800;letter-spacing:2px;line-height:1.1}
.oclegend{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 22px;margin-top:22px;font-size:13.5px;color:var(--text-body);text-align:left}
@media(max-width:640px){.oclegend{grid-template-columns:1fr}}
.ocitem .octop{display:flex;align-items:center;gap:8px}
.ocdesc{color:var(--text-2);font-size:13px;margin-top:5px;line-height:1.35}
.ocitem .sw{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.ocitem b{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:15px}
.chip{font-size:10.5px;font-weight:800;letter-spacing:.05em;padding:3px 9px;border-radius:20px;text-transform:uppercase}
.vt{border-collapse:collapse;width:100%;font-size:13.5px}
.vt th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);color:var(--accent);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.vt td{padding:7px 12px;border-top:1px solid var(--border)}
.vt tr td:first-child{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-weight:600;color:var(--text);white-space:nowrap}
.at{border-collapse:collapse;width:100%;font-size:13px}
.at td{text-align:left;padding:7px 10px;border-top:1px solid var(--border);vertical-align:top}
.at .tool{font-weight:700;white-space:nowrap}
.na{color:var(--text-3);font-style:italic}
.ul{list-style:none;padding:0;margin:0}
.ul li{padding:8px 0;border-top:1px solid var(--border)}
.ul li:first-child{border-top:0}
.dsheet{width:100%;height:840px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
</style></head><body><div class=wrap>
<!-- =========================================================================
TEMPLATE: wiki component page. Replace every {{TOKEN}}.
Section order is fixed (see SKILL.md section 5). Add sections the part
earns; never delete one because the data was hard to find, use the
"not available yet" placeholder instead.
No em-dashes, no en-dashes, no emoji. Run: prose-lint README.md
========================================================================= -->
<!-- 1. IDENTITY ---------------------------------------------------------- -->
<div class=ident><h1>{{MPN}}</h1><span class=mfr>{{MANUFACTURER}}</span><span class=badge>{{SHORT_BADGE}}</span></div>
<p class=oneline>{{ONE_PARAGRAPH_SUMMARY}}</p>
<div class=metarow>
<span class=m>{{LABEL}} <b>{{VALUE}}</b></span><span class=m>{{LABEL}} <b>{{VALUE}}</b></span><span class=m>{{LABEL}} <b>{{VALUE}}</b></span>
<span class=m>{{LABEL}} <b>{{VALUE}}</b></span><span class=m>Packages <b>{{PACKAGES}}</b></span><span class=m>Pins <b>{{PINS}}</b></span>
</div>
<!-- Sibling-page router. Use ONLY when the same MPN has another manufacturer's
page (see SKILL.md section 1). Delete otherwise. -->
<div class=sib><b>This page is the {{MANUFACTURER}} part only.</b> Everything below comes from the {{MANUFACTURER}} datasheet. The same part number is second-sourced by {{OTHER_MFR}} with a different lineup and different limits: if your BOM says {{OTHER_MFR}}, use <a href="https://wiki.adom.inc/adom/{{OTHER_SLUG}}">{{OTHER_TITLE}}</a> instead.</div>
<!-- 2. AT A GLANCE ------------------------------------------------------- -->
<h2>At a glance</h2>
<div class=grid>
<div class=card><div class="k" style="color:#00b8b1">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
<div class=card><div class="k" style="color:#28c3d4">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
<div class=card><div class="k" style="color:#4fb7f0">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
<div class=card><div class="k" style="color:#64abff">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
<div class=card><div class="k" style="color:#8c6bf7">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
<div class=card><div class="k" style="color:#a98bf9">{{KEY}}</div><div class=v>{{VALUE}}</div><div class=s>{{DETAIL}}</div></div>
</div>
<!-- 3. SPECIFICATIONS ---------------------------------------------------- -->
<h2>Specifications</h2>
<div>
<div class=spec><span class=lbl>{{PARAMETER}}</span><span>{{VALUE_WITH_CONDITIONS}}</span></div>
<!-- repeat. Include the test conditions: a limit without its conditions is not a limit. -->
</div>
<!-- 4. SYMBOL AND FOOTPRINT ---------------------------------------------- -->
<h2>Symbol & footprint</h2>
<div class=viewers2>
<div><div class=vh>Schematic symbol. Hover a pin for its function</div>
<iframe class=vframe height=520 loading=lazy title="{{MPN}} schematic symbol" src="https://wiki.adom.inc/api/v1/pages/adom/{{SLUG}}/files/viewer-symbol.html"></iframe></div>
<div><div class=vh>PCB footprint. Switch package bottom-right ({{PACKAGE_LIST}})</div>
<iframe class=vframe height=520 loading=lazy title="{{MPN}} footprint" src="https://wiki.adom.inc/api/v1/pages/adom/{{SLUG}}/files/viewer-footprints.html"></iframe></div>
</div>
<!-- 5. PIN MAP ----------------------------------------------------------- -->
<h2>Pin map <span style="color:var(--text-2);font-weight:400;font-size:14px">{{PIN_SUMMARY}}</span></h2>
<div class=callout>{{ANYTHING_THAT_BITES: exposed pad net, tab function, pin-1 orientation}}</div>
<div class=pinwrap>
<div class=pg><div class=pgh style="border-color:#00b8b1"><span class=dot style="background:#00b8b1"></span>{{GROUP}}<span class=ct>{{COUNT}}</span></div><table class=pt><tbody>
<tr><td class=pn>{{N}}</td><td class=nm>{{NAME}}</td><td class=fx>{{FUNCTION}}</td></tr>
</tbody></table></div>
<!-- repeat per functional group. Colours: derive a ramp across #00b8b1 / #64abff /
#8c6bf7 plus neutrals. NEVER use --green/--red/--yellow, they are semantic. -->
</div>
<!-- 6. COMPONENT VARIANTS ------------------------------------------------ -->
<h2>Component variants</h2>
<div class=callout>{{WHAT_IS_AND_IS_NOT_DIFFERENT_BETWEEN_VARIANTS}}</div>
<div class=occode>
<div class=ocbig><span style="color:#e6edf3">{{BASE}}</span><span style="color:#8c6bf7">{{PKG_CODE}}</span><span style="color:#00e6dc">{{SUFFIX}}</span></div>
<div class=oclegend>
<div class=ocitem><div class=octop><span class=sw style="background:#8b949e"></span><b style="color:#e6edf3">{{BASE}}</b></div><div class=ocdesc>{{MEANING}}</div></div>
<div class=ocitem><div class=octop><span class=sw style="background:#8c6bf7"></span><b style="color:#a98bf9">{{PKG_CODE}}</b></div><div class=ocdesc>{{MEANING}}</div></div>
<div class=ocitem><div class=octop><span class=sw style="background:#00e6dc"></span><b style="color:#00e6dc">{{SUFFIX}}</b></div><div class=ocdesc>{{MEANING}}</div></div>
</div>
</div>
<div class=vgrid>
<div class=vcard>
<h3>{{PACKAGE}}<span class=chip style="background:rgba(139,148,158,.18);color:#8b949e">{{CODE}}</span></h3>
<div class=sub>{{BODY_DIMENSIONS_PITCH_TAB}}</div>
<div class=oc><b>Order codes:</b> <code>{{CODE}}</code></div>
</div>
</div>
<h2>{{VARIANT_TABLE_HEADING}}</h2>
<table class=vt><thead><tr><th>{{COL}}</th></tr></thead><tbody>
<tr><td>{{ORDER_CODE}}</td><td>{{VALUE}}</td></tr>
</tbody></table>
<!-- 7. ASSETS ------------------------------------------------------------ -->
<h2>Assets</h2>
<table class=at><tbody>
<tr><td class=tool style="color:#00b8b1">KiCad symbol</td><td><a href={{SYM}}>{{SYM}}</a></td></tr>
<tr><td class=tool style="color:#28c3d4">KiCad footprints</td><td><a href={{FP}}>{{FP_NAME}}</a></td></tr>
<tr><td class=tool style="color:#64abff">3D models</td><td><a href={{STEP}}>.step</a> / <a href={{GLB}}>.glb</a></td></tr>
<tr><td class=tool style="color:#8c6bf7">Canonical</td><td><a href={{LBR_JSON}}>{{LBR_JSON}}</a></td></tr>
<!-- PLACEHOLDER PATTERN: state what is missing and invite a PR. Never drop the row. -->
<tr><td class=tool style="color:#484f58">Fusion 360 / EAGLE</td><td class=na>Not available yet. <a href="https://wiki.adom.inc/adom/{{SLUG}}/pulls">Open a pull request</a> to add it.</td></tr>
<tr><td class=tool style="color:#484f58">Altium</td><td class=na>Not available yet. <a href="https://wiki.adom.inc/adom/{{SLUG}}/pulls">Open a pull request</a> to add it.</td></tr>
</tbody></table>
<!-- 8. IMPLEMENTATION ---------------------------------------------------- -->
<h2>Implementation</h2>
<ul class=ul>
<li><a href="https://wiki.adom.inc/adom/{{BOARD_SLUG}}"><b>{{BOARD}}</b></a> {{HOW_IT_IS_USED}}</li>
</ul>
<!-- 9. DATASHEET --------------------------------------------------------- -->
<h2>Datasheet</h2>
<iframe class=dsheet loading=lazy title="{{MPN}} datasheet" src="https://wiki.adom.inc/api/v1/pages/adom/{{SLUG}}/files/docs/{{DATASHEET_PDF}}"></iframe>
<p style="margin:8px 0 0;font-size:13px"><a href=docs/{{DATASHEET_PDF}}>Download the full datasheet (PDF)</a> · {{MANUFACTURER}}, <i>{{DOC_TITLE}}</i> · <a href="{{VENDOR_URL}}">{{VENDOR_HOST}}</a></p>
<!-- 10. PROVENANCE ------------------------------------------------------- -->
<h2>Provenance</h2>
<ul class=ul>
<li><b>Every electrical number on this page</b> is read from the {{MANUFACTURER}} datasheet embedded above: {{WHICH_PAGES_FOR_WHAT}}. Nothing from any second source is mixed in.</li>
<li><b>Symbol:</b> generated with <code>adom-symbol</code> to the datasheet pin connections.</li>
<li><b>Footprints:</b> {{SOURCE_LIBRARY_AND_ORIGINAL_NAMES}}, renamed. {{WHY_THIS_LAND_PATTERN}}</li>
<li><b>3D models:</b> {{SOURCE}}, converted to GLB with <code>step2glb</code>.</li>
<li><b>Canonical JSON:</b> imported with <code>adom-lbr import-kicad</code>.</li>
<li><b>Fusion and Altium libraries are deliberately absent.</b> They are generated rather than hand-verified, and the generated Altium symbol encoding has produced wrong geometry before.</li>
</ul>
</div>
<script>(function(){function ph(){var h=Math.min(16000,document.documentElement.scrollHeight);parent.postMessage({type:'readme-height',height:h},'*');parent.postMessage({type:'resize',height:h},'*');}window.addEventListener('load',ph);window.addEventListener('resize',ph);if(window.ResizeObserver)new ResizeObserver(ph).observe(document.body);setTimeout(ph,250);setTimeout(ph,1000);setTimeout(ph,2500);ph();})();</script>
</body></html>