Basic Styling

Loading concept...

🎨 Styling in React Native: Dressing Up Your App!

Imagine you have a box of crayons and stickers. You can make anything look beautiful! That’s exactly what styling does in React Native—it makes your app look amazing!


🌟 The Big Picture

Think of your app like a paper doll. The doll is your component (a button, text, or box). Styling is like picking out clothes, colors, and accessories for that doll!

graph TD A[Your Component] --> B[Add Styles] B --> C[Beautiful App!] style A fill:#FFE4E1 style B fill:#E6E6FA style C fill:#98FB98

📦 StyleSheet API: Your Magic Wardrobe

What Is It?

The StyleSheet API is like a wardrobe where you organize all your outfits (styles) in one place. Instead of scattered clothes everywhere, everything is neat and tidy!

Why Use It?

  • Faster: React Native reads organized styles quicker
  • Cleaner: All styles in one spot
  • Reusable: Use the same style many times

Simple Example

import { StyleSheet, View, Text }
  from 'react-native';

const styles = StyleSheet.create({
  box: {
    backgroundColor: 'lightblue',
    padding: 20,
    borderRadius: 10,
  },
  title: {
    fontSize: 24,
    fontWeight: 'bold',
    color: 'navy',
  },
});

function MyCard() {
  return (
    <View style={styles.box}>
      <Text style={styles.title}>
        Hello!
      </Text>
    </View>
  );
}

What’s happening?

  1. StyleSheet.create() = Opening your wardrobe
  2. styles.box = One outfit (blue box with round corners)
  3. styles.title = Another outfit (big bold navy text)
  4. style={styles.box} = Putting that outfit on!

✏️ Inline Styles: Quick Outfit Changes

What Is It?

Sometimes you need a quick fix—like rolling up your sleeves. Inline styles let you add styles directly to a component without going to the wardrobe.

When to Use?

  • Quick, one-time styles
  • Styles that change based on something (like a button that turns green when pressed)

Simple Example

<View style={{
  backgroundColor: 'pink',
  padding: 10
}}>
  <Text style={{ color: 'purple' }}>
    Quick style!
  </Text>
</View>

Remember:

  • Double curly braces {{ }}
  • First {} = JavaScript mode
  • Second {} = Style object

⚠️ Be Careful!

Inline styles are slower than StyleSheet. Use them only when needed—like emergency outfit changes!


🎭 Style Arrays: Mixing Outfits Together

What Is It?

What if you want to wear a blue shirt AND add a red hat? Style arrays let you combine multiple styles into one!

How It Works

const styles = StyleSheet.create({
  baseButton: {
    padding: 15,
    borderRadius: 8,
    alignItems: 'center',
  },
  primaryButton: {
    backgroundColor: 'blue',
  },
  dangerButton: {
    backgroundColor: 'red',
  },
});

// Combine base + primary
<View style={[
  styles.baseButton,
  styles.primaryButton
]}>
  <Text>Click Me!</Text>
</View>

// Combine base + danger
<View style={[
  styles.baseButton,
  styles.dangerButton
]}>
  <Text>Delete!</Text>
</View>

The Magic Rule

Later styles WIN! Like putting on a red hat after a blue one—red shows on top.

// backgroundColor will be 'green'
style={[
  { backgroundColor: 'red' },
  { backgroundColor: 'green' }
]}
graph TD A[Style 1: Red] --> B[Style 2: Green] B --> C[Result: GREEN wins!] style C fill:#90EE90

🌈 Colors in React Native

Ways to Write Colors

React Native understands colors in many ways—just like how you can call your friend by nickname or full name!

Method Example When to Use
Name 'red' Simple colors
Hex '#FF5733' Exact colors
RGB 'rgb(255,87,51)' Mixing red, green, blue
RGBA 'rgba(255,87,51,0.5)' With transparency

Simple Example

