render (h) {
    if (typeof this.icon === 'string') {
      return h(CIcon, {
        class: this.className,
        props: {
          name: this.icon
        },
        attrs: {
          color: 'currentColor',
          focusable: false,
          ...setIconSizes(this.$props),
          ...this.computedAttrs
        }
      })
    } else {
      return h(CBox, {
        class: this.className,
        props: {
          as: this.icon
        },
        attrs: {
          ...setIconSizes(this.$props),
          color: 'currentColor',
          'data-custom-icon': true,
          ...this.computedAttrs,
          focusable: false
        }
      })
    }
  }
CButtonIcon component

The icon component inside a button

@extends CIcon
@see Docs https://vue.chakra-ui.com/button