diff --git a/.storybook/themeCFPB.js b/.storybook/themeCFPB.js index 9b52357bf1..36c014910a 100644 --- a/.storybook/themeCFPB.js +++ b/.storybook/themeCFPB.js @@ -1,5 +1,5 @@ import { create } from 'storybook/theming/create'; -import CfpbLogo from '../src/assets/images/cfpb-logo.png'; +import CfpbLogo from '../src/assets/images/cfpb-header/logo-237w.png?url'; const colors = { black: '#101820', diff --git a/src/assets/images/cfpb-header/logo-161w.png b/src/assets/images/cfpb-header/logo-161w.png new file mode 100644 index 0000000000..67b9c9f15c Binary files /dev/null and b/src/assets/images/cfpb-header/logo-161w.png differ diff --git a/src/assets/images/cfpb-header/logo-237w.png b/src/assets/images/cfpb-header/logo-237w.png new file mode 100644 index 0000000000..c76398d8f4 Binary files /dev/null and b/src/assets/images/cfpb-header/logo-237w.png differ diff --git a/src/assets/images/cfpb-header/logo-322w.png b/src/assets/images/cfpb-header/logo-322w.png new file mode 100644 index 0000000000..9bdc00e3de Binary files /dev/null and b/src/assets/images/cfpb-header/logo-322w.png differ diff --git a/src/assets/images/cfpb-logo.png b/src/assets/images/cfpb-header/logo-474w.png similarity index 100% rename from src/assets/images/cfpb-logo.png rename to src/assets/images/cfpb-header/logo-474w.png diff --git a/src/assets/images/cfpb-header/logo-483w.png b/src/assets/images/cfpb-header/logo-483w.png new file mode 100644 index 0000000000..13f74f9b99 Binary files /dev/null and b/src/assets/images/cfpb-header/logo-483w.png differ diff --git a/src/assets/images/cfpb-header/logo-644w.png b/src/assets/images/cfpb-header/logo-644w.png new file mode 100644 index 0000000000..46374e6cc8 Binary files /dev/null and b/src/assets/images/cfpb-header/logo-644w.png differ diff --git a/src/components/Header/responsive-menu.scss b/src/components/Header/responsive-menu.scss index f6a18e2f70..2677e063ec 100644 --- a/src/components/Header/responsive-menu.scss +++ b/src/components/Header/responsive-menu.scss @@ -31,29 +31,27 @@ $max-width: $breakpoint - 0.0625em; align-items: center; } + // Slot widths match logo `sizes` on consumerfinance.gov: 161px ≤900px, 237px above. .o-header__logo { - min-width: 237px; + min-width: 161px; + + @media (min-width: $breakpoint) { + min-width: 237px; + } @media (max-width: $max-width) { border-left: 1px solid var(--gray-40); padding-left: 15px; - .o-header__logo-img { - height: 40px; - } } } .o-header__logo-img { - height: 34px; + display: block; + height: auto; + width: auto; + max-width: 100%; margin-top: 10px; margin-bottom: 10px; - vertical-align: middle; - } - - @media (min-width: $breakpoint) { - .o-header__logo-img { - height: 50px; - } } .menu-toggle { diff --git a/src/components/Header/responsive-menu.test.tsx b/src/components/Header/responsive-menu.test.tsx index a00cf58326..bb4713c94d 100644 --- a/src/components/Header/responsive-menu.test.tsx +++ b/src/components/Header/responsive-menu.test.tsx @@ -35,7 +35,9 @@ describe('ResponsiveMenu', () => { expect(screen.queryByRole('navigation')).not.toBeInTheDocument(); expect(screen.getByTestId('CfpbLogoLink')).toBeInTheDocument(); - expect(screen.getByAltText('CFPB Logo')).toBeInTheDocument(); + expect( + screen.getByAltText('Consumer Financial Protection Bureau'), + ).toBeInTheDocument(); }); it('renders with custom links', () => { diff --git a/src/components/Header/responsive-menu.tsx b/src/components/Header/responsive-menu.tsx index fb47d12ac8..d85bd38279 100644 --- a/src/components/Header/responsive-menu.tsx +++ b/src/components/Header/responsive-menu.tsx @@ -1,12 +1,27 @@ import React, { JSX, useCallback, useState } from 'react'; import type { KeyboardEvent, MouseEvent, ReactNode } from 'react'; -import CFPBLogo from '../../assets/images/cfpb-logo.png'; +import logo161w from '../../assets/images/cfpb-header/logo-161w.png?url'; +import logo237w from '../../assets/images/cfpb-header/logo-237w.png?url'; +import logo322w from '../../assets/images/cfpb-header/logo-322w.png?url'; +import logo474w from '../../assets/images/cfpb-header/logo-474w.png?url'; +import logo483w from '../../assets/images/cfpb-header/logo-483w.png?url'; +import logo644w from '../../assets/images/cfpb-header/logo-644w.png?url'; import { Button } from '../Buttons/button'; import { Icon } from '../Icon/icon'; import Link from '../Link/link'; import type { JSXElement } from '../../types/jsx-element'; import './responsive-menu.scss'; +/** Matches consumerfinance.gov header logo `srcset` (see static/img on the live site). */ +const CFPB_HEADER_LOGO_SRCSET = [ + `${logo161w} 161w`, + `${logo322w} 322w`, + `${logo483w} 483w`, + `${logo644w} 644w`, + `${logo237w} 237w`, + `${logo474w} 474w`, +].join(', '); + interface CfpbLogoProperties { href?: string; } @@ -22,7 +37,15 @@ export function CfpbLogo({ aria-label='Home' className='o-header__logo' > - CFPB Logo + Consumer Financial Protection Bureau ); }