const styles = StyleSheet.create({
  redBox: {
    backgroundColor: 'red',
  },
  customBox: {
    backgroundColor: '#3498db',
  },
  seeThrough: {
    backgroundColor: 'rgba(0,0,0,0.5)',
  },
});

What’s RGBA?

The A stands for Alpha (transparency):

  • 1 = Fully visible (solid)
  • 0.5 = 50% see-through
  • 0 = Invisible (like a ghost!)
graph LR A[Alpha 0] --> B[Alpha 0.5] --> C[Alpha 1] style A fill:#fff,stroke:#000 style B fill:#808080 style C fill:#000,color:#fff

🔤 Fonts and Typography

The Basics

Making text look good is like picking the perfect voice for your story!

Key Properties

const styles = StyleSheet.create({
  heading: {
    fontSize: 28,        // How big
    fontWeight: 'bold',  // How thick
    fontStyle: 'italic', // Slanted?
    letterSpacing: 2,    // Space between letters
    lineHeight: 36,      // Space between lines
    textAlign: 'center', // Left/center/right
  },
  paragraph: {
    fontSize: 16,
    fontWeight: '400',   // Normal weight
    lineHeight: 24,
    color: '#333333',
  },
});

fontWeight Options

Value What It Means
'100' Super thin
'400' Normal
'700' Bold
'bold' Same as ‘700’

textAlign Options

  • 'left' - Text starts from left
  • 'center' - Text in middle
  • 'right' - Text ends at right
  • 'justify' - Spreads evenly

✨ Custom Fonts: Your Unique Voice

Why Custom Fonts?

Default fonts are like plain vanilla. Custom fonts add your special flavor!

Step 1: Get Your Font Files

Download fonts (like from Google Fonts). You’ll get files like:

  • Poppins-Regular.ttf
  • Poppins-Bold.ttf

Step 2: Add to Your Project

Create a folder structure:

your-app/
├── assets/
│   └── fonts/
│       ├── Poppins-Regular.ttf
│       └── Poppins-Bold.ttf

Step 3: Configure (react-native.config.js)

module.exports = {
  assets: ['./assets/fonts'],
};

Step 4: Link the Fonts

Run in terminal:

npx react-native-asset

Step 5: Use Your Font!

const styles = StyleSheet.create({
  customText: {
    fontFamily: 'Poppins-Regular',
    fontSize: 18,
  },
  customBold: {
    fontFamily: 'Poppins-Bold',
    fontSize: 24,
  },
});

Using Expo? Even Easier!

import { useFonts } from 'expo-font';

function App() {
  const [fontsLoaded] = useFonts({
    'Poppins': require('./assets/fonts/Poppins-Regular.ttf'),
  });

  if (!fontsLoaded) {
    return null; // Wait for fonts
  }

  return (
    <Text style={{ fontFamily: 'Poppins' }}>
      Custom font loaded!
    </Text>
  );
}
graph TD A[Download Font Files] --> B[Add to Project] B --> C[Configure Project] C --> D[Link Fonts] D --> E[Use fontFamily!] style E fill:#90EE90

🎯 Quick Recap

Topic Remember This!
StyleSheet Organized wardrobe for styles
Inline Quick fixes, double {{ }}
Arrays Combine styles, later wins
Colors Name, hex, rgb, rgba
Typography fontSize, fontWeight, textAlign
Custom Fonts Add files → config → link → use

🌟 You Did It!

Now you know how to dress up your React Native app! Remember:

Styling is like being an artist—there’s no wrong way, just YOUR way!

Start simple, experiment, and make something beautiful! 🎨


Next up: Layout with Flexbox—arranging your styled components like furniture in a room!

Loading story...

No Story Available

This concept doesn't have a story yet.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Interactive Content

This concept doesn't have interactive content yet.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Cheatsheet Available

This concept doesn't have a cheatsheet yet.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Quiz Available

This concept doesn't have a quiz yet.