diff --git a/src/app/app.ts b/src/app/app.ts
index 5409a370..edbdf408 100644
--- a/src/app/app.ts
+++ b/src/app/app.ts
@@ -1,16 +1,17 @@
-import {Component} from '@angular/core';
-import {RouterModule} from '@angular/router';
+import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
@Component({
- selector: 'app-root',
- imports: [RouterModule],
+ selector: 'app-root',
+ standalone: true,
+ imports: [RouterOutlet],
template: `
-
-
-
- `,
- styleUrls: ['./app.css'],
+
+
+
+ `,
+ styleUrls: ['./app.css'],
})
export class App {
- title = 'default';
-}
+ title = 'default';
+}
\ No newline at end of file
diff --git a/src/app/components/header/header.css b/src/app/components/header/header.css
new file mode 100644
index 00000000..cb315ce8
--- /dev/null
+++ b/src/app/components/header/header.css
@@ -0,0 +1,133 @@
+.window {
+ padding: 30px 50px;
+ box-sizing: border-box;
+ background: #efefef;
+ width: 100%;
+ height: 100vh;
+ max-height: 100vh !important;
+
+ color: #282828;
+}
+
+.header {
+ width: 100%;
+ display: grid;
+ grid-template-columns: 1fr auto 1fr;
+ align-items: center;
+ gap: 20px;
+ margin-bottom: 3vh;
+}
+
+
+
+.logo {
+ background: #fff;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-self: start; /* Aligne à gauche */
+}
+
+.logo img {
+ height: 7vh;
+}
+
+.navbar {
+ display: flex;
+ gap: 10px;
+ justify-self: center; /* Centre parfaitement */
+}
+
+.navbar button {
+ background: #fff;
+ border: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 5vh;
+ width: 5vh;
+ border-radius: 50px;
+ transition: 0.3s ease; /* Animation fluide */
+ cursor: pointer;
+}
+
+
+.navbar .active {
+ background: #8b6d7d;
+ color: #efefef;
+ width: auto;
+ padding: 10px 20px;
+ gap: 10px;
+ display: flex;
+ align-items: center;
+}
+
+.navbar .active:hover {
+ background: #80596e;
+}
+
+.navbar .active img {
+ filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg);
+}
+
+.navbar .active:hover img {
+ transform: none;
+}
+
+.navbar p {
+ font-size: 1.25em;
+}
+
+.navbar button:hover img {
+ transform: scale(0.85); /* Dézoom à 85% */
+}
+
+.navbar button:hover {
+ background: #fbfbfb;
+}
+
+.navbar button img {
+ height: 2.3vh;
+ transition: transform 0.2s ease; /* Animation fluide */
+ filter: brightness(0) saturate(100%) invert(30%) sepia(0%) saturate(0%) hue-rotate(0deg);
+}
+
+
+
+.profile {
+ background: #fff;
+ display: flex;
+ border-radius: 50px;
+ padding: 5px;
+ gap: 20px;
+ width: 30vh;
+ justify-self: end; /* Aligne à droite */
+}
+
+.profile .icon {
+ background: grey;
+ width: 5vh;
+ height: 5vh;
+ border-radius: 50px;
+}
+
+.profile .content {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.profile .content p {
+ font-size: 0.9em;
+
+
+ overflow: hidden; /* Cache ce qui dépasse */
+ text-overflow: ellipsis; /* Affiche les "..." */
+
+ max-width: 20vh; /* Optionnel : définir une largeur max */
+}
+
+.window-content {
+ width: 100%;
+ height: 90%;
+}
\ No newline at end of file
diff --git a/src/app/components/header/header.html b/src/app/components/header/header.html
new file mode 100644
index 00000000..91e7d9af
--- /dev/null
+++ b/src/app/components/header/header.html
@@ -0,0 +1,64 @@
+
\ No newline at end of file
diff --git a/src/app/components/pages/dashboard/dashboard.css b/src/app/components/pages/dashboard/dashboard.css
new file mode 100644
index 00000000..667d91ef
--- /dev/null
+++ b/src/app/components/pages/dashboard/dashboard.css
@@ -0,0 +1,269 @@
+.window {
+ width: 100%;
+ height: 100%;
+}
+* {
+ box-sizing: border-box;
+}
+h2 {
+ font-size: 1.5em;
+ font-weight: 400;
+ color: #daab3a;
+}
+.top {
+ width: 100%;
+ justify-content: space-between;
+ display: flex;
+}
+.top h1 {
+ color: #c1952e;
+ font-weight: 400;
+}
+.top .button-container {
+ display: flex;
+ gap: 1rem;
+}
+.top button {
+ padding: 10px 30px;
+ border-radius: 50px;
+}
+button:focus {
+ outline: none;
+}
+.orangeb {
+ background: linear-gradient(
+ 180deg,
+ #daab39 0%,
+ rgba(218, 171, 57, 0.76) 50%,
+ rgba(218, 171, 57, 0.52) 100%
+ );
+ border: none;
+ color: white;
+}
+.orangeb p {
+ font-weight: 500;
+ font-size: 1.1rem;
+}
+.whiteb {
+ background: transparent;
+ border: 2px solid #daab39;
+}
+.whiteb p {
+ color: #bf9631;
+ font-weight: 500;
+ font-size: 1.1rem;
+}
+.card-container {
+ margin-top: 30px;
+ box-sizing: border-box;
+ display: flex;
+ gap: 0.75rem;
+ height: 20%;
+}
+.card {
+ display: flex;
+ padding: 20px 30px;
+ width: 100%;
+ height: 100%;
+ box-sizing: border-box;
+ background: white;
+ border-radius: 20px;
+}
+.second-container {
+ margin-top: 0.75rem;
+ display: flex;
+ gap: 0.75rem;
+ box-sizing: border-box;
+ height: 68%;
+}
+.left {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+.left .card {
+ border-radius: 20px;
+ background: white;
+ width: 100%;
+ height: 100%;
+}
+.card2 {
+ display: flex;
+ padding: 10px 20px;
+ box-sizing: border-box;
+ border-radius: 20px;
+ background: white;
+ width: 100%;
+ height: 70%;
+}
+.right {
+ display: flex;
+
+ width: 100%;
+ height: 100%;
+}
+
+button {
+ cursor: pointer;
+
+}
+
+
+.top-card-content {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ justify-content: space-between;
+}
+
+h3 {
+ color: #b67332;
+ font-size: 3.2em;
+
+}
+
+.top-card-header {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+}
+
+.special-title {
+ color: #efefef;
+}
+
+.special-description {
+ color: white;
+}
+
+.special-card {
+ background: linear-gradient(
+ 180deg,
+ #b67332 20%,
+
+ #daab3a 100%
+ );
+}
+
+.team-top {
+ display: flex;
+ justify-content: space-between;
+
+ width: 100%;
+}
+
+
+.team-button-container {
+ display: flex;
+ align-items: start;
+
+
+ gap: 1rem;
+}
+
+.add {
+ display: flex;
+ padding: 10px 30px;
+ background: transparent;
+ border: 2px solid #daab39;
+
+
+ color: #bf9631;
+ font-weight: 500;
+ font-size: 1.1rem;
+ border-radius: 50px;
+ cursor: pointer;
+
+}
+
+
+.burger {
+ cursor: pointer;
+ border-radius: 50px;
+ display: flex;
+ padding: 10px;
+ background: transparent;
+ border: 2px solid #daab39;
+
+
+ color: #bf9631;
+ font-weight: 500;
+ font-size: 1.1rem;
+
+}
+
+
+.team-list {
+ margin-top: 20px;
+ display: flex;
+ flex-direction: column;
+ gap: 0.2rem;
+ width: 100%;
+
+ background: white;
+ border-radius: 12px;
+}
+
+.team-row {
+
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 12px 0;
+ transition: 0.3s ease;
+ cursor: pointer;
+}
+
+.team-row:hover {
+ background: rgba(239, 239, 239, 0.53);
+ padding: 12px 10px 12px 20px;
+ border-radius: 15px;
+}
+
+.avatar {
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ border: 2px solid #daab39;
+ margin-right: 15px;
+}
+
+.info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.name {
+ font-size: 1rem;
+ font-weight: 600;
+ color: #7b550a;
+ margin: 0;
+}
+
+.work {
+ font-size: 0.9rem;
+ color: #bf9631;
+ margin: 2px 0 0 0;
+}
+
+.work span {
+ color: #a37019;
+}
+
+.status {
+ padding: 6px 20px;
+ background: rgba(120, 88, 105, 0.09);
+ border: 2px solid #8b6d7d;
+ border-radius: 13px;
+ font-size: 0.9rem;
+ color: #785869;
+ cursor: pointer;
+ transition: 0.2s;
+}
+
+.status:hover {
+ background: #f7ede1;
+}
diff --git a/src/app/components/pages/dashboard/dashboard.html b/src/app/components/pages/dashboard/dashboard.html
new file mode 100644
index 00000000..06a403e2
--- /dev/null
+++ b/src/app/components/pages/dashboard/dashboard.html
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
Show Analystics
+
+
+
Show Progress
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Durand Solal
+
Workink on [nom du spectacle]
+
+
+
+
+
+
+
+
Cernon Timothé
+
Workink on [nom du spectacle]
+
+
+
+
+
+
+
+
Chevalier Abel
+
Workink on [nom du spectacle]
+
+
+
+
+
+
+
+
Nom Prénom
+
Workink on [nom du spectacle]
+
+
+
+
+
+
+
+
Nom Prénom
+
Workink on [nom du spectacle]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/components/pages/dashboard/dashboard.ts b/src/app/components/pages/dashboard/dashboard.ts
index 891486d6..b350e456 100644
--- a/src/app/components/pages/dashboard/dashboard.ts
+++ b/src/app/components/pages/dashboard/dashboard.ts
@@ -1,15 +1,14 @@
import { Component } from '@angular/core';
@Component({
- selector: 'app-dashboard',
- imports: [],
- template: `
-
- dashboard works!
-
- `,
- styles: ``
+ selector: 'app-dashboard',
+ standalone: true,
+ imports: [],
+ templateUrl: 'dashboard.html',
+ styleUrl: 'dashboard.css',
})
export class Dashboard {
-
-}
+ constructor() {
+ console.log('Dashboard component loaded');
+ }
+}
\ No newline at end of file
diff --git a/src/app/routes.ts b/src/app/routes.ts
index 44a9067b..6c18d9f3 100644
--- a/src/app/routes.ts
+++ b/src/app/routes.ts
@@ -1,23 +1,26 @@
-import {Routes} from '@angular/router';
+import { Routes } from '@angular/router';
export const routes: Routes = [
{
path: '',
- pathMatch: 'full',
- redirectTo: '/dashboard'
- },
- {
- path: 'dashboard',
- loadComponent: () => import('./components/pages/dashboard/dashboard').then(x => x.Dashboard),
+ loadComponent: () =>
+ import('./components/header/header').then(m => m.Header),
children: [
{
- path: 'test',
- loadComponent: () => import('./components/pages/test/test').then(x => x.Test)
- }
- ]
+ path: 'dashboard',
+ loadComponent: () =>
+ import('./components/pages/dashboard/dashboard').then(m => m.Dashboard),
+ },
+ {
+ path: '',
+ redirectTo: 'dashboard',
+ pathMatch: 'full',
+ },
+ ],
},
{
path: 'login',
- loadComponent: () => import('./components/pages/login/login').then(x => x.Login),
+ loadComponent: () =>
+ import('./components/pages/login/login').then(m => m.Login),
},
-];
+];
\ No newline at end of file
diff --git a/src/assets/header/calendar.svg b/src/assets/header/calendar.svg
new file mode 100644
index 00000000..42443870
--- /dev/null
+++ b/src/assets/header/calendar.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/src/assets/header/design.svg b/src/assets/header/design.svg
new file mode 100644
index 00000000..fe1c004d
--- /dev/null
+++ b/src/assets/header/design.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/src/assets/header/home.svg b/src/assets/header/home.svg
new file mode 100644
index 00000000..c759461c
--- /dev/null
+++ b/src/assets/header/home.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file