Files
singular-particular-space/skills/react-native-skills/rules/ui-styling.md
JL Kruger 5422131782 Initial commit — Singular Particular Space v1
Homepage (site/index.html): integration-v14 promoted, Writings section
integrated with 33 pieces clustered by type (stories/essays/miscellany),
Writings welcome lightbox, content frame at 98% opacity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 12:09:22 +02:00

88 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Modern React Native Styling Patterns
impact: MEDIUM
impactDescription: consistent design, smoother borders, cleaner layouts
tags: styling, css, layout, shadows, gradients
---
## Modern React Native Styling Patterns
Follow these styling patterns for cleaner, more consistent React Native code.
**Always use `borderCurve: 'continuous'` with `borderRadius`:**
```tsx
// Incorrect
{ borderRadius: 12 }
// Correct smoother iOS-style corners
{ borderRadius: 12, borderCurve: 'continuous' }
```
**Use `gap` instead of margin for spacing between elements:**
```tsx
// Incorrect margin on children
<View>
<Text style={{ marginBottom: 8 }}>Title</Text>
<Text style={{ marginBottom: 8 }}>Subtitle</Text>
</View>
// Correct gap on parent
<View style={{ gap: 8 }}>
<Text>Title</Text>
<Text>Subtitle</Text>
</View>
```
**Use `padding` for space within, `gap` for space between:**
```tsx
<View style={{ padding: 16, gap: 12 }}>
<Text>First</Text>
<Text>Second</Text>
</View>
```
**Use `experimental_backgroundImage` for linear gradients:**
```tsx
// Incorrect third-party gradient library
<LinearGradient colors={['#000', '#fff']} />
// Correct native CSS gradient syntax
<View
style={{
experimental_backgroundImage: 'linear-gradient(to bottom, #000, #fff)',
}}
/>
```
**Use CSS `boxShadow` string syntax for shadows:**
```tsx
// Incorrect legacy shadow objects or elevation
{ shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.1 }
{ elevation: 4 }
// Correct CSS box-shadow syntax
{ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)' }
```
**Avoid multiple font sizes use weight and color for emphasis:**
```tsx
// Incorrect varying font sizes for hierarchy
<Text style={{ fontSize: 18 }}>Title</Text>
<Text style={{ fontSize: 14 }}>Subtitle</Text>
<Text style={{ fontSize: 12 }}>Caption</Text>
// Correct consistent size, vary weight and color
<Text style={{ fontWeight: '600' }}>Title</Text>
<Text style={{ color: '#666' }}>Subtitle</Text>
<Text style={{ color: '#999' }}>Caption</Text>
```
Limiting font sizes creates visual consistency. Use `fontWeight` (bold/semibold)
and grayscale colors for hierarchy instead.