finds.dev← search

// the find

diego3g/responsive-native

★ 370 · TypeScript · MIT · updated Mar 2023

A responsive utility toolkit for React Native 📱⚛

A React Native utility library that converts pixel values to a rem-like unit scaled to the device's screen dimensions, plus media query hooks for breakpoint-based rendering. Targets developers building layouts that need to look consistent across phone sizes and densities. Solves a real problem, though the React Native ecosystem has several competitors in this space.

The rem scaling approach that accounts for both pixel ratio and the user's OS-level fontScale preference is a genuine usability win that many similar libraries skip. The breakpoint API (useMediaQuery, useBreakpointValue) maps well to what web developers expect, lowering the learning curve. The styled-components integration is clean — threading rem through ThemeProvider rather than requiring hook calls in every component is a practical design choice. Test coverage is solid for a small utility library, with dedicated unit tests for each hook and util.

Last commit was March 2023 — over three years without a touch. React Native has moved significantly since then (New Architecture, Expo SDK updates) and there's no indication this library tracks any of it. The 'px to rem' framing is misleading: it's not rem in any CSS sense, it's just a scaling function tied to screen dimensions, and the README never acknowledges the fundamental limitation that this approach works poorly when users run large text accessibility settings and your layout can't flex to accommodate the extra size. No support for orientation changes at runtime — if someone rotates to landscape, the values recalculate only on re-render, which can cause layout flicker. With only 370 stars and no releases post-2023, maintenance risk is real.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →