feat(site-kit): single-language header and a footer with business details (D-029) - #67
Merged
Merged
Conversation
…ails (D-029) Nine options FM덴탈서비스's landing needed and the kit could not draw: - SiteHeader locale is optional (no picker); SiteBrand.label names the brand link; a wordmark logo with name "" prints once. - The narrow menu closes on Escape (focus back on the button) and when a link inside it is followed. Buttons, new-tab links, an Escape a control inside the header already handled, and an Escape from an aria-modal element leave it open. - On touch the brand, navigation, footer and footer-language links are 44px; at 720px and below the open menu is 44px rows and the closed header's first row is 64px. - SiteFooter details (a block under the brand line) and linksLabel (a named nav); SiteLink.emphasis. - Sections and the hero stop below the sticky header (--site-header-block-size); eyebrow tracking and weight hooks. - Header and footer read brand (and details) once. A five-lens review before the PR confirmed 15 findings; all are fixed or documented here: the brand link's touch size, new-tab and modal Escape cases, footer baseline alignment on touch, details margins, the 16px mark size scoped to icon marks, and the defaults every consumer gets (narrow header 89 to 65px on content-box consumers) plus the type change on SiteHeaderProps["locale"]. Tests: 16 component cases, a development-build hydration test for directly mounted chrome with getter props, source contracts, and browser geometry at fine and coarse pointers. Each fails on the code or CSS it guards.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Nine header and footer options that FM덴탈서비스's landing needs and the kit could not draw (D-029). The props are optional; a product that passes none gets the same markup.
SiteHeaderlocaleoptional — no language picker without it.SiteBrand.labelnames the header brand link; a wordmarklogowithname: ""prints once (no empty<strong>in the footer).aria-modalelement leave it open.SiteFooterdetails(block under the brand line) andlinksLabel(named<nav>);SiteLink.emphasis.scroll-margin-block-starton sections and the hero (--site-header-block-size);--site-hero-eyebrow-tracking/--site-hero-eyebrow-weight.brand(anddetails) once — D-027/D-028 extended to directly mounted chrome.Applies to every consumer
box-sizing: border-boxreset (TraceLinq, BookLinq) get phone headers 89px → 65px; a 44px menu button product 69 → 65. Check the phone header when upgrading.SiteHeaderProps["locale"]is optional — BookLinq'sMarketingFrame(props.header.locale.locale) must narrow it when it upgrades.Verification
Hydration Mismatch).verify:canary:preview, which times out on this Windows machine (the canary server needs 8–16s, the smoke waits 5s). The canary depends only ondds-table, untouched here.요약
FM덴탈서비스 랜딩에 필요한데 kit으로는 그릴 수 없던 헤더·푸터 옵션 9가지(D-029). props는 선택이고, 아무것도 넘기지 않는 제품은 같은 마크업을 받는다.
SiteHeader의locale선택 — 없으면 언어 메뉴 없음.SiteBrand.label로 헤더 브랜드 링크 이름. 워드마크logo+name: ""이면 한 번만 찍힘(푸터에 빈<strong>없음).aria-modal안의 Esc는 메뉴를 그대로 둔다.SiteFooter의details(브랜드 줄 아래 블록)와linksLabel(이름 있는<nav>),SiteLink.emphasis.scroll-margin-block-start(--site-header-block-size),--site-hero-eyebrow-tracking·--site-hero-eyebrow-weight.brand(와details)를 한 번만 읽음 — D-027·D-028을 직접 마운트에도.모든 소비자에 적용
box-sizing: border-box리셋이 없는 제품(TraceLinq, BookLinq)은 휴대폰 헤더 89px → 65px, 메뉴 버튼 44px인 제품은 69 → 65. 올릴 때 휴대폰 헤더 확인.SiteHeaderProps["locale"]이 선택 — BookLinqMarketingFrame(props.header.locale.locale)은 올릴 때 좁혀야 함.검증
Hydration Mismatch).verify:canary:preview만 이 Windows 기기에서 시간 초과(카나리 서버가 8–16초 걸리는데 스모크는 5초 대기). 카나리는dds-table만 쓰고 이 PR은 건드리지 않음.