0.13.0 • Published 5 years ago
@samtietjen/mapped-components v0.13.0
Mapped Components
A utility for building React components that map to your stylesheet.
Installation
npm i @samtietjen/mapped-components --save
Caution! This package is still very experimental. 👨🔬
Usage
import PropTypes from 'prop-types';
import mapper from '@samtietjen/mapped-components';
const mapped = mapper({
breakpoints: [null, 'md', 'lg'],
getter: ({ breakpoint, root, value }) => [breakpoint, root, value]
.filter(x => x && value !== false || x === 0)
.join('-')
});
const Text = mapped({
size: 'text-size'
});
Text.propTypes = {
tag: PropTypes.string,
base: PropTypes.string,
size: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array
])
}
Text.defaultProps = {
tag: 'p',
base: 'text'
}
render (
<Text size={[1, null, 3]} />
// <p class="text text-size-1 lg-text-size-3"></p>
);
Extending
const Heading = mapped({
...Text.mappings,
color: 'text-color'
);
Heading.propTypes = {
...Text.propTypes,
color: PropTypes.string
}
Heading.defaultProps = {
base: 'heading',
tag: 'h2'
}
<Heading size={1} color="black" />
// <h2 class="heading text-size-1 text-color-black"></h2>
License
MIT © Sam Tietjen
0.13.0
5 years ago
0.12.0
5 years ago
0.11.2
5 years ago
0.11.1
6 years ago
0.11.0
6 years ago
0.10.11
6 years ago
0.10.10
6 years ago
0.10.9
6 years ago
0.10.8
6 years ago
0.10.6
6 years ago
0.10.4
6 years ago
0.10.3
6 years ago
0.10.2
6 years ago
0.10.1
6 years ago
0.10.0
6 years ago
0.9.1
6 years ago
0.8.3
6 years ago
0.8.2
6 years ago
0.8.1
6 years ago
0.8.0
6 years ago
0.7.0
6 years ago
0.6.1
6 years ago
0.6.0
6 years ago
0.5.0
6 years ago
0.4.0
6 years ago
0.0.51
6 years ago
0.0.5
6 years ago
0.0.4
6 years ago
0.3.3
6 years ago
0.3.2
6 years ago
0.3.1
6 years ago
0.3.0
6 years ago
0.2.0
6 years ago
0.1.2
6 years ago
0.1.1
6 years ago
0.1.0
6 years ago
0.0.2
6 years ago
0.0.1
6 years ago