airbnb/react-with-styles-interface-aphrodite(新しいタブで開きます)
主要言語: JavaScript
Interface to use react-with-styles with Aphrodite
- star 数
- 55
- watcher 数
- 25
- fork 数
- 15
- issue 数
- 10
- 最終更新
- 2023/03/04
主要言語: JavaScript
Interface to use react-with-styles with Aphrodite
Interface to use react-with-styles with Aphrodite.
import aphroditeInterface from 'react-with-styles-interface-aphrodite';
or when you need to disable !important:
import aphroditeInterface from 'react-with-styles-interface-aphrodite/no-important';
react-with-styles-interface-aphrodite has built-in LTR/RTL context support. Specifically, it uses rtl-css-js to automatically flip styles (margin, padding, float, textAlign, etc.) that were written for an LTR page when your app is wrapped in react-with-direction's DirectionProvider with direction set to DIRECTIONS.RTL.
It accomplishes this by providing a directional create and resolve method. react-with-styles automatically uses the correct create method based on the direction value set in context and then passes down the appropriate resolve method as a prop named css.
For instance, if you were to write your styles as follows:
import ThemedStyleSheet from 'react-with-styles/lib/ThemedStyleSheet'; import aphroditeInterface from 'react-with-styles-interface-aphrodite'; import { withStyles, css } from 'react-with-styles'; ThemedStyleSheet.registerInterface(aphroditeInterface); ... function MyComponent({ css }) { return <div {...css(styles.container)}>Hello World</div>; } export default withStyles(() => ({ container: { background: '#fff', float: 'left', }, }))(MyComponent);
The generated css for an app where you set <DirectionProvider direction={DIRECTIONS.LTR}> at the top would look like:
.container_r5r4of { background: #fff !important; float: 'left' !important; }
whereas if you had set <DirectionProvider direction={DIRECTIONS.RTL}>, the generated css would be:
.container_kui6s4 { background: #fff !important; float: 'right' !important; }
If you used an inline style instead:
import { css } from 'react-with-styles'; export default function MyComponent() { return <div {...css({ background: '#fff', float: 'left' })}>Hello World</div>; }
In the case where <DirectionProvider direction={DIRECTIONS.LTR}> is wrapping your component, this would map to a style={{ background: '#fff', float: 'left' }} on the div in question. If <DirectionProvider direction={DIRECTIONS.RTL}> is present instead, this would simply apply style={{ background: '#fff', float: 'right' }} to the div.