Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 14:07:54 +00:00
2 changed files with 47 additions and 50 deletions

View File

@@ -48,16 +48,17 @@ export default function LandingPage() {
tag="⭐ 5.0 en Google - Academia Recomendada"
background={{ variant: "radial-gradient" }}
mediaItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg?_wi=1", imageAlt: "Clase de inglés dinámica en Open Your Mind School" },
{ imageSrc: "http://img.b2bpic.net/free-photo/perfect-prepare-lesson_329181-10514.jpg?_wi=1", imageAlt: "Niños aprendiendo inglés de forma interactiva" },
{ imageSrc: "http://img.b2bpic.net/free-photo/business-colleagues-banner-concept-with-copy-space_23-2149601493.jpg?_wi=1", imageAlt: "Adultos mejorando su inglés en clase" },
{ imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg?_wi=1", imageAlt: "Preparación de exámenes de inglés" },
{ imageSrc: "http://img.b2bpic.net/free-photo/students-with-books-table_23-2147656179.jpg?_wi=1", imageAlt: "Comunidad de aprendizaje colaborativo" }
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg", imageAlt: "Clase de inglés dinámica en Open Your Mind School" },
{ imageSrc: "http://img.b2bpic.net/free-photo/perfect-prepare-lesson_329181-10514.jpg", imageAlt: "Niños aprendiendo inglés de forma interactiva" },
{ imageSrc: "http://img.b2bpic.net/free-photo/business-colleagues-banner-concept-with-copy-space_23-2149601493.jpg", imageAlt: "Adultos mejorando su inglés en clase" },
{ imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg", imageAlt: "Preparación de exámenes de inglés" },
{ imageSrc: "http://img.b2bpic.net/free-photo/students-with-books-table_23-2147656179.jpg", imageAlt: "Comunidad de aprendizaje colaborativo" }
]}
buttons={[
{ text: "Solicitar Información", href: "contact" },
{ text: "Prueba una Clase Gratis", href: "contact" }
]}
mediaAnimation="none"
/>
</div>
@@ -69,15 +70,15 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Años estudiando sin hablar con confianza", description: "Muchos estudiantes llevan años aprendiendo vocabulario y gramática, pero cuando llega el momento de hablar, el miedo y la inseguridad los paralizan.", imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-learning-with-mates_23-2147666567.jpg?_wi=1", imageAlt: "Estudiantes aprendiendo inglés"
title: "Años estudiando sin hablar con confianza", description: "Muchos estudiantes llevan años aprendiendo vocabulario y gramática, pero cuando llega el momento de hablar, el miedo y la inseguridad los paralizan.", imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-learning-with-mates_23-2147666567.jpg", imageAlt: "Estudiantes aprendiendo inglés"
},
{
id: 2,
title: "Miedo a cometer errores en conversación", description: "El sistema tradicional penaliza los errores, creando una barrera psicológica que impide practicar el speaking real.", imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg?_wi=2", imageAlt: "Exámenes de inglés"
title: "Miedo a cometer errores en conversación", description: "El sistema tradicional penaliza los errores, creando una barrera psicológica que impide practicar el speaking real.", imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg", imageAlt: "Exámenes de inglés"
},
{
id: 3,
title: "Clases aburridas y poco prácticas", description: "Métodos antiguos centrados en teoría en lugar de comunicación real. Sin contexto, sin emoción, sin verdadera interacción.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg?_wi=2", imageAlt: "Clase de inglés interactiva"
title: "Clases aburridas y poco prácticas", description: "Métodos antiguos centrados en teoría en lugar de comunicación real. Sin contexto, sin emoción, sin verdadera interacción.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg", imageAlt: "Clase de inglés interactiva"
}
]}
textboxLayout="default"
@@ -104,16 +105,16 @@ export default function LandingPage() {
tag="Programas Disponibles"
products={[
{
id: "1", name: "Clases de Inglés para Niños", price: "Desde 30€/mes", imageSrc: "http://img.b2bpic.net/free-photo/perfect-prepare-lesson_329181-10514.jpg?_wi=2", imageAlt: "Clases de inglés para niños"
id: "1", name: "Clases de Inglés para Niños", price: "Desde 30€/mes", imageSrc: "http://img.b2bpic.net/free-photo/perfect-prepare-lesson_329181-10514.jpg", imageAlt: "Clases de inglés para niños"
},
{
id: "2", name: "Clases de Inglés para Adolescentes", price: "Desde 40€/mes", imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-learning-with-mates_23-2147666567.jpg?_wi=2", imageAlt: "Clases de inglés para adolescentes"
id: "2", name: "Clases de Inglés para Adolescentes", price: "Desde 40€/mes", imageSrc: "http://img.b2bpic.net/free-photo/girl-sitting-learning-with-mates_23-2147666567.jpg", imageAlt: "Clases de inglés para adolescentes"
},
{
id: "3", name: "Clases de Inglés para Adultos", price: "Desde 50€/mes", imageSrc: "http://img.b2bpic.net/free-photo/business-colleagues-banner-concept-with-copy-space_23-2149601493.jpg?_wi=2", imageAlt: "Clases de inglés para adultos"
id: "3", name: "Clases de Inglés para Adultos", price: "Desde 50€/mes", imageSrc: "http://img.b2bpic.net/free-photo/business-colleagues-banner-concept-with-copy-space_23-2149601493.jpg", imageAlt: "Clases de inglés para adultos"
},
{
id: "4", name: "Preparación Exámenes Oficiales", price: "Desde 60€/mes", imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg?_wi=3", imageAlt: "Preparación de exámenes de inglés"
id: "4", name: "Preparación Exámenes Oficiales", price: "Desde 60€/mes", imageSrc: "http://img.b2bpic.net/free-photo/books-stack-with-colored-pencil-mug_1252-752.jpg", imageAlt: "Preparación de exámenes de inglés"
}
]}
gridVariant="four-items-2x2-equal-grid"
@@ -169,10 +170,10 @@ export default function LandingPage() {
id: "1", title: "Aprendizaje Real", subtitle: "Speaking & Listening", detail: "Enfoque 100% comunicativo para aprender inglés como se habla de verdad", imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-studying-together_23-2149204772.jpg", imageAlt: "Profesores cualificados en clase"
},
{
id: "2", title: "Ambiente Cercano", subtitle: "Personalizado", detail: "Atención individualizada con profesores que conocen tus objetivos y necesidades", imageSrc: "http://img.b2bpic.net/free-photo/students-with-books-table_23-2147656179.jpg?_wi=2", imageAlt: "Comunidad de aprendizaje"
id: "2", title: "Ambiente Cercano", subtitle: "Personalizado", detail: "Atención individualizada con profesores que conocen tus objetivos y necesidades", imageSrc: "http://img.b2bpic.net/free-photo/students-with-books-table_23-2147656179.jpg", imageAlt: "Comunidad de aprendizaje"
},
{
id: "3", title: "Comunidad de Aprendizaje", subtitle: "Juntos Crecemos", detail: "Un espacio seguro donde practicar, cometer errores y mejorar día a día", imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg?_wi=3", imageAlt: "Clase de inglés colaborativa"
id: "3", title: "Comunidad de Aprendizaje", subtitle: "Juntos Crecemos", detail: "Un espacio seguro donde practicar, cometer errores y mejorar día a día", imageSrc: "http://img.b2bpic.net/free-photo/close-up-student-typing-laptop_1098-2742.jpg", imageAlt: "Clase de inglés colaborativa"
}
]
}

View File

@@ -1,51 +1,47 @@
"use client";
import React from 'react';
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
export interface SvgTextLogoProps {
text: string;
className?: string;
fontSize?: number;
fontWeight?: 'light' | 'normal' | 'bold' | 'extrabold';
textColor?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
fontSize = 28,
fontWeight = 'bold',
textColor = '#000000',
}) => {
const fontWeightMap = {
light: 300,
normal: 400,
bold: 700,
extrabold: 800,
};
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox={`0 0 ${text.length * 20} 50`}
className={className}
xmlns="http://www.w3.org/2000/svg"
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline="central"
fontSize={fontSize}
fontWeight={fontWeightMap[fontWeight]}
fill={textColor}
fontFamily="system-ui, -apple-system, sans-serif"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;