add basic routing and nav-bar #2

Merged
remi.arnal merged 1 commits from routing into master 12 months ago

@ -1,6 +1,12 @@
<h1>Ratatouille</h1> <h1>Ratatouille</h1>
<div class="wrapper"> <nav>
<app-recipe-list></app-recipe-list> <ul>
<app-recipe-form></app-recipe-form> <li><a routerLink="/" routerLinkActive="active" ariaCurrentWhenActive="page">Home</a></li>
<li><a routerLink="/add" routerLinkActive="active" ariaCurrentWhenActive="page">Add Recipe</a></li>
</ul>
</nav>
<div id="page-wrapper">
<router-outlet></router-outlet>
</div> </div>

@ -1,5 +1,5 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router'; import { RouterOutlet, RouterLink } from '@angular/router';
import { RecipeFormComponent } from './recipe-form/recipe-form.component'; import { RecipeFormComponent } from './recipe-form/recipe-form.component';
import { RecipeService } from './services/recipe.service'; import { RecipeService } from './services/recipe.service';
import { Recipe } from './model/recipe.model'; import { Recipe } from './model/recipe.model';
@ -10,6 +10,7 @@ import { RecipeListComponent } from './components/recipe-list/recipe-list.compon
standalone: true, standalone: true,
imports: [ imports: [
RouterOutlet, RouterOutlet,
RouterLink,
RecipeFormComponent, RecipeFormComponent,
RecipeListComponent, RecipeListComponent,
], ],

@ -6,3 +6,4 @@ import { routes } from './app.routes';
export const appConfig: ApplicationConfig = { export const appConfig: ApplicationConfig = {
providers: [provideRouter(routes)] providers: [provideRouter(routes)]
}; };

@ -1,3 +1,9 @@
import { Routes } from '@angular/router'; import { Routes } from '@angular/router'
export const routes: Routes = []; import { RecipeFormComponent } from "./recipe-form/recipe-form.component";
import { RecipeListComponent } from "./components/recipe-list/recipe-list.component";
export const routes: Routes = [
{ path: 'add', component: RecipeFormComponent },
{ path: '', component: RecipeListComponent }
];

@ -0,0 +1,5 @@
#recipe-list {
display: flex;
flex-wrap: wrap;
gap: 2rem;
}

@ -1,4 +1,3 @@
<p>recipe-list works!</p> <div id="recipe-list">
<div>
<app-recipe-mini *ngFor="let recipe of recipes" [recipe]="recipe"></app-recipe-mini> <app-recipe-mini *ngFor="let recipe of recipes" [recipe]="recipe"></app-recipe-mini>
</div> </div>

@ -3,7 +3,6 @@
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
width: 300px; width: 300px;
margin: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
} }
@ -59,6 +58,7 @@ button span {
position: relative; position: relative;
z-index: 1; z-index: 1;
} }
button i { button i {
position: absolute; position: absolute;
inset: 0; inset: 0;
@ -105,9 +105,11 @@ button:hover i::after {
0% { 0% {
transform: translateX(0); transform: translateX(0);
} }
50% { 50% {
transform: translateX(5px); transform: translateX(5px);
} }
100% { 100% {
transform: translateX(0); transform: translateX(0);
} }
@ -117,9 +119,11 @@ button:hover i::after {
0% { 0% {
box-shadow: #27272c; box-shadow: #27272c;
} }
50% { 50% {
box-shadow: 0 0 25px var(--clr); box-shadow: 0 0 25px var(--clr);
} }
100% { 100% {
box-shadow: #27272c; box-shadow: #27272c;
} }

@ -1,6 +1,7 @@
<div class="recipe-card"> <div class="recipe-card">
<div class="recipe-image"> <div class="recipe-image">
<img [src]="recipe.image" onerror="this.onerror=null;this.src='https://placehold.co/100x100';" alt="{{recipe.name}}"> <img [src]="recipe.image" onerror="this.onerror=null;this.src='https://placehold.co/100x100';"
alt="{{recipe.name}}">
</div> </div>
<div class="recipe-details"> <div class="recipe-details">
<h2>{{recipe.name}}</h2> <h2>{{recipe.name}}</h2>

@ -1 +1,3 @@
/* You can add global styles to this file, and also import other style files */ :root {
font-family: "Helvetica";
}
Loading…
Cancel
Save