--- title: styled() sidebar_label: styled() --- ## Usage `styled()` is a [Higher-Order Component](https://reactjs.org/docs/higher-order-components.html) which allows your component to accept either the `tw` or `className` props. These props are compiled into StyleSheet objects and passed to your component via the `style` prop. There are no differences between `tw` and `className`. ```SnackPlayer name=Styled import { Text } from "react-native"; import { styled } from "nativewind"; const StyledText = styled(Text); function App() { return ( <> Hello world. Hello world. ); } ``` ## Default styles `styled()` can be used similar to Styled Components, and provide base styling. ```SnackPlayer name=Styled import { View, Text } from "react-native"; import { styled } from "nativewind"; const StyledView = styled(View, 'flex-1 items-center justify-center'); const StyledText = styled(Text, 'font-bold'); function App() { return ( Hello world.; ) } ``` ## Styling multiple properties `styled()` can optionally accept a list of additional props to parse into runtime styles. ```tsx function Wrapper({ innerStyle, children, ...props }) { return ( { children } ) } const StyledWrapper = styled(Wrapper, { props: { innerStyle: true } }) Hello, World! ``` ## Mixing between inline props and CSS classes Some components can either accept a value as a prop or be styled by CSS. An example is `react-native-svg` which provides as `fill` prop, but on web can also accept a class providing `fill` styling. You can flag a components props as `classProps` to ensure the best output is used. ```tsx import { styled } from "nativewind"; import { Svg, Rect } from "react-native-svg"; const StyledRect = styled(Rect, { classProps: ["fill", "stroke"], }); function MyStyledSvg({ stroke, ...props }) { return ( ); } ; ``` ## Styling non-style properties :::danger Mapping non-style props will not work when outputting CSS. If you need a theme value (e.g. color) consider importing [theme values instead](../guides/theme-values). ::: `styled()` can also accept a object which maps style properties to component properties. ```tsx const StyledWrapper = styled(Wrapper, { props: { placeholderTextColor: "color", }, }); ```