Skip to content

site: compact global-grade product landing experience - #349

Merged
masarray merged 18 commits into
mainfrom
design/landing-ux-r2-global-polish
Sep 21, 2026
Merged

masarray merged 18 commits into
mainfrom
design/landing-ux-r2-global-polish

Conversation

@masarray

Copy link
Copy Markdown
Owner

Goal

Upgrade the ARSAS public product site into a more compact, premium and globally professional engineering experience without touching IEC 61850 runtime behavior.

Changed

  • rebuild EN/ID homepages around a decision-first journey:
    • Hero
    • user intent paths
    • two engineering workflows
    • curated real-product evidence
    • Learn / Execute / Diagnose continuation
    • compact stable-release trust strip
    • focused FAQ
  • reduce homepage evidence gallery from 12 screenshots plus decorative substation media to the hero plus 6 curated workflow screenshots;
  • add explicit responsive srcset/sizes for homepage product evidence;
  • remove the external rsms.me web-font dependency and use native/system UI typography;
  • simplify primary navigation while keeping deep links in the product/footer IA;
  • move shared polish.css and design-system.css injection into document <head> instead of the header body partial;
  • compact global typography, section spacing, card radii, page heroes and buttons;
  • add restrained, reduced-motion-safe micro-interactions:
    • header scrolled state
    • IntersectionObserver section reveal
    • subtle product-card / screenshot hover treatment;
  • add content-visibility: auto to screenshot cards;
  • shorten the repeated stable-release CTA used across product pages;
  • add source validation guards for homepage screenshot budget, stylesheet scoping and no external web-font regression.

Root cause

The site had strong engineering content but too many equally prominent sections, oversized marketing-style typography, repeated release messaging, a 12-screen homepage gallery, decorative media, and shared CSS loaded from the header partial. The result was visually polished but longer, denser and heavier than necessary.

Architecture

Changes remain inside the existing static product-site system:

  • templates remain authoritative;
  • shared visual rules remain in polish.css / design-system.css;
  • homepage-only composition remains in home.css;
  • build-time style injection remains in build-product-site.py;
  • runtime product code is untouched.

Regression protection

validate-product-source.py now checks:

  • one scoped home.css per homepage;
  • hero + exactly six curated screenshot images;
  • no decorative substation homepage media;
  • no external rsms.me dependency;
  • homepage CSS does not leak through shared header;
  • shared styles are not emitted from the header body partial;
  • simplified navigation contract.

Performance impact

Expected improvement:

  • removes one third-party font stylesheet/font request chain;
  • removes decorative substation media from both homepages;
  • cuts homepage lazy screenshot set from 12 to 6;
  • serves responsive image candidates explicitly;
  • defers below-fold screenshot rendering with content-visibility;
  • micro-interactions use passive scroll + requestAnimationFrame and one-shot IntersectionObserver.

No IEC 61850 application/runtime performance path is changed.

Validation

Local clone/build could not run in the assistant container because outbound DNS is unavailable. GitHub CI on this exact PR head is the authoritative validation gate and will be checked before handoff.

Remaining limitations

Pixel-level browser QA across multiple real viewport/device combinations remains separate from static source/build validation.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ad01ea8c17

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +14 to 16
<a href="features.html" data-nav-page="capabilities">Product</a>
<a href="solutions.html" data-nav-page="solutions">Solutions</a>
<a href="guides.html" data-nav-page="guides">Guides</a>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Synchronize the rendered navigation contract

The simplified header removes the io-fat and about navigation entries, but scripts/validate-product-build.py:19,143 still requires both on every rendered non-404 page. In the Pages workflow, the Validate rendered product website step consequently reports shared navigation is incomplete for every page and prevents deployment; update the rendered-site validator alongside the source validator.

AGENTS.md reference: AGENTS.md:L215-L227

Useful? React with 👍 / 👎.

</section>

