Enhance responsive layout for homepage sections

- Updated `DemoSection`, `PhilosophySection`, `FeatureCard`, and `TechStackSection` to ensure proper alignment and height consistency.
- Added `h-full` and `flex` utility classes for better flexbox behavior and layout responsiveness.
- Improved text and description alignment within cards by introducing `flex-1`.
This commit is contained in:
2025-11-08 16:11:43 +01:00
parent 63c171f83e
commit fe289228e1
4 changed files with 8 additions and 8 deletions

View File

@@ -62,7 +62,7 @@ export function DemoSection() {
{demos.map((demo, index) => ( {demos.map((demo, index) => (
<motion.div <motion.div
key={demo.title} key={demo.title}
className="rounded-lg border bg-card p-6 hover:shadow-lg transition-shadow" className="h-full flex flex-col rounded-lg border bg-card p-6 hover:shadow-lg transition-shadow"
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, margin: '-100px' }} viewport={{ once: true, margin: '-100px' }}
@@ -75,7 +75,7 @@ export function DemoSection() {
</div> </div>
<h3 className="text-xl font-semibold mb-2">{demo.title}</h3> <h3 className="text-xl font-semibold mb-2">{demo.title}</h3>
<p className="text-muted-foreground mb-4 leading-relaxed"> <p className="text-muted-foreground mb-4 leading-relaxed flex-1">
{demo.description} {demo.description}
</p> </p>

View File

@@ -28,7 +28,7 @@ export function FeatureCard({
}: FeatureCardProps) { }: FeatureCardProps) {
return ( return (
<motion.div <motion.div
className="group relative rounded-lg border bg-card p-6 hover:shadow-lg transition-all" className="group relative h-full flex flex-col rounded-lg border bg-card p-6 hover:shadow-lg transition-all"
whileHover={{ y: -4 }} whileHover={{ y: -4 }}
transition={{ duration: 0.2 }} transition={{ duration: 0.2 }}
> >
@@ -48,7 +48,7 @@ export function FeatureCard({
</div> </div>
{/* Description */} {/* Description */}
<p className="text-muted-foreground mb-4 leading-relaxed">{description}</p> <p className="text-muted-foreground mb-4 leading-relaxed flex-1">{description}</p>
{/* CTA Link */} {/* CTA Link */}
<Link <Link

View File

@@ -55,7 +55,7 @@ export function PhilosophySection() {
<div className="grid md:grid-cols-2 gap-8 mt-12"> <div className="grid md:grid-cols-2 gap-8 mt-12">
{/* What You Won't Find */} {/* What You Won't Find */}
<motion.div <motion.div
className="rounded-lg border bg-card p-6" className="h-full rounded-lg border bg-card p-6"
initial={{ opacity: 0, x: -20 }} initial={{ opacity: 0, x: -20 }}
whileInView={{ opacity: 1, x: 0 }} whileInView={{ opacity: 1, x: 0 }}
viewport={{ once: true, margin: '-100px' }} viewport={{ once: true, margin: '-100px' }}
@@ -77,7 +77,7 @@ export function PhilosophySection() {
{/* What You Will Find */} {/* What You Will Find */}
<motion.div <motion.div
className="rounded-lg border bg-card p-6" className="h-full rounded-lg border bg-card p-6"
initial={{ opacity: 0, x: 20 }} initial={{ opacity: 0, x: 20 }}
whileInView={{ opacity: 1, x: 0 }} whileInView={{ opacity: 1, x: 0 }}
viewport={{ once: true, margin: '-100px' }} viewport={{ once: true, margin: '-100px' }}

View File

@@ -78,14 +78,14 @@ export function TechStackSection() {
{technologies.map((tech, index) => ( {technologies.map((tech, index) => (
<motion.div <motion.div
key={tech.name} key={tech.name}
className="group relative" className="group relative h-full"
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, margin: '-100px' }} viewport={{ once: true, margin: '-100px' }}
transition={{ duration: 0.4, delay: index * 0.05 }} transition={{ duration: 0.4, delay: index * 0.05 }}
whileHover={{ scale: 1.05 }} whileHover={{ scale: 1.05 }}
> >
<div className="rounded-lg border bg-card p-6 text-center hover:shadow-lg transition-all"> <div className="h-full flex flex-col items-center justify-center rounded-lg border bg-card p-6 text-center hover:shadow-lg transition-all">
{/* Tech Badge */} {/* Tech Badge */}
<div className={`inline-block rounded-full bg-gradient-to-r ${tech.color} px-4 py-2 text-white font-semibold text-sm mb-2`}> <div className={`inline-block rounded-full bg-gradient-to-r ${tech.color} px-4 py-2 text-white font-semibold text-sm mb-2`}>
{tech.name} {tech.name}