Skip to content

feat(ag-p04): footer component — always-dark, four columns, halo, links#860

Merged
ashleyshaw merged 2 commits into
developfrom
feat/ag-p04-footer
Jun 6, 2026
Merged

feat(ag-p04): footer component — always-dark, four columns, halo, links#860
ashleyshaw merged 2 commits into
developfrom
feat/ag-p04-footer

Conversation

@ashleyshaw

@ashleyshaw ashleyshaw commented Jun 6, 2026

Copy link
Copy Markdown
Member

Feature Pull Request

This repository enforces changelog, release, and label automation for all PRs and issues.
See the organisation-wide Automation Governance & Release Strategy for contributor rules.

Linked issues

Closes #859

Changelog

Added

  • None.

Changed

  • Refined the Awesome GitHub footer to match the always-dark spec and the four-column link layout.

Fixed

  • Footer no longer uses the icon grid in the catalogues column and now renders plain link lists that match the spec.
  • Footer link grouping and hover treatment align with the design token rules.

Removed

  • None.

Risk Assessment

Risk Level: Low

Potential Impact:

This change only affects the site footer in the Awesome GitHub layout. A regression would be visual or navigational, with limited blast radius.

Mitigation Steps:

  • Built the site successfully after the change.
  • Kept the scope limited to one component.
  • Preserved the existing layout wiring and asset paths.

How to Test

Prerequisites

  • website/node_modules installed via npm ci.
  • Optional: a local preview or deployed preview of the Astro site.

Test Steps

  1. Run npm --prefix website run build and confirm the Astro build completes.
  2. Open the Awesome GitHub site in light mode and confirm the footer remains dark.
  3. Switch to dark mode and confirm the footer still remains dark, with the same link treatment.
  4. Check desktop and mobile widths to confirm the four columns stack appropriately.

Expected Results

The footer stays #090909 in both themes, the cyan halo is visible, and the link columns render as plain lists with the expected hover colour.

Edge Cases to Verify

  • Mobile viewport layout
  • Dark theme persistence
  • Keyboard focus on footer links
  • External footer link opens in a new tab

Checklist (Global DoD / PR)

  • All AC met and demonstrated
  • Tests added/updated (unit/E2E as appropriate)
  • Accessibility checklist completed (where relevant):
    • Semantic HTML and heading order verified
    • Keyboard navigation and visible focus states verified
    • ARIA used only where needed
    • Contrast and non-colour cues reviewed (WCAG 2.2 AA)
  • Docs/readme/changelog updated (if user-facing)
  • Frontmatter updated where applicable (last_updated and version)
  • I have reviewed and applied the downstream override policy (or linked an approved exception)
  • Security checklist completed (where relevant):
    • Untrusted input validated and sanitised
    • Output escaped for its rendering context
    • Privileged actions enforce nonce and capability checks
    • No secrets/sensitive data introduced; OWASP risks reviewed
  • Code/design reviews approved
  • CI green; linked issues closed; release notes prepared (if shipping)
  • Risk assessment completed above
  • Testing instructions provided above

@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

Bug Fixes

  • Updated the footer's Catalogues column to display as plain text links instead of a grid layout, whilst maintaining the cyan halo, dark background, and LightSpeed branding to match design specifications.

Walkthrough

The PR simplifies the footer's "Catalogues" column from a grid layout with icons to plain text links, removing icon-based rendering and corresponding grid CSS whilst updating link display styling. The changelog documents this Phase 04 footer refinement.

Changes

Footer Component & Documentation

Layer / File(s) Summary
Footer data structure and template rendering
website/src/components/AwesomeGithub/AwesomeGithubFooter.astro
The component script now derives catalogueCats from the first four items in CATEGORIES. The "Catalogues" column template is updated to render these categories as label-only anchor links, replacing the previous grid layout with icon+label markup.
Footer styling updates
website/src/components/AwesomeGithub/AwesomeGithubFooter.astro
Link styling for .foot-col a is changed to display: block. The .foot-cat-grid CSS block (including grid layout, hover rules, and span font-size) is removed entirely, along with its responsive @media (max-width: 768px) overrides.
Changelog documentation
CHANGELOG.md
A new [Unreleased] → Fixed entry documents the Phase 04 footer component update, stating that the always-dark footer now uses plain link columns matching the spec whilst preserving the cyan halo, dark background, and LightSpeed branding.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • lightspeedwp/.github#849: Introduces the icon/grid-based "Catalogues" column styling that is now being removed and simplified to plain text links in this PR.

Suggested labels

lang:css, lang:md, area:theme

Suggested reviewers

  • krugazul
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title accurately describes the main change: refactoring the footer to be always-dark with four columns and halo styling.
Description check ✅ Passed Description is comprehensive, following the template with changelog, risk assessment, testing instructions, and checklist items completed.
Linked Issues check ✅ Passed The PR addresses the core requirements of issue #859: always-dark footer (#090909), cyan halo, link columns, and bottom bar branding.
Out of Scope Changes check ✅ Passed All changes are scoped to the footer component refactoring outlined in issue #859; CHANGELOG.md and AwesomeGithubFooter.astro updates directly support the linked objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ag-p04-footer

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

