/parts` and * `replace_template_parts()` swaps this file into the `header` template part at * runtime. That path is only ever walked by a NATIVE-FSE child theme — Brandy * Pure — because the parent `brandy` theme renders its header from the Header * Builder JSON in `sample-data/sample-header.json` instead. On the parent theme * this file is inert, so NOTHING HERE WAS VERIFIED ON brandy.local: the P4 * verification ran against the parent theme and could not exercise a single line * of it. It is load-bearing for Brandy Pure and unrendered anywhere else. User * customizations saved in the Site Editor take precedence. * * IN NORMAL FLOW, NOT AN OVERLAY. Measured live this run: the shipped header is * `transparent.enabled: false`, computes `position: static`, is 152px tall * (36 + 68 + 48) and overlaps the first body child by 0px on the front page and * on three inner pages. Furniture's part pulls itself back up with * `margin-bottom:-124px` because its header is absolutely positioned over its * hero; this design has no such trick and must not borrow one. The three tiers * simply stack and the page starts underneath them. * * The three tiers, straight off the reference (`figma-refs/00-site-header.png`) * and `sample-header.json`: * 1. utility bar, 36 tall, ground #202020 — three text links split by 1px x 8 * hairlines on the left, locale + four 14px social glyphs on the right; * 2. logo bar, 68 tall, ground #F7F5F0 with a 1px bottom stroke — the lockup, * a 560-wide white search pill (a 130-wide "All Categories" half and a * 430-wide field, split by a 20px hairline), then sign-in and the cart; * 3. nav row, 48 tall, same ground — the primary menu on the left and a * 123-wide dark "ON SALE" block flush to the right of the 1440 column. * * Rows are drawn full-bleed with the content on the 240..1680 column of a 1920 * frame, so every tier is an `alignfull` constrained group capped at the niche's * 1440 wideSize with the house gutter. The builder JSON reaches the same result * with unconstrained rows and `var(--wp--preset--spacing--30)` side padding; * `max(22px, min(2rem, 5vw))` is the same 32px at 1920 and is what this site's * body patterns already use, so the part and the patterns share one gutter. * * THE LOGO IS `toolkit-travel-wordmark-lockup.webp`, the same file the builder * JSON carries. It is NOT in `asset-manifest.json` and that is correct: the * manifest records the DRAWN lockup (`toolkit-travel-header-logo.webp` / * `-footer-logo.webp`, 376x156 at 4x of a drawn 92x39), and the drawn lockup * reads "ROAM" - the design's own brand. `copyDecisions` rewrites the brand to * "Toolkit Travel" throughout, so the drawn four-letter mark cannot ship; the * header phase cut a new 1053x242 lockup for the rewritten name and pointed * both builder JSONs at it. A part that used the manifest asset would put ROAM * on the Brandy Pure chrome while the parent theme showed Toolkit Travel. * Verified on the served page: the builder renders it at 130.53x30 in the header. * * #E9E5DF carries two palette slugs in this niche (`brandy-border` and * `brandy-gray-4`). This part uses `brandy-border` for all of them — strokes and * the utility bar's link colour alike — so one hex never reads as two decisions. * * WHAT THE BUILDER DOES THAT BLOCK MARKUP CANNOT, recorded rather than faked: * - the active nav treatment (accent label over a `brandy-primary-10` tint * under a 3px `brandy-primary` top bar) is per-element Custom CSS on * `menu_1`; `core/navigation-link` has no per-item padding, background or * pseudo-element, and this part ships no stylesheet, so it is not drawn here; * - `enabled_devices: ["desktop"]` hides the utility and nav rows below 1024. * Native viewport styles cover spacing and typography, not `display`, so the * utility bar stays visible at every width and wraps instead. The nav itself * collapses natively through `overlayMenu: "mobile"`; * - the locale control is the builder's `currency` element, backed by * YayCurrency. A part has no such element, so the drawn string ships as inert * chrome — the same choice Furniture's part makes for its USA / English pair. * It is deliberately a ``, not a link, so it never promises a switcher * it cannot open. * * The chevron, magnifier and account glyphs are the three vectors * `asset-manifest.json` marks `export: false` ("CSS/Phosphor, single-colour * geometry"); they are inlined as SVG. Every glyph that WAS exported — the four * socials, the gift icon, the shopping bag — is used as its exported webp. * * @package BrandySites */ $brandy_toolkit_travel_shop_url = function_exists( 'brandy_get_shop_page_url' ) ? brandy_get_shop_page_url() : home_url( '/' ); $brandy_toolkit_travel_blog_url = function_exists( 'brandy_get_blog_page_url' ) ? brandy_get_blog_page_url() : home_url( '/' ); $brandy_toolkit_travel_about_url = function_exists( 'brandy_get_about_us_page_url' ) ? brandy_get_about_us_page_url() : home_url( '/' ); $brandy_toolkit_travel_contact_url = function_exists( 'brandy_get_contact_us_page_url' ) ? brandy_get_contact_us_page_url() : home_url( '/' ); $brandy_toolkit_travel_account_url = function_exists( 'brandy_get_my_account_page_url' ) ? brandy_get_my_account_page_url() : wp_login_url(); /** Utility bar: 12/17 on the dark ground, in the border cream the design measures. */ $brandy_toolkit_travel_utility_link = 'font-size:12px;font-weight:400;line-height:17px;color:var(--wp--preset--color--brandy-border);text-decoration:none;white-space:nowrap'; /** 1px x 8 hairline centred in the drawn 40px gap, hence the 19.5px flex gap. */ $brandy_toolkit_travel_utility_rule = 'display:block;flex:none;width:1px;height:8px;background:rgba(255,255,255,0.35)'; $brandy_toolkit_travel_utility_links = array( array( __( 'Help Center', 'brandy-sites' ), '#' ), array( __( 'Find a Store', 'brandy-sites' ), '#' ), array( __( 'Contact', 'brandy-sites' ), $brandy_toolkit_travel_contact_url ), ); /** Header socials, in the drawn order: Facebook, X, Instagram, TikTok. */ $brandy_toolkit_travel_socials = array( array( __( 'Facebook', 'brandy-sites' ), 'https://www.facebook.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-header-social-facebook.webp' ), array( __( 'X', 'brandy-sites' ), 'https://x.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-header-social-x.webp' ), array( __( 'Instagram', 'brandy-sites' ), 'https://www.instagram.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-header-social-instagram.webp' ), array( __( 'TikTok', 'brandy-sites' ), 'https://www.tiktok.com/', 'https://images.wpbrandy.com/uploads/toolkit-travel-header-social-tiktok.webp' ), ); $brandy_toolkit_travel_caret = ''; $brandy_toolkit_travel_gutter = 'max(22px, min(2rem, 5vw))'; ?>
$brandy_toolkit_travel_item ) : ?> 0 ) : ?>