From fd11ed2850a28251712a1e1d4214ce799892558a Mon Sep 17 00:00:00 2001 From: Navveen Balani <88837066+navveenb@users.noreply.github.com> Date: Thu, 30 Jul 2026 20:38:04 +0530 Subject: [PATCH 1/2] Silicon to Screen changes Silicon to Screen changes on home page --- DEVLOG | 53 +++++++++++++++++ README.md | 1 + docs/pages/homepage.md | 86 +++++++++++++++++++++++++++ package-lock.json | 17 +----- public/assets/silicon-to-screen.webp | Bin 0 -> 63328 bytes src/components/hero.astro | 31 +++++++++- src/components/text-with-image.astro | 2 +- src/pages/index.astro | 28 +++++++-- 8 files changed, 193 insertions(+), 25 deletions(-) create mode 100644 docs/pages/homepage.md create mode 100644 public/assets/silicon-to-screen.webp diff --git a/DEVLOG b/DEVLOG index cbd69bc9..51b58ed8 100644 --- a/DEVLOG +++ b/DEVLOG @@ -1,5 +1,58 @@ # Development Log — GSF Website +## 2026-07-30 - Homepage: "From Silicon to Screen" Becomes the Lead Message + +**Objective**: Bring the "from silicon to screen" tagline and the green software definition onto the homepage from a prototype mockup, and promote it to the lead message ahead of the peer-collaboration pitch. + +### What We Built + +- **New hero** — "Sustainable technology, from *silicon to screen*" is now the page `

`, with the green software definition as its body and four CTAs for the GSF's four functions: Standards (filled, `/standards/`), Policy & Research (`/policy/`), Education & Certification (`/education/`), Community & Ecosystem (`/community/`). Uses the existing `Hero` component, so it gets the `text-3xl md:text-4xl lg:text-5xl` heading and `loading="eager"` image treatment. Final copy: "Software, and the hardware it runs on, designed, built, and operated to minimize its carbon emissions, energy consumption, water usage, and waste across every layer of the technology stack, from silicon to screen" — the tagline repeats at the end of the body by design. +- **Membership pitch demoted to section 2** — "The sustainability challenges you're solving alone? / Your peers are solving together" moved below the hero as a `reversed` `TextWithImage`, keeping its illustration and its `/membership/` CTA. It had to change component: `Hero` renders `

