diff options
| author | dakkar <dakkar@thenautilus.net> | 2025-02-06 10:22:57 +0000 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2025-02-06 10:22:57 +0000 |
| commit | 708debf5d5500c3871d9e059489458af8002efcc (patch) | |
| tree | 83604b716d8ee9d0d5f6a6d6e2843362409c2f2c /packages/frontend/src/components | |
| parent | fix emoji test (diff) | |
| parent | Release: 2025.2.0 (diff) | |
| download | sharkey-708debf5d5500c3871d9e059489458af8002efcc.tar.gz sharkey-708debf5d5500c3871d9e059489458af8002efcc.tar.bz2 sharkey-708debf5d5500c3871d9e059489458af8002efcc.zip | |
Merge tag '2025.2.0' into merge/2024-02-03
Diffstat (limited to 'packages/frontend/src/components')
| -rw-r--r-- | packages/frontend/src/components/MkSignin.vue | 1 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkSparkle.vue | 53 |
2 files changed, 31 insertions, 23 deletions
diff --git a/packages/frontend/src/components/MkSignin.vue b/packages/frontend/src/components/MkSignin.vue index 4a6219071b..d6177762d2 100644 --- a/packages/frontend/src/components/MkSignin.vue +++ b/packages/frontend/src/components/MkSignin.vue @@ -141,6 +141,7 @@ function onPasskeyDone(credential: AuthenticationPublicKeyCredential): void { return; } emit('login', res.signinResponse); + onLoginSucceeded(res.signinResponse); }).catch(onSigninApiError); } else if (userInfo.value != null) { tryLogin({ diff --git a/packages/frontend/src/components/MkSparkle.vue b/packages/frontend/src/components/MkSparkle.vue index 8491ce2f84..b3fc67c0df 100644 --- a/packages/frontend/src/components/MkSparkle.vue +++ b/packages/frontend/src/components/MkSparkle.vue @@ -39,32 +39,18 @@ SPDX-License-Identifier: AGPL-3.0-only --> <!-- MFMで上位レイヤーに表示されるため、リンクをクリックできるようにstyleにpointer-events: none;を付与。 --> <svg v-for="particle in particles" :key="particle.id" :width="width" :height="height" :viewBox="`0 0 ${width} ${height}`" xmlns="http://www.w3.org/2000/svg" style="position: absolute; top: -32px; left: -32px; pointer-events: none;"> + <!-- SVGのanimateTransformを使用するとChromeで描画できなくなるためCSSアニメーションを使用している (Issue 14155) --> <path - style="transform-origin: center; transform-box: fill-box;" - :transform="`translate(${particle.x} ${particle.y})`" + :style="{ + '--translateX': particle.x + 'px', + '--translateY': particle.y + 'px', + '--duration': particle.dur + 'ms', + '--size': particle.size, + }" + :class="$style.particle" :fill="particle.color" d="M29.427,2.011C29.721,0.83 30.782,0 32,0C33.218,0 34.279,0.83 34.573,2.011L39.455,21.646C39.629,22.347 39.991,22.987 40.502,23.498C41.013,24.009 41.653,24.371 42.354,24.545L61.989,29.427C63.17,29.721 64,30.782 64,32C64,33.218 63.17,34.279 61.989,34.573L42.354,39.455C41.653,39.629 41.013,39.991 40.502,40.502C39.991,41.013 39.629,41.653 39.455,42.354L34.573,61.989C34.279,63.17 33.218,64 32,64C30.782,64 29.721,63.17 29.427,61.989L24.545,42.354C24.371,41.653 24.009,41.013 23.498,40.502C22.987,39.991 22.347,39.629 21.646,39.455L2.011,34.573C0.83,34.279 0,33.218 0,32C0,30.782 0.83,29.721 2.011,29.427L21.646,24.545C22.347,24.371 22.987,24.009 23.498,23.498C24.009,22.987 24.371,22.347 24.545,21.646L29.427,2.011Z" - > - <animateTransform - attributeName="transform" - attributeType="XML" - type="rotate" - from="0 0 0" - to="360 0 0" - :dur="`${particle.dur}ms`" - repeatCount="1" - additive="sum" - /> - <animateTransform - attributeName="transform" - attributeType="XML" - type="scale" - :values="`0; ${particle.size}; 0`" - :dur="`${particle.dur}ms`" - repeatCount="1" - additive="sum" - /> - </path> + ></path> </svg> </span> </template> @@ -130,4 +116,25 @@ onUnmounted(() => { position: relative; display: inline-block; } + +.particle { + transform-origin: center; + transform-box: fill-box; + translate: var(--translateX) var(--translateY); + animation: particleAnimation var(--duration) linear infinite; +} + +@keyframes particleAnimation { + 0% { + rotate: 0deg; + scale: 0; + } + 50% { + scale: var(--size); + } + 100% { + rotate: 360deg; + scale: 0; + } +} </style> |