File tree Expand file tree Collapse file tree 7 files changed +111
-17
lines changed Expand file tree Collapse file tree 7 files changed +111
-17
lines changed Original file line number Diff line number Diff line change 2
2
@tailwind components;
3
3
@tailwind utilities;
4
4
5
- /* body {
6
- @apply bg-grey-100 ;
7
- } */
5
+ body {
6
+ @apply bg-gray-50 ;
7
+ }
8
8
9
9
@layer components {
10
10
.btn {
11
11
@apply bg-[# 12b488 ] text-white px-3 py-2 rounded-md text-sm;
12
12
}
13
+ .card {
14
+ @apply p-3 rounded-md bg-white shadow-md h-full mt-3;
15
+ }
13
16
}
Original file line number Diff line number Diff line change
1
+ <template >
2
+ <div class =" card text-center" >
3
+ <img :src =" recipe.image" alt =" recipe thumb" class =" thumb" />
4
+ <p class =" font-bold text-gray-500 truncate" >{{ recipe.name }}</p >
5
+ <NuxtLink :to =" `/menu/${recipe.id}`" >
6
+ <p class =" btn" >View Details</p >
7
+ </NuxtLink >
8
+ </div >
9
+ </template >
10
+
11
+ <script setup lang="ts">
12
+ const { recipe } = defineProps ([" recipe" ]);
13
+ </script >
14
+
15
+ <style scoped>
16
+ .thumb {
17
+ max-height : 120px ;
18
+ max-width : 70% ;
19
+ margin : 0 auto ;
20
+ }
21
+ </style >
Original file line number Diff line number Diff line change
1
+ <template >
2
+ <div class =" card" >
3
+ <div class =" grid grid-cols-2 gap-10" >
4
+ <div class =" p-7" >
5
+ <img :src =" recipe.image" alt =" recipe image" class =" mx-auto my-7" />
6
+ </div >
7
+ <div class =" p-7" >
8
+ <h2 class =" text-4xl my-7" >{{ recipe.name }}</h2 >
9
+ <div class =" flex gap-2" >
10
+ <p class =" pr-[12px] border-r border-gray-200" >
11
+ <span class =" font-bold" >{{ recipe.ingredients.length }}</span >
12
+ Ingredients
13
+ </p >
14
+ <p class =" pl-[8px]" >
15
+ <span class =" font-bold" >{{ recipe.cookTimeMinutes }}</span >
16
+ min
17
+ </p >
18
+ </div >
19
+ <aside >
20
+ <div >
21
+ <h3 class =" text-2xl my-5 underline" >Do like this</h3 >
22
+ <ol >
23
+ <li
24
+ v-for =" (instructions, index) in recipe.instructions"
25
+ :key =" index"
26
+ >
27
+ {{ index + 1 + "." }} {{ instructions }}
28
+ </li >
29
+ </ol >
30
+ </div >
31
+ <div >
32
+ <h3 class =" text-2xl my-5 underline" >Ingredients</h3 >
33
+ <ul >
34
+ <li
35
+ v-for =" (ingredient, index) in recipe.ingredients"
36
+ :key =" index"
37
+ >
38
+ {{ ingredient }}
39
+ </li >
40
+ </ul >
41
+ </div >
42
+ </aside >
43
+ </div >
44
+ </div >
45
+ </div >
46
+ </template >
47
+
48
+ <script setup lang="ts">
49
+ const { recipe } = defineProps ([" recipe" ]);
50
+ </script >
51
+
52
+ <style scoped>
53
+ li {
54
+ margin-bottom : 8px ;
55
+ font-size : 16px ;
56
+ line-height : 1.2 ;
57
+ }
58
+ </style >
Original file line number Diff line number Diff line change 2
2
<div >
3
3
<header class =" shadow-sm bg-white" >
4
4
<nav class =" container-mx-auto p-4 flex justify-between" >
5
- <NuxtLink to =" /" class =" font-bold" >Nuxt Chas Academy</NuxtLink >
5
+ <NuxtLink to =" /" class =" font-bold text-2xl " >Nuxt Chas Academy</NuxtLink >
6
6
<ul class =" flex gap-4" >
7
7
<li ><NuxtLink to =" /" >Home</NuxtLink ></li >
8
- <li ><NuxtLink to =" /about" >About</NuxtLink ></li >
9
8
<li ><NuxtLink to =" /todo" >Todo List</NuxtLink ></li >
10
9
11
10
<li ><NuxtLink class =" btn" to =" /menu" >Food menu</NuxtLink ></li >
22
21
.router-link-exact-active {
23
22
color : #12b488 ;
24
23
}
24
+ .btn {
25
+ color : white ;
26
+ }
25
27
</style >
Original file line number Diff line number Diff line change 2
2
<div >
3
3
<header class =" shadow-sm bg-white" >
4
4
<nav class =" container mx-auto p-4" >
5
- <NuxtLink to =" /menu" class =" font-bold" >Nuxt Chas Menu</NuxtLink >
5
+ <NuxtLink to =" /menu" class =" font-bold text-2xl"
6
+ >Nuxt Chas Menu</NuxtLink
7
+ >
6
8
</nav >
7
9
</header >
8
10
<main class =" container mx-auto p4" >
9
11
<slot />
10
12
</main >
11
- <footer class =" container mx-auto p4 flex justify-between border-t-2" >
12
- <ul class =" flex gap-4" >
13
+ <footer class =" container mx-auto p4 flex justify-end border-t-2" >
14
+ <ul class =" flex gap-4 py-4 " >
13
15
<li ><NuxtLink to =" /" >Home</NuxtLink ></li >
14
- < li >< NuxtLink to = " /menu " >Food menu</ NuxtLink ></ li >
16
+
15
17
<li ><NuxtLink to =" /todo" >To Do List</NuxtLink ></li >
16
- <li ><NuxtLink to =" /about " >About </NuxtLink ></li >
18
+ <li ><NuxtLink class = " btn " to =" /menu " >Food menu </NuxtLink ></li >
17
19
</ul >
18
20
</footer >
19
21
</div >
Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div v-if =" recipe" >
3
- <div >Food details for {{ id }}</div >
4
- <div >{{ recipe.name }}</div >
3
+ <!-- <div
4
+ class="container mx-auto p-4 flex justify-center flex-col items-center"
5
+ >
6
+ <img class="w-[400px]" :src="recipe.image" :alt="recipe.name" />
7
+ <div>{{ recipe.name }}</div>
8
+ </div> -->
9
+
10
+ <MenuDetails :recipe =" recipe" />
5
11
</div >
12
+
6
13
<div v-else >Loading...</div >
7
14
</template >
8
15
9
16
<script setup lang="ts">
10
17
const { id } = useRoute ().params ;
11
- definePageMeta ({
12
- layout: " menu" ,
13
- });
14
18
15
19
const { data : recipe } = await useFetch <Recipe >(
16
20
` https://dummyjson.com/recipes/${id } `
17
21
);
22
+
23
+ definePageMeta ({
24
+ layout: " menu" ,
25
+ });
18
26
</script >
19
27
20
28
<style scoped></style >
Original file line number Diff line number Diff line change 2
2
<main >
3
3
<div class =" grid grid-cols-4 gap-5" >
4
4
<div v-for =" recipe in recipes" :key =" recipe.id" >
5
- <NuxtLink :to = " `/menu/${ recipe.id}` " >{{ recipe.name }}</ NuxtLink >
5
+ <MenuCard :recipe = " recipe" / >
6
6
</div >
7
7
</div >
8
8
</main >
@@ -19,7 +19,7 @@ const { data } = await useFetch<{ recipes: Recipe[] }>(
19
19
);
20
20
21
21
const recipes: Recipe [] = data .value ?.recipes || [];
22
- console .log (recipes );
22
+ // console.log(recipes);
23
23
</script >
24
24
25
25
<style scoped>
You can’t perform that action at this time.
0 commit comments