๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

[React Native] 03-1 style ์†์„ฑ๊ณผ StyleSheet API ์ดํ•ดํ•˜๊ธฐ ๋ณธ๋ฌธ

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[React Native] 03-1 style ์†์„ฑ๊ณผ StyleSheet API ์ดํ•ดํ•˜๊ธฐ

adorableco 2023. 8. 5. 19:22
๋ฐ˜์‘ํ˜•

์Šคํƒ€์ผ ๊ฐ์ฒด ์„ค์ •

<SafeAreaView style={{}}>
  • ์•ˆ์ชฝ ์ค‘๊ด„ํ˜ธ ๋ถ€๋ถ„ : ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ๋ฐ”๊นฅ์ชฝ ์ค‘๊ด„ํ˜ธ ๋ถ€๋ถ„ : JSX ๊ตฌ๋ฌธ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•  ๋•Œ ์“ฐ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

โœ… ์ปดํฌ๋„ŒํŠธ์˜ style ์†์„ฑ์—๋Š” ๋ฐฐ์—ด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

<์ปดํฌ๋„ŒํŠธ_์ด๋ฆ„ style={[์Šคํƒ€์ผ_๊ฐ์ฒด1, ์Šคํƒ€์ผ_๊ฐ์ฒด2, ...]} />

 

StyleSheet API

import {StyleSheet} from 'react-native'

์Šคํƒ€์ผ ๊ฐ์ฒด๋ฅผ style ์†์„ฑ์— ์„ค์ •ํ•˜๋Š” ๊ฒƒ : ์ธ๋ผ์ธ ์Šคํƒ€์ผ

์ด ์™ธ์—๋„ StyleSheet API๋ฅผ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์Šคํƒ€์ผ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• : StyleSheet์˜ create ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

const styles = StyleSheet.create({
	ํ‚ค_์ด๋ฆ„1: ์Šคํƒ€์ผ_๊ฐ์ฒด1,
    ํ‚ค_์ด๋ฆ„2: ์Šคํƒ€์ผ_๊ฐ์ฒด2,
    ...
})

 

์ธ๋ผ์ธ ์Šคํƒ€์ผ๊ณผ StyleSheet ์Šคํƒ€์ผ์˜ ์ฐจ์ด

์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋ฐฉ์‹ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์Šค๋ ˆ๋“œ โžก๏ธ ๋ธŒ๋ฆฌ์ง€ ๊ฒฝ์œ  โžก๏ธ UI ์Šค๋ ˆ๋“œ 

StyleSheet.create ๋ฐฉ์‹ : UI ์Šค๋ ˆ๋“œ ์ชฝ์— ์บ์‹œ๋œ๋‹ค. โœ… ์•ฑ ์ „์ฒด์˜ ๋””์Šคํ”Œ๋ ˆ์ด ์†๋„๊ฐ€ ๋นจ๋ผ์งm

๐Ÿ’ญ ๋‚ด์šฉ์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์Šคํƒ€์ผ (์ •์  ์Šคํƒ€์ผ) โžก๏ธ StyleSheet.create ๋กœ ๊ตฌํ˜„

๐Ÿ’ญ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ์Šคํƒ€์ผ (๋™์  ์Šคํƒ€์ผ) โžก๏ธ ์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„

 

 

react-native-paper ํŒจํ‚ค์ง€์˜ Colors ์‚ฌ์šฉ

import React from 'react'
import {StyleSheet, SafeAreaView, Text} from 'react-native'
import {MD2Colors} from 'react-native-paper'

console.log(MD2Colors.blue500)
export default function App() {
  return (
    <SafeAreaView style={[styles.SafeAreaView]}>
      <Text style={[styles.text]}>Hello StyleSheet world!</Text>
    </SafeAreaView>
  )
}

const styles = StyleSheet.create({
  SafeAreaView: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: MD2Colors.blue500,
  },
  text: {fontSize: 20, color: MD2Colors.blue200},
})

๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋Š” import {Colors} from 'react-native-paper' ๋ผ๊ณ  ์ž‘์„ฑํ•˜๋‹ˆ ํŒจํ‚ค์ง€๊ฐ€ Colors ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•ด์„œ ๋น„์Šทํ•œ  MD2Colors ๋ฅผ ์‚ฌ์šฉํ–ˆ๋”๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ๋‹ค.

๋ฐ˜์‘ํ˜•