app
Hero Studio
Public Made by Adomby adom
The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its P
← Commit history
package.json+1−1@@ -2,7 +2,7 @@ "slug": "hero-studio", "title": "Hero Studio", "type": "app",- "version": "0.8.0",+ "version": "0.8.1", "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Adom-org pages get the house wordmark and palette automatically; every other owner brings their own accent and background colors, with placement fixed for all. The floating app window is the vitrine: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, vitrine, type match) and a Generate that unlocks only fully confirmed. Includes vitrine bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.", "license": "MIT", "tags": [
page.json+1−1@@ -2,7 +2,7 @@ "slug": "hero-studio", "title": "Hero Studio", "type": "app",- "version": "0.8.0",+ "version": "0.8.1", "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Adom-org pages get the house wordmark and palette automatically; every other owner brings their own accent and background colors, with placement fixed for all. The floating app window is the vitrine: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, vitrine, type match) and a Generate that unlocks only fully confirmed. Includes vitrine bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.", "license": "MIT", "tags": [
public/index.html+12−4@@ -849,8 +849,10 @@ function render() { $('mqo-badges').innerHTML = '<span class="badge badge-' + d.type + '">' + d.type + '</span>' + (d.score > 0 ? '<span class="ts-slide-score">' + TREND13 + ' ' + d.score + '</span>' : '') + (d.stars > 0 ? '<span class="ts-slide-stars">' + STAR12 + ' ' + d.stars + '</span>' : '');- $('mqo-title').textContent = d.title;- $('mqo-brief').textContent = firstSentence(d.brief || p.brief || '', 120);+ // adom/wiki#80: hero tiles carry no overlay title/brief; the baked title+ // is the single title, so the preview shows badges + owner only+ $('mqo-title').textContent = '';+ $('mqo-brief').textContent = ''; $('mqo-owner').textContent = d.owner + '/' + d.slug; } $('chk-mqpreview').checked = !!state.marqueePreview;@@ -991,13 +993,19 @@ function relTime(iso) { function marqueeTile(p, isLive) { const heroPart = isLive ? '<div class="clone-slot"></div>' : '<div class="ts-hero-fallback"><span>' + p.title + '</span></div>';+ // DECIDED (Colby, 2026-07-26, adom/wiki#80): hero-bearing tiles get badges+ // and owner only; the baked title is the single title. Heroless fallback+ // tiles keep the text overlay, which is their only title.+ const textPart = isLive+ ? ''+ : '<h3 class="ts-slide-title">' + p.title + '</h3>' ++ (p.brief ? '<p class="ts-slide-brief">' + p.brief + '</p>' : ''); return '<a class="ts-slide mq-slide">' + heroPart + '<div class="ts-slide-shade"></div><div class="ts-slide-info">' + '<div class="ts-slide-badges"><span class="badge badge-' + p.type + '">' + p.type + '</span>' + (p.score > 0 ? '<span class="ts-slide-score">' + TREND13 + ' ' + p.score + '</span>' : '') + (p.stars > 0 ? '<span class="ts-slide-stars">' + STAR12 + ' ' + p.stars + '</span>' : '') +- '</div><h3 class="ts-slide-title">' + p.title + '</h3>' +- (p.brief ? '<p class="ts-slide-brief">' + p.brief + '</p>' : '') ++ '</div>' + textPart + '<span class="ts-slide-owner">' + p.owner + '/' + p.slug + '</span></div></a>'; }