const IconButton = React.forwardRef(({
variant, size, type,
tooltip, tooltipPlacement, src,
- onClick, tabIndex, disabled,
+ onClick, tabIndex, disabled, isImage,
}, ref) => {
const btn = (
<button
tabIndex={tabIndex}
disabled={disabled}
>
- <RawIcon size={size} src={src} />
+ <RawIcon size={size} src={src} isImage={isImage} />
</button>
);
if (tooltip === null) return btn;
onClick: null,
tabIndex: 0,
disabled: false,
+ isImage: false,
};
IconButton.propTypes = {
onClick: PropTypes.func,
tabIndex: PropTypes.number,
disabled: PropTypes.bool,
+ isImage: PropTypes.bool,
};
export default IconButton;
import PropTypes from 'prop-types';
import './RawIcon.scss';
-function RawIcon({ color, size, src }) {
- const style = {
- WebkitMaskImage: `url(${src})`,
- maskImage: `url(${src})`,
- };
+function RawIcon({
+ color, size, src, isImage,
+}) {
+ const style = {};
if (color !== null) style.backgroundColor = color;
+ if (isImage) {
+ style.backgroundColor = 'transparent';
+ style.backgroundImage = `url(${src})`;
+ } else {
+ style.WebkitMaskImage = `url(${src})`;
+ style.maskImage = `url(${src})`;
+ }
+
return <span className={`ic-raw ic-raw-${size}`} style={style}> </span>;
}
RawIcon.defaultProps = {
color: null,
size: 'normal',
+ isImage: false,
};
RawIcon.propTypes = {
color: PropTypes.string,
size: PropTypes.oneOf(['large', 'normal', 'small', 'extra-small']),
src: PropTypes.string.isRequired,
+ isImage: PropTypes.bool,
};
export default RawIcon;
-webkit-mask-size: cover;
mask-size: cover;
background-color: var(--ic-surface-normal);
+
+ background-size: cover;
+ background-repeat: no-repeat;
}
.ic-raw-large {
@include icSize(var(--ic-large));