From 5090ffe39e8e982c53d404b595355bb1793dae8a Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 25 Aug 2026 21:47:13 -0700 Subject: [PATCH] Enhancement: welcome widget visual tweaks (#13794) --- .../app-frame/app-frame.component.html | 8 ++----- .../app-frame/app-frame.component.ts | 2 ++ .../logo/brand-mark/brand-mark.component.html | 3 +++ .../logo/brand-mark/brand-mark.component.ts | 14 +++++++++++ .../welcome-widget.component.html | 24 ++++++++++++------- .../welcome-widget.component.scss | 16 +++++++++++++ .../welcome-widget.component.ts | 3 ++- 7 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.html create mode 100644 src-ui/src/app/components/common/logo/brand-mark/brand-mark.component.ts 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)