mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-27 02:04:09 +00:00
## Summary Only remaining use is in `buttonTypes.ts` which @viva-jinyi is going to be working on to consolidate our different buttons soon. ## Changes - **What**: Replace light/dark colors with theme aware design system tokens. ## Review Focus Double check the chosen colors for the components ## Screenshots | Before | After | | ------ | ----- | | <img width="607" height="432" alt="image" src="https://github.com/user-attachments/assets/6c0ee6d6-819f-40b1-b775-f8b25dd18104" /> | <img width="646" height="488" alt="image" src="https://github.com/user-attachments/assets/9c8532de-8ac6-4b48-9021-3fd0b3e0bc63" /> | ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6705-Style-WIP-Design-System-use-across-more-components-2ab6d73d365081619115fc5f87a46341) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <github-actions@github.com>
64 lines
1.9 KiB
Vue
64 lines
1.9 KiB
Vue
<template>
|
|
<div class="h-full z-[8888] flex flex-col justify-between bg-comfy-menu-bg">
|
|
<div class="flex flex-col">
|
|
<div
|
|
v-for="tool in allTools"
|
|
:key="tool"
|
|
:class="[
|
|
'maskEditor_toolPanelContainer hover:bg-secondary-background-hover',
|
|
{ maskEditor_toolPanelContainerSelected: currentTool === tool }
|
|
]"
|
|
@click="onToolSelect(tool)"
|
|
>
|
|
<div
|
|
class="flex items-center justify-center"
|
|
v-html="iconsHtml[tool]"
|
|
></div>
|
|
<div class="maskEditor_toolPanelIndicator"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
class="flex flex-col items-center cursor-pointer rounded-md mb-2 transition-colors duration-200 hover:bg-secondary-background-hover"
|
|
:title="t('maskEditor.clickToResetZoom')"
|
|
@click="onResetZoom"
|
|
>
|
|
<span class="text-sm text-text-secondary">{{ zoomText }}</span>
|
|
<span class="text-xs text-text-secondary">{{ dimensionsText }}</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { computed } from 'vue'
|
|
|
|
import type { useToolManager } from '@/composables/maskeditor/useToolManager'
|
|
import { iconsHtml } from '@/extensions/core/maskeditor/constants'
|
|
import type { Tools } from '@/extensions/core/maskeditor/types'
|
|
import { allTools } from '@/extensions/core/maskeditor/types'
|
|
import { t } from '@/i18n'
|
|
import { useMaskEditorStore } from '@/stores/maskEditorStore'
|
|
|
|
const { toolManager } = defineProps<{
|
|
toolManager: ReturnType<typeof useToolManager>
|
|
}>()
|
|
|
|
const store = useMaskEditorStore()
|
|
|
|
const onToolSelect = (tool: Tools) => {
|
|
toolManager.switchTool(tool)
|
|
}
|
|
|
|
const currentTool = computed(() => store.currentTool)
|
|
|
|
const zoomText = computed(() => `${Math.round(store.displayZoomRatio * 100)}%`)
|
|
const dimensionsText = computed(() => {
|
|
const img = store.image
|
|
return img ? `${img.width}x${img.height}` : ' '
|
|
})
|
|
|
|
const onResetZoom = () => {
|
|
store.resetZoom()
|
|
}
|
|
</script>
|