Menu page arrow responsive and contact page form and image equal height updated

This commit is contained in:
akash 2025-09-27 15:01:38 +05:30
parent 107f07c035
commit 041638adde
6 changed files with 197 additions and 70 deletions

View File

@ -1,8 +1,24 @@
// app/blog/[slug]/page.tsx
// app/blog/[slug]/page.js
import PageBanner from "@/components/PageBanner";
import WellFoodLayout from "@/layout/WellFoodLayout";
import { Blog } from "@/utility/constant.utils";
export async function generateMetadata({ params }) {
const blog = Blog.find((item) => item.slug === params.slug);
if (!blog) {
return {
title: "Blog not found",
description: "The blog you are looking for does not exist.",
};
}
return {
title: blog.metatitle,
description: blog.metadescription,
};
}
export async function generateStaticParams() {
return Blog.map((item) => ({
slug: item.slug,
@ -11,7 +27,6 @@ export async function generateStaticParams() {
export default function BlogPage({ params }) {
const { slug } = params;
const blog = Blog.find((item) => item.slug === slug);
if (!blog) {
@ -20,7 +35,10 @@ export default function BlogPage({ params }) {
return (
<WellFoodLayout>
<PageBanner pageTitle={"Blog details"} background="/assets/images/inner-banner/2.webp" />
<PageBanner
pageTitle={"Blog Details"}
background="/assets/images/inner-banner/2.webp"
/>
<section className="blog-details-area py-80 rpy-60">
<div className="container container-1290">
<div className="row">
@ -33,7 +51,11 @@ export default function BlogPage({ params }) {
data-aos-duration={1500}
data-aos-offset={50}
>
<img src={blog.bigImage} alt="Blog Standard" loading="lazy" />
<img
src={blog.bigImage}
alt={blog.title}
loading="lazy"
/>
</div>
<div
className="content"

View File

@ -1,22 +1,25 @@
import PageBanner from "@/components/PageBanner";
import WellFoodLayout from "@/layout/WellFoodLayout";
import ContactForm from "@/components/ContactForm";
export const metadata = {
title: "Shiva Sakthi | Best South Indian Restaurant in Mississauga",
description: "Get in touch with Shiva Sakthi, Mississaugas top Indian restaurant. Call or visit us for dine-in, takeout, or catering. Located Airport Road Malton, Mississauga",
description:
"Get in touch with Shiva Sakthi, Mississaugas top Indian restaurant. Call or visit us for dine-in, takeout, or catering. Located Airport Road Malton, Mississauga",
};
const page = () => {
return (
<WellFoodLayout>
<PageBanner pageTitle={"Contact us"} background="/assets/images/inner-banner/3.webp" />
<section className="contact-page-area pt-130 rpt-100 pb-60 rpb-85 rel z-1" >
<PageBanner
pageTitle={"Contact"}
background="/assets/images/inner-banner/3.webp"
/>
{/* === Contact Info Cards === */}
<section className="contact-page-area pt-100 rpt-100 pb-60 rpb-30 rel z-1">
<div className="container">
<div className="row align-items-center">
<div
className="contact-page-content rmb-55"
data-aos="fade-up"
@ -27,83 +30,109 @@ const page = () => {
<span className="sub-title mb-10">contact us</span>
<h2>Get In Touch With Us</h2>
</div>
<div className="row">
<div className="col-md-4">
<div className="contact-info-item bgc-black" style={{
backgroundImage: "url(/assets/images/background/hero.jpg)"
}}>
<div className="icon"><i className="fal fa-map-marker-alt" /></div>
{/* Cards Row with Spacing */}
<div className="row gx-4 gy-4">
<div className="col-lg-4 col-md-6 col-sm-12 d-flex justify-content-center">
<div
className="contact-info-item bgc-black flex-fill p-4"
style={{
backgroundImage: "url(/assets/images/background/hero.jpg)",
}}
>
<div className="icon">
<i className="fal fa-phone" />
</div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Location</span>
<p>7166 Airport Road, Mississauga, Ontario L4T 2H2, Canada.</p>
</div>
</div>
</div>
<div className="col-md-4">
<div className="contact-info-item bgc-black" style={{
backgroundImage: "url(/assets/images/background/hero.jpg)"
}}>
<div className="icon"><i className="fal fa-envelope-open" /></div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Email Address</span>
<span className="title" style={{ fontWeight: "bold" }}>
Call Us
</span>
<p>
<a href="mailto:info@shivasakthi.ca">info@shivasakthi.ca</a>
<br />
<br />
<a href="tel:9056773555">905 677 3555</a>
</p>
</div>
</div>
</div>
<div className="col-md-4">
<div className="contact-info-item bgc-black" style={{
backgroundImage: "url(/assets/images/background/hero.jpg)"
}}>
<div className="icon"><i className="fal fa-phone" /></div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>Call Us</span>
<p>
<a href="tel: 9056773555">905 677 3555</a>
<br />
<br />
</p>
</div>
</div>
</div>
</div>
</div>
<div className="col-lg-4 col-md-6 col-sm-12 d-flex justify-content-center">
<div
className="contact-info-item bgc-black flex-fill p-4"
style={{
backgroundImage: "url(/assets/images/background/hero.jpg)",
}}
>
<div className="icon">
<i className="fal fa-envelope-open" />
</div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>
Email Address
</span>
<p>
<a href="mailto:info@shivasakthi.ca">info@shivasakthi.ca</a>
</p>
</div>
</div>
</div>
<div className="col-lg-4 col-md-6 col-sm-12 d-flex justify-content-center">
<div
className="contact-info-item bgc-black flex-fill p-4"
style={{
backgroundImage: "url(/assets/images/background/hero.jpg)",
}}
>
<div className="icon">
<i className="fal fa-map-marker-alt" />
</div>
<div className="content">
<span className="title" style={{ fontWeight: "bold" }}>
Location
</span>
<p>
7166 Airport Road, Mississauga, Ontario L4T 2H2, Canada.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
{/* === Contact Form & Image (Equal Height) === */}
<section className="contact-page-area rpt-40 pt-60 pb-60 rel z-1 bgc-black">
<div className="container">
<div className="row align-items-center no-gap">
<div className="col-lg-6">
<div className="row align-items-stretch no-gap">
<div className="col-lg-6 d-flex">
<div
className="contact-page-content rmb-55"
className="contact-page-content rmb-55 d-flex w-100"
data-aos="fade-left"
data-aos-duration={1500}
data-aos-offset={50}
>
<div className="contact-info-wrap">
<img src="/assets/images/contact.webp" alt="Contact ShivaSakthi" loading="lazy" />
<div className="contact-info-wrap flex-fill">
<img
src="/assets/images/contact.webp"
alt="Contact ShivaSakthi"
loading="lazy"
style={{ width: "100%", height: "100%", objectFit: "cover" }}
/>
</div>
</div>
</div>
<div
className="col-lg-6"
className="col-lg-6 d-flex"
data-aos="fade-right"
data-aos-duration={1500}
data-aos-offset={50}
>
<div className="flex-fill d-flex">
<ContactForm />
</div>
</div>
</div>
</div>
<div className="bg-lines">
<span />
@ -113,6 +142,7 @@ const page = () => {
</div>
</section>
{/* === Google Map === */}
<section className="contact-page-area pt-60">
<div className="container-fluid">
<div className="row align-items-center">

View File

@ -1784,7 +1784,7 @@ const RestaurantMenu = ({ menus }) => {
<div className="d-flex justify-content-center">
<img src={menu.icon} style={{width:"50%"}} loading="lazy" /> {/* margin-end to add space */}
</div>
<span>{menu.title}</span>
<span className="new-class">{menu.title}</span>
</div>
</Nav.Link>
</Nav.Item>

View File

@ -125,7 +125,7 @@ const DefaultFooter = () => {
<div className="col-lg-12">
<div className="copyright-text text-center">
<p>
Copyright {new Date().getFullYear()} © Shivas Dosa Restaurant. Powered by <Link href="https://metatroncubesolutions.com/">MetatronCube</Link>. All Right Reserved.{" "}
Copyright {new Date().getFullYear()} © Shivas Dosa Restaurant. Powered by <Link href="https://metatroncubesolutions.com/" target="_blank">MetatronCube</Link>. All Right Reserved.{" "}
</p>
</div>
</div>

View File

@ -9,8 +9,8 @@
Note: This is Main Style CSS File. */
/*----------------------------------------------------------------------
CSS INDEX
----------------------
CSS INDEX
----------------------
## Default Style
## Common Classes
@ -783,6 +783,8 @@ a.theme-btn.style-three:hover {
.food-menu-tab .nav-link {
padding-top: 12px;
padding-bottom: 8px;
padding-left: 12px;
padding-right: 12px;
}
}
@ -805,20 +807,20 @@ a.theme-btn.style-three:hover {
}
.food-menu-tab .nav-link span {
font-size: 18px;
font-size: 16px;
margin-top: 10px;
}
@media only screen and (max-width: 991px) {
.food-menu-tab .nav-link span {
font-size: 16px;
font-size: 15px;
}
}
@media only screen and (max-width: 575px) {
.food-menu-tab .nav-link span {
margin-top: 0;
font-size: 16px;
font-size: 15px;
}
}
@ -946,20 +948,54 @@ a.theme-btn.style-three:hover {
/* Slick Arrows */
.slick-arrow {
position: absolute;
top: 40%;
right: 100%;
transform: translateY(-50%);
font-size: 20px;
-webkit-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
padding-top: 2px;
width: 65px;
height: 65px;
background: white;
line-height: 65px;
width: 40px;
height: 40px;
background: black;
line-height: 40px;
border-radius: 50%;
text-align: center;
color: var(--heading-color);
color: #ffff;
-webkit-box-shadow: 0px 4px 60px rgba(0, 0, 0, 0.15);
box-shadow: 0px 4px 60px rgba(0, 0, 0, 0.15);
z-index: 10;
cursor: pointer;
}
@media (max-width: 1024px) {
.slick-arrow {
right: 98%;
}
}
@media (max-width: 992px) {
.slick-arrow {
right: 97%;
}
}
@media (max-width: 500px) {
.slick-arrow {
right: 92%;
}
}
@media (max-width: 992px) {
.slick-prev {
left: -1% !important;
}
}
.slick-arrow:focus,
@ -4549,6 +4585,12 @@ h6,
}
}
.new-class{
font-size: 16px;
}
.main-header .logo {
z-index: 9;
padding: 2px 0;
@ -8206,6 +8248,12 @@ h6,
margin-left: 20px;
}
@media(max-width:425px) {
.food-menu-item.style-two .content h5 .price {
margin-left: 5px;
}
}
.food-menu-item.style-two .content p {
margin-bottom: 0;
}
@ -8225,7 +8273,11 @@ h6,
}
}
@media(max-width:425px) {
.food-menu-item.style-two .content h5 {
font-size: 17px;
}
}
.popular-menu-wrap {
@ -12281,6 +12333,8 @@ blockquote .blockquote-footer:before {
.slick-prev,
.slick-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
background: #222222;
@ -12289,16 +12343,18 @@ blockquote .blockquote-footer:before {
align-items: center;
justify-content: center;
border-radius: 50%;
z-index: 10;
}
.slick-prev {
left: 0%;
top: 25%;
left: -3%;
top: 40%;
}
.slick-next {
right: -3% !important;
top: 25%
top: 40%
}
.about-biryani-category-1 {
@ -12315,6 +12371,13 @@ blockquote .blockquote-footer:before {
right: -40px !important;
}
@media (max-width: 1200px) {
.custom-next-arrow {
right: 0px !important;
}
}
/* For screen widths 1024px and below */
@media (max-width: 1024px) {
.custom-prev-arrow {
@ -12353,3 +12416,9 @@ blockquote .blockquote-footer:before {
margin-bottom: 20px;
}
}
@media (max-width: 320px) {
.slick-arrow {
right: 87%;
}
}

View File

@ -3,8 +3,10 @@ export const Blog = [
id: 1,
slug: "the-flavors-of-north-india-more-than-just-curries",
image: "/assets/images/blog/blog-1.webp",
bigImage:"/assets/images/blog/blog-large-1.webp",
bigImage: "/assets/images/blog/blog-large-1.webp",
title: "The Flavors of North India: More Than Just Curries",
metatitle: "Flavors of North India: Beyond Just Curries | Shiva Shakthi",
metadescription: "Explore the aromatic breads, tandoori delights, rice dishes & hearty vegetarian staples that make North Indian cuisine so much more than just curries.",
user: "Admin",
date: "05 Dec 2024",
short_des: "Exploring the Bread, Tandoor, and Delights of North Indian Cuisine 'North Indian cuisine is not only about rich curries but also a vibrant array of breads, tandoor-cooked",
@ -123,8 +125,10 @@ export const Blog = [
id: 2,
slug: "the-secret-to-perfect-north-indian-curries",
image: "/assets/images/blog/blog-2.webp",
bigImage:"/assets/images/blog/blog-large-2.webp",
bigImage: "/assets/images/blog/blog-large-2.webp",
title: "The Secret to Perfect North Indian Curries",
metatitle: "The Secret to Perfect North Indian Curries | Shiva Shakthi",
metadescription: "Discover how Shiva Shakthi crafts irresistible North Indian curries — from slow-cooked bases and toasted spices to creamy textures and balanced flavors.",
user: "Admin",
date: "05 Dec 2024",
short_des: "Unlocking the Flavors of Authentic North Indian CuisineNorth Indian curries are the heart and soul of Indian cuisine, known for their rich textures, deep flavors, and",
@ -229,8 +233,10 @@ export const Blog = [
id: 3,
slug: "the-rich-history-of-south-indian-cuisine",
image: "/assets/images/blog/blog-3.webp",
bigImage:"/assets/images/blog/blog-large-3.webp",
bigImage: "/assets/images/blog/blog-large-3.webp",
title: "The Rich History of South Indian Cuisine",
metatitle: "The Rich History of South Indian Cuisine | Shiva Sakthi",
metadescription: "Explore the rich history of South Indian cuisine from dosa and sambar origins to regional diversity & authentic flavors at Shiva Sakthis culinary journey.",
user: "Admin",
date: "05 Dec 2024",
short_des: "A Journey Through Time: The Story of South Indian Cuisine",