
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
@doj/react-native-responsive-kit
Advanced tools
@doj/react-native-responsive-kit provides simple, lightweight utilities to build truly responsive and consistent React Native apps across all device sizes. Easily scale layouts, fonts, and components without worrying about different screen dimensions or p
A lightweight, dynamic utility kit for building responsive and consistent designs across all devices in React Native. Includes utilities for screen width, screen height, status bar height, responsive sizes, spacing, gaps, font sizes, and hooks for real-time updates.
rs)npm install @doj/react-native-responsive-kit
or
yarn add @doj/react-native-responsive-kit
import {
wp,
hp,
rs,
sizes,
spacing,
gap,
fontSizes,
useSizes,
} from '@doj/react-native-responsive-kit';
import { wp, hp } from '@doj/react-native-responsive-kit';
<View
style={{
width: wp(80), // 80% of screen width
height: hp(20), // 20% of screen height
}}
/>;
import { rs } from '@doj/react-native-responsive-kit';
<Text style={{ fontSize: rs(16) }}>Responsive Text</Text>
<View style={{ padding: rs(10) }}>
<Text>Button</Text>
</View>
import { sizes } from '@doj/react-native-responsive-kit';
console.log(sizes.screenWidth); // current device screen width
console.log(sizes.screenHeight); // current device screen height
console.log(sizes.statusBarHeight); // current status bar height
import { spacing } from '@doj/react-native-responsive-kit';
<View
style={{
padding: spacing.md,
marginBottom: spacing.lg,
}}
/>;
| Name | Size (Responsive) |
|---|---|
spacing.xs | Extra Small (~4) |
spacing.sm | Small (~8) |
spacing.md | Medium (~16) |
spacing.lg | Large (~24) |
spacing.xl | Extra Large (~32) |
spacing.xl2 | 2x Extra Large (~40) |
spacing.xl3 | 3x Extra Large (~48) |
spacing.xl4 | 4x Extra Large (~56) |
spacing.xl5 | 5x Extra Large (~64) |
spacing.xl6 | 6x Extra Large (~72) |
spacing.xl7 | 7x Extra Large (~80) |
spacing.xl8 | 8x Extra Large (~88) |
spacing.xl9 | 9x Extra Large (~96) |
spacing.xl10 | 10x Extra Large (~104) |
Spacing is automatically responsive using rs() scaling!
import { gap } from '@doj/react-native-responsive-kit';
<View style={[{ flexDirection: 'row' }, gap('md')]}>
<Text>Item 1</Text>
<Text>Item 2</Text>
</View>;
✅ Works in flex containers without needing gap support from React Native!
import { fontSizes } from '@doj/react-native-responsive-kit';
<Text style={{ fontSize: fontSizes['2xl'] }}>Responsive Heading</Text>;
| Name | Size (responsive) |
|---|---|
fontSizes.xs | Extra Small (~10) |
fontSizes.sm | Small (~12) |
fontSizes.md | Medium (~14) |
fontSizes.lg | Large (~16) |
fontSizes.xl | Extra Large (~18) |
fontSizes.xl2 | 2x Extra Large (~20) |
fontSizes.xl3 | 3x Extra Large (~24) |
fontSizes.xl4 | 4x Extra Large (~28) |
fontSizes.xl5 | 5x Extra Large (~32) |
fontSizes.xl6 | 6x Extra Large (~36) |
fontSizes.xl7 | 7x Extra Large (~40) |
fontSizes.xl8 | 8x Extra Large (~44) |
fontSizes.xl9 | 9x Extra Large (~48) |
fontSizes.xl10 | 10x Extra Large (~52) |
fontSizes.xl11 | 11x Extra Large (~56) |
fontSizes.xl12 | 12x Extra Large (~60) |
fontSizes.xl13 | 13x Extra Large (~64) |
fontSizes.xl14 | 14x Extra Large (~68) |
fontSizes.xl15 | 15x Extra Large (~72) |
fontSizes.xl16 | 16x Extra Large (~76) |
import { useSizes } from '@doj/react-native-responsive-kit';
const { screenWidth, screenHeight, wp, hp, rs, spacing, gap, fontSizes } =
useSizes();
console.log('Width:', screenWidth);
console.log('Height:', screenHeight);
✅ Always stays updated if the device rotates or resizes!
| Name | Type | Description |
|---|---|---|
wp(percentage: number) | number | Get width as % of screen width |
hp(percentage: number) | number | Get height as % of screen height |
rs(size?: number | null | undefined) | number | Get a scaled responsive size |
sizes.screenWidth | number | Device screen width (live) |
sizes.screenHeight | number | Device screen height (live) |
sizes.statusBarHeight | number | Status bar height |
spacing | object | Predefined consistent responsive spacings |
gap(size: keyof typeof spacing) | object | Flex gap utility using spacing keys |
fontSizes | object | Predefined responsive font sizes |
useSizes() | { screenWidth, screenHeight, statusBarHeight, wp, hp, rs, spacing, gap, fontSizes } | React Hook version, always up-to-date |
rs() Worksrs(16)), it scales it based on the current screen height.rs(undefined)), it falls back to a default size calculated from height.This makes it super reliable for fonts, icons, paddings, margins, etc.
import {
wp,
hp,
rs,
spacing,
fontSizes,
gap,
} from '@doj/react-native-responsive-kit';
const App = () => {
return (
<View
style={{
flex: 1,
alignItems: 'center',
justifyContent: 'center',
...gap('lg'),
}}
>
<View
style={{
width: wp(90),
height: hp(25),
backgroundColor: 'lightblue',
borderRadius: spacing.sm,
padding: spacing.md,
justifyContent: 'center',
alignItems: 'center',
}}
>
<Text style={{ fontSize: fontSizes['2xl'] }}>Responsive Box</Text>
</View>
</View>
);
};
If you find this project useful and would like to support the development, you can donate via the following platforms:
Your contributions will help keep this project active and improve its features. Thank you for your support! 🙏
MIT License © 2025 Daddy Omar Jeng
FAQs
@doj/react-native-responsive-kit provides simple, lightweight utilities to build truly responsive and consistent React Native apps across all device sizes. Easily scale layouts, fonts, and components without worrying about different screen dimensions or p
We found that @doj/react-native-responsive-kit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.