When styling in ReactNative, you can often use styled-components to create beautiful, concise designs. However, setting up box-shadow can be a bit tricky.
This article will walk you through three examples (two failures and one success) of how to use styled-components to set up box-shadow in a ReactNative project.
Failure #1: General box-shadow specification
ReactNative does not allow you to specify box-shadow directly like general CSS.
import styled from 'styled-components/native';
export const Container = styled.View`
width: 150px;
height: 52px;
border-radius: 26px;
backgroundColor: "#FFFFFF";
//shadow
box-shadow: 2px 8px 12px rgba(0, 0, 0, 0.16);
`;
Writing it this way does not reflect the shadow.
Failure #2: Wrong writing of shadow-offset
In ReactNative, properties such as shadow-color, shadow-opacity, shadow-radius, and shadow-offset are used to set shadows. However, if you specify shadow-offset with an object, as shown below, it will not be reflected.
import styled from 'styled-components/native';
import { Platform } from 'react-native';
export const Container = styled.View`
width: 150px;
height: 52px;
border-radius: 26px;
backgroundColor: "#FFFFFF";
//shadow
shadow-color: "#000000";
shadow-opacity: 0.16;
shadow-radius: 12px;
shadow-offset: {
width: 2px;
height: 8px;
};
${Platform.OS === 'android' && `elevation: 6;`}
`;
Success example: Correct way to write `shadow-offset
The correct way to write shadow-offset is as follows.
`jsx
import styled from 'styled-components/native';
import { Platform } from 'react-native';
export const Container = styled.View`
width: 150px;
height: 52px;
border-radius: 26px;
backgroundColor: "#FFFFFF";
//shadow
shadow-color: "#000000";
shadow-opacity: 0.16;
shadow-radius: 12px;
shadow-offset: 2px 8px;
${Platform.OS === 'android' && elevation: 6;}
;
Specifying this way will correctly reflect the shadow.
Summary
When specifying box-shadow in ReactNative using styled-components, you need to be careful how to write shadow-offset. By mastering the correct way to write it, you can add beautiful shadow effects to your application. We hope this article will help you to proceed smoothly with your development.
Top comments (0)