summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-08-31 02:19:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-08-31 02:19:25 +0900
commit2d8e7b4da759b23800d517ee5979fa83484faf00 (patch)
tree8725249b421dd2145834eef2405c1acabe6f10f1
parentrefactor(client): align filename to component name (diff)
downloadmisskey-2d8e7b4da759b23800d517ee5979fa83484faf00.tar.gz
misskey-2d8e7b4da759b23800d517ee5979fa83484faf00.tar.bz2
misskey-2d8e7b4da759b23800d517ee5979fa83484faf00.zip
enhance(client): improve analog-clock
-rw-r--r--packages/client/src/components/MkAnalogClock.vue12
-rw-r--r--packages/client/src/widgets/clock.vue12
2 files changed, 21 insertions, 3 deletions
diff --git a/packages/client/src/components/MkAnalogClock.vue b/packages/client/src/components/MkAnalogClock.vue
index b709a22548..40ef626aed 100644
--- a/packages/client/src/components/MkAnalogClock.vue
+++ b/packages/client/src/components/MkAnalogClock.vue
@@ -40,7 +40,7 @@
<line
class="s"
- :class="{ animate: !disableSAnimate }"
+ :class="{ animate: !disableSAnimate && sAnimation !== 'none', elastic: sAnimation === 'elastic', easeOut: sAnimation === 'easeOut' }"
:x1="5 - (0 * (sHandLengthRatio * handsTailLength))"
:y1="5 + (1 * (sHandLengthRatio * handsTailLength))"
:x2="5 + (0 * ((sHandLengthRatio * 5) - handsPadding))"
@@ -99,6 +99,7 @@ const props = withDefaults(defineProps<{
twentyfour?: boolean;
graduations?: 'none' | 'dots' | 'numbers';
fadeGraduations?: boolean;
+ sAnimation?: 'none' | 'elastic' | 'easeOut';
}>(), {
numbers: false,
thickness: 0.1,
@@ -106,6 +107,7 @@ const props = withDefaults(defineProps<{
twentyfour: false,
graduations: 'dots',
fadeGraduations: true,
+ sAnimation: 'elastic',
});
const graduationsMajor = computed(() => {
@@ -161,7 +163,7 @@ function tick() {
disableSAnimate = false;
}, 100);
}, 100);
- }, 500);
+ }, 700);
} else {
sAngle = Math.PI * s / 30;
}
@@ -211,9 +213,13 @@ onBeforeUnmount(() => {
will-change: transform;
transform-origin: 50% 50%;
- &.animate {
+ &.animate.elastic {
transition: transform .2s cubic-bezier(.4,2.08,.55,.44);
}
+
+ &.animate.easeOut {
+ transition: transform .7s cubic-bezier(0,.7,.3,1);
+ }
}
}
</style>
diff --git a/packages/client/src/widgets/clock.vue b/packages/client/src/widgets/clock.vue
index 660a1f0ecb..51d48b30a6 100644
--- a/packages/client/src/widgets/clock.vue
+++ b/packages/client/src/widgets/clock.vue
@@ -9,6 +9,7 @@
:graduations="widgetProps.graduations"
:fade-graduations="widgetProps.fadeGraduations"
:twentyfour="widgetProps.twentyFour"
+ :s-animation="widgetProps.sAnimation"
/>
<MkDigitalClock v-if="widgetProps.label === 'time' || widgetProps.label === 'timeAndTz'" class="_monospace label c time" :show-s="false" :offset="tzOffset"/>
<div v-if="widgetProps.label === 'tz' || widgetProps.label === 'timeAndTz'" class="_monospace label d offset">{{ tzOffsetLabel }}</div>
@@ -70,6 +71,17 @@ const widgetPropsDef = {
type: 'boolean' as const,
default: true,
},
+ sAnimation: {
+ type: 'radio' as const,
+ default: 'elastic',
+ options: [{
+ value: 'none', label: 'None',
+ }, {
+ value: 'elastic', label: 'Elastic',
+ }, {
+ value: 'easeOut', label: 'Ease out',
+ }],
+ },
twentyFour: {
type: 'boolean' as const,
default: false,