Skip to content

Commit 6df9a86

Browse files
feat(landing): unify brand name to OpenDesign and land nav/CTA restyle (#6983)
* feat(landing): unify brand display name to OpenDesign Replace the spaced "Open Design" display name with the one-word "OpenDesign" across all landing-page copy, metadata, and SEO surfaces (titles, descriptions, OG tags, JSON-LD, llms.txt, webmanifest, install script messages) in all locales, including the uppercase decorative "OPEN DESIGN" ribbons. Deliberately preserved for search and entity continuity: - homepage JSON-LD alternateName arrays now list "Open Design" and "Open Design AI" as legacy variants - the /official/ naming glossary documents the two-word spelling as a legacy search variant instead of duplicating the canonical name - llms.txt gains an alias line mapping all spellings to one project - lowercase generic uses of "open design" (concept prose, SEO query strings, slugs, URLs) are untouched * feat(landing): port nav consolidation and hero download CTA, drop all-caps brand Cherry-picked from the home redesign branch (PR #6881), style layer only: - header: five-column mega panel (Plugin + former Solution groups + Agent), product family links now footer-only, Plugins folded into Resources as a hub link, and a quiet GitHub star chip beside the Download CTA; the nav download CTA keeps main's platform-aware direct-download semantics - homepage hero: black-pill download CTA with coral arrow chip, breathe + sheen animation (static under prefers-reduced-motion); the hero GitHub star button moves into the header chip - brand casing: the download prompt eyebrow no longer uppercases the brand, and decorative all-caps OPENDESIGN strings (launch week, ribbons, drop codes) render as OpenDesign * feat(landing): remove Linux desktop claims site-wide There is no Linux desktop build, so every surface that promised one is gone: the /download/ Linux platform card and icon, the Linux branches in the platform-detect enhancers (Linux visitors now keep the neutral /download/ or release-page fallback), JSON-LD operatingSystem fields, the download prompt platform notes, download page titles and descriptions across all locales, the shared macOS/Windows platform badge (common key renamed macWinLinux -> macWin), llms.txt, and pricing.md. Deliberately kept: third-party agent install docs and tutorial content that mention Linux for other tools, the dsh/CLI shell installers that genuinely run on Linux, visitor-OS telemetry classification, and the download-URL minting function's platform allowlist (backend plumbing, not a product claim). * fix(landing): center download cards and put the product name in the hero brand pill The platform grid stayed at four columns after the Linux card was removed, leaving three cards hugging the left edge — it is now three centered columns, and on the two-column tablet breakpoint the odd Windows card centers under the macOS pair. The download hero's brand pill read the positioning tagline; the logo is now followed by the product name OpenDesign. * chore(landing): retrigger ci * fix(landing): apply brand rename to merged Hong Kong workshop content * fix(landing): drop the download hero brand pill * fix(landing): address review — masthead spacing, plugin label, schema OS, footer parity - drop the space in the giant footer masthead so the rendered lockup reads OpenDesign. on both the homepage and sub-page footers - settle Codex Plugin as the canonical /codex-plugin/ label in both the header mega panel and both footers - align the codex-plugin / html-anything / html-video / codex-slides SoftwareApplication operatingSystem fields with the macOS/Windows desktop claim - add the missing /codex-plugin/ row to the homepage footer product column and lock product-column href parity in footer-parity.test.ts * fix(landing): address nav review — plugin column head, hover bridge, active scope - the Plugin mega column's head is now the Codex Plugin link itself, so the localized Plugins label belongs to the Resources catalog hub only - neutralize the shared hover-bridge ::after on the static mega li, whose containing block is .container, and correct the two comments that claimed .site-chrome/viewport anchoring - narrow the Product trigger's is-active set to the destinations that are actually inside the mega panel * fix(landing): stop /html-anything/ lighting the Product tab The page passed active="product", so narrowing the trigger's OR-list alone did not stop it lighting the tab. It now passes its own 'html-anything' value (footer-only product siblings share one policy: none of them light Product), and the two stale header comments about whole-family lighting and .site-chrome anchoring are corrected. * fix(landing): restore the active underline on nav trigger buttons The Product and Resources triggers are buttons, but the persistent is-active color + coral underline only targeted .nav-links anchors, so folding Solution into the Product mega panel silently dropped the top-level you-are-here cue on /solutions/, /agents/, /codex-plugin/, and every Resources destination. The two sub-pages.css rules now cover .nav-trigger.is-active as well. * fix(landing): paint the trigger active underline with absolute positioning Inside the trigger's inline-flex box the block ::after collapses to a zero-width flex item, so the coral bar never painted on desktop. The trigger rule now anchors the bar absolutely against the trigger's own positioned box; anchors keep the block-flow rule because .nav-links a is not positioned and an absolute bar would escape it. Verified rendered at 1440px on /solutions/prototype/. --------- Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
1 parent 894e265 commit 6df9a86

450 files changed

Lines changed: 15613 additions & 15570 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/landing-page/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ records module-level boundaries for `apps/landing-page/`.
66
## Purpose
77

88
`apps/landing-page` is a stand-alone static Astro site that renders
9-
the Open Design marketing surface in the **Atelier Zero** style and
9+
the OpenDesign marketing surface in the **Atelier Zero** style and
1010
ships a public plugin library plus compatibility/detail catalog pages for
1111
repository skills, design templates, design systems, craft principles, and
1212
legacy live-artifact templates.

apps/landing-page/app/_components/alternative-detail.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const jsonLd = [
5555
'@context': 'https://schema.org',
5656
'@type': 'BreadcrumbList',
5757
itemListElement: [
58-
{ '@type': 'ListItem', position: 1, name: 'Open Design', item: homeUrl },
58+
{ '@type': 'ListItem', position: 1, name: 'OpenDesign', item: homeUrl },
5959
{ '@type': 'ListItem', position: 2, name: 'Compare', item: compareUrl },
6060
{ '@type': 'ListItem', position: 3, name: page.breadcrumb, item: pageUrl },
6161
],
@@ -82,7 +82,7 @@ const jsonLd = [
8282

8383
<Layout title={title} description={description} active="home" jsonLd={jsonLd}>
8484
<nav class="breadcrumb" aria-label={common.breadcrumbAria}>
85-
<a href={href('/')}>Open Design</a>
85+
<a href={href('/')}>OpenDesign</a>
8686
<span>/</span>
8787
<a href={href('/compare/')}>Compare</a>
8888
<span>/</span>
@@ -263,7 +263,7 @@ const jsonLd = [
263263
<div class="compare-table-wrap">
264264
<table class="compare-table">
265265
<thead>
266-
<tr><th>Feature</th><th>Open Design</th><th>{competitorName}</th></tr>
266+
<tr><th>Feature</th><th>OpenDesign</th><th>{competitorName}</th></tr>
267267
</thead>
268268
<tbody>
269269
{features.map((f) => (
@@ -311,7 +311,7 @@ const jsonLd = [
311311
</ol>
312312
</section>
313313

314-
<section class="info-cta" aria-label="Open Design call to action">
314+
<section class="info-cta" aria-label="OpenDesign call to action">
315315
<div>
316316
<h2>{page.ctaTitle}</h2>
317317
<p>{page.ctaBody}</p>

apps/landing-page/app/_components/curated-collection-hub.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const href = (path: string) => localizedHref(path, locale);
2828
2929
const c = binding.collection;
3030
const skills = binding.skills;
31-
const title = binding.hubTitle?.(cc) ?? `${c.eyebrow} · ${cc.collectionHeading} · Open Design`;
31+
const title = binding.hubTitle?.(cc) ?? `${c.eyebrow} · ${cc.collectionHeading} · OpenDesign`;
3232
const description = cc.collectionLede;
3333
3434
const jsonLd = [

apps/landing-page/app/_components/curated-skill-detail.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const href = (path: string) => localizedHref(path, locale);
4545
// Four fills the 4-up grid exactly, so the row never ends ragged.
4646
const related = binding.skills.filter((s) => s.slug !== skill.slug).slice(0, 4);
4747
48-
const title = `${sc.name} · ${binding.collectionName} · Open Design`;
48+
const title = `${sc.name} · ${binding.collectionName} · OpenDesign`;
4949
const description = `${sc.tagline} ${sc.whatIsIt}`;
5050
5151
const jsonLd = [

apps/landing-page/app/_components/download-engagement-prompt.astro

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ const directAssets = {
2222
macArm64: latestRelease?.matrix.macArm64Dmg?.url ?? '',
2323
macX64: latestRelease?.matrix.macX64Dmg?.url ?? '',
2424
windows: latestRelease?.matrix.winSetup?.url ?? '',
25-
linux: latestRelease?.matrix.linux?.url ?? '',
2625
};
2726
2827
const ACTIVE_SECONDS_THRESHOLD = 35;
@@ -175,9 +174,8 @@ const DOWNLOAD_COOLDOWN_MS = 30 * 24 * 60 * 60 * 1000;
175174
? { key: 'macX64', label: 'macOS (Intel)', match: (name) => /mac-x64\.dmg$/i.test(name) }
176175
: { key: 'macArm64', label: 'macOS (Apple Silicon)', match: (name) => /mac-arm64\.dmg$/i.test(name) };
177176
}
178-
if ((/linux/.test(p) || /linux/.test(ua)) && !/android/.test(ua)) {
179-
return { key: 'linux', label: 'Linux', match: (name) => /\.appimage$/i.test(name) };
180-
}
177+
// No Linux desktop build — Linux visitors keep the /download/
178+
// page fallback.
181179
return null;
182180
};
183181
const applyDirectAsset = (url, platformLabel) => {
@@ -365,7 +363,6 @@ const DOWNLOAD_COOLDOWN_MS = 30 * 24 * 60 * 60 * 1000;
365363
font-size: 12px;
366364
font-weight: 750;
367365
letter-spacing: .12em;
368-
text-transform: uppercase;
369366
}
370367
.download-prompt-card h2 {
371368
max-width: 17ch;

apps/landing-page/app/_components/header-enhancer.astro

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ const directAssets = {
66
macArm64: latestRelease.matrix.macArm64Dmg?.url ?? '',
77
macX64: latestRelease.matrix.macX64Dmg?.url ?? '',
88
windows: latestRelease.matrix.winSetup?.url ?? '',
9-
linux: latestRelease.matrix.linux?.url ?? '',
109
};
1110
---
1211

@@ -79,13 +78,8 @@ const directAssets = {
7978
match: (name) => /mac-arm64\.dmg$/i.test(name),
8079
};
8180
}
82-
if (/linux/.test(platform) || (/linux/.test(ua) && !/android/.test(ua))) {
83-
return {
84-
assetKey: 'linux',
85-
label: 'Linux',
86-
match: (name) => /\.appimage$/i.test(name),
87-
};
88-
}
81+
// No Linux desktop build — Linux visitors keep the /download/
82+
// page fallback.
8983
return null;
9084
};
9185
const navPlatform = navDownload ? detectNavDownloadPlatform() : null;
@@ -280,7 +274,7 @@ const directAssets = {
280274
.catch(() => {});
281275
}
282276

283-
// Open Design Cloud header account. Detects an existing cloud session via
277+
// OpenDesign Cloud header account. Detects an existing cloud session via
284278
// the vela API and reveals the avatar menu only for signed-in visitors.
285279
// Signed-out visitors keep the download CTA as the sole account-side
286280
// action, because the product itself runs in the desktop client. All

0 commit comments

Comments
 (0)