|
<template>
|
|
<linearGradient
|
|
v-if="type === 'linear'"
|
|
:id="id"
|
|
x1="0%"
|
|
y1="0%"
|
|
x2="100%"
|
|
y2="0%"
|
|
:gradientTransform="`rotate(${rotate},0.5,0.5)`"
|
|
>
|
|
<stop v-for="(item, index) in colors" :key="index" :offset="`${item.pos}%`" :stop-color="item.color" />
|
|
</linearGradient>
|
|
|
|
<radialGradient :id="id" v-else>
|
|
<stop v-for="(item, index) in colors" :key="index" :offset="`${item.pos}%`" :stop-color="item.color" />
|
|
</radialGradient>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import type { GradientColor, GradientType } from '@/types/slides'
|
|
|
|
withDefaults(defineProps<{
|
|
id: string
|
|
type: GradientType
|
|
colors: GradientColor[]
|
|
rotate?: number
|
|
}>(), {
|
|
rotate: 0,
|
|
})
|
|
</script> |