✅ Template check passed after update. Thanks for fixing the PR description.

@github-actions github-actions Bot added status:needs-review Awaiting code review type:feature Feature or enhancement priority:normal Default priority type:chore Chore / small hygiene change meta:needs-changelog Requires a changelog entry before merge labels Jun 6, 2026
@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

🔍 Reviewer Summary for PR #860

CI Status:success
Files changed: 2
Risk Distribution: 0 critical, 0 high, 1 medium, 1 low

Recommendations

  • Ready to proceed pending human review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request simplifies the footer component by removing the icon grid layout and rendering the catalogue categories as plain block-level links. This includes removing the Icon component import and associated CSS styles. The reviewer noted that while the PR description specifies a three-column layout, the current implementation still renders four columns, and suggested consolidating the "Catalogues" and "More" columns into a single "Categories" column.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +30 to +32
{catalogueCats.map((cat) => (
<a href={`${base}c/${cat.id}/`}>{cat.label}</a>
))}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The PR title and description specify a three-column link layout (e.g., "three columns, halo, links" and "Three columns visible on desktop"). However, the current implementation renders four columns of links: "Catalogues", "More", "Learn", and "Reference".

If the intention is to have three columns, you can consolidate "Catalogues" and "More" into a single "Categories" column using the full CATEGORIES array directly, and remove the "More" column.

          {CATEGORIES.map((cat) => (
            <a href={`${base}c/${cat.id}/`}>{cat.label}</a>
          ))}

@github-actions github-actions Bot removed the type:chore Chore / small hygiene change label Jun 6, 2026
@github-actions github-actions Bot added area:documentation Docs & guides lang:md Markdown content/docs labels Jun 6, 2026
@coderabbitai coderabbitai Bot requested a review from krugazul June 6, 2026 16:37
@ashleyshaw ashleyshaw changed the title feat(ag-p04): footer component — always-dark, three columns, halo, links feat(ag-p04): footer component — always-dark, four columns, halo, links Jun 6, 2026
@coderabbitai coderabbitai Bot added area:theme Theme & styles lang:css Stylesheets (CSS/Sass/etc.) labels Jun 6, 2026
@ashleyshaw

Copy link
Copy Markdown
Member Author

The footer is intentionally kept at four columns to match CLAUDE_CODE_HEADER_FOOTER_SPEC.md §7. I updated the PR title/body to match the spec wording, so the Gemini note is a documentation mismatch rather than a code change request.

@ashleyshaw

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
CHANGELOG.md (1)

1-17: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Please add the missing required version frontmatter field.

Tiny metadata gremlin here: this changelog frontmatter is missing version, which is required for Markdown files in this repo.

Quick patch
 title: "Changelog"
 description: "All notable changes to this project, formatted per Keep a Changelog 1.1.0 and Semantic Versioning"
 file_type: "documentation"
+version: "1.0.0"
 created_date: "2025-09-20"
 last_updated: "2026-06-06"

As per coding guidelines, “All .md files in this repository should include YAML frontmatter with required fields: file_type, title, description, version, last_updated, owners, tags, status, stability, domain”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` around lines 1 - 17, The YAML frontmatter in CHANGELOG.md is
missing the required version field; update the frontmatter block at the top of
the file (the triple-dashed header containing title, description, file_type,
last_updated, owners, tags, status, stability, domain) to add a version:
"<semantic-version-or-appropriate-tag>" entry (e.g., 1.0.0 or a repo-appropriate
value) so the file includes all required fields per the repository guideline.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@website/src/components/AwesomeGithub/AwesomeGithubFooter.astro`:
- Around line 6-7: Footer currently splits CATEGORIES into catalogueCats and
moreCats (const catalogueCats = CATEGORIES.slice(0, 4); const moreCats =
CATEGORIES.slice(4);) which renders four columns and a "More" column; change the
slicing and render logic to produce exactly three columns instead: create three
groups from CATEGORIES (e.g. first two/next two/last items as appropriate) or
redistribute items so only three column arrays are produced, remove the separate
"More" column rendering, and update the label for the Learn column from "Learn"
to "Learn & Cook" in AwesomeGithubFooter.astro so the component renders three
columns with the corrected heading.

---

Outside diff comments:
In `@CHANGELOG.md`:
- Around line 1-17: The YAML frontmatter in CHANGELOG.md is missing the required
version field; update the frontmatter block at the top of the file (the
triple-dashed header containing title, description, file_type, last_updated,
owners, tags, status, stability, domain) to add a version:
"<semantic-version-or-appropriate-tag>" entry (e.g., 1.0.0 or a repo-appropriate
value) so the file includes all required fields per the repository guideline.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 7de6f915-a4e5-4201-a7ee-4c6432cd713c

📥 Commits

Reviewing files that changed from the base of the PR and between 321b004 and 529ba92.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • website/src/components/AwesomeGithub/AwesomeGithubFooter.astro
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Unified Labeling, Status, and Type Assignment
  • GitHub Check: validate
  • GitHub Check: readme-regen
  • GitHub Check: Testing
  • GitHub Check: coderabbit-gate
  • GitHub Check: check
