@@ -517,23 +517,47 @@ describe("components.css theme-sensitive surfaces", () => {
517517 const pageHeader = getLastRuleBlock ( ".mobile-sheet--fullscreen .page-header" ) ;
518518 const mobilePageHeader = getLastRuleBlock ( ".mobile-page-header" ) ;
519519 const mobilePageHeaderLeading = getLastRuleBlock ( ".mobile-page-header .page-header__leading" ) ;
520+ const mobilePageHeaderTitle = getLastRuleBlock ( ".mobile-page-header .page-header__title" ) ;
520521 const mobilePageHeaderBack = getLastRuleBlock ( ".mobile-page-header .page-header__back" ) ;
521522 const headerLeading = getLastRuleBlock ( ".page-header__leading" ) ;
522523 const backButton = getLastRuleBlock ( ".mobile-sheet--fullscreen .page-header__back" ) ;
524+ const fullscreenTitle = getLastRuleBlock ( ".mobile-sheet--fullscreen .page-header__title" ) ;
523525 const headerActions = getLastRuleBlock ( ".page-header__actions" ) ;
524526
525527 expect ( fullscreenHeader ) . toContain ( "padding: 0 var(--sp-3)" ) ;
526528 expect ( pageHeader ) . toContain ( "width: 100%" ) ;
527- expect ( mobilePageHeader ) . toContain ( "min-height: 38px " ) ;
529+ expect ( mobilePageHeader ) . toContain ( "min-height: 44px " ) ;
528530 expect ( mobilePageHeaderLeading ) . toContain ( "gap: 8px" ) ;
531+ expect ( mobilePageHeaderTitle ) . toContain ( "font-size: 16px" ) ;
532+ expect ( mobilePageHeaderTitle ) . toContain ( "line-height: 24px" ) ;
529533 expect ( mobilePageHeaderBack ) . toContain ( "min-height: 26px" ) ;
530534 expect ( mobilePageHeaderBack ) . toContain ( "font-family: var(--font-mono)" ) ;
531535 expect ( headerLeading ) . toContain ( "flex: 1" ) ;
532536 expect ( backButton ) . toContain ( "background: transparent" ) ;
533537 expect ( backButton ) . not . toContain ( "border-radius: 999px" ) ;
538+ expect ( fullscreenTitle ) . toContain ( "font-size: 16px" ) ;
539+ expect ( fullscreenTitle ) . toContain ( "line-height: 24px" ) ;
534540 expect ( headerActions ) . toContain ( "margin-left: auto" ) ;
535541 } ) ;
536542
543+ it ( "keeps page header levels on the approved desktop sizing contract" , ( ) => {
544+ const baseTitle = getLastRuleBlock ( ".page-header__title" ) ;
545+ const primaryHeader = getLastRuleBlock ( ".page-header--primary" ) ;
546+ const secondaryHeader = getLastRuleBlock ( ".page-header--secondary" ) ;
547+ const primaryTitle = getLastRuleBlock ( ".page-header--primary .page-header__title" ) ;
548+ const secondaryTitle = getLastRuleBlock ( ".page-header--secondary .page-header__title" ) ;
549+
550+ expect ( baseTitle ) . toContain ( "font-weight: 600" ) ;
551+ expect ( primaryHeader ) . toContain ( "min-height: 56px" ) ;
552+ expect ( secondaryHeader ) . toContain ( "min-height: 48px" ) ;
553+ expect ( primaryTitle ) . toContain ( "font-size: 20px" ) ;
554+ expect ( primaryTitle ) . toContain ( "line-height: 28px" ) ;
555+ expect ( primaryTitle ) . toContain ( "font-weight: 600" ) ;
556+ expect ( secondaryTitle ) . toContain ( "font-size: 16px" ) ;
557+ expect ( secondaryTitle ) . toContain ( "line-height: 24px" ) ;
558+ expect ( secondaryTitle ) . toContain ( "font-weight: 600" ) ;
559+ } ) ;
560+
537561 it ( "uses a unified inline sheet treatment for mobile selectors and keeps topbar controls height-aligned" , ( ) => {
538562 const inlineSheet = getLastRuleBlock ( ".mobile-inline-sheet" ) ;
539563 const inlineSheetAction = getLastRuleBlock ( ".mobile-inline-sheet__action" ) ;
0 commit comments