migrate core to emotion

This commit is contained in:
Shawn Erquhart
2018-07-06 18:56:28 -04:00
parent 768fcbaa1d
commit 4931711892
114 changed files with 3414 additions and 78296 deletions

View File

@ -1,24 +0,0 @@
.nc-icon {
display: inline-block;
line-height: 0;
& > span {
display: block;
}
& path:not(.no-fill),
& circle:not(.no-fill),
& polygon:not(.no-fill),
& rect:not(.no-fill) {
fill: currentColor;
}
& path.clipped {
fill: transparent;
}
}
.nc-icon svg {
width: 100%;
height: 100%;
}

View File

@ -1,48 +0,0 @@
import React from 'react';
import icons from './icons';
/**
* Calculates rotation for icons that have a `direction` property configured
* in the imported icon definition object. If no direction is configured, a
* neutral rotation value is returned.
*
* Returned value is a string of shape `${degrees}deg`, for use in a CSS
* transform.
*/
const getRotation = (iconDirection, newDirection) => {
if (!iconDirection || !newDirection) {
return '0deg';
}
const rotations = { right: 90, down: 180, left: 270, up: 360 };
const degrees = rotations[newDirection] - rotations[iconDirection];
return `${degrees}deg`;
}
const sizes = {
xsmall: '12px',
small: '18px',
medium: '24px',
large: '32px',
};
export const Icon = props => {
const {
type,
direction,
size = 'medium',
className = '',
width,
height,
...remainingProps
} = props;
const icon = icons[type];
const rotation = getRotation(icon.direction, direction)
const transform = `rotate(${rotation})`;
const sizeResolved = sizes[size] || size;
const style = { width: sizeResolved, height: sizeResolved, transform };
return (
<span className={`nc-icon ${className}`} {...remainingProps}>
<span dangerouslySetInnerHTML={{ __html: icon.image }} style={style}></span>
</span>
);
}