diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html
index ffc3381ad..1e759d9f6 100644
--- a/src-ui/src/app/components/app-frame/app-frame.component.html
+++ b/src-ui/src/app/components/app-frame/app-frame.component.html
@@ -10,16 +10,12 @@
tourAnchor="tour.intro">
@if (!hasCustomBranding) {
-
+
} @else {
@if (customAppLogo) {
} @else {
-
+
}
{{ appTitle }}
diff --git a/src-ui/src/app/components/app-frame/app-frame.component.ts b/src-ui/src/app/components/app-frame/app-frame.component.ts
index c5fc93e61..2548c217b 100644
--- a/src-ui/src/app/components/app-frame/app-frame.component.ts
+++ b/src-ui/src/app/components/app-frame/app-frame.component.ts
@@ -45,6 +45,7 @@ import { TasksService } from 'src/app/services/tasks.service'
import { ToastService } from 'src/app/services/toast.service'
import { environment } from 'src/environments/environment'
import { ChatComponent } from '../chat/chat/chat.component'
+import { BrandMarkComponent } from '../common/logo/brand-mark/brand-mark.component'
import { LogoComponent } from '../common/logo/logo.component'
import { ProfileEditDialogComponent } from '../common/profile-edit-dialog/profile-edit-dialog.component'
import { DocumentDetailComponent } from '../document-detail/document-detail.component'
@@ -61,6 +62,7 @@ const SCROLL_THRESHOLD = 16
imports: [
GlobalSearchComponent,
LogoComponent,
+ BrandMarkComponent,
DocumentTitlePipe,
IfPermissionsDirective,
ToastsDropdownComponent,
diff --git a/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.html b/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.html
new file mode 100644
index 000000000..246fa32d6
--- /dev/null
+++ b/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.html
@@ -0,0 +1,3 @@
+
diff --git a/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.ts b/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.ts
new file mode 100644
index 000000000..41144c62e
--- /dev/null
+++ b/src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.ts
@@ -0,0 +1,14 @@
+import { Component, input } from '@angular/core'
+
+@Component({
+ selector: 'pngx-brand-mark',
+ templateUrl: './brand-mark.component.html',
+ host: {
+ '[style.width]': 'width()',
+ '[style.height]': 'height()',
+ },
+})
+export class BrandMarkComponent {
+ readonly width = input
(null)
+ readonly height = input(null)
+}
diff --git a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html
index 63532813f..ee0b4486f 100644
--- a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html
+++ b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html
@@ -1,10 +1,18 @@
-
- Paperless-ngx is running! 🎉
- You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below.
- More detail on how to use and configure Paperless-ngx is always available in the documentation.
-
-
-
Thanks for being a part of the Paperless-ngx community!
-
+
+
+
+
+
+
Paperless-ngx is running! 🎉
+
+
You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below.
+
More detail on how to use and configure Paperless-ngx is always available in the documentation.
+
+
+
+
Thanks for being a part of the Paperless-ngx community!
+
+
+
diff --git a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.scss b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.scss
index e69de29bb..117bdb42c 100644
--- a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.scss
+++ b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.scss
@@ -0,0 +1,16 @@
+.welcome-widget {
+ border-color: color-mix(in srgb, var(--bs-primary) 50%, transparent);
+
+ hr {
+ border-top-color: color-mix(in srgb, var(--bs-primary) 25%, transparent);
+ }
+}
+
+.welcome-copy {
+ max-width: 68ch;
+}
+
+.welcome-watermark {
+ right: -6rem;
+ opacity: .07;
+}
diff --git a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.ts b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.ts
index 7bcc160f3..834e729c7 100644
--- a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.ts
+++ b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.ts
@@ -1,12 +1,13 @@
import { Component, EventEmitter, Output, inject } from '@angular/core'
import { NgbAlertModule } from '@ng-bootstrap/ng-bootstrap'
import { TourService } from 'ngx-ui-tour-ng-bootstrap'
+import { BrandMarkComponent } from '../../../common/logo/brand-mark/brand-mark.component'
@Component({
selector: 'pngx-welcome-widget',
templateUrl: './welcome-widget.component.html',
styleUrls: ['./welcome-widget.component.scss'],
- imports: [NgbAlertModule],
+ imports: [NgbAlertModule, BrandMarkComponent],
})
export class WelcomeWidgetComponent {
readonly tourService = inject(TourService)