Bloxwap / HIG0.1.1
GuidelinesArchitecture

Candidate platform support · 0.1.0

AreaDOMRNEvidence
Actions, surfaces, text, fieldsSemantic DOM elementsPressable/View/Text/TextInputbehavior tests, Vite/SSR/Metro
Native text scaling and script trackingBrowser zoom; no capText/Heading/NumberReadout maxFontSizeMultiplier (prop or HIGProvider default); Korean/Chinese runs at companion spacing via script and letterSpacingByScriptnative Jest (#67); iOS Simulator AX5: capped readout 48pt vs 86pt prose; Android emulator 200% (non-linear scaling stays under the 2x cap) (evidence/native-sim/issue-67-71/)
Native colour rolesCSS severity/data attributesSwitch tone, Alert severity/tone take token roles only; raw colours fall back. The Android Switch thumb uses the text token instead of the app theme accentnative Jest (#67); iOS Simulator and Android emulator captures (evidence/native-sim/issue-67-71/)
Native colour spaceCSS sRGB with P3 in @supportsHIGProvider colorSpace srgb (default) or display-p3; every component paints from useColors(); iOS display-p3 uses nativeColors.iosDisplayP3, Android and web stay sRGB; no raw coloursnative Jest (#93: P3 values for action/warning/negative/info, direct-import guard); iOS Simulator capture as a Display P3 host (evidence/native-sim/issue-93/); physical display pending (#55)
Selection/rangeBuilt-in input/selectOS Switch/community Slider, radio/check Pressables, Modal chooser; Android Slider adds ACTION_SET_PROGRESS through the autolinked HIGAdjustableView (plain View without native linking)contract tests; Android emulator UiAutomation (#71): set-progress listed, 80 applied once, snapped/clamped, absent and rejected while disabled; iOS Simulator increment/decrement unchanged (evidence/native-sim/issue-67-71/)
Dialog/sheet/menuRadix scoped primitives; optional Vaul GestureSheet with fixed snap points or opt-in dynamic content sizingModal and explicit close/back; optional Gorhom GestureSheet with the same sizing alternatives, rejected-close retry and accessibility escapeDOM nested focus/Escape plus real Chromium/WebKit sheet drag, scroll and snap checks; mocked native focus/back/detents plus separate packed Android/iOS gesture entry; physical gesture/screen-reader certification is not claimed
Tooltip/popoverRadix hover/focus/anchoredpersistent HelpText/modalno RN hover claim
Navigation/searchhref/callback adaptershost route/back callbackstab/search/disclosure contracts
Financial lists/tablesemantic table/list; optional per-place animated readoutFlatList labeled rows; optional Reanimated/Worklets per-place readout, static data remains engine-freeformatting and contract tests; mixed-bidi/native static fallbacks and physical-device/RTL observations remain limited
Chart@bloxwap/hig/chart: lazy @bloxwap/chart canvas (required peer)numeric/list summary onlytyped theme; physical gesture evidence pending
Brand markindividual SVG renderer/assetoptional react-native-svgpinned geometry; device comparison pending
React Native versions—RN 0.81.5 / Expo 54 / React 19.1.0 and RN 0.83.10 / Expo 55 / React 19.2.0 and RN 0.88.1 / Expo 58 / React 19.3.0; peer ranges react-native ^0.81.5 || ^0.83.10 || ^0.88.0, SDK-matched Expo, SVG, Slider, Reanimated and Worklets peersCI packed Metro exports and native-ref typechecks for all three (smoke:packed-native, --profile rn-0.83, --profile rn-0.88); iOS Simulator and Android emulator gallery, interaction and GestureSheet runs on both with the same outcomes; differences tracked in #86–#89 (evidence/native-sim/rn-0.83/)
Fontspinned Sans/Mono asset URLshash-pinned static faces, typed manifest, explicit weight registration and host script fallbackExpo-web loading/byte/hash gates; no physical native-font certification

SSR: client components retain use-client boundaries in emitted JS. Importing a button needs React/tokens/contracts only at runtime. CSS is explicitly imported. Native API never imports DOM, Web Audio or chart. Native target size remains comfortable even when host density is compact; Pro density is a DOM exception, not a reason to shrink phone targets.

Optional peer packages: none for chart, whose @bloxwap/hig/chart entry relies on the package's one required peer, @bloxwap/chart (#96); community Slider for native selection entry; react-native-svg for native brand entry. Vaul is isolated behind the web gesture-sheet entry. Gorhom and Gesture Handler are isolated behind the native gesture-sheet entry; Reanimated and Worklets are isolated behind the native gesture-sheet and animated-number entries. Base imports, including ordinary native data readouts, do not load them. No root barrel loads every component. DOM overlays are one scoped family entry and carry Radix MIT attribution; Radix peers are optional caret ranges and overlay-free web recipes have their own entries. ESM is supported; CommonJS consumer support is not claimed.

RN 0.88 compatibility is verified by independent packed TypeScript and Android/iOS Metro consumers. Existing simulator/emulator interaction reports cover RN 0.81 and 0.83 only; no RN 0.88 physical or simulator interaction result is inferred from a bundle export.