molecule
Evan — Adom Molecule LED Nameplate
Public Made by Adomby adom
Evan's name in 66 green 0603 LEDs on a 5x7 dot-matrix grid, USB-C powered off the east edge. A real Adom molecule: four corner machine pins, 96x44 mm absolute, every part from the Adom Basic Parts catalog.
main
John Lauer
README.html with embedded 3D walkthrough viewer, full BOM and schematic, source bundle, build outputs
23c1d5e
2mo ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
/* Brand fonts (per gallia `brand` + `adom-app-header` skills). Without these
@font-face loaders the browser silently falls back to system sans-serif and
the app is off-brand even though the CSS names the right families. */
@font-face {
font-family: 'Familjen Grotesk';
src: url('https://adom.inc/fonts/familjen-grotesk/familjen-grotesk-latin-700-normal.woff2') format('woff2');
font-weight: 700; font-display: swap;
}
@font-face {
font-family: 'Familjen Grotesk';
src: url('https://adom.inc/fonts/familjen-grotesk/familjen-grotesk-latin-600-normal.woff2') format('woff2');
font-weight: 600; font-display: swap;
}
@font-face {
font-family: 'Familjen Grotesk';
src: url('https://adom.inc/fonts/familjen-grotesk/familjen-grotesk-latin-500-normal.woff2') format('woff2');
font-weight: 500; font-display: swap;
}
@font-face {
font-family: 'Satoshi';
src: url('https://adom.inc/fonts/satoshi/satoshi-400-normal.woff2') format('woff2');
font-weight: 400; font-display: swap;
}
@font-face {
font-family: 'Satoshi';
src: url('https://adom.inc/fonts/satoshi/satoshi-500-normal.woff2') format('woff2');
font-weight: 500; font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5/files/jetbrains-mono-latin-400-normal.woff2') format('woff2');
font-weight: 400; font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5/files/jetbrains-mono-latin-500-normal.woff2') format('woff2');
font-weight: 500; font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5/files/jetbrains-mono-latin-600-normal.woff2') format('woff2');
font-weight: 600; font-display: swap;
}
:root {
--bg: #0d1117;
--surface: #161b22;
--surface2: #1c2129;
--elevated: #1c2128;
--border: #30363d;
--border-muted: #21262d;
--text: #e6edf3;
--text-dim: #8b949e;
--text2: #7d8590;
--text3: #484f58;
--accent: #00b8b1; /* Adom teal — adom-tsci per app-header skill */
--green: #3fb950;
--red: #f85149;
--yellow: #d29922;
--blue: #58a6ff;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
height: 100%;
background: var(--bg);
color: var(--text);
font-family: 'Satoshi', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
font-size: 13px;
overflow: hidden;
}
h1, h2, h3 {
font-weight: 600;
}
code, pre {
font-family: "JetBrains Mono", Menlo, Consolas, monospace;
font-size: 12px;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 16px;
}
.tab-bar {
display: flex;
background: var(--surface);
border-bottom: 1px solid var(--border);
padding: 0 12px;
flex-shrink: 0;
}
.tab {
padding: 10px 16px;
cursor: pointer;
color: var(--text-dim);
font-size: 13px;
border-bottom: 2px solid transparent;
user-select: none;
display: flex;
align-items: center;
gap: 6px;
}
.tab:hover { color: var(--text); }
.tab.active {
color: var(--accent);
border-bottom-color: var(--accent);
}
.panel {
flex: 1 1 auto;
display: none;
overflow: hidden;
position: relative;
min-height: 0;
}
.panel.active {
display: flex;
flex-direction: column;
}
.panel > iframe {
border: 0;
flex: 1 1 auto;
width: 100%;
height: 100%;
display: block;
}
.header {
padding: 8px 16px;
background: var(--surface);
border-bottom: 1px solid var(--border);
color: var(--text-dim);
font-size: 12px;
display: flex;
gap: 16px;
align-items: center;
flex-shrink: 0;
}
.header strong { color: var(--accent); }
.pill {
display: inline-block;
padding: 2px 8px;
border-radius: 10px;
background: var(--surface2);
color: var(--text-dim);
font-size: 11px;
border: 1px solid var(--border);
}
.pill.ok { color: var(--green); border-color: #1f4024; }
.pill.err { color: var(--red); border-color: #4a1f24; }