From 24c438a01ea910d69a48a75f45f169766fd2d252 Mon Sep 17 00:00:00 2001 From: Lobo Date: Sat, 17 Jan 2026 10:27:35 +0100 Subject: [PATCH] refactored projects site --- .../dialog/project-dialog.component.html | 61 ++++++++++ .../dialog/project-dialog.component.scss | 60 ++++++++++ .../dialog/project-dialog.component.ts | 35 ++++++ .../pages/projects/projects.component.html | 109 ++++++++---------- .../pages/projects/projects.component.scss | 82 ++++++++----- src/app/pages/projects/projects.component.ts | 92 +++++++++------ src/assets/i18n/de.json | 27 ++++- src/assets/i18n/en.json | 27 ++++- 8 files changed, 360 insertions(+), 133 deletions(-) create mode 100644 src/app/pages/projects/dialog/project-dialog.component.html create mode 100644 src/app/pages/projects/dialog/project-dialog.component.scss create mode 100644 src/app/pages/projects/dialog/project-dialog.component.ts diff --git a/src/app/pages/projects/dialog/project-dialog.component.html b/src/app/pages/projects/dialog/project-dialog.component.html new file mode 100644 index 0000000..3423c9f --- /dev/null +++ b/src/app/pages/projects/dialog/project-dialog.component.html @@ -0,0 +1,61 @@ +

{{ project.title | translate }}

+ +

{{ project.introduction | translate }}

+ + + + @if (project.images.length > 0) + { + + @for (img of project.images; track img) { + + + + } + + } + + + @for(tech of project.technologies; track tech) { + {{tech}} + } + + + + +
+ + + diff --git a/src/app/pages/projects/dialog/project-dialog.component.scss b/src/app/pages/projects/dialog/project-dialog.component.scss new file mode 100644 index 0000000..e494d7a --- /dev/null +++ b/src/app/pages/projects/dialog/project-dialog.component.scss @@ -0,0 +1,60 @@ +.my-swiper::part(button-prev), +.my-swiper::part(button-next) { + width: 35px; + height: 35px; + padding: 5px; + border-radius: 999px; + background: rgba(0,0,0,.5); + color: white; + + display: flex; + align-items: center; + justify-content: center; +} + +.my-swiper::part(button-prev):hover, +.my-swiper::part(button-next):hover { + background: rgba(0,0,0,.75); +} + +.my-swiper::part(pagination) { + bottom: 12px; +} + +.slide-img { + width: 100%; + height: auto; + max-height: 512px !important; + object-fit: cover; + border-radius: 12px; + display: block; +} + +ul { + padding-left: 20px; + margin-bottom: 1.5rem; +} + +li { + margin-bottom: 0.5rem; +} + +mat-chip-set { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +.link-section { + display: flex; + gap: 1rem; + margin-top: 1.5rem; + flex-wrap: wrap; + + a { + text-decoration: none; + } +} + +mat-dialog-actions { + justify-content: flex-end; +} diff --git a/src/app/pages/projects/dialog/project-dialog.component.ts b/src/app/pages/projects/dialog/project-dialog.component.ts new file mode 100644 index 0000000..8a7f561 --- /dev/null +++ b/src/app/pages/projects/dialog/project-dialog.component.ts @@ -0,0 +1,35 @@ +import {Component, inject, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core'; +import { + MAT_DIALOG_DATA, + MatDialogActions, + MatDialogClose, + MatDialogContent, + MatDialogTitle +} from '@angular/material/dialog'; +import {Projects} from '../projects.component'; +import {TranslatePipe} from '@ngx-translate/core'; +import {MatIcon} from '@angular/material/icon'; +import {MatChip, MatChipSet} from '@angular/material/chips'; +import {MatButton} from '@angular/material/button'; + +@Component({ + selector: 'app-project-dialog', + templateUrl: './project-dialog.component.html', + styleUrls: ['./project-dialog.component.scss'], + standalone: true, + imports: [ + MatDialogTitle, + MatDialogContent, + TranslatePipe, + MatIcon, + MatChip, + MatChipSet, + MatDialogActions, + MatButton, + MatDialogClose + ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class ProjectDialogComponent { + project: Projects = inject(MAT_DIALOG_DATA); +} diff --git a/src/app/pages/projects/projects.component.html b/src/app/pages/projects/projects.component.html index ed1bacd..137328e 100644 --- a/src/app/pages/projects/projects.component.html +++ b/src/app/pages/projects/projects.component.html @@ -1,63 +1,54 @@ - - @for (project of allProjects; track project) { - - - {{ project.title | translate }} - - {{ project.shortDescription | translate}} - {{ project.icon }} - - -

{{ project.introduction | translate }}

- - @if (project.link) - { -