<section class="section section-tight"><div class="container"><div class="section-head center"><span class="kicker">Start from your need</span><h2>You do not need to know every IEC 61850 term first.</h2><p>Choose the question that brought you here. Each path gives you a useful takeaway, a practical workflow and the engineering detail behind it.</p></div><div class="feature-grid"><article class="card"><span class="kicker">I am new</span><h3>What is IEC 61850?</h3><p>Understand IEDs, Logical Nodes, MMS, Reporting, GOOSE and SCL with familiar substation examples.</p><div class="section-actions"><a class="btn btn-primary" href="what-is-iec61850.html">Read the beginner guide</a></div></article><article class="card"><span class="kicker">I have the software</span><h3>How do I use ARSAS?</h3><p>Connect an IED by IP, discover the live model and read one point together with quality and timestamp.</p><div class="section-actions"><a class="btn" href="connect-ied-ip-arsas.html">Follow the first tutorial</a></div></article><article class="card"><span class="kicker">I have a project</span><h3>How do I produce FAT evidence?</h3><p>Run imported SDI points in order, preserve ON and OFF evidence, and export Excel, PDF or a portable project.</p><div class="section-actions"><a class="btn" href="io-list-fat-evidence.html">Explore IO List FAT</a></div></article><article class="card"><span class="kicker">I have a problem</span><h3>Why is IEC 61850 not working?</h3><p>Start from the symptom: port 102, silent reports, occupied RCB, GOOSE sequence, missing COMTRADE or rejected SCL.</p><div class="section-actions"><a class="btn" href="guides.html">Find a troubleshooting guide</a></div></article></div></div></section>
<section class="section section-tight home-paths-section" data-reveal>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove the obsolete rendered homepage media requirement

When the compact homepage replaces the substation section here, scripts/validate-product-build.py:166-170 still requires exactly one assets/arsas-substation-context.webp image on both homepages. Running the deployment's rendered validation therefore fails for index.html and id.html even after the pages build successfully; align this validator with the new curated screenshot contract.

AGENTS.md reference: AGENTS.md:L215-L227

Useful? React with 👍 / 👎.

Comment thread landing/templates/id.html
</div>
<div class="home-path-grid">
<article class="card"><span class="kicker">Belajar</span><h3>Baru mengenal IEC 61850?</h3><p>Bangun mental model IED, Logical Node, MMS, Reporting, GOOSE dan SCL.</p><div class="section-actions"><a class="text-link" href="apa-itu-iec61850.html">Mulai dari dasar →</a></div></article>
<article class="card"><span class="kicker">Connect</span><h3>Have the software?</h3><p>Connect an approved IED, discover its live model and read one point with quality and timestamp.</p><div class="section-actions"><a class="text-link" href="connect-ied-ip-arsas.html">Follow the first connection →</a></div></article>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore the localized Connect card

On the Indonesian homepage, this entire card is now English and its CTA points to the English connect-ied-ip-arsas.html page, although the localized destination cara-hubungkan-ied-ip-arsas.html exists and was used previously. Indonesian visitors choosing this path are unexpectedly switched into the English workflow, so localize the copy and route the CTA to the Indonesian page.

Useful? React with 👍 / 👎.

Comment thread landing/templates/id.html
<span><strong>{{INSTALLER_SIZE}}</strong><small>installer</small></span>
<span><strong>SHA-256</strong><small>dipublikasikan</small></span>
</div>
<div class="release-actions"><a class="btn btn-primary" href="download.html">Unduh & verifikasi</a><a class="text-link" href="catatan-rilis.html">Catatan rilis →</a></div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Route the Indonesian release CTA to the localized download page

The Indonesian release strip labels this action “Unduh & verifikasi” but links to the English download.html; the localized download and verification page is unduh.html. Users following this prominent CTA therefore leave the Indonesian flow precisely when they need package and checksum instructions.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Final validation on exact head 320b100037301e510517d9a71b3b00897b9e9d99 is green.

  • Measure product website: PASS
  • Adoption / responsive media / internal links / rendered product site: PASS
  • Product website build + public boundary validation: PASS
  • Smart Discovery repeat-run / golden provenance / golden budget: PASS
  • Smart Discovery merge execution guard: PASS
  • Smart Discovery production promotion guard: PASS
  • Smart Discovery mainline readiness: PASS
  • Deterministic SV evidence: PASS
  • Smart Discovery field-capture build + smoke: PASS
  • Full ARSAS source-clean, engine API checks, build, regression tests, portable publish + smoke: PASS

One earlier rendered-site failure exposed stale validator assumptions (old nav + mandatory decorative substation image), and one runtime regression pass exposed four website-specific hero tests tied to the previous CSS architecture. Both were corrected without disabling the useful localized hero safeguards.

No production C#/XAML/runtime IEC 61850 source is changed by this PR; the only C# change is the website regression test contract.

@masarray
masarray merged commit 00455f7 into main Sep 21, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant