Skip to content

Commit df3060b

Browse files
authored
[Backport 1.27] Rework desktop install / startup UX (#5292)
## Summary Backporting #5292 to core/1.27 branch to fix desktop installation and startup UX issues. ## What's Changed This is a manual backport of commit b0f81b2 which reworks the desktop install and startup user experience. ### Merge Conflicts Resolved The automatic backport failed with conflicts in: - `src/components/install/GpuPicker.vue` - Resolved by keeping the changes made in the PR - `src/components/install/MirrorsConfiguration.vue` - Resolved by keeping the file deletion from the PR - `src/components/install/mirror/MirrorItem.vue` - Resolved by combination merge (all changes) - `src/views/ServerStartView.vue` - Resolved by combination merge (all changes) ## Original PR - PR: #5292 - Commit: b0f81b2 - Title: Rework desktop install / startup UX ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5756-Backport-1-27-Rework-desktop-install-startup-UX-5292-2786d73d365081668f4dc16694c51185) by [Unito](https://www.unito.io)
1 parent 26d777d commit df3060b

24 files changed

+1633
-630
lines changed
Lines changed: 3 additions & 0 deletions
Loading
39.6 KB
Loading

src/components/bottomPanel/tabs/terminal/BaseTerminal.vue

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
<template>
2-
<div ref="rootEl" class="relative overflow-hidden h-full w-full bg-black">
2+
<div
3+
ref="rootEl"
4+
class="relative overflow-hidden h-full w-full bg-neutral-900"
5+
>
36
<div class="p-terminal rounded-none h-full w-full p-2">
47
<div ref="terminalEl" class="h-full terminal-host" />
58
</div>
@@ -97,12 +100,13 @@ onUnmounted(() => {
97100
</script>
98101

99102
<style scoped>
103+
@reference '../../../../assets/css/style.css';
104+
100105
:deep(.p-terminal) .xterm {
101-
overflow-x: auto;
106+
@apply overflow-hidden;
102107
}
103108
104109
:deep(.p-terminal) .xterm-screen {
105-
background-color: black;
106-
overflow-y: hidden;
110+
@apply bg-neutral-900 overflow-hidden;
107111
}
108112
</style>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<template>
2+
<div :class="wrapperClass">
3+
<div class="grid grid-rows-2 gap-8">
4+
<!-- Top container: Logo -->
5+
<div class="flex items-end justify-center">
6+
<img
7+
src="/assets/images/comfy-brand-mark.svg"
8+
:alt="t('g.logoAlt')"
9+
class="w-60"
10+
/>
11+
</div>
12+
<!-- Bottom container: Progress and text -->
13+
<div class="flex flex-col items-center justify-center gap-4">
14+
<ProgressBar
15+
v-if="!hideProgress"
16+
:mode="progressMode"
17+
:value="progressPercentage ?? 0"
18+
:show-value="false"
19+
class="w-90 h-2 mt-8"
20+
:pt="{ value: { class: 'bg-brand-yellow' } }"
21+
/>
22+
<h1 v-if="title" class="font-inter font-bold text-3xl text-neutral-300">
23+
{{ title }}
24+
</h1>
25+
<p v-if="statusText" class="text-lg text-neutral-400">
26+
{{ statusText }}
27+
</p>
28+
</div>
29+
</div>
30+
</div>
31+
</template>
32+
33+
<script setup lang="ts">
34+
import ProgressBar from 'primevue/progressbar'
35+
import { computed } from 'vue'
36+
import { useI18n } from 'vue-i18n'
37+
38+
const { t } = useI18n()
39+
40+
/** Props for the StartupDisplay component */
41+
interface StartupDisplayProps {
42+
/** Progress: 0-100 for determinate, undefined for indeterminate */
43+
progressPercentage?: number
44+
/** Main title text */
45+
title?: string
46+
/** Status text shown below the title */
47+
statusText?: string
48+
/** Hide the progress bar */
49+
hideProgress?: boolean
50+
/** Use full screen wrapper (default: true) */
51+
fullScreen?: boolean
52+
}
53+
54+
const {
55+
progressPercentage,
56+
title,
57+
statusText,
58+
hideProgress = false,
59+
fullScreen = true
60+
} = defineProps<StartupDisplayProps>()
61+
62+
const progressMode = computed(() =>
63+
progressPercentage === undefined ? 'indeterminate' : 'determinate'
64+
)
65+
66+
const wrapperClass = computed(() =>
67+
fullScreen
68+
? 'flex items-center justify-center min-h-screen'
69+
: 'flex items-center justify-center'
70+
)
71+
</script>

src/components/install/DesktopSettingsConfiguration.vue

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
</p>
1111
</div>
1212

13-
<div class="flex flex-col bg-neutral-800 p-4 rounded-lg">
13+
<div class="flex flex-col bg-neutral-800 p-4 rounded-lg text-sm">
1414
<!-- Auto Update Setting -->
1515
<div class="flex items-center gap-4">
1616
<div class="flex-1">
1717
<h3 class="text-lg font-medium text-neutral-100">
1818
{{ $t('install.settings.autoUpdate') }}
1919
</h3>
20-
<p class="text-sm text-neutral-400 mt-1">
20+
<p class="text-neutral-400 mt-1">
2121
{{ $t('install.settings.autoUpdateDescription') }}
2222
</p>
2323
</div>
@@ -32,14 +32,10 @@
3232
<h3 class="text-lg font-medium text-neutral-100">
3333
{{ $t('install.settings.allowMetrics') }}
3434
</h3>
35-
<p class="text-sm text-neutral-400 mt-1">
35+
<p class="text-neutral-400">
3636
{{ $t('install.settings.allowMetricsDescription') }}
3737
</p>
38-
<a
39-
href="#"
40-
class="text-sm text-blue-400 hover:text-blue-300 mt-1 inline-block"
41-
@click.prevent="showMetricsInfo"
42-
>
38+
<a href="#" @click.prevent="showMetricsInfo">
4339
{{ $t('install.settings.learnMoreAboutData') }}
4440
</a>
4541
</div>
@@ -51,7 +47,9 @@
5147
<Dialog
5248
v-model:visible="showDialog"
5349
modal
50+
dismissable-mask
5451
:header="$t('install.settings.dataCollectionDialog.title')"
52+
class="select-none"
5553
>
5654
<div class="text-neutral-300">
5755
<h4 class="font-medium mb-2">
@@ -110,11 +108,7 @@
110108
</ul>
111109

112110
<div class="mt-4">
113-
<a
114-
href="https://comfy.org/privacy"
115-
target="_blank"
116-
class="text-blue-400 hover:text-blue-300 underline"
117-
>
111+
<a href="https://comfy.org/privacy" target="_blank">
118112
{{ $t('install.settings.dataCollectionDialog.viewFullPolicy') }}
119113
</a>
120114
</div>

0 commit comments

Comments
 (0)