icon.vue 544 B

123456789101112131415161718192021222324252627
  1. <script setup lang="ts">
  2. import { computed } from 'vue'
  3. const props = defineProps<{
  4. name: string,
  5. size?: number,
  6. color?: string
  7. }>()
  8. const symbolId = computed(() => `#icon-${props.name}`)
  9. const newColor = computed(() => `${props.color ?? '#ccc'}`)
  10. const newSize = computed(() => `${props.size ?? 16}`)
  11. </script>
  12. <template>
  13. <svg
  14. aria-hidden="true"
  15. :font-size="newSize"
  16. :width="newSize"
  17. :height="newSize"
  18. >
  19. <use
  20. :href="symbolId"
  21. :fill="newColor"
  22. :fill-rule="undefined"
  23. />
  24. </svg>
  25. </template>