React Academy · Les

Styling met de StyleSheet-API en Flexbox

Schrijf mobiele stijlen met StyleSheet.create en Flexbox, zonder CSS-classnamen.

Les 2 van 412 stappen

Styling met de StyleSheet-API en Flexbox is een gratis React Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.

Geen CSS in React Native

React Native gebruikt een JavaScript-API voor stijlen — geen CSS-bestanden, geen klassennamen en geen trapsgewijze overerving. Stijlen zijn JavaScript-objecten die je toepast via de style-eigenschap.

StyleSheet.create()

Wikkel stijlobjecten in StyleSheet.create() voor betere prestaties (stijlen worden één keer gevalideerd en geoptimaliseerd) en automatische aanvulling in je IDE.

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

function Card() {
  return (
    <View style={styles.card}>
      <Text style={styles.title}>Hello</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  card: { padding: 16, backgroundColor: '#fff', borderRadius: 8, shadowColor: '#000', shadowOpacity: 0.1, elevation: 2 },
  title: { fontSize: 18, fontWeight: 'bold', color: '#111' },
});

Inline stijlen

Pas stijlen rechtstreeks toe via de style-eigenschap. Met arraysyntaxis voeg je meerdere stijlobjecten samen — latere stijlen overschrijven eerdere stijlen.

<View style={{ padding: 16, backgroundColor: '#f5f5f5' }} />

// Array merging:
<Text style={[styles.base, isActive && styles.active, { marginTop: 8 }]} />

Flexbox in React Native

React Native gebruikt standaard Flexbox voor de lay-out, maar met andere standaardwaarden dan op het web: flexDirection is standaard 'column' (niet 'row') en flex: 1 vult de beschikbare ruimte.

const styles = StyleSheet.create({
  container: {
    flex: 1,                   // fill available space
    flexDirection: 'column',   // default in RN (web default is 'row')
    justifyContent: 'center',  // main axis alignment
    alignItems: 'center',      // cross axis alignment
  },
});

Rijlay-out

Gebruik flexDirection: 'row' om onderliggende elementen horizontaal te rangschikken, vergelijkbaar met CSS display: flex; flex-direction: row.

const styles = StyleSheet.create({
  row: {
    flexDirection: 'row',
    alignItems: 'center',
    gap: 12, // gap is supported in RN 0.71+
  },
});

<View style={styles.row}>
  <Image source={avatar} />
  <Text>{username}</Text>
</View>

flex versus width/height

Gebruik flex: N voor verhoudingsgewijze afmetingen. flex: 1 vult alle resterende ruimte; flex: 2 krijgt twee keer zoveel ruimte als elementen met flex: 1.

// Sidebar takes 1/3, content takes 2/3:
<View style={{ flexDirection: 'row', flex: 1 }}>
  <View style={{ flex: 1, backgroundColor: '#eee' }}>Sidebar</View>
  <View style={{ flex: 2 }}>Content</View>
</View>

Absolute positionering

Gebruik position: 'absolute' met top, right, bottom en left voor overlappende elementen — identiek aan absolute CSS-positionering binnen een ouder met relatieve positionering.

const badge = StyleSheet.create({
  badge: {
    position: 'absolute',
    top: -4,
    right: -4,
    width: 16,
    height: 16,
    borderRadius: 8,
    backgroundColor: 'red',
  },
});

Platformspecifieke stijlen

Gebruik Platform.OS of Platform.select() om verschillende stijlen toe te passen op iOS en Android.

import { Platform } from 'react-native';

const styles = StyleSheet.create({
  shadow: {
    ...Platform.select({
      ios: { shadowColor: '#000', shadowOpacity: 0.2, shadowRadius: 4 },
      android: { elevation: 4 },
    }),
  },
});

Kleuren

React Native accepteert CSS-kleurtekenreeksen (hexadecimaal, rgb en benoemd) en de PlatformColor-API voor systeemkleuren.

import { PlatformColor } from 'react-native';

// System color — adapts to dark mode automatically:
const labelColor = PlatformColor('label', '#000'); // iOS 'label' semantic color

Dynamische stijlen met eigenschappen

Bereken stijlen vanuit eigenschappen binnen de component. Geef een functie door aan StyleSheet of bereken het stijlobject rechtstreeks in de regel.

function Badge({ color, size = 16 }: { color: string; size?: number }) {
  return (
    <View
      style={[
        styles.badge,
        { backgroundColor: color, width: size, height: size, borderRadius: size / 2 },
      ]}
    />
  );
}

const styles = StyleSheet.create({ badge: { position: 'absolute' } });

Korte controle

Wat is de standaardwaarde van flexDirection in React Native (anders dan op het web)?

Samenvatting

Gebruik StyleSheet.create() voor geoptimaliseerde stijlen en pas ze toe via de style-eigenschap. React Native Flexbox gebruikt standaard flexDirection: 'column' en flex: 1 vult de resterende ruimte. Gebruik Platform.select() voor schadu stijlen die specifiek zijn voor het besturingssysteem.

Gratis beginnen

Leer React met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
88
Lessen
324

Veelgestelde vragen

Is de les “Styling met de StyleSheet-API en Flexbox” gratis?

Ja — de volledige tekst van “Styling met de StyleSheet-API en Flexbox” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.

Wat leer ik in “Styling met de StyleSheet-API en Flexbox”?

Schrijf mobiele stijlen met StyleSheet.create en Flexbox, zonder CSS-classnamen. Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met React Academy te beginnen?

Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Styling met de StyleSheet-API en Flexbox”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over React Academy?

Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. React Native-kerncomponenten versus de web-DOM
  2. Styling met de StyleSheet-API en Flexbox
  3. Navigatie met Expo Router
  4. Apparaat-API's gebruiken: camera, locatie en pushmeldingen
← Terug naar React Academy