Summary: My benchmarks have shown react-emotion to be faster than the current implementation of `styled`. For this reason, I am converting all styling to [emotion](https://emotion.sh). Benchmark results: {F136839093} The syntax is very similar between the two libraries. The main difference is that emotion only allows a single function for the whole style attribute, whereas the old implementation had functions for every style-attirbute. Before: ``` { color: props => props.color, fontSize: props => props.size, } ``` After: ``` props => ({ color: props.color, fontSize: props.size, }) ``` Reviewed By: jknoxville Differential Revision: D9479893 fbshipit-source-id: 2c39e4618f7e52ceacb67bbec8ae26114025723f
39 lines
877 B
JavaScript
39 lines
877 B
JavaScript
/**
|
|
* Copyright 2018-present Facebook.
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
* @format
|
|
*/
|
|
|
|
import {colors} from './colors.js';
|
|
import FlexRow from './FlexRow.js';
|
|
import FlexBox from './FlexBox.js';
|
|
import styled from '../styled/index.js';
|
|
|
|
/**
|
|
* A toolbar.
|
|
*/
|
|
const Toolbar = styled(FlexRow)(props => ({
|
|
backgroundColor: colors.light02,
|
|
borderBottom:
|
|
props.position === 'bottom'
|
|
? 'none'
|
|
: `1px solid ${colors.sectionHeaderBorder}`,
|
|
borderTop:
|
|
props.position === 'bottom'
|
|
? `1px solid ${colors.sectionHeaderBorder}`
|
|
: 'none',
|
|
flexShrink: 0,
|
|
height: props.compact ? 28 : 42,
|
|
lineHeight: '32px',
|
|
alignItems: 'center',
|
|
padding: 6,
|
|
width: '100%',
|
|
}));
|
|
|
|
export const Spacer = styled(FlexBox)({
|
|
flexGrow: 1,
|
|
});
|
|
|
|
export default Toolbar;
|