🧰 Additional context used
📓 Path-based instructions (2)
**/*.md

📄 CodeRabbit inference engine (.github/instructions/markdown.instructions.md)

**/*.md: Use one H1 (#) per file; keep heading levels sequential (never skip from H2 to H4)
Use fenced code blocks with explicit language tags (bash, yaml, markdown, etc.)
Keep links relative for in-repo files; verify they resolve before merging
Use 1. for ordered lists and - for unordered lists
Keep all wording in UK English (optimise, organisation, colour, behaviour, analyse)
Do not add a references: frontmatter field — use inline links or a footer section instead
Blank lines before and after headings, code blocks, and block-level elements
Maximum line length: 120 characters (soft limit; prefer wrapping at natural sentence boundaries)
All .md files in this repository should include YAML frontmatter with required fields: file_type, title, description, version, last_updated, owners, tags, status, stability, domain
Every image (![]()) must have descriptive alt text explaining the image's purpose, not its appearance. Empty alt (![ ]()) is valid only for purely decorative images
Link text must describe the destination — never use 'click here', 'read more', or bare URLs as visible text
Every table must have a header row (| Header |). Avoid merged cells
Use headings to communicate document structure, not for visual styling
Do not rely on colour alone to convey information in diagrams or callout blocks
Mermaid diagrams must include accTitle and accDescr attributes for accessibility
Specify language in frontmatter; use plain language, avoid jargon where possible

Files:

  • CHANGELOG.md
CHANGELOG.md

⚙️ CodeRabbit configuration file

CHANGELOG.md: Review CHANGELOG.md:

  • Confirm entries follow Keep a Changelog 1.1.0 format.
  • Each entry under [Unreleased] must include a PR link and issue link.
  • Verify entries use the correct section headings (Added, Changed, Fixed, Deprecated, Removed, Security, Documentation, Performance).
  • Check UK English spelling throughout.

Files:

  • CHANGELOG.md

Comment on lines +6 to 7
const catalogueCats = CATEGORIES.slice(0, 4);
const moreCats = CATEGORIES.slice(4);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Footer still renders four columns instead of the required three.

Fun polish, but we’re still one column over spec: More remains, and Learn isn’t titled Learn & Cook.
That misses the agreed Phase 04 acceptance criteria.

Suggested tidy fix
-const catalogueCats = CATEGORIES.slice(0, 4);
-const moreCats = CATEGORIES.slice(4);
+const catalogueCats = CATEGORIES;
-        <!-- Column 1: Catalogues (Browse categories, first 4) -->
+        <!-- Column 1: Catalogues -->
         <div class="foot-col">
           <h5>Catalogues</h5>
           {catalogueCats.map((cat) => (
             <a href={`${base}c/${cat.id}/`}>{cat.label}</a>
           ))}
         </div>

-        <!-- Column 2: More (remaining categories) -->
-        <div class="foot-col">
-          <h5>More</h5>
-          {moreCats.map((cat) => (
-            <a href={`${base}c/${cat.id}/`}>{cat.label}</a>
-          ))}
-        </div>
-
-        <!-- Column 3: Learn -->
+        <!-- Column 2: Learn & Cook -->
         <div class="foot-col">
-          <h5>Learn</h5>
+          <h5>Learn &amp; Cook</h5>
           <a href={`${base}learn/`}>Learning Centre</a>
           <a href={`${base}cookbook/`}>Cookbook</a>
           <a href={`${base}onboarding/`}>Onboarding journey</a>
           <a href={`${base}getting-started/`}>Getting started</a>
         </div>

-        <!-- Column 4: Reference -->
+        <!-- Column 3: Reference -->

Also applies to: 27-41, 43-49

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/src/components/AwesomeGithub/AwesomeGithubFooter.astro` around lines
6 - 7, Footer currently splits CATEGORIES into catalogueCats and moreCats (const
catalogueCats = CATEGORIES.slice(0, 4); const moreCats = CATEGORIES.slice(4);)
which renders four columns and a "More" column; change the slicing and render
logic to produce exactly three columns instead: create three groups from
CATEGORIES (e.g. first two/next two/last items as appropriate) or redistribute
items so only three column arrays are produced, remove the separate "More"
column rendering, and update the label for the Learn column from "Learn" to
"Learn & Cook" in AwesomeGithubFooter.astro so the component renders three
columns with the corrected heading.

@ashleyshaw ashleyshaw enabled auto-merge June 6, 2026 16:42
@ashleyshaw ashleyshaw merged commit 0485d9d into develop Jun 6, 2026
37 checks passed
@ashleyshaw ashleyshaw deleted the feat/ag-p04-footer branch June 6, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:documentation Docs & guides area:theme Theme & styles lang:css Stylesheets (CSS/Sass/etc.) lang:md Markdown content/docs meta:needs-changelog Requires a changelog entry before merge priority:normal Default priority status:needs-review Awaiting code review type:feature Feature or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 04] Footer: always-dark, three columns, halo

1 participant