Skip to content

Do not merge yet : feat(component-header-footer): add isUnbranded and unbrandedLogo props for unbranded (KE) sites - #1762

Open
juanmitriatti wants to merge 1 commit into
devfrom
UDS-2248
Open

Do not merge yet : feat(component-header-footer): add isUnbranded and unbrandedLogo props for unbranded (KE) sites#1762
juanmitriatti wants to merge 1 commit into
devfrom
UDS-2248

Conversation

@juanmitriatti

Copy link
Copy Markdown
Contributor

Summary

Adds two new optional props to the Global Header (component-header-footer), requested by Webspark for the Unbranded (KE) profile work (WS2-2964, WS2-3128). Jira: UDS-2248.

  • isUnbranded (bool, default false)
  • unbrandedLogo (object: src, alt, brandLink)

When isUnbranded is true:

  • The ASU logo is replaced by unbrandedLogo, mirroring how partnerLogo is injected for isPartner.
  • The universal navbar keeps only the skip-nav link and the report-accessibility link. The gray universal bar is not displayed unless one of those hidden links receives keyboard focus (focus-revealed via :focus-within, standard skip-link pattern).
  • Sign In / Sign Out, ASU Home, My ASU, Colleges and Schools and the ASU search input are not rendered.
  • Everything else (navTree menu, CTA buttons, title, parentOrg) behaves exactly as today.

Rationale: the universal nav links were hardcoded inside the React bundle with no prop to suppress them, so unbranded rendering was impossible without this change.

Changes

  • ASUHeader: new isUnbranded / unbrandedLogo props, wired through the app context, PropTypes, JSDoc typedefs and types/main.d.ts.
  • Logo: renders unbrandedLogo (src/alt/brandLink) instead of the ASU logo when unbranded.
  • UniversalNavbar: filters the nav links down to the two accessibility links, drops Login and Search, and adds a uds-hdr-universal-nav-unbranded class whose CSS visually hides the bar (still keyboard-reachable) except under :focus-within.
  • HeaderMain: the mobile-menu search input is also suppressed when unbranded.
  • New Unbranded Storybook story, updated docs/README.props.md.

Testing

  • 5 new unit tests in header.test.js (logo replacement, link reduction, sign-in/search suppression, focus-reveal class, nav/title regression). Full package suite: 51/51 passing, including the Playwright dataLayer tests.
  • Verified manually in Storybook: gray bar hidden by default, revealed while tabbing through "Skip to main content" / "Report an accessibility problem", hidden again on blur.
  • Note: local yarn test at the repo root shows a pre-existing, unrelated failure in @asu/app-webdir-ui (MessageChannel is not defined jsdom environment issue); this PR touches no files in that package.

…s for unbranded (KE) sites

When isUnbranded is true, the ASU logo is replaced by unbrandedLogo
(src, alt, brandLink), the universal navbar keeps only the skip-nav and
report-accessibility links (focus-revealed via the standard skip-link
pattern), and Sign In/Out, ASU Home, My ASU, Colleges and Schools and
the ASU search input are not rendered. navTree, CTA buttons, title and
parentOrg behave exactly as today.

Requested by Webspark for the Unbranded (KE) profile work (WS2-2964,
WS2-3128). UDS-2248
@juanmitriatti
juanmitriatti requested a review from a team as a code owner July 31, 2026 12:33
@juanmitriatti juanmitriatti changed the title feat(component-header-footer): add isUnbranded and unbrandedLogo props for unbranded (KE) sites Do not merge yet : feat(component-header-footer): add isUnbranded and unbrandedLogo props for unbranded (KE) sites Jul 31, 2026
@asu-jenkins-devops

Copy link
Copy Markdown
Collaborator

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.

2 participants