Skip to content

POC: Footer AI provider links and visual parity with gooddata.ai#109

Draft
czechian wants to merge 1 commit into
masterfrom
poc/footer-ai-links
Draft

POC: Footer AI provider links and visual parity with gooddata.ai#109
czechian wants to merge 1 commit into
masterfrom
poc/footer-ai-links

Conversation

@czechian

@czechian czechian commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Proof of concept for the footer half of the AI entry-points work (the navbar Ask AI button + Kapa widget live in their own PR, #108):

  • Footer AI provider links — icon buttons that open ChatGPT, Claude, Gemini, Grok, or Perplexity prefilled with a GoodData overview prompt (new SVG icons under assets/icons/). Render unconditionally as part of the shared footer.
  • Footer layout & a11y tweaks — banner column with logo + subtitle wrap, subscribe-action sublinks filtered out, aria-label support on icon-only social buttons, mobile collapse title rendered with safeHTML.
  • Visual parity with www.gooddata.ai — the learn-assets/css/Footer.css the theme loads is older than the live site's footer styles, so _styles_project.scss overrides it: 48px icon buttons in a 12px-gap left-aligned row (was 29px right-aligned), live text rhythm for the subtitle, and a full-width banner item with 80px vertical padding (was 30px, centered at max-width 1360px). Overrides use higher-specificity descendant selectors because Footer.css loads after the theme stylesheet; the banner padding is scoped to Footer.css's own ≥993px breakpoint so mobile is untouched.

Verification

Built cleanly with Hugo 0.119 (current production version). Rendered footer measured against the live gooddata.ai footer with headless Chromium — icon button sizes, gaps, margins, and banner padding now match the live computed styles.

Known intentional differences from the live footer: no "Subscribe for updates" link (filtered), no language dropdown row (docs has its own language switching).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added footer links for asking leading AI assistants, including ChatGPT, Claude, Gemini, Grok, and Perplexity.
    • Improved footer accessibility with descriptive labels for social links.
    • Updated footer banner content with centered branding and optional subtitles.
  • Style

    • Refined footer spacing, sizing, alignment, and responsive desktop layout to better match the live site.

The footer banner adds icon links that open ChatGPT, Claude, Gemini,
Grok, or Perplexity prefilled with a GoodData overview prompt, plus
layout and a11y tweaks: logo/subtitle wrap, subscribe-action sublinks
filtered out, aria-labels on icon-only social buttons.

The learn-assets Footer.css the theme loads is older than the live
site's footer styles, so local overrides bring visuals in line with
www.gooddata.ai: 48px icon buttons in a 12px-gap left-aligned row,
live text rhythm for the subtitle, and a full-width banner item with
80px vertical padding.
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2e01df92-bc81-49cc-afeb-845a997f562d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • ✅ Review completed - (🔄 Check again to review again)

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

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 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 `@layouts/partials/footer.html`:
- Line 110: Update the footer banner link anchor in the bannerLinks rendering
loop to avoid duplicate fixed IDs: remove the unused id attribute or incorporate
the current banner item index into the generated value, while preserving the
existing label, URL, and accessibility attributes.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f1e28e64-3ba5-47f0-9b39-89813b751658

📥 Commits

Reviewing files that changed from the base of the PR and between 3203cf0 and 7881b5c.

⛔ Files ignored due to path filters (5)
  • assets/icons/chatgpt.svg is excluded by !**/*.svg
  • assets/icons/claude.svg is excluded by !**/*.svg
  • assets/icons/gemini.svg is excluded by !**/*.svg
  • assets/icons/grok.svg is excluded by !**/*.svg
  • assets/icons/perplexity.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • assets/scss/_styles_project.scss
  • layouts/partials/footer.html

<div class="gd-footer-buttons d-flex">
{{ range $providers }}
<div class="gd-footer-buttons-item">
<a class="gd-footer-buttons-item-icon-button" href="{{ printf "%s%s" .base (urlquery $query) | safeURL }}" id="footer-btn-{{ lower .label }}" aria-label="{{ .label }}" target="_blank" rel="noreferrer noopener">

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Namespace provider button IDs per banner item.

Line 110 emits fixed IDs, but this template is rendered for each bannerLinks entry. Multiple entries create duplicate IDs. Remove the unused IDs or include the banner index in them.

🧰 Tools
🪛 HTMLHint (1.9.2)

[error] 110-110: Special characters must be escaped : [ < ].

(spec-char-escape)


[error] 110-110: Special characters must be escaped : [ > ].

(spec-char-escape)

🤖 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 `@layouts/partials/footer.html` at line 110, Update the footer banner link
anchor in the bannerLinks rendering loop to avoid duplicate fixed IDs: remove
the unused id attribute or incorporate the current banner item index into the
generated value, while preserving the existing label, URL, and accessibility
attributes.

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