Skip to content

Commit 86ef498

Browse files
committed
style: Align card styles with Designs
1 parent df66a96 commit 86ef498

File tree

6 files changed

+27
-42
lines changed

6 files changed

+27
-42
lines changed

src/locales/en/main.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
"searchKeybindings": "Search Keybindings",
125125
"searchExtensions": "Search Extensions",
126126
"search": "Search",
127+
"searchPlaceholder": "Search...",
127128
"noResultsFound": "No Results Found",
128129
"searchFailedMessage": "We couldn't find any settings matching your search. Try adjusting your search terms.",
129130
"noTasksFound": "No Tasks Found",
@@ -2086,7 +2087,6 @@
20862087
"connectionError": "Please check your connection and try again",
20872088
"failedToCreateNode": "Failed to create node. Please try again or check console for details.",
20882089
"noModelsInFolder": "No {type} available in this folder",
2089-
"searchAssetsPlaceholder": "Type to search...",
20902090
"uploadModel": "Import model",
20912091
"uploadModelFromCivitai": "Import a model from Civitai",
20922092
"uploadModelFailedToRetrieveMetadata": "Failed to retrieve metadata. Please check the link and try again.",

src/platform/assets/components/AssetBadgeGroup.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="absolute right-2 bottom-2 flex flex-wrap justify-end gap-1">
2+
<div class="absolute left-2 bottom-2 flex flex-wrap justify-end gap-1">
33
<span
44
v-for="badge in badges"
55
:key="badge.label"

src/platform/assets/components/AssetBrowserModal.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
v-model="searchQuery"
2727
:autofocus="true"
2828
size="lg"
29-
:placeholder="$t('assetBrowser.searchAssetsPlaceholder')"
29+
:placeholder="$t('g.searchPlaceholder')"
3030
class="max-w-96"
3131
/>
3232
<IconTextButton

src/platform/assets/components/AssetCard.vue

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,25 @@
44
data-component-id="AssetCard"
55
:data-asset-id="asset.id"
66
v-bind="elementProps"
7-
:class="cardClasses"
7+
:class="
8+
cn(
9+
'rounded-2xl overflow-hidden transition-all duration-200 bg-modal-card-background p-2',
10+
interactive &&
11+
'group appearance-none bg-transparent m-0 outline-none cursor-pointer text-left hover:bg-secondary-background focus:bg-secondary-background border-none focus:outline-solid outline-base-foreground outline-4'
12+
)
13+
"
814
@click="interactive && $emit('select', asset)"
915
@keydown.enter="interactive && $emit('select', asset)"
1016
>
1117
<div class="relative aspect-square w-full overflow-hidden rounded-xl">
1218
<img
1319
v-if="shouldShowImage"
1420
:src="asset.preview_url"
15-
class="h-full w-full object-contain"
21+
class="size-full object-contain"
1622
/>
1723
<div
1824
v-else
19-
class="flex h-full w-full items-center justify-center bg-gradient-to-br from-smoke-400 via-smoke-800 to-charcoal-400"
25+
class="flex size-full items-center justify-center bg-gradient-to-br from-smoke-400 via-smoke-800 to-charcoal-400"
2026
></div>
2127
<AssetBadgeGroup :badges="asset.badges" />
2228
</div>
@@ -74,11 +80,15 @@ import type { AssetDisplayItem } from '@/platform/assets/composables/useAssetBro
7480
import { useSettingStore } from '@/platform/settings/settingStore'
7581
import { cn } from '@/utils/tailwindUtil'
7682
77-
const props = defineProps<{
83+
const { asset, interactive } = defineProps<{
7884
asset: AssetDisplayItem
7985
interactive?: boolean
8086
}>()
8187
88+
defineEmits<{
89+
select: [asset: AssetDisplayItem]
90+
}>()
91+
8292
const settingStore = useSettingStore()
8393
8494
const titleId = useId()
@@ -89,34 +99,14 @@ const tooltipDelay = computed<number>(() =>
8999
)
90100
91101
const { error } = useImage({
92-
src: props.asset.preview_url ?? '',
93-
alt: props.asset.name
102+
src: asset.preview_url ?? '',
103+
alt: asset.name
94104
})
95105
96-
const shouldShowImage = computed(() => props.asset.preview_url && !error.value)
97-
98-
const cardClasses = computed(() => {
99-
const base = cn(
100-
'rounded-xl overflow-hidden transition-all duration-200 bg-modal-card-background'
101-
)
102-
103-
if (!props.interactive) {
104-
return base
105-
}
106-
107-
return cn(
108-
base,
109-
'group',
110-
'appearance-none bg-transparent p-0 m-0',
111-
'font-inherit text-inherit outline-none cursor-pointer text-left',
112-
'hover:bg-secondary-background',
113-
'border-none',
114-
'focus:outline-solid outline-azure-600 outline-4'
115-
)
116-
})
106+
const shouldShowImage = computed(() => asset.preview_url && !error.value)
117107
118108
const elementProps = computed(() =>
119-
props.interactive
109+
interactive
120110
? {
121111
type: 'button',
122112
'aria-labelledby': titleId,
@@ -127,8 +117,4 @@ const elementProps = computed(() =>
127117
'aria-describedby': descId
128118
}
129119
)
130-
131-
defineEmits<{
132-
select: [asset: AssetDisplayItem]
133-
}>()
134120
</script>

src/platform/assets/components/AssetGrid.vue

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<template>
22
<div
33
data-component-id="AssetGrid"
4-
:style="gridStyle"
4+
:class="
5+
cn('grid grid-cols-[repeat(auto-fill,minmax(15rem,1fr))] gap-4 p-2')
6+
"
57
role="grid"
68
:aria-label="$t('assetBrowser.assetCollection')"
79
:aria-rowcount="-1"
@@ -34,19 +36,17 @@
3436
:key="asset.id"
3537
:asset="asset"
3638
:interactive="true"
37-
role="gridcell"
3839
@select="$emit('assetSelect', $event)"
3940
/>
4041
</template>
4142
</div>
4243
</template>
4344

4445
<script setup lang="ts">
45-
import { computed } from 'vue'
46+
import { cn } from '@comfyorg/tailwind-utils'
4647
4748
import AssetCard from '@/platform/assets/components/AssetCard.vue'
4849
import type { AssetDisplayItem } from '@/platform/assets/composables/useAssetBrowser'
49-
import { createGridStyle } from '@/utils/gridUtil'
5050
5151
defineProps<{
5252
assets: AssetDisplayItem[]
@@ -56,7 +56,4 @@ defineProps<{
5656
defineEmits<{
5757
assetSelect: [asset: AssetDisplayItem]
5858
}>()
59-
60-
// Use same grid style as BaseModalLayout
61-
const gridStyle = computed(() => createGridStyle())
6259
</script>

src/utils/gridUtil.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ interface GridOptions {
1414
}
1515

1616
/**
17+
* @deprecated Just use tailwind utilities directly.
18+
* TODO: Create a common grid layout component if needed.
1719
* Creates CSS grid styles for responsive grid layouts
1820
* @param options Grid configuration options
1921
* @returns CSS properties object for grid styling

0 commit comments

Comments
 (0)