2

I am new to react native. I am trying to apply a shadow effect on a restaurant component I created. Unfortunately I cant get the shadow to take effect. All other styling works. I am using tailwind css for this project. Configuration for tailwind is ok. The only problem is shadowing so far. I have tried to apply shadowing to other components but the results are the same, no effect is observed. Where am I going wrong or what am I not seeing.

<TouchableOpacity className="bg-white mr-3 shadow">
  <Image 
    source={{
      uri: imgUrl,
    }}
    className="h-36 w-36 rounded-sm"
  />
  <View>
    <Text className="font-bold text-lg pt-2">{title}</Text>
    <View className="flex-row items-center space-x-1">
      <StarIcon color="green" opacity={0.5} size={22} />
      <Text className="text-xs text-gray-500">
        <Text className="text-green-500">{rating}</Text> : {genre}
      </Text>
    </View>
    <View className="flex-row items-center space-x-1">
      <LocationMarkerIcon color="gray" size={22} opacity={0.4}/>
      <Text className="text-xs text-gray-500"> Nearby : {address}</Text>
    </View>
  </View>
</TouchableOpacity>

5 Answers 5

5

TailwindCSS in React Native is: nativewind Shadow doesn't work for android devices on nativewind. You should use External Styling instead of nativewind shadow properties like:

  1. import { StyleSheet } from "react-native"

    const styles = StyleSheet.create({
        shadow: {
            shadowColor: "#000",
            shadowOffset: {
                width: 0,
                height: 3,
            },
            shadowOpacity: 0.27,
            shadowRadius: 4.65,
    
            elevation: 6,
        }
    })
    export default styles
    
  2. Usage: <View className="...." style={styles.shadow} />

Sign up to request clarification or add additional context in comments.

Comments

2

Shadow doesn't work for android devices on tailwind css. The work around I used was to set the style prop to elevation:2 , the higher the number the darker the shadow. <TouchableOpacity className="mr-3 bg-white" style={{ elevation:2 }}> [enter link description here][1]

[1]: How to set shadows in React Native for android? this question was well addressed here.

Comments

1

first of all your view that have shadow must have a backgroundColor, even white, and your style is something like this: style={{backgroundColor:'#fff', shadowColor:'#000', shadowOffset:{width:0, height:3}, shadowOpacity:0.5, elevation:3}}

1 Comment

backgroundColor is not a must when working with tailwind css, it is an added option.
0

instead of shadow you can simply replace t.shadow, t.shadowMd, t.shadowLg, t.shadow2xl

tailwindCSS classes are somewhat different for react-native-tailwindcss

still confused, please refer here

Comments

0

Nowadays shadow prop works well in NativeWind.

Take my code as example:

<View className="flex-1 bg-white p-4">
    <View className="flex-1 bg-blue-500 rounded-2xl shadow shadow-black/>
</View>

It's handled both Android and iOS with no problem

Just remember sometimes you'll need to add a background color to work See more in the docs here

Box with shadow-2xl applied

Without Shadow

1 Comment

It's important to mention that shadow is not visible without defining a shadow color, in this case shadow-black

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.