const IconButton = React.forwardRef((props, ref) => {
  const [colorMode] = useColorMode();
  const { colors } = useTheme();
  const color = {
    dark: 'white:secondary',
    light: 'black:secondary',
  }[colorMode];
  const hoverColor = {
    dark: 'white:primary',
    light: 'black:primary',
  }[colorMode];
  const activeColor = color;
  const focusColor = color;
  const focusHoverColor = hoverColor;
  const focusActiveColor = activeColor;
  const focusBorderColor = colors['blue:60'];
  return (
    <ButtonBase
      ref={ref}
      border={1}
      borderColor="transparent"
      color={color}
      transition="all .2s"
      lineHeight={1}
      px="2x"
      py="2x"
      _hover={{
        color: hoverColor,
      }}
      _active={{
        color: activeColor,
      }}
      _focus={{
        borderColor: focusBorderColor,
        boxShadow: `inset 0 0 0 1px ${focusBorderColor}`,
        color: focusColor,
      }}
      _focusHover={{
        color: focusHoverColor,
      }}
      _focusActive={{
        borderColor: focusBorderColor,
        boxShadow: `inset 0 0 0 1px ${focusBorderColor}`,
        color: focusActiveColor,
      }}
      {...props}
    />
  );
});
function Example() {
  return (
    <IconButton>
      <Icon icon="close" />
    </IconButton>
  );
}
render(<Example />);