feat: hexagon/heart shapes, toast preset, glass tab bar example + liquid-glass SEO - #92
Merged
Merged
Conversation
- shape: { type: 'hexagon', rotation?, cornerRadius? } — first-class sugar
for the six-sided polygon (closes #89, half one)
- shape: { type: 'heart' } — two cubic lobes meeting at a cleft, tuned to
read at chip size (closes #89, half two)
- fix: polygon cornerRadius was documented on the type but silently
ignored; vertices now round with one quadratic bézier each, capped at
half the edge length so roundings can never overlap
- preset: 'toast' — legibility-first tuning for a surface that renders
over unknown content: the highest legibilityFloor of any preset (0.4),
heavy-ish blur (78) to quiet the backdrop, shallow lens (0.5) so the
toast's own text stays crisp; tuned against white, a busy photo, and
scrolling text (closes #90)
Shapes and presets are pure TS — covered by 11 new cases in
shapes.test.ts / presets.test.ts (148 total green).
A floating tab bar built from <LiquidGlassView preset="floatingTabBar">, detached from the screen edge so the rim reads all the way around, with real content scrolling underneath. Registered as the '▬ Tab bar' chip in the API gallery, mirroring docs/react-native-glass-tab-bar.md so the documented recipe is exercised on-device.
…buttons - H1 now carries the exact phrase people actually search — 'React Native Liquid Glass' — with the package name demoted to a subtitle; the phrase never appeared as a token pair in the page's strongest element because 'liquid-glassmorphism' tokenizes without the standalone word 'glass' - FAQ: how this differs from react-native-liquid-glass (Expo) and @callstack/liquid-glass — they wrap UIGlassEffect (iOS-26-only); this drives the same native effect on iOS AND reproduces the optics on Android 13+, plus glass merging (claim-discipline per growth notes: no 'only Android glass' claims) - GitHub Sponsors + Buy Me a Coffee buttons (theme-aware) and FUNDING.yml
Wrap-around vertex access goes through a bounds-safe accessor with an unreachable fallback instead of seven `!` assertions.
Merged
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.
Closes #88, closes #89, closes #90 — plus a latent bug fix, the "liquid glass" discoverability work, and sponsor buttons.
Issues fixed
hexagonandheartto theshapeprop #89 —hexagonandheartshapes.hexagonis first-class sugar for the 6-sided polygon (withrotationandcornerRadius);heartis two cubic lobes meeting at a cleft, proportions tuned to read at chip size, not just full-screen. Pure-TS, 8 new shape test cases.polygon'scornerRadiuswas documented on the type but silently ignored by the implementation. Now implemented — each vertex rounds with one quadratic bézier, rounding distance capped at half the edge so adjacent roundings can't overlap. Anyone who set it and shipped sharp corners will now get the rounding they asked for (bug-fix class visual change).toastpreset #90 —toastpreset. Tuned legibility-first, per the issue's framing: the highestlegibilityFloorof any preset (0.4) since a toast renders over content it can't predict,intensity: 78to quiet the backdrop, and a shallow lens (thickness: 0.5) because deep refraction on a 60dp strip warps its own copy. Tuned against a white screen, a busy photo, and scrolling text. A test pins the "most legibility-protective preset" invariant so future presets can't silently take the title.example/src/GlassTabBar.tsx— a floatingpreset="floatingTabBar"bar detached from the screen edge with real content scrolling underneath, registered as the "▬ Tab bar" gallery chip. Mirrorsdocs/react-native-glass-tab-bar.mdso the documented recipe is exercised on-device.Discoverability ("liquid glass" searches find nothing)
Root cause: the package name tokenizes as
liquid+glassmorphism— the phrase "liquid glass" never appeared as a word pair in the README's H1, the strongest on-page element. And the exact-match npm namereact-native-liquid-glassis owned by Evan Bacon, so the head query is contested by Expo-adjacent packages; the defensible wedge is Android + merging.react-native-liquid-glass(Expo) and@callstack/liquid-glass— iOS-26-only wrappers vs. both-platform + merging. Claim discipline pergrowth/notes: no "only Android glass" claims (@uginy/react-native-liquid-glassandreact-native-android-liquid-glassexist).Sponsors
GitHub Sponsors + Buy Me a Coffee buttons (theme-aware, matching the profile README style) +
.github/FUNDING.yml(github: himanshu-lal4,buy_me_a_coffee: wrack).Compatibility
All changes are additive (new union members, new preset key, example-only screen). Mechanical check: every export from the published 1.1.0 type surface is present in this branch's build. The
cornerRadiusfix is the only behavior change, and only for consumers who explicitly set the previously-ignored option. Suggested release: 1.2.0.Verification
148 tests green (11 new) · tsc clean · eslint 0 errors · bob build clean.