// Igneum vendor and OS marks (gpu-logos, 7 October 2026): the strings the miner app ships in app/igneum-app/ui/app.js // (View.MARKS and View.VENDORS), exported verbatim for the site and anything else that names the hardware. // view.test.mjs fails when this file and app.js drift apart, so edit app.js first and regenerate this file with // `node brand/marks/regen.mjs` (or copy the strings by hand; the test says which one moved). // // Each glyph: a hand-drawn simplified monochrome mark of the vendor's public geometry (never a copied logo file, // never a raster), 24 x 24 viewBox at 22 px, under 460 bytes, fill or stroke through currentColor so the element's // colour tints it. Nominative use that names the hardware; the ember accent is for state and never tints a brand. // // The treatment in the app (app.css, the block at the end): a 44 x 44 well, radius 12, background the vendor colour // at .14 alpha (dark) or .10 (light), a 1 px ring in the vendor colour at .45 alpha, the glyph in the full colour; // hover and focus-within add a 3 px halo of the well colour; nothing animates. The light hex of every vendor reads at // 3:1 or better on its well over white (nvidia 3.87, amd 5.01, intel 4.29, apple 7.52, gpu 4.65). // // Class names in the app: .badge. (nvidia | amd | intel | apple | gpu), .badge.mini for a 26 px inline mark, // .gen for the series line under the name. Tokens: --mark-, --mark--well, --mark--ring. export const VENDORS = { "nvidia": { "label": "NVIDIA", "dark": "#8BE37A", "light": "#2F8A22" }, "amd": { "label": "AMD Radeon", "dark": "#FF5A5A", "light": "#C41E2A" }, "intel": { "label": "Intel", "dark": "#7CC4FF", "light": "#1C6FD6" }, "apple": { "label": "Apple", "dark": "#E6E3DD", "light": "#4A4A50" }, "gpu": { "label": "GPU", "dark": "#9A9A9E", "light": "#6B6B70" } }; export const WELL_ALPHA = { dark: 0.14, light: 0.1 }; export const MARKS = { "nvidia": "", "amd": "", "intel": "", "apple": "", "gpu": "" }; // OS marks in the same treatment: Apple is the vendor glyph; Windows is the four slanted panes export const OS_MARKS = { macos: MARKS.apple, windows: "" }; export const OS_COLOURS = { macos: VENDORS.apple, windows: { label: 'Windows', dark: '#7CC4FF', light: '#1C6FD6' } }; // the CSS tokens for both themes, as the app declares them export function tokensCss() { const line = (theme) => Object.entries(VENDORS).map(([v, c]) => { const h = c[theme], r = parseInt(h.slice(1, 3), 16), g = parseInt(h.slice(3, 5), 16), b = parseInt(h.slice(5, 7), 16), a = String(WELL_ALPHA[theme]).replace(/^0/, ''); return `--mark-${v}:${h};--mark-${v}-well:rgba(${r},${g},${b},${a});--mark-${v}-ring:rgba(${r},${g},${b},.45)`; }).join(';'); return `:root{${line('dark')}}\n@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){${line('light')}}}\n:root[data-theme="light"]{${line('light')}}`; } // the well:
export function markHtml(vendor, size) { const v = MARKS[vendor] ? vendor : 'gpu'; return '
' + MARKS[v] + '
'; }