summaryrefslogtreecommitdiff
path: root/src/client/components
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-04-16 23:04:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-04-16 23:04:25 +0900
commit0f054aed88934cad8ae4e8b074f8fe97970c5e38 (patch)
tree95515ab2ed8574a8ee6e7db90f87ab75eb1d76a9 /src/client/components
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadsharkey-0f054aed88934cad8ae4e8b074f8fe97970c5e38.tar.gz
sharkey-0f054aed88934cad8ae4e8b074f8fe97970c5e38.tar.bz2
sharkey-0f054aed88934cad8ae4e8b074f8fe97970c5e38.zip
Tweak UI
Diffstat (limited to 'src/client/components')
-rw-r--r--src/client/components/form/suspense.vue32
-rw-r--r--src/client/components/global/loading.vue55
2 files changed, 64 insertions, 23 deletions
diff --git a/src/client/components/form/suspense.vue b/src/client/components/form/suspense.vue
index 4b47cb959b..e22b09ada4 100644
--- a/src/client/components/form/suspense.vue
+++ b/src/client/components/form/suspense.vue
@@ -1,16 +1,20 @@
<template>
-<div class="_formItem" v-if="pending">
- <div class="_formPanel">
- pending
+<transition name="fade" mode="out-in">
+ <div class="_formItem" v-if="pending">
+ <div class="_formPanel">
+ <MkLoading/>
+ </div>
</div>
-</div>
-<slot v-else-if="resolved" :result="result"></slot>
-<div class="_formItem" v-else>
- <div class="_formPanel">
- error!
- <button @click="retry">retry</button>
+ <div v-else-if="resolved">
+ <slot :result="result"></slot>
</div>
-</div>
+ <div class="_formItem" v-else>
+ <div class="_formPanel">
+ error!
+ <button @click="retry">retry</button>
+ </div>
+ </div>
+</transition>
</template>
<script lang="ts">
@@ -72,5 +76,13 @@ export default defineComponent({
</script>
<style lang="scss" scoped>
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.125s ease;
+}
+.fade-enter-from,
+.fade-leave-to {
+ opacity: 0;
+}
</style>
diff --git a/src/client/components/global/loading.vue b/src/client/components/global/loading.vue
index 5d0c10c086..17d71b5c7b 100644
--- a/src/client/components/global/loading.vue
+++ b/src/client/components/global/loading.vue
@@ -1,5 +1,5 @@
<template>
-<div class="yxspomdl" :class="{ inline }">
+<div class="yxspomdl" :class="{ inline, colored }">
<div class="ring"></div>
</div>
</template>
@@ -14,6 +14,11 @@ export default defineComponent({
type: Boolean,
required: false,
default: false
+ },
+ colored: {
+ type: Boolean,
+ required: false,
+ default: true
}
}
});
@@ -32,6 +37,11 @@ export default defineComponent({
.yxspomdl {
padding: 32px;
text-align: center;
+ cursor: wait;
+
+ &.colored {
+ color: var(--accent);
+ }
&.inline {
display: inline;
@@ -41,24 +51,43 @@ export default defineComponent({
width: 32px;
height: 32px;
}
+
+ > .ring {
+ &:before,
+ &:after {
+ width: 32px;
+ height: 32px;
+ }
+ }
}
> .ring {
+ position: relative;
display: inline-block;
- opacity: 0.7;
vertical-align: middle;
- }
- > .ring:after {
- content: " ";
- display: block;
- box-sizing: border-box;
- width: 48px;
- height: 48px;
- border-radius: 50%;
- border: solid 4px;
- border-color: currentColor transparent transparent transparent;
- animation: ring 0.5s linear infinite;
+ &:before,
+ &:after {
+ content: " ";
+ display: block;
+ box-sizing: border-box;
+ width: 48px;
+ height: 48px;
+ border-radius: 50%;
+ border: solid 4px;
+ }
+
+ &:before {
+ border-color: currentColor;
+ opacity: 0.3;
+ }
+
+ &:after {
+ position: absolute;
+ top: 0;
+ border-color: currentColor transparent transparent transparent;
+ animation: ring 0.5s linear infinite;
+ }
}
}
</style>