Skip to content

patch: tutorials list ui and header issues#17635

Merged
wackerow merged 4 commits into
devfrom
fix-ui-tutorials
Feb 24, 2026
Merged

patch: tutorials list ui and header issues#17635
wackerow merged 4 commits into
devfrom
fix-ui-tutorials

Conversation

@wackerow
Copy link
Copy Markdown
Member

@wackerow wackerow commented Feb 23, 2026

Description

  • Cleans up classNames for UI for tutorials list
  • Fixes mobile spacing around skill tag and search input.
  • Fixes header levels, adding sr-only h2 when results are available, with h3 used for title
  • Deprecated redundant Text component; space-y-6 used from parent instead
  • i18n: provides translations for new sr-only h2 string

Preview link

https://deploy-preview-17635.ethereum.it/developers/tutorials

cc: @konopkja

wackerow and others added 2 commits February 23, 2026 11:47
@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 23, 2026

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit 4c1eca3
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/699cc48bd607830008726b47
😎 Deploy Preview https://deploy-preview-17635.ethereum.it
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
7 paths audited
Performance: 57 (🔴 down 5 from production)
Accessibility: 94 (🟢 up 1 from production)
Best Practices: 100 (no change from production)
SEO: 99 (no change from production)
PWA: 59 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions Bot added content 🖋️ This involves copy additions or edits translation 🌍 This is related to our Translation Program labels Feb 23, 2026
@wackerow
Copy link
Copy Markdown
Member Author

Critical Issue Found

Empty <h2> tag at the top of the container — This is the main problem I see.

At the top of the tutorials wrapper (line ~273 in the diff), there's:
<h2 className="sr-only"></h2>

This heading has no text content. It's always rendered regardless of filter state. Screen readers will announce "heading level 2" with nothing after it — that's an accessibility anti-pattern and arguably worse than having no heading at all. Contrast this with the conditional <h2> further down that correctly uses {t("page-tutorials-available")}. I'd guess the intent was to put a translated label here too but it was missed.

Minor Observations (non-critical)

  1. block on a LinkFlex component — The class changed from flex-col justify-between to block space-y-6. Since LinkFlex wraps a Flex component (which likely sets display: flex), the block class needs to actually override that. Worth verifying it renders correctly and doesn't create a specificity conflict with Tailwind.
  2. text-border removed from LinkFlex — The old classes had text-border on the card links. Removed without replacement. If that was providing text color on the card, the color may now fall through to an inherited value. Likely intentional given the PR description, but worth a visual check on the preview.
  3. Bengali (bn) file — Has a lot of invisible character normalization changes (zero-width joiners or similar). Not harmful, but not really a content change either.

Everything Else Looks Clean

  • Removing the Text component and using space-y-6 from the parent is a good simplification
  • <p> to <h3> for tutorial titles improves heading semantics correctly
  • Ternary replacing && for the empty state is fine
  • All 25 i18n files correctly add the new "page-tutorials-available" key
  • Unused cn and HTMLAttributes imports properly cleaned up

Reviewed by Claude (Opus 4.6)

@wackerow
Copy link
Copy Markdown
Member Author

Patched above issues

  • Removes stray h2
  • Since "LinkFlex" was being forced back to a block, removed it's usage and replaced with proper BaseLink component
  • Refactored to implicit return for arrow function mapping
  • Reverted superfluous bn translation updates, good to go

Copy link
Copy Markdown
Collaborator

@myelinated-wackerow myelinated-wackerow left a comment

Choose a reason for hiding this comment

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

Solid cleanup PR. A few notes:

Spacing change is intentional but worth eyeballing: space-y-6 (24px uniform) replaces the previous mixed margins (mb-8/mt-6), which tightens the title-to-meta gap by ~8px. Assuming this is the intended fix per the PR description — worth a quick check on the deploy preview on mobile to make sure it doesn't feel too tight with the skill tag alongside the title.

External link behavior improvement: Worth noting that BaseLink opens external URLs in new tabs (target="_blank"), whereas the old bare <a> navigated in the same tab. This is probably the better UX for external tutorials — just calling it out as a behavioral change.

Overall: heading hierarchy fix (ph3, sr-only h2) is a real a11y win, BaseLink over raw <a> is strictly better for internal navigation, skill tag color coding and conditional rendering are both improvements. Clean removal of dead code. Looks good.


🤖 Reviewed by Claude / claude-opus-4-6

@wackerow wackerow merged commit fb7c84f into dev Feb 24, 2026
7 checks passed
@wackerow wackerow deleted the fix-ui-tutorials branch February 24, 2026 04:05
@pettinarip pettinarip mentioned this pull request Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

content 🖋️ This involves copy additions or edits translation 🌍 This is related to our Translation Program

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants