From fce3ea3036102f845c3b416d6521bfd434ed15c5 Mon Sep 17 00:00:00 2001 From: rubikscraft Date: Tue, 19 Apr 2022 12:40:17 +0200 Subject: [PATCH] improve speeddial --- frontend/src/app/components/fab/fab.module.ts | 15 +++- .../components/fab/normal/fab.component.html | 4 +- .../components/fab/normal/fab.component.scss | 0 .../speed-dial/speed-dial-option.directive.ts | 11 +++ .../fab/speed-dial/speed-dial.animation.ts | 4 +- .../fab/speed-dial/speed-dial.component.html | 31 ++++---- .../fab/speed-dial/speed-dial.component.scss | 45 ------------ .../fab/speed-dial/speed-dial.component.ts | 57 +++++++++++---- .../src/app/routes/view/view.component.html | 31 ++++++-- .../src/app/routes/view/view.component.ts | 2 +- frontend/src/scss/fab.scss | 72 +++++++++++++++++++ frontend/src/scss/index.scss | 1 + frontend/src/scss/personal.scss | 30 -------- 13 files changed, 185 insertions(+), 118 deletions(-) delete mode 100644 frontend/src/app/components/fab/normal/fab.component.scss create mode 100644 frontend/src/app/components/fab/speed-dial/speed-dial-option.directive.ts delete mode 100644 frontend/src/app/components/fab/speed-dial/speed-dial.component.scss create mode 100644 frontend/src/scss/fab.scss diff --git a/frontend/src/app/components/fab/fab.module.ts b/frontend/src/app/components/fab/fab.module.ts index 24cbf55..efaa687 100644 --- a/frontend/src/app/components/fab/fab.module.ts +++ b/frontend/src/app/components/fab/fab.module.ts @@ -2,13 +2,22 @@ import { CommonModule } from '@angular/common'; import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { FabComponent } from './normal/fab.component'; +import { SpeedDialOptionDirective } from './speed-dial/speed-dial-option.directive'; import { SpeedDialComponent } from './speed-dial/speed-dial.component'; @NgModule({ - declarations: [FabComponent, SpeedDialComponent], - imports: [CommonModule, MatIconModule, MatButtonModule], + declarations: [FabComponent, SpeedDialComponent, SpeedDialOptionDirective], + imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule], schemas: [NO_ERRORS_SCHEMA], - exports: [FabComponent, SpeedDialComponent], + exports: [ + FabComponent, + MatIconModule, + MatButtonModule, + MatTooltipModule, + SpeedDialComponent, + SpeedDialOptionDirective, + ], }) export class FabModule {} diff --git a/frontend/src/app/components/fab/normal/fab.component.html b/frontend/src/app/components/fab/normal/fab.component.html index be20131..4f2204f 100644 --- a/frontend/src/app/components/fab/normal/fab.component.html +++ b/frontend/src/app/components/fab/normal/fab.component.html @@ -1,8 +1,8 @@ -
+
- - +
+
- @@ -45,4 +40,26 @@
- + + + + + diff --git a/frontend/src/app/routes/view/view.component.ts b/frontend/src/app/routes/view/view.component.ts index a9f03d8..8202da6 100644 --- a/frontend/src/app/routes/view/view.component.ts +++ b/frontend/src/app/routes/view/view.component.ts @@ -35,7 +35,7 @@ export class ViewComponent implements OnInit { this.imageLinks = this.imageService.CreateImageLinksFromID(id); } - downloadImage() { + download() { this.utilService.downloadFile(this.imageLinks.source); } diff --git a/frontend/src/scss/fab.scss b/frontend/src/scss/fab.scss new file mode 100644 index 0000000..92cc1e7 --- /dev/null +++ b/frontend/src/scss/fab.scss @@ -0,0 +1,72 @@ +@use "../node_modules/bootstrap/scss/bootstrap-grid.scss" as bs; + +// Fabs +.fab-wrapper { + display: flex; + justify-content: flex-end; + + .fab-position { + position: fixed; + bottom: 2rem; + z-index: 8; + + @include bs.media-breakpoint-down(xxl) { + right: 4rem; + } + + @include bs.media-breakpoint-down(xl) { + right: 2rem; + } + + @include bs.media-breakpoint-up(xl) { + bottom: 4rem; + } + + @include bs.media-breakpoint-up(xxl) { + transform: translateX(3rem); + } + } + + .speed-dial-options { + display: flex; + width: 100%; + + flex-direction: column; + align-content: center; + align-items: center; + + padding-bottom: 1rem; + + [mat-mini-fab] { + margin-bottom: 1rem; + } + } + + .speed-dial-main-button { + mat-icon { + position: absolute; + top: 50%; + left: 50%; + } + } + + .icon-main { + opacity: 1; + transform: translate(-50%, -50%); + } + .icon-hover { + opacity: 0; + transform: translate(-50%, -50%) rotate(-45deg); + } + + .speed-dial-is-open { + .icon-main { + opacity: 0; + transform: translate(-50%, -50%) rotate(45deg); + } + .icon-hover { + opacity: 1; + transform: translate(-50%, -50%); + } + } +} diff --git a/frontend/src/scss/index.scss b/frontend/src/scss/index.scss index 9b447e6..3e50db0 100644 --- a/frontend/src/scss/index.scss +++ b/frontend/src/scss/index.scss @@ -3,6 +3,7 @@ @use "./material/material-theme.scss"; @use "./fixes.scss"; @use "./personal.scss"; +@use "./fab.scss"; @use "./snackbar.scss"; diff --git a/frontend/src/scss/personal.scss b/frontend/src/scss/personal.scss index 403525d..35d7930 100644 --- a/frontend/src/scss/personal.scss +++ b/frontend/src/scss/personal.scss @@ -1,5 +1,3 @@ -@use "../node_modules/bootstrap/scss/bootstrap-grid.scss" as bs; - // Create white border around content .content-border { border-radius: 20px; @@ -48,34 +46,6 @@ } } -// Fabs -.fabholder { - display: flex; - justify-content: flex-end; - - & .fabposition { - position: fixed; - bottom: 2rem; - z-index: 8; - - @include bs.media-breakpoint-down(xxl) { - right: 4rem; - } - - @include bs.media-breakpoint-down(xl) { - right: 2rem; - } - - @include bs.media-breakpoint-up(xl) { - bottom: 4rem; - } - - @include bs.media-breakpoint-up(xxl) { - transform: translateX(3rem); - } - } -} - // Anim .container,