`, and two of those on one page is an SEO and screen-reader problem. +- **Two new optional `Hero` props** — `ctaLeadIn` renders a short bridging line between the body and the CTAs; `ctaLayout` switches the CTA container from the default `flex flex-wrap` to `grid grid-cols-2 ... xl:grid-cols-4`. Both default to today's behaviour, so the other 11 pages passing `ctas` to `Hero` are byte-identical apart from class ordering (verified across `/standards/`, `/education/`, `/community/`, `/brand/`, `/about/`, `/tools/*`, `/membership/apply/` and four standard pages). +- **`TextWithImage` heading size fixed site-wide** — the component's `h2` was `text-2xl leading-tight md:text-3xl`, missing the `lg:text-4xl` step that all 14 other section components (card-grid, feature-grid, split-cards, text-block, team-grid, timeline, cta-card, cta-banner, resource-cards, stats-grid, project-cards, member-stories, community-reach, vertical-pipeline) already had. At ≥1024px it rendered one step smaller than every sibling section on the same page. Added the missing step; affects all 20 TextWithImage usages, at `lg` only. +- **Illustration** — `public/assets/silicon-to-screen.webp` (411×403, transparent), the isometric layered-stack illustration. Checked against `GS-Vision-stack2.png` in the "Revisiting Green Software: From Silicon to Screen" article first — different images (that one is the labelled six-layer diagram), so no duplication. +- **Homepage documentation** — created `docs/pages/homepage.md`. The homepage had no page doc at all despite being the most-edited page on the site; the new doc covers section order, the featured-article conditional, `resolveOrgs()` logo resolution, and an update table. Added to the README docs index. + +### The Journey + +The mockup this came from used a different design language entirely — DM Serif Display headings, a `#0d9488` teal, JetBrains Mono labels, and collapsible accordions of standard badges. None of that is the GSF design system, so only the content was taken across; the section is rendered with the existing `TextWithImage` component and existing design tokens, so it reads as part of the site rather than as an imported prototype. + +The section landed below the existing hero first, as a `TextWithImage`. On review it needed to lead the page instead, which turned a content addition into a restructure of the most important block on the site: promote silicon-to-screen to the `

` and demote the peer-collaboration message. + +An intermediate version carried the mockup's four resources — Carbon, Energy, Water, Waste — as a `FeatureGrid` row under the hero, with deep links to `/standards/sci/`, `/standards/sei/` and `/standards/swi/`. It was cut on review: the four resources are already named in the hero body, and the row restated them without adding anything. The revised body copy folds the tagline into the sentence instead ("...across every layer of the technology stack, from silicon to screen"), which carries the same idea in one place. + +Worth recording for whenever the resources row comes back: the mockup's status pills read "SCI · ISO 21031", "SEI · Pre-Draft", "SWI · Pre-Proposal" — all lifecycle stages that live in the Notion PWCIs database, the same values `/standards/` reads from `projects.json` as `project.lifecycle`. Hardcoding them drifts the moment a stage changes in Notion. There are also no water or waste icons in `public/assets/`. + +The mockup also carried headline figures that conflict with the live page — "70+ member organisations", "11 standards & specs", "20+ university members" against the current CommunityReach stats. Flagged rather than applied; changing published numbers is a content decision, not a layout one. + +The demoted membership pitch then read visibly small next to the new hero. The instinct was to special-case the homepage, but comparing heading classes across all 24 components showed `TextWithImage` was simply the odd one out — it had never been given the `lg:text-4xl` step. Fixing the component rather than the page brought 20 pages into line with the design system instead of adding a prop to paper over the gap. The longest TextWithImage heading anywhere on the site is 51 characters ("The sustainability challenges you're solving alone?"), well within a comfortable wrap at `text-4xl` in a half-width column. + +The hero CTAs went through four shapes: a single "Explore our standards", then a pair adding "Read our vision" pointing at the "Revisiting Green Software: From Silicon to Screen" article, then the four functions with long labels and Standards filled, and finally four short-label outline buttons on a grid. + +That last round came from reviewing a screenshot, and all three problems it surfaced were about register rather than content. First, the paragraph defines what green software *is* and the buttons are *routes* — with nothing between them the visitor has no signal that the register changed, so `ctaLeadIn` now carries "Making that real takes four things." Second, the four buttons wrapped 3+1, orphaning "Community & Ecosystem" on its own row and making a deliberate set look like an afterthought; `ctaLayout="grid"` makes it 2×2 below `xl` and 4-across above, which is deterministic at every width instead of depending on label length. Third, and most subtly: Standards was filled green among three outlines, which reads as a *selected* state and promises a tab interface where clicking swaps content below. These are plain links to four pages, so all four are now `outline`. Labels were trimmed to Standards / Policy / Education / Community to fit one row — worth knowing that the "What we do" grid still uses the longer names. + +The vision article is no longer linked from the homepage at all — it is `featured: false`, so it does not appear in the article carousel either. And the four CTAs duplicate the destinations of the "What we do" FeatureGrid further down; intentional as top-of-page quick nav, but the two lists have to be kept in sync. + +### Found Along The Way + +`footer.astro` renders its four column labels — "Our Work", "About", "Join", "Contact" — as `

`. That puts four extra `

` elements on **every page of the site**, styled at 12px. Not touched as part of this work, but it should become `

` or a plain `
`; the homepage now has exactly one `

` in its content and five in its markup because of it. + +### Technical Achievements + +- Zero new components and zero component modifications — `Hero` and `TextWithImage` used through existing props; net change to the page is two components and no new markup +- Zero styling changes — `headingAccent` and the `*asterisks*` pattern supply the `text-primary` accents, no new CSS +- Exactly one `

` in page content, verified in the rendered output +- Section comments left unrenumbered; new sections are labelled by name, matching how SplitCards was already handled + +### Key Learnings + +- **Prototype mockups are content sources, not design sources.** The useful output of an external mockup is its copy and its information hierarchy. Its fonts, colours, and bespoke components are exactly what the design system exists to override. +- **"Add a status badge" is often a Notion question.** Lifecycle stages, member logos, and project metadata all look like markup but live in Notion. The check is always whether the value can change without a code deploy. +- **Reordering sections is not always a reorder.** Promoting a section past the hero means changing its component, because `Hero` owns the `

`. Section order and heading hierarchy are coupled on this site. +- **A filled button among outlines is a state, not an emphasis.** It reads as "selected" and implies the surrounding controls are tabs. Use it for one primary action, never for one item in a peer set of links. +- **`flex-wrap` is the wrong tool for a fixed set of four.** It hands the row break to whatever the label lengths happen to be, which is how a deliberate four-up ends up as an orphaned 3+1. A grid states the intended shape. +- **The most-edited page had no page doc.** Worth auditing `docs/pages/` against `src/pages/` for other gaps. + ## 2026-03-07 (cont.) - Data Layer: Schema Consolidation, Notion Roll-ups, and Smart Lookups **Objective**: Lay the foundation for a centralised data layer — consolidate fragmented JSON files, eliminate slow N+1 Notion API calls, embed project leads into `projects.json`, and make components smarter about resolving people by name. diff --git a/README.md b/README.md index b7bd8bd1..c3c3d550 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ The site has three layers of documentation: **system docs** (how the data pipeli ### Pages +- [Homepage](docs/pages/homepage.md) — section order, featured articles, org logo resolution - [Articles](docs/pages/articles.md) — article listing, detail pages, frontmatter, translations, draft mode - [Research & White Papers](docs/pages/research.md) — whitepapers, consultation responses, working groups - [Standards](docs/pages/standards.md) — individual standard pages (SCI, RTC, etc.) diff --git a/docs/pages/homepage.md b/docs/pages/homepage.md new file mode 100644 index 00000000..d8ad2e7d --- /dev/null +++ b/docs/pages/homepage.md @@ -0,0 +1,86 @@ +# Homepage + +**URL:** `/` +**File:** `src/pages/index.astro` + +## What the Page Shows + +The primary entry point to the site. Leads with the "silicon to screen" definition of green software, follows with the member-acquisition message ("the challenges you're solving alone, your peers are solving together"), then presents five member challenges as challenge/solution/impact stories, community reach, the four GSF functions, and routes visitors by role. + +## Section Order + +| # | Component | Background | Notes | +|---|-----------|-----------|-------| +| 1 | Hero | cream | "Sustainable technology, from *silicon to screen*" — the page `

` | +| — | TextWithImage | cream | "Solving alone / solving together" — the membership proposition. Was the Hero until the silicon-to-screen reorder, hence the h2 | +| 2 | LogoMarquee | white | Member logos | +| — | SplitCards | cream | Problem statement + GSF Chair quote | +| 4–8 | TabbedSection ×5 | cream | Member challenge stories | +| 9 | CTACard | — | "Discuss your challenges with us" | +| 10 | CommunityReach | — | Reach stats + world map | +| 11 | FeatureGrid | — | "What we do" — four functions | +| 12 | ResourceCards | — | "Where to go next" — routes by role | +| 13 | ArticleCarousel | — | Featured content (conditional) | +| 14 | CTABanner | — | Final CTA | + +Section numbering in the comments is historical and has gaps — sections added later are labelled by name rather than renumbering the whole file. + +## Dynamic Elements + +### Featured articles + +The ArticleCarousel pulls from the `articles` content collection, not from hardcoded data: + +```js +const allArticles = await getCollection("articles", (a) => a.data.published !== false); +const featuredArticles = allArticles + .filter(a => a.data.featured && a.data.lang === "en") + .sort((a, b) => b.data.date.getTime() - a.data.date.getTime()) + .slice(0, 10); +``` + +The whole section is wrapped in `{featuredArticles.length >= 3 && (...)}` — it disappears entirely below three articles rather than rendering a broken carousel. To feature an article, set `featured: true` in its frontmatter. See [article carousels doc](../components/article-carousels.md). + +### Organisation logos on the challenge stories + +Each TabbedSection takes an `orgs` array built by the local `resolveOrgs()` helper, which resolves organisation names against `members.json` and sorts Steering members first: + +```js +orgs={resolveOrgs(["Accenture", "Avanade", "EPAM", ...])} +``` + +Names are matched case-insensitively on `companyName`. A name that doesn't match any member still renders, but with an empty logo — so check spelling against `members.json` when adding one. + +### Logo marquee + +The standard LogoMarquee component. Data comes from `members.json`, not a separate logos file. See [logo marquee doc](../components/logo-marquee.md). + +### Chair quote avatar + +The SplitCards attribution photo (`/assets/team/gadhu-sundaram.jpeg`) is a Notion-fetched asset — `public/assets/team/` is gitignored and populated by `npm run fetch-notion`. See [notion doc](../notion.md). + +## Static Elements + +- **Hero "silicon to screen"** — tagline, the green software definition, the bridging line "Making that real takes four things." (`ctaLeadIn`), and four CTAs: Standards (`/standards/`), Policy (`/policy/`), Education (`/education/`), Community (`/community/`). All four use the `outline` variant deliberately — a filled button among outlines reads as a *selected* state and implies a tab strip, but these are plain links to four pages. Labels are the short forms so all four fit one row at `xl`; the "What we do" grid lower down uses the longer names (Policy & Research, etc.). Laid out with `ctaLayout="grid"` — 2×2, going 4-across at `xl`, so a set of four never orphans one button on its own row. These are the **same four destinations** as that grid — deliberate, as top-of-page quick nav, but keep the two in sync when either changes. Illustration is `/assets/silicon-to-screen.webp` (411×403, transparent). The Hero component uses a plain `` rather than [image.astro](../../src/components/image.astro), so this asset is *not* routed through the Netlify Image CDN. Not to be confused with `GS-Vision-stack2.png` in the "Revisiting Green Software" article, which is the labelled six-layer diagram +- **Membership proposition** — TextWithImage, `reversed`: the "solving alone / solving together" message with its CTA to `/membership/`. It cannot be a second Hero, because Hero renders `

` and the page already has one. Its heading sits one step below the hero at every breakpoint (`text-2xl md:text-3xl lg:text-4xl` against the hero's `text-3xl md:text-4xl lg:text-5xl`) — that is the intended hierarchy, and it matches every other section heading on the site +- **SplitCards** — problem statement and the GSF Chair quote (quote text and attribution are hardcoded) +- **Five TabbedSections** — each with a badge, quoted heading, illustration, CTA to a story page, and challenge/solution/impact tab copy +- **CommunityReach** — five hardcoded stats (course completions, LinkedIn, meetup, podcast, newsletter) plus the world map +- **FeatureGrid "What we do"** — Standards, Policy & Research, Education, Community +- **ResourceCards "Where to go next"** — three role-based routes +- **CTACard / CTABanner** — both point at `/membership/` + +Note the page uses American spelling (`organizations`, `standardized`, `minimize`) while the rest of the site is predominantly British (`organisations`, `optimise`). Keep new homepage copy American for internal consistency. + +## How to Update + +| Change | Where | +|--------|-------| +| Change the "silicon to screen" tagline or definition | Edit the `Hero` props in `index.astro` — this is the page `

`, so treat as a design/SEO change | +| Change the membership message or CTA | Edit the `TextWithImage` props in `index.astro` | +| Replace the "silicon to screen" illustration | Replace `public/assets/silicon-to-screen.webp`. An SVG is preferable if the designer can supply one — `npm run build` runs `optimise-svgs`, and the current raster is only 411px wide against a 448px display slot, so it is soft on high-DPI screens | +| Add/remove a challenge story | Add or remove a `TabbedSection` block; the linked story lives in `src/content/stories/` | +| Change which orgs appear on a story | Edit the `resolveOrgs([...])` array for that section | +| Update reach stats | Edit the `CommunityReach` `stats` array | +| Feature an article in the carousel | Set `featured: true` in the article's frontmatter — do not hardcode articles here | +| Change member logos | Notion Members DB, then `npm run fetch-notion` — not in this file | diff --git a/package-lock.json b/package-lock.json index e09f36eb..72e5f580 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,6 +74,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "sonner": "^2.0.7", + "svgo": "^4.0.1", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.12", "unified": "^11.0.5", @@ -85,7 +86,6 @@ "dotenv": "^17.2.3", "pagefind": "^1.4.0", "prettier-plugin-astro": "^0.14.1", - "svgo": "^4.0.1", "tw-animate-css": "^1.3.8" } }, @@ -4326,7 +4326,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, "license": "ISC" }, "node_modules/boxen": { @@ -4672,7 +4671,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", @@ -4702,7 +4700,6 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">= 6" @@ -4727,7 +4724,6 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, "license": "MIT", "dependencies": { "css-tree": "~2.2.0" @@ -4741,7 +4737,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.28", @@ -4756,7 +4751,6 @@ "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, "license": "CC0-1.0" }, "node_modules/csstype": { @@ -5040,7 +5034,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", @@ -5055,7 +5048,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -5068,7 +5060,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, "funding": [ { "type": "github", @@ -5081,7 +5072,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" @@ -5097,7 +5087,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -7709,7 +7698,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" @@ -8852,7 +8840,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", - "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" @@ -9115,7 +9102,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", - "dev": true, "license": "MIT", "dependencies": { "commander": "^11.1.0", @@ -9141,7 +9127,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=16" diff --git a/public/assets/silicon-to-screen.webp b/public/assets/silicon-to-screen.webp new file mode 100644 index 0000000000000000000000000000000000000000..7a9f2f5ddb4097a863e1b25704e27081c29c38cd GIT binary patch literal 63328 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

+ {ctaLeadIn && ( +

+ {ctaLeadIn} +

+ )} {ctas.length > 0 && ( -
+
{ctas.map((cta) => ( - - + + ))}
diff --git a/src/components/text-with-image.astro b/src/components/text-with-image.astro index 10fa7c2e..adb11486 100644 --- a/src/components/text-with-image.astro +++ b/src/components/text-with-image.astro @@ -73,7 +73,7 @@ const { )}

{headingStyle === "light" diff --git a/src/pages/index.astro b/src/pages/index.astro index 9b8ebf5f..cab31477 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -9,6 +9,7 @@ import Navbar from "@/components/navbar.astro"; import Hero from "@/components/hero.astro"; import LogoMarquee from "@/components/logo-marquee.astro"; import SplitCards from "@/components/split-cards.astro"; +import TextWithImage from "@/components/text-with-image.astro"; import TabbedSection from "@/components/tabbed-section.astro"; import FeatureGrid from "@/components/feature-grid.astro"; @@ -65,16 +66,33 @@ const featuredArticles = allArticles /> + + + From 8fedaaa6f129169214108767fb5e1c90b486b985 Mon Sep 17 00:00:00 2001 From: Navveen Balani <88837066+navveenb@users.noreply.github.com> Date: Thu, 30 Jul 2026 21:59:09 +0530 Subject: [PATCH 2/2] Text changes --- DEVLOG | 2 +- docs/pages/homepage.md | 2 +- src/components/hero.astro | 2 +- src/pages/index.astro | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DEVLOG b/DEVLOG index 51b58ed8..2a1dc4c3 100644 --- a/DEVLOG +++ b/DEVLOG @@ -29,7 +29,7 @@ The demoted membership pitch then read visibly small next to the new hero. The i The hero CTAs went through four shapes: a single "Explore our standards", then a pair adding "Read our vision" pointing at the "Revisiting Green Software: From Silicon to Screen" article, then the four functions with long labels and Standards filled, and finally four short-label outline buttons on a grid. -That last round came from reviewing a screenshot, and all three problems it surfaced were about register rather than content. First, the paragraph defines what green software *is* and the buttons are *routes* — with nothing between them the visitor has no signal that the register changed, so `ctaLeadIn` now carries "Making that real takes four things." Second, the four buttons wrapped 3+1, orphaning "Community & Ecosystem" on its own row and making a deliberate set look like an afterthought; `ctaLayout="grid"` makes it 2×2 below `xl` and 4-across above, which is deterministic at every width instead of depending on label length. Third, and most subtly: Standards was filled green among three outlines, which reads as a *selected* state and promises a tab interface where clicking swaps content below. These are plain links to four pages, so all four are now `outline`. Labels were trimmed to Standards / Policy / Education / Community to fit one row — worth knowing that the "What we do" grid still uses the longer names. +That last round came from reviewing a screenshot, and all three problems it surfaced were about register rather than content. First, the paragraph defines what green software *is* and the buttons are *routes* — with nothing between them the visitor has no signal that the register changed, so `ctaLeadIn` now carries "Making that real takes four things" Second, the four buttons wrapped 3+1, orphaning "Community & Ecosystem" on its own row and making a deliberate set look like an afterthought; `ctaLayout="grid"` makes it 2×2 below `xl` and 4-across above, which is deterministic at every width instead of depending on label length. Third, and most subtly: Standards was filled green among three outlines, which reads as a *selected* state and promises a tab interface where clicking swaps content below. These are plain links to four pages, so all four are now `outline`. Labels were trimmed to Standards / Policy / Education / Community to fit one row — worth knowing that the "What we do" grid still uses the longer names. The vision article is no longer linked from the homepage at all — it is `featured: false`, so it does not appear in the article carousel either. And the four CTAs duplicate the destinations of the "What we do" FeatureGrid further down; intentional as top-of-page quick nav, but the two lists have to be kept in sync. diff --git a/docs/pages/homepage.md b/docs/pages/homepage.md index d8ad2e7d..14755ed8 100644 --- a/docs/pages/homepage.md +++ b/docs/pages/homepage.md @@ -61,7 +61,7 @@ The SplitCards attribution photo (`/assets/team/gadhu-sundaram.jpeg`) is a Notio ## Static Elements -- **Hero "silicon to screen"** — tagline, the green software definition, the bridging line "Making that real takes four things." (`ctaLeadIn`), and four CTAs: Standards (`/standards/`), Policy (`/policy/`), Education (`/education/`), Community (`/community/`). All four use the `outline` variant deliberately — a filled button among outlines reads as a *selected* state and implies a tab strip, but these are plain links to four pages. Labels are the short forms so all four fit one row at `xl`; the "What we do" grid lower down uses the longer names (Policy & Research, etc.). Laid out with `ctaLayout="grid"` — 2×2, going 4-across at `xl`, so a set of four never orphans one button on its own row. These are the **same four destinations** as that grid — deliberate, as top-of-page quick nav, but keep the two in sync when either changes. Illustration is `/assets/silicon-to-screen.webp` (411×403, transparent). The Hero component uses a plain `` rather than [image.astro](../../src/components/image.astro), so this asset is *not* routed through the Netlify Image CDN. Not to be confused with `GS-Vision-stack2.png` in the "Revisiting Green Software" article, which is the labelled six-layer diagram +- **Hero "silicon to screen"** — tagline, the green software definition, the bridging line "Making that real takes four things" (`ctaLeadIn`), and four CTAs: Standards (`/standards/`), Policy (`/policy/`), Education (`/education/`), Community (`/community/`). All four use the `outline` variant deliberately — a filled button among outlines reads as a *selected* state and implies a tab strip, but these are plain links to four pages. Labels are the short forms so all four fit one row at `xl`; the "What we do" grid lower down uses the longer names (Policy & Research, etc.). Laid out with `ctaLayout="grid"` — 2×2, going 4-across at `xl`, so a set of four never orphans one button on its own row. These are the **same four destinations** as that grid — deliberate, as top-of-page quick nav, but keep the two in sync when either changes. Illustration is `/assets/silicon-to-screen.webp` (411×403, transparent). The Hero component uses a plain `` rather than [image.astro](../../src/components/image.astro), so this asset is *not* routed through the Netlify Image CDN. Not to be confused with `GS-Vision-stack2.png` in the "Revisiting Green Software" article, which is the labelled six-layer diagram - **Membership proposition** — TextWithImage, `reversed`: the "solving alone / solving together" message with its CTA to `/membership/`. It cannot be a second Hero, because Hero renders `

` and the page already has one. Its heading sits one step below the hero at every breakpoint (`text-2xl md:text-3xl lg:text-4xl` against the hero's `text-3xl md:text-4xl lg:text-5xl`) — that is the intended hierarchy, and it matches every other section heading on the site - **SplitCards** — problem statement and the GSF Chair quote (quote text and attribution are hardcoded) - **Five TabbedSections** — each with a badge, quoted heading, illustration, CTA to a story page, and challenge/solution/impact tab copy diff --git a/src/components/hero.astro b/src/components/hero.astro index ac03d5ad..10551f33 100644 --- a/src/components/hero.astro +++ b/src/components/hero.astro @@ -34,7 +34,7 @@ interface Props { badge?: string; /** Multiple badges shown above the heading */ badges?: { text: string; variant?: "default" | "dark" }[]; - /** Short bridging line between the body and the CTAs (e.g. "Making that real takes four things.") */ + /** Short bridging line between the body and the CTAs (e.g. "Making that real takes four things") */ ctaLeadIn?: string; /** * CTA layout. "wrap" (default) is a flex-wrap row — right for one or two CTAs. diff --git a/src/pages/index.astro b/src/pages/index.astro index cab31477..688ebbf6 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -69,7 +69,7 @@ const featuredArticles = allArticles heading="Sustainable technology, from" headingAccent="silicon to screen" body="Software, and the hardware it runs on, designed, built, and operated to minimize its carbon emissions, energy consumption, water usage, and waste across every layer of the technology stack, from silicon to screen" - ctaLeadIn="Making that real takes four things." + ctaLeadIn="Making that real takes four things" ctaLayout="grid" ctas={[ { text: "Standards", variant: "outline", href: "/standards/" },