|
<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> |