style(logo): 去掉 V 字,改为光圈+播放三角标

光圈内放播放三角(呼应图像+视频),快门点改黄色墨边小圆,
整体更几何、更贴合 Memphis 风格。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
2026-10-08 17:26:49 +08:00
co-authored by Devin
parent 602664c122
commit d0506b0d2e
+11 -15
View File
@@ -1,8 +1,8 @@
<script setup> <script setup>
// Vivid mark: an open spectrum ring (lens/aperture) around a folded "V", with a // Vivid mark: an open spectrum ring (lens/aperture) around a play triangle,
// shutter dot closing the gap — image + video in one glyph. Transparent // with a shutter dot closing the gap — image + video in one glyph.
// background so it reads on both the dark and light shells. Colors follow the // Transparent background so it reads on both the dark and light shells.
// memphis crayon palette (orange / pink / blue). // Colors follow the memphis crayon palette (orange / pink / blue).
// Each instance gets unique gradient ids (useId) so multiple logos on one // Each instance gets unique gradient ids (useId) so multiple logos on one
// page don't share/clobber defs. // page don't share/clobber defs.
import { useId } from 'vue' import { useId } from 'vue'
@@ -11,7 +11,6 @@ defineProps({ size: { type: [Number, String], default: 40 } })
const uid = useId() const uid = useId()
const gRing = `vring-${uid}` const gRing = `vring-${uid}`
const gV = `vv-${uid}`
</script> </script>
<template> <template>
@@ -23,20 +22,17 @@ const gV = `vv-${uid}`
<stop offset="0.5" stop-color="#f472b6" /> <stop offset="0.5" stop-color="#f472b6" />
<stop offset="1" stop-color="#38bdf8" /> <stop offset="1" stop-color="#38bdf8" />
</linearGradient> </linearGradient>
<linearGradient :id="gV" x1="14" y1="14" x2="34" y2="34" gradientUnits="userSpaceOnUse">
<stop stop-color="#f97316" />
<stop offset="1" stop-color="#ec5b13" />
</linearGradient>
</defs> </defs>
<g transform="translate(24 24)"> <g transform="translate(24 24)">
<!-- open ring: dash gap leaves room for the shutter dot --> <!-- open ring: dash gap leaves room for the shutter dot -->
<circle r="18.5" fill="none" :stroke="`url(#${gRing})`" stroke-width="3.2" <circle r="17.5" fill="none" :stroke="`url(#${gRing})`" stroke-width="4.4"
stroke-linecap="round" stroke-dasharray="86 30" transform="rotate(-58)" /> stroke-linecap="round" stroke-dasharray="84 32" transform="rotate(-58)" />
<!-- folded V --> <!-- play triangle = image + video -->
<path d="M-8 -7.5 L0 9 L8 -7.5" fill="none" :stroke="`url(#${gV})`" stroke-width="4.8" <path d="M-3 -6.5 L8.5 0 L-3 6.5 Z" fill="#ec5b13" stroke="#111" stroke-width="1.4"
stroke-linecap="round" stroke-linejoin="round" /> stroke-linejoin="round" />
<circle cx="13" cy="-13" r="3.4" fill="#ec5b13" /> <!-- shutter dot -->
<circle cx="13" cy="-13" r="4.2" fill="#fef08a" stroke="#111" stroke-width="1.6" />
</g> </g>
</svg> </svg>
</template> </template>