Commit 29276e293d178ae4f79fda5d96b1e2593bb59d93
1 parent
3ec84c85
feat: 更新标题&图片alt&keyword&h4
Showing
23 changed files
with
138 additions
and
80 deletions
README.md
... | ... | @@ -17,9 +17,9 @@ docker run -d -p 8088:3000 --name canrud-outside-front canrud-outside-front:dev |
17 | 17 | 1. 修改 deploy/prod.sh的 TAG 将版本号+1,默认改动小版本,如1.0.0->1.0.1 |
18 | 18 | 1. 在根目录执行 sh deploy/prod.sh |
19 | 19 | 1. 登录112服务器,,将镜像拷贝到生产的47服务器 |
20 | -scp /root/web/canrud-outside-nuxt-front/canrud-outside-front_1.0.2.tar root@47.89.254.121:/root/web/canrud-outside-nuxt-front | |
20 | +scp /root/web/canrud-outside-nuxt-front/canrud-outside-front_1.0.6.tar root@47.89.254.121:/root/web/canrud-outside-nuxt-front | |
21 | 21 | 1. 登录47服务器,进入到 /root/web/canrud-outside-nuxt-front 目录 |
22 | -1. 加载镜像 docker load -i canrud-outside-front_1.0.2.tar (1.0.0对应你的tag) | |
22 | +1. 加载镜像 docker load -i canrud-outside-front_1.0.6.tar (1.0.0对应你的tag) | |
23 | 23 | 1. 修改 docker-compose.yaml 的镜像版本号 |
24 | 24 | 1. 启动服务 docker-compose up -d |
25 | 25 | ... | ... |
components/ContactDialog.vue
... | ... | @@ -34,7 +34,7 @@ |
34 | 34 | <span class="text-grey-darken-4 font-weight-medium"> contactcanrd </span> |
35 | 35 | </v-card-text> |
36 | 36 | <p> |
37 | - <img src="/wechat.jpg" alt="" width="140" class="tw-m-auto tw-block" /> | |
37 | + <img src="/wechat.jpg" alt="canrud-wechat" width="140" class="tw-m-auto tw-block" /> | |
38 | 38 | </p> |
39 | 39 | <!-- <v-card-actions class="pa-0"> |
40 | 40 | <v-btn color="blue-darken-1" block @click="dialogStore.updateDialog(false)">Close </v-btn> | ... | ... |
components/Footer.vue
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | <p>Phone: +86 19867737979</p> |
25 | 25 | <p>Wechat: contactcanrd</p> |
26 | 26 | </div> |
27 | - <img class="tw-float-left" src="/wechat.jpg" width="80" /> | |
27 | + <img class="tw-float-left" src="/wechat.jpg" alt="canrud-wechat" width="80" /> | |
28 | 28 | </v-col> |
29 | 29 | </v-row> |
30 | 30 | </v-container> |
... | ... | @@ -38,10 +38,12 @@ b { |
38 | 38 | margin-bottom: 12px; |
39 | 39 | display: block; |
40 | 40 | } |
41 | + | |
41 | 42 | p { |
42 | 43 | cursor: pointer; |
43 | 44 | margin-bottom: 8px; |
44 | 45 | } |
46 | + | |
45 | 47 | p a:hover { |
46 | 48 | color: #e0e0e0; |
47 | 49 | } | ... | ... |
components/Header.vue
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | <router-link to="/"><v-img src="/logo.jpg" alt="canrud" /></router-link> |
6 | 6 | </v-col> |
7 | 7 | <v-col cols="6" md="8" class="px-0"> |
8 | - <v-text-field label="Search keyword" hide-details="auto" variant="solo" append-inner-icon="mdi-magnify" | |
9 | - @click:appendInner="handleClick" @keydown="handleKeyDown" v-model="input"> | |
8 | + <v-text-field name="keyword" label="Search keyword" hide-details="auto" variant="solo" | |
9 | + append-inner-icon="mdi-magnify" @click:appendInner="handleClick" @keydown="handleKeyDown" v-model="input"> | |
10 | 10 | </v-text-field> |
11 | 11 | </v-col> |
12 | 12 | <v-col cols="4" md="2" class="px-0"> |
... | ... | @@ -30,11 +30,11 @@ |
30 | 30 | <v-tab :value="4" to="/contact"><span @click="handleTabClick" |
31 | 31 | class="text-grey-lighten-3 tw-font-bold">Contact</span> |
32 | 32 | </v-tab> |
33 | - <v-tab> | |
34 | - <span class="text-grey-lighten-3 tw-font-bold"> | |
35 | - <a href="http://blog.canrud.com/" target="" title="Blog">Blog</a> | |
36 | - </span> | |
37 | - </v-tab> | |
33 | + <v-tab> | |
34 | + <span class="text-grey-lighten-3 tw-font-bold"> | |
35 | + <a href="http://blog.canrud.com/" target="" title="Blog">Blog</a> | |
36 | + </span> | |
37 | + </v-tab> | |
38 | 38 | </v-tabs> |
39 | 39 | </div> |
40 | 40 | </div> |
... | ... | @@ -71,7 +71,7 @@ const handleClick = () => { |
71 | 71 | categoryStore.updateDisplay(!input.value) |
72 | 72 | productStore.updateKeyword(input.value) |
73 | 73 | productStore.updatePageNo(1) |
74 | - router.push('/products') | |
74 | + router.push({ path: '/products', query: { keyword: input.value } }) | |
75 | 75 | } |
76 | 76 | |
77 | 77 | const tab = ref(1) |
... | ... | @@ -100,6 +100,11 @@ onMounted(() => { |
100 | 100 | if (obj.flag) { |
101 | 101 | dialog.updateDialog(true) |
102 | 102 | } |
103 | + | |
104 | + if (obj.keyword) { | |
105 | + productStore.updateKeyword(obj.keyword) | |
106 | + categoryStore.updateDisplay(false) | |
107 | + } | |
103 | 108 | } |
104 | 109 | }) |
105 | 110 | </script> | ... | ... |
components/MainTitleList.vue
1 | 1 | <template> |
2 | 2 | <div class="text-blue-darken-1 text-h4 text-sm-h3 tw-text-center tw-mb-[16px] font-weight-bold"> |
3 | - <div :class="titleCls">{{ title }}</div> | |
3 | + <h2 :class="titleCls">{{ title }}</h2> | |
4 | 4 | </div> |
5 | 5 | <div class="text-body-1 tw-max-w-[600px] tw-m-auto tw-mb-8"> |
6 | - <span class="tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium text-grey-darken-1">{{ | |
6 | + <section class="tw-inline tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium text-grey-darken-1">{{ | |
7 | 7 | desc |
8 | - }}</span> | |
8 | + }}</section> | |
9 | 9 | <router-link :to="href" v-if="href"> |
10 | 10 | <span |
11 | - class="font-weight-bold text-decoration-underline tw-inline-block tw-underline tw-text-sky-500 hover:tw-text-sky-800" | |
12 | - >detail | |
11 | + class="font-weight-bold text-decoration-underline tw-inline-block tw-underline tw-text-sky-500 hover:tw-text-sky-800">detail | |
13 | 12 | <v-icon class="tw-mt-[-4px]" size="18" icon="mdi-arrow-right"></v-icon> |
14 | 13 | </span> |
15 | 14 | </router-link> |
... | ... | @@ -18,16 +17,9 @@ |
18 | 17 | <v-row> |
19 | 18 | <v-col v-for="(item, index) in list" :key="index" cols="6" :lg="lgCol" md="4" sm="6"> |
20 | 19 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> |
21 | - <v-card | |
22 | - color="blue-darken-1" | |
23 | - variant="outlined" | |
24 | - :elevation="isHovering ? 16 : 2" | |
25 | - :class="{ 'on-hover': isHovering }" | |
26 | - class="mx-auto" | |
27 | - max-width="260" | |
28 | - v-bind="props" | |
29 | - @click="handleCardClick(item)" | |
30 | - > | |
20 | + <v-card color="blue-darken-1" variant="outlined" :elevation="isHovering ? 16 : 2" | |
21 | + :class="{ 'on-hover': isHovering }" class="mx-auto" max-width="260" v-bind="props" | |
22 | + @click="handleCardClick(item)"> | |
31 | 23 | <v-img :src="item.imageUrl" :alt="item.name" /> |
32 | 24 | <div class="text-center bg-blue-darken-1 tw-text-center tw-w-full tw-h-9 tw-leading-9"> |
33 | 25 | {{ item.name }} |
... | ... | @@ -41,21 +33,12 @@ |
41 | 33 | <v-row> |
42 | 34 | <v-col v-for="(item, index) in list" :key="index"> |
43 | 35 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> |
44 | - <v-card | |
45 | - color="blue-darken-1" | |
46 | - variant="outlined" | |
47 | - :elevation="isHovering ? 16 : 2" | |
48 | - :class="{ 'on-hover': isHovering }" | |
49 | - class="pt-5 mx-auto" | |
50 | - height="350" | |
51 | - v-bind="props" | |
52 | - :href="item.href ? item.href : undefined" | |
53 | - @click="handleCardClick(item)" | |
54 | - > | |
36 | + <v-card color="blue-darken-1" variant="outlined" :elevation="isHovering ? 16 : 2" | |
37 | + :class="{ 'on-hover': isHovering }" class="pt-5 mx-auto" height="350" v-bind="props" | |
38 | + :href="item.href ? item.href : undefined" @click="handleCardClick(item)"> | |
55 | 39 | <v-img :src="item.imageUrl" width="250" class="text-center ma-auto" /> |
56 | 40 | <div |
57 | - class="text-center bg-blue-darken-1 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9" | |
58 | - > | |
41 | + class="text-center bg-blue-darken-1 tw-absolute tw-bottom-0 tw-text-center tw-w-full tw-h-9 tw-leading-9"> | |
59 | 42 | {{ item.name }} |
60 | 43 | </div> |
61 | 44 | </v-card> | ... | ... |
components/MainTitleListOdd.vue
1 | 1 | <template> |
2 | 2 | <div class="text-blue-darken-1 tw-text-center tw-mb-[16px] font-weight-bold text-h4 text-sm-h3"> |
3 | - <div :class="titleCls">{{ title }}</div> | |
3 | + <h2 :class="titleCls">{{ title }}</h2> | |
4 | 4 | </div> |
5 | 5 | <div class="text-body-1 tw-max-w-[600px] tw-m-auto tw-mb-8"> |
6 | 6 | <span class="tw-mb-[64px] tw-max-w-[600px] tw-m-auto font-weight-medium text-grey-darken-1">{{ |
7 | 7 | desc |
8 | - }}</span> | |
8 | + }}</span> | |
9 | 9 | <router-link :to="href" v-if="href"> |
10 | 10 | <span |
11 | - class="font-weight-bold text-decoration-underline tw-inline-block tw-underline tw-text-sky-500 hover:tw-text-sky-800" | |
12 | - >detail | |
11 | + class="font-weight-bold text-decoration-underline tw-inline-block tw-underline tw-text-sky-500 hover:tw-text-sky-800">detail | |
13 | 12 | <v-icon class="tw-mt-[-4px]" size="18" icon="mdi-arrow-right"></v-icon> |
14 | 13 | </span> |
15 | 14 | </router-link> |
... | ... | @@ -18,16 +17,18 @@ |
18 | 17 | <v-row> |
19 | 18 | <v-col v-for="(item, index) in list" :key="index" cols="4" lg="4" md="4" sm="6"> |
20 | 19 | <v-hover v-slot="{ isHovering, props }" open-delay="200" :disabled="disabled"> |
21 | - <v-card | |
22 | - color="blue-darken-1" | |
23 | - variant="outlined" | |
24 | - :elevation="isHovering ? 16 : 2" | |
25 | - :class="{ 'on-hover': isHovering }" | |
26 | - class="pt-5 mx-auto" | |
27 | - v-bind="props" | |
28 | - @click="handleCardClick(item)" | |
29 | - > | |
30 | - <v-img :src="item.imageUrl" class="text-center ma-auto" :alt="item.name" /> | |
20 | + <v-card color="blue-darken-1" variant="outlined" :elevation="isHovering ? 16 : 2" | |
21 | + :class="{ 'on-hover': isHovering }" class="pt-5 mx-auto " v-bind="props" @click="handleCardClick(item)"> | |
22 | + <div class="relative w-full bg-gray-200 aspect-w-1 aspect-h-1 aspect-w "> | |
23 | + <v-img :src="item.imageUrl" class="tw-min-h-[100px] absolute inset-0 object-cover w-full h-full" | |
24 | + :alt="item.name"> | |
25 | + <template v-slot:placeholder> | |
26 | + <div class="justify-center d-flex align-center fill-height"> | |
27 | + <v-progress-circular color="grey-lighten-4" indeterminate></v-progress-circular> | |
28 | + </div> | |
29 | + </template> | |
30 | + </v-img> | |
31 | + </div> | |
31 | 32 | <div class="text-center bg-blue-darken-1 tw-text-center tw-w-full tw-h-9 tw-leading-9"> |
32 | 33 | {{ item.name }} |
33 | 34 | </div> | ... | ... |
components/MobileHeader.vue
... | ... | @@ -36,10 +36,10 @@ |
36 | 36 | <v-divider></v-divider> |
37 | 37 | <v-list-item to="/contact" title="Contact" value="contact" @click="handleTabClick" |
38 | 38 | color="blue-darken-1"></v-list-item> |
39 | - <v-divider></v-divider> | |
40 | - <v-list-item title="Blog" value="blog" color="blue-darken-1"> | |
41 | - <a href="http://blog.canrud.com/" target="" title="Blog">Blog</a> | |
42 | - </v-list-item> | |
39 | + <v-divider></v-divider> | |
40 | + <v-list-item title="Blog" value="blog" color="blue-darken-1"> | |
41 | + <a href="http://blog.canrud.com/" target="" title="Blog">Blog</a> | |
42 | + </v-list-item> | |
43 | 43 | </v-list> |
44 | 44 | </v-navigation-drawer> |
45 | 45 | </v-layout> |
... | ... | @@ -111,6 +111,28 @@ const handleTabClick = () => { |
111 | 111 | watchEffect(() => { |
112 | 112 | input.value = productStore.keyword |
113 | 113 | }) |
114 | + | |
115 | +onMounted(() => { | |
116 | + // 获取url的参数 | |
117 | + const url = window.location.href | |
118 | + const index = url.indexOf('?') | |
119 | + if (index !== -1) { | |
120 | + const params = url.slice(index + 1).split('&') | |
121 | + const obj: any = {} | |
122 | + params.forEach((item) => { | |
123 | + const arr = item.split('=') | |
124 | + obj[arr[0]] = arr[1] | |
125 | + }) | |
126 | + // 获取dialog的状态 | |
127 | + if (obj.flag) { | |
128 | + dialog.updateDialog(true) | |
129 | + } | |
130 | + | |
131 | + if (obj.keyword) { | |
132 | + productStore.updateKeyword(obj.keyword) | |
133 | + } | |
134 | + } | |
135 | +}) | |
114 | 136 | </script> |
115 | 137 | |
116 | 138 | <style lang="scss" scoped> | ... | ... |
components/MobileProductDetail.vue
... | ... | @@ -43,7 +43,8 @@ |
43 | 43 | </div> |
44 | 44 | </div> |
45 | 45 | </v-sheet> |
46 | - <v-btn size="large" color="blue-darken-1" @click="dialogStore.updateDialog(true)"> | |
46 | + <v-btn size="large" color="blue-darken-1" @click="router.push('/contact')"> | |
47 | + | |
47 | 48 | Quotation Inquiry |
48 | 49 | </v-btn> |
49 | 50 | </div> |
... | ... | @@ -115,6 +116,7 @@ const info = props.info |
115 | 116 | // }) |
116 | 117 | const tab = ref(0) |
117 | 118 | const slide = ref(0) |
119 | +const router = useRouter() | |
118 | 120 | </script> |
119 | 121 | |
120 | 122 | <style lang="scss" scoped> | ... | ... |
components/ProductDetail.vue
... | ... | @@ -43,7 +43,7 @@ |
43 | 43 | <td class="td text-grey-darken-4 font-weight-medium">{{ item.typeName }}</td> |
44 | 44 | <!-- <td class="td">{{ item.price }}</td> --> |
45 | 45 | <td class="td"> |
46 | - <v-btn size="small" color="blue-darken-1" @click="dialogStore.updateDialog(true)"> | |
46 | + <v-btn size="small" color="blue-darken-1" @click="router.push('/contact')"> | |
47 | 47 | Quotation Inquiry |
48 | 48 | </v-btn> |
49 | 49 | </td> |
... | ... | @@ -123,6 +123,7 @@ const info = props.info |
123 | 123 | |
124 | 124 | const tab = ref(0) |
125 | 125 | const slide = ref(0) |
126 | +const router = useRouter() | |
126 | 127 | </script> |
127 | 128 | |
128 | 129 | <style lang="scss" scoped> | ... | ... |
deploy/prod.sh
package.json
pages/contact.vue
... | ... | @@ -24,11 +24,15 @@ |
24 | 24 | <span>contactcanrd</span> |
25 | 25 | </div> |
26 | 26 | <div class="tw-w-[300px]"> |
27 | - <v-img src="/wechat.jpg"></v-img> | |
27 | + <v-img src="/wechat.jpg" alt="canrud-wechat"></v-img> | |
28 | 28 | </div> |
29 | 29 | </v-card> |
30 | 30 | </template> |
31 | 31 | |
32 | -<script setup lang="ts"></script> | |
32 | +<script setup lang="ts"> | |
33 | +useHead({ | |
34 | + title: 'Contact', | |
35 | + | |
36 | +})</script> | |
33 | 37 | |
34 | 38 | <style lang="less" scoped></style> | ... | ... |
pages/customize.vue
pages/equipment.vue
pages/index.vue
... | ... | @@ -56,8 +56,8 @@ import MainTitleListOdd from '../components/MainTitleListOdd.vue' |
56 | 56 | import { useCategoryStore } from '../stores/category' |
57 | 57 | import { computed } from 'vue' |
58 | 58 | import { isMobile } from '../utils' |
59 | -onMounted(()=>{ | |
60 | - console.log('%c [ onMounted ]-10', 'font-size:13px; background:pink; color:#bf2c9f;',111) | |
59 | +onMounted(() => { | |
60 | + console.log('%c [ onMounted ]-10', 'font-size:13px; background:pink; color:#bf2c9f;', 111) | |
61 | 61 | }) |
62 | 62 | useHead({ |
63 | 63 | title: 'canrud', |
... | ... | @@ -65,15 +65,18 @@ useHead({ |
65 | 65 | { |
66 | 66 | name: 'title', |
67 | 67 | content: "科路得,助您科研之路势在必得。Canrd aims to be the world's leading one-stop service provider in new energy research. With a dedication to excellence, we offer Material Reagents, Lab Devices, Customized Batteries, Testing, and Advanced Packaging for energy materials and storage systems. We master advanced technologies to provide high-quality solutions. Our team's quick responses ensure tailored and professional services to meet your unique needs. Contact us at contact@canrd.com or call +86 19867737979 to explore our innovative offerings. Together, let's shape a greener, brighter world!" |
68 | - },{ | |
68 | + }, { | |
69 | 69 | name: 'keywords', |
70 | 70 | content: |
71 | - '科路得,canrd,canrud,Energy Storage Research,Lithium Batteries Research,Material Reagents,Lab Device,Customized Battery,Testing,Pack', | |
72 | - },{ | |
73 | - name:"description", | |
71 | + '科路得,canrd,canrud,Energy Storage Research,Lithium Batteries Research,Material Reagents,Lab Device,Customized Battery,Testing,Pack', | |
72 | + }, { | |
73 | + name: "description", | |
74 | 74 | content: |
75 | - "科路得,助您科研之路势在必得。Canrd aims to be the world's leading one-stop service provider in new energy research. With a dedication to excellence, we offer Material Reagents, Lab Devices, Customized Batteries, Testing, and Advanced Packaging for energy materials and storage systems. We master advanced technologies to provide high-quality solutions. Our team's quick responses ensure tailored and professional services to meet your unique needs. Contact us at contact@canrd.com or call +86 19867737979 to explore our innovative offerings. Together, let's shape a greener, brighter world!" | |
76 | - }] | |
75 | + "科路得,助您科研之路势在必得。Canrd aims to be the world's leading one-stop service provider in new energy research. With a dedication to excellence, we offer Material Reagents, Lab Devices, Customized Batteries, Testing, and Advanced Packaging for energy materials and storage systems. We master advanced technologies to provide high-quality solutions. Our team's quick responses ensure tailored and professional services to meet your unique needs. Contact us at contact@canrd.com or call +86 19867737979 to explore our innovative offerings. Together, let's shape a greener, brighter world!" | |
76 | + }], | |
77 | + link: [ | |
78 | + { rel: 'preload', href: '/banner/banner1.jpg', as: 'image' } | |
79 | + ] | |
77 | 80 | }) |
78 | 81 | |
79 | 82 | // useAsyncData(async ({ app }) => { |
... | ... | @@ -101,7 +104,7 @@ const banners = [ |
101 | 104 | '/banner/banner1.jpg', |
102 | 105 | '/banner/banner2.jpg', |
103 | 106 | '/banner/banner3.jpg', |
104 | - '/banner/banner4.png' | |
107 | + '/banner/banner5.jpg' | |
105 | 108 | ] |
106 | 109 | |
107 | 110 | const mobileBanners = [ | ... | ... |
pages/pack.vue
pages/products/detail/[id]/index.vue
... | ... | @@ -28,6 +28,25 @@ let { data: resData } = await useAsyncData('detail', () => $fetch('/shop/product |
28 | 28 | server: true // 仅在服务器端获取数据 |
29 | 29 | }) |
30 | 30 | |
31 | +useHead({ | |
32 | + title: info.name || 'canrud', | |
33 | + meta: [ | |
34 | + { | |
35 | + name: 'title', | |
36 | + content: | |
37 | + '科路得,Equipment,High-precision,Machining center,Design,Manufacturing capabilities,Equipment supply,Production line planning,Construction services,Battery assembly lines,Pouch cell testing lines', | |
38 | + }, { | |
39 | + name: 'keywords', | |
40 | + content: | |
41 | + '科路得,Equipment,High-precision,Machining center,Design,Manufacturing capabilities,Equipment supply,Production line planning,Construction services,Battery assembly lines,Pouch cell testing lines', | |
42 | + }, { | |
43 | + name: 'description', | |
44 | + content: | |
45 | + '科路得,助您科研之路势在必得。Equipment Business: With our self-built high-precision machining center, we possess robust design and manufacturing capabilities. We offer comprehensive equipment supply, production line planning, and construction services, including battery assembly lines, pouch cell testing lines, and more. Our aim is to provide complete equipment solutions that cater to the diverse needs of our clients. Expect top-quality equipment and professional services that will help you stand out in a fiercely competitive market!' | |
46 | + }, | |
47 | + ], | |
48 | +}) | |
49 | + | |
31 | 50 | const newData: Product = resData.value.data |
32 | 51 | |
33 | 52 | newData.productimageliststore = typeof newData.productimageliststore === 'string' ? | ... | ... |
pages/products/index.vue
... | ... | @@ -23,9 +23,11 @@ |
23 | 23 | </div> |
24 | 24 | </v-expand-transition> --> |
25 | 25 | </v-img> |
26 | - <v-card-text class="tw-text-left font-weight-medium title">{{ | |
27 | - item.name | |
28 | - }}</v-card-text> | |
26 | + <v-card-text class="tw-text-left font-weight-medium title"> | |
27 | + <h4>{{ | |
28 | + item.name | |
29 | + }}</h4> | |
30 | + </v-card-text> | |
29 | 31 | </v-card> |
30 | 32 | </v-hover> |
31 | 33 | </v-col> | ... | ... |
pages/test.vue
pnpm-lock.yaml
... | ... | @@ -28,6 +28,9 @@ devDependencies: |
28 | 28 | '@nuxtjs/i18n': |
29 | 29 | specifier: ^8.3.1 |
30 | 30 | version: 8.3.1(rollup@4.17.2)(vue@3.4.27) |
31 | + '@tailwindcss/aspect-ratio': | |
32 | + specifier: ^0.4.2 | |
33 | + version: 0.4.2(tailwindcss@3.4.3) | |
31 | 34 | autoprefixer: |
32 | 35 | specifier: ^10.4.19 |
33 | 36 | version: 10.4.19(postcss@8.4.38) |
... | ... | @@ -1901,6 +1904,14 @@ packages: |
1901 | 1904 | resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} |
1902 | 1905 | engines: {node: '>=18'} |
1903 | 1906 | |
1907 | + /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.3): | |
1908 | + resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} | |
1909 | + peerDependencies: | |
1910 | + tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' | |
1911 | + dependencies: | |
1912 | + tailwindcss: 3.4.3 | |
1913 | + dev: true | |
1914 | + | |
1904 | 1915 | /@trysound/sax@0.2.0: |
1905 | 1916 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} |
1906 | 1917 | engines: {node: '>=10.13.0'} | ... | ... |
public/banner/banner4.png deleted
100644 → 0
3.05 MB
public/banner/banner5.jpg
0 → 100644
335 KB