• Pan's avatar
    init · d1037008
    Pan authored
    d1037008
wscn-icon-stack.vue 1.02 KB
<template>
  <div class="icon-container" :style="containerStyle">
    <slot class="icon"></slot>
  </div>
</template>

<script>
  export default {
    name: 'wscn-icon-stack',
    props: {
      width: {
        type: Number,
        default: 20
      },
      shape: {
        type: String,
        default: 'circle',
        validator: val => {
          const validShapes = ['circle', 'square']
          return validShapes.indexOf(val) > -1
        }
      }
    },
    computed: {
      containerStyle() {
        return {
          width: `${this.width}px`,
          height: `${this.width}px`,
          fontSize: `${this.width * 0.6}px`,
          borderRadius: `${this.shape === 'circle' && '50%'}`
        }
      }
    }
  }
</script>

<style lang="scss" scoped>
  .icon-container {
    display: inline-block;
    position: relative;
    overflow: hidden;
    background: #1482F0;

    .icon {
      position: absolute;
      color: #ffffff;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  }
</style>