Skip to content

perf: add decoding=async to lazy images, fix architecture eager load,…#112

Merged
sinduri-g merged 7 commits into
mainfrom
perf/image-attrs-and-a11y-section-labels
Jun 5, 2026
Merged

perf: add decoding=async to lazy images, fix architecture eager load,…#112
sinduri-g merged 7 commits into
mainfrom
perf/image-attrs-and-a11y-section-labels

Conversation

@sinduri-g
Copy link
Copy Markdown
Contributor

@sinduri-g sinduri-g commented Jun 5, 2026

… preload hero bg

  • Add decoding="async" to all lazy-loaded images (AvatarLink, Footer, BoardSection, BottomCTA, DiscussionSection, Sponsors) so image decoding happens off the main thread
  • Change ArchitectureSection diagram from loading="eager" to loading="lazy" decoding="async" — the diagram is below the fold on challenge detail pages
  • Add links() export to About.tsx with rel="preload" for nyx_peek.webp, which is the above-fold hero background image that the browser cannot discover until after CSS layout
  • Add aria-labelledby + matching id to Hero, PageHero, and ChallengesGrid sections for improved landmark navigation
  • Update CLAUDE.md, PERFORMANCE.md, README.md, styleguide.md, ADVENTURES.md, CONTRIBUTING.md with doc fixes from prior work

Type of change

  • feat new feature
  • fix bug fix
  • refactor no behavior change
  • docs / chore / config / perf / style / security

… preload hero bg

- Add `decoding="async"` to all lazy-loaded images (AvatarLink, Footer, BoardSection, BottomCTA, DiscussionSection, Sponsors) so image decoding happens off the main thread
- Change ArchitectureSection diagram from `loading="eager"` to `loading="lazy" decoding="async"` — the diagram is below the fold on challenge detail pages
- Add `links()` export to About.tsx with `rel="preload"` for nyx_peek.webp, which is the above-fold hero background image that the browser cannot discover until after CSS layout
- Add `aria-labelledby` + matching `id` to Hero, PageHero, and ChallengesGrid sections for improved landmark navigation
- Update CLAUDE.md, PERFORMANCE.md, README.md, styleguide.md, ADVENTURES.md, CONTRIBUTING.md with doc fixes from prior work

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-05 11:33 UTC

sinduri-g added 6 commits June 5, 2026 11:50
- Add /brand route with BrandGuidelines.tsx covering logo, colors, typography, mascot, and voice and tone
- Move logo SVGs from src/assets/ to public/brand/ so they are accessible as stable downloadable assets with no Vite hash
- Replace Sponsors nav link in footer with Brand
- Wire up route in src/routes.ts, react-router.config.ts, public/sitemap.xml
- Update Navbar and Footer to reference logos via import.meta.env.BASE_URL paths
- Update footer test, prerender test, SEO test, and e2e smoke spec for the new route
- Document Brand Guidelines page in styleguide.md and add hover contrast rules to ACCESSIBILITY.md

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
- Lighten ColorCard panel background and border so swatches are legible on the light preview surface
- Adjust HSL label and code block background tints for better contrast

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
…brand page

- Promote h4 to h3 in Photography (Use/Avoid/When photos) and Accessibility
  (Color and contrast/Interaction and motion) sections to fix heading-order
  WCAG violations where h2 jumped directly to h4
- Fix hover color contrast in Navbar/Footer: replace hover:text-primary with
  hover:text-foreground dark:hover:text-primary so light mode gets an
  accessible dark color instead of amber on a light surface
- Remove Sponsors from footer Explore nav to equalise link count (5 each side);
  Brand link takes its place

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
…t to AAA

- Replace dark/light mode toggle with side-by-side panels, each always rendering its own mode's surface colors
- Remove difficulty badge swatches from both palettes (feature-level detail, not brand colors)
- Add link hover entry to dark mode palette
- Fix light mode starter/builder badge token values to match CSS (80%, 75% lightness)
- Raise body text contrast target to 7:1 WCAG AAA in brand page and ACCESSIBILITY.md
- Fix empty space in dark panel by adding items-start to grid
- Lighten dark mode card borders for visibility (#1d293f -> #2e4268)
- Add role=list to Accessibility page lists
- Add light pill-inactive hover rule to index.css

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
…rs, update styleguide

- Remove dead `.light .pill-inactive:hover` block that was always overridden
  by the later rule with `box-shadow: none` and `border-color`
- Add `loading="lazy"`, `decoding="async"`, and explicit `width`/`height` to
  all below-fold images on the brand page (logo cards, icon marks, nyx, og)
- Update styleguide Brand Guidelines entry to reflect side-by-side panels
  with `dark: boolean` prop — the `colorMode` toggle was removed

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
- Replace <a href> with React Router <Link to> for the Accessibility Statement link
- Add Brand Guidelines entry to public/llms.txt

Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
@sinduri-g sinduri-g merged commit ad1dc71 into main Jun 5, 2026
5 checks passed
@sinduri-g sinduri-g deleted the perf/image-attrs-and-a11y-section-labels branch June 5, 2026 11:33
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