summaryrefslogtreecommitdiff
path: root/packages/client/src/components/form/switch.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-12-26 01:42:50 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-12-26 01:42:50 +0900
commitfe3609451ea6d257a9143b0ac7c60257cdb8541a (patch)
tree6f66adae8ecb1d874ad3508ddea78e68619ef821 /packages/client/src/components/form/switch.vue
parentrefactor (diff)
downloadmisskey-fe3609451ea6d257a9143b0ac7c60257cdb8541a.tar.gz
misskey-fe3609451ea6d257a9143b0ac7c60257cdb8541a.tar.bz2
misskey-fe3609451ea6d257a9143b0ac7c60257cdb8541a.zip
enhance(client): :art:
Diffstat (limited to 'packages/client/src/components/form/switch.vue')
-rw-r--r--packages/client/src/components/form/switch.vue72
1 files changed, 28 insertions, 44 deletions
diff --git a/packages/client/src/components/form/switch.vue b/packages/client/src/components/form/switch.vue
index 239303a55a..aa28292b97 100644
--- a/packages/client/src/components/form/switch.vue
+++ b/packages/client/src/components/form/switch.vue
@@ -2,10 +2,6 @@
<div
class="ziffeoms"
:class="{ disabled, checked }"
- role="switch"
- :aria-checked="checked"
- :aria-disabled="disabled"
- @click.prevent="toggle"
>
<input
ref="input"
@@ -13,11 +9,11 @@
:disabled="disabled"
@keydown.enter="toggle"
>
- <span v-tooltip="checked ? $ts.itsOn : $ts.itsOff" class="button">
- <span class="handle"></span>
+ <span v-adaptive-border v-tooltip="checked ? $ts.itsOn : $ts.itsOff" class="button" @click.prevent="toggle">
+ <i class="check fas fa-check"></i>
</span>
<span class="label">
- <span><slot></slot></span>
+ <span @click="toggle"><slot></slot></span>
<p class="caption"><slot name="caption"></slot></p>
</span>
</div>
@@ -55,16 +51,7 @@ export default defineComponent({
.ziffeoms {
position: relative;
display: flex;
- cursor: pointer;
- transition: all 0.3s;
-
- &:first-child {
- margin-top: 0;
- }
-
- &:last-child {
- margin-bottom: 0;
- }
+ transition: all 0.2s;
> * {
user-select: none;
@@ -80,27 +67,30 @@ export default defineComponent({
> .button {
position: relative;
- display: inline-block;
+ display: inline-flex;
flex-shrink: 0;
margin: 0;
- width: 36px;
- height: 26px;
- background: var(--switchBg);
+ box-sizing: border-box;
+ width: 23px;
+ height: 23px;
outline: none;
- border-radius: 999px;
+ background: var(--panel);
+ border: solid 1px var(--panel);
+ border-radius: 4px;
+ cursor: pointer;
transition: inherit;
- > .handle {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 5px;
- margin: auto 0;
- border-radius: 100%;
- transition: background-color 0.3s, transform 0.3s;
- width: 16px;
- height: 16px;
- background-color: #fff;
+ > .check {
+ margin: auto;
+ opacity: 0;
+ color: var(--fgOnAccent);
+ font-size: 13px;
+ }
+ }
+
+ &:hover {
+ > .button {
+ border-color: var(--inputBorderHover) !important;
}
}
@@ -108,13 +98,13 @@ export default defineComponent({
margin-left: 16px;
margin-top: 2px;
display: block;
- cursor: pointer;
transition: inherit;
color: var(--fg);
> span {
display: block;
line-height: 20px;
+ cursor: pointer;
transition: inherit;
}
@@ -129,12 +119,6 @@ export default defineComponent({
}
}
- &:hover {
- > .button {
- background-color: var(--accentedBg);
- }
- }
-
&.disabled {
opacity: 0.6;
cursor: not-allowed;
@@ -142,11 +126,11 @@ export default defineComponent({
&.checked {
> .button {
- background-color: var(--accent);
- border-color: var(--accent);
+ background-color: var(--accent) !important;
+ border-color: var(--accent) !important;
- > .handle {
- transform: translateX(10px);
+ > .check {
+ opacity: 1;
}
}
}