From 75d99d2120b7fa9af19ffed8a9b44ab6f59bee26 Mon Sep 17 00:00:00 2001 From: maropboia <164220066+maropboia@users.noreply.github.com> Date: Fri, 3 May 2024 11:38:59 +0600 Subject: [PATCH] improve --- .vitepress/theme/components/Switch.vue | 186 ++++++++++++++++++++++++- 1 file changed, 180 insertions(+), 6 deletions(-) diff --git a/.vitepress/theme/components/Switch.vue b/.vitepress/theme/components/Switch.vue index 430376a29..c2f425c9b 100644 --- a/.vitepress/theme/components/Switch.vue +++ b/.vitepress/theme/components/Switch.vue @@ -3,11 +3,63 @@ import { ref } from 'vue' import { Switch } from '@headlessui/vue' const enabled = ref(false) +const switchRef = ref(null) + +const toggleSwitch = () => { + enabled.value = !enabled.value +} + +const handleDisabled = () => { + // Handle disabled state +} + +const handleFocus = () => { + // Handle focus event +} + +const handleBlur = () => { + // Handle blur event +} @@ -24,15 +76,55 @@ const enabled = ref(false) border-color 0.25s, background-color 0.4s ease; border-radius: 11px; + cursor: pointer; + outline: none; } .switch.enabled { background-color: var(--vp-c-brand); } - - + +.switch:disabled .thumb, +.switch:read-only .thumb { + background-color: var(--vp-input-switch-disabled-thumb-bg-color); + box-shadow: none; +} + +.switch:disabled .thumb:hover, +.switch:read-only .thumb:hover { + background-color: var(--vp-input-switch-disabled-thumb-bg-color); + box-shadow: none; +} + +.switch.enabled:disabled .thumb, +.switch.enabled:read-only .thumb { + background-color: var(--vp-input-switch-disabled-thumb-bg-color); + box-shadow: none; +} + +.switch.enabled:disabled .thumb:hover, +.switch.enabled:read-only .thumb:hover { + background-color: var(--vp-input-switch-disabled-thumb-bg-color); + box-shadow: none; +} + +.switch[data-state="checked"]:not(:disabled):not(:read-only):hover .thumb { + background-color: var(--vp-input-switch-checked-hover-thumb-bg-color); +} + +.switch[data-state="unchecked"]:not(:disabled):not(:read-only):hover .thumb { + background-color: var(--vp-input-switch-unchecked-hover-thumb-bg-color); +} + +.switch[data-state="checked"]:not(:disabled):not(:read-only) .thumb { + background-color: var(--vp-input-switch-checked-thumb-bg-color); +} + +.switch[data-state="unchecked"]:not(:disabled):not(:read-only) .thumb { + background-color: var(--vp-input-switch-unchecked-thumb-bg-color); +} + +.switch[data-state="checked"]:not(:disabled):not(:read-only):active .thumb { + background-color: var(--vp-input-switch-checked-active-thumb-bg-color); +} + +.switch[data-state="unchecked"]:not(:disabled):not(:read-only):active .thumb { + background-color: var(--vp-input-switch-unchecked-active-thumb-bg-color); +} + +.switch[data-state="checked"]:not(:disabled):not(:read-only):focus .thumb { + background-color: var(--vp-input-switch-checked-focus-thumb-bg-color); +} + +.switch[data-state="unchecked"]:not(:disabled):not(:read-only):focus .thumb { + background-color: var(--vp-input-switch-unchecked-focus-thumb-bg-color); +} + +.switch[data-state="checked"]:not(:disabled):not(:read-only):focus-within .thumb { + background-color: var(--vp-input-switch-checked-focus-thumb-bg-color); +} + +.switch[data-state="unchecked"]:not(:disabled):not(:read-only):focus-within .thumb { + background-color: var(--vp-input-switch-unchecked-focus-thumb-bg-color); +} + +.switch[data-state="checked"]:disabled .thumb, +.switch[data-state="checked"]:read-only .thumb { + background-color: var(--vp-input-switch-disabled-checked-thumb-bg-color); +} + +.switch[data-state="unchecked"]:disabled .thumb, +.switch[data-state="unchecked"]:read-only .thumb { + background-color: var(--vp-input-switch-disabled-unchecked-thumb-bg-color); +} + +.switch[data-state="checked"]:disabled .thumb:hover, +.switch[data-state="checked"]:read-only .thumb:hover { + background-color: var(--vp-input-switch-disabled-checked-thumb-bg-color); +} + +.switch[data-state="unchecked"]:disabled .thumb:hover, +.switch[data-state="unchecked"]:read-only .thumb:hover { + background-color: var(--vp-input-switch-disabled-un