@devraj-labs/vajra-ui-core
v2.2.0
Published
Headless, zero-dependency React Native layout and primitive components
Downloads
158
Maintainers
Readme
Vajra UI Core
Layout primitives for React Native.
Why
Raw RN layout is verbose. Design systems fix that but ship a theme, a provider, and a dependency tree you didn't ask for.
Vajra UI Core is neither. It's a thin prop layer over the primitives you're already using — View, Text, TouchableOpacity. The whole thing is 9 kB and pulls in nothing. Drop it in, style with your own system, done.
// before
<View style={{ flexDirection: 'row', alignItems: 'center', paddingHorizontal: 16, gap: 8 }}>
// after
<Row align="center" px={16} gap={8}>Install
yarn add @devraj-labs/vajra-ui-corereact and react-native are peer dependencies. Nothing else is.
Docs
| Component | |
|-----------|--|
| Box | docs/box |
| Row | docs/row |
| Col | docs/col |
| Center | docs/center |
| AbsoluteCenter | docs/absolute-center |
| Spacer | docs/spacer |
| Separator | docs/separator |
| CoreText | docs/core-text |
| CoreTextInput | docs/core-text-input |
| CorePressable | docs/core-pressable |
| Grid | docs/grid |
| useDimensions | docs/use-dimensions |
Primitives
Box
Foundation View with shorthand layout and spacing props. Every other layout primitive is built on top of Box.
Row
Box with flexDirection="row" pre-applied. Use it anywhere you need horizontal layout.
Col
Box with flexDirection="column" pre-applied. Stacks children vertically.
Center
Box centered on both axes. No more alignItems + justifyContent boilerplate.
AbsoluteCenter
Fills its parent absolutely and centers children. Perfect for overlays, loaders, and empty states.
Spacer
Fixed-size gap between elements. Drop it between siblings instead of reaching for margin.
Separator
Horizontal or vertical divider line. One prop to switch orientation.
CoreText
Headless Text with typography shorthand props. Bring your own font and color system.
CoreTextInput
Headless TextInput with the same layout and typography props as CoreText.
CorePressable
TouchableOpacity with full layout prop support. Style your buttons without a wrapper View.
Grid
Compound responsive grid — Grid.Root + Grid.Item. Adapts to any screen width automatically.
useDimensions
Screen-aware dimension utilities. Responsive values without a context provider.
Examples
A runnable React Native CLI app lives in examples/app/.
cd examples/app
# iOS
bundle exec pod install --project-directory=ios
npx react-native run-ios
# Android
npx react-native run-androidLicense
MIT
