update contact

This commit is contained in:
2025-04-29 15:46:14 -03:00
parent 52d0e4755f
commit 37e1a5a935
24 changed files with 119 additions and 113 deletions

View File

@@ -1,7 +1,6 @@
<div <div
x-data="{ open: false }" x-data="{ open: false }"
class="bg-white/10 w-full [&:not([aria-expanded='true']):hover]:outline rounded-lg outline-white/15" class="bg-white/10 w-full hover:bg-white/15 aria-expanded:bg-white/15 rounded-lg transition"
:class="{'bg-white/15': open === true}"
x-bind:aria-expanded="open" x-bind:aria-expanded="open"
> >
<slot /> <slot />

View File

@@ -3,7 +3,7 @@ import { Icon } from "astro-icon/components";
import Container from "~/components/Container.astro"; import Container from "~/components/Container.astro";
--- ---
<Container id="certificado"> <Container id="certificado" {...Astro.props}>
<div <div
class="text-black bg-linear-to-t from-lime-600 to-lime-400 border border-lime-400 p-5 lg:py-36 rounded-2xl relative overflow-hidden" class="text-black bg-linear-to-t from-lime-600 to-lime-400 border border-lime-400 p-5 lg:py-36 rounded-2xl relative overflow-hidden"
> >

View File

@@ -1,18 +0,0 @@
---
import Container from "~/components/Container.astro";
import Form from "./Contact.jsx";
---
<Container id="contato">
<section class="space-y-6 lg:w-6/12 mx-auto lg:mb-12">
<div class="space-y-2.5">
<h1 class="text-4xl lg:text-6xl/14 lg:font-bold">Fale conosco</h1>
<p>
Tem uma necessidade mais específica ou gostaria de agendar uma
demonstração da nossa plataforma? Entre em contato conosco.
</p>
</div>
<Form client:load />
</section>
</Container>

View File

@@ -10,6 +10,8 @@ const schema = z.object({
.string() .string()
.nonempty({ message: "Deve preencher o email" }) .nonempty({ message: "Deve preencher o email" })
.email({ message: "Deve ser um email válido" }), .email({ message: "Deve ser um email válido" }),
telephone: z.string().nonempty({ message: "Deve preencher o telefone" }),
orgname: z.string().nonempty({ message: "Deve preencher a empresa" }),
message: z.string().nonempty({ message: "Deve preencher a mensagem" }), message: z.string().nonempty({ message: "Deve preencher a mensagem" }),
}); });
@@ -23,7 +25,7 @@ export default function Contact() {
action="https://n8n.eduseg.com.br/webhook/a377b3e0-b159-4536-98ab-e13822b60562" action="https://n8n.eduseg.com.br/webhook/a377b3e0-b159-4536-98ab-e13822b60562"
onSuccess={() => reset()} onSuccess={() => reset()}
control={control} control={control}
className="flex flex-col gap-2.5" className="flex flex-col gap-3"
> >
{formState.isSubmitSuccessful && ( {formState.isSubmitSuccessful && (
<p className="border border-lime-400 text-white bg-lime-400/25 p-5 rounded-xl font-semibold"> <p className="border border-lime-400 text-white bg-lime-400/25 p-5 rounded-xl font-semibold">
@@ -31,44 +33,56 @@ export default function Contact() {
</p> </p>
)} )}
<div> <Control>
<Label> <Input
<span className="lg:w-14">Nome</span> aria-invalid={!!formState.errors?.name}
<Input placeholder="Digite seu nome"
aria-invalid={!!formState.errors?.name} {...register("name")}
{...register("name")} />
/>
</Label>
<Error>{formState.errors.name?.message}</Error> <Error>{formState.errors.name?.message}</Error>
</div> </Control>
<div> <Control>
<Label> <Input
<span className="lg:w-14">Email</span> aria-invalid={!!formState.errors?.name}
<Input placeholder="Email corporativo"
aria-invalid={!!formState.errors?.name} {...register("email")}
{...register("email")} />
/>
</Label>
<Error>{formState.errors.email?.message}</Error> <Error>{formState.errors.email?.message}</Error>
</div> </Control>
<div> <Control>
<Label className="flex-col !items-start !gap-1"> <Input
<span>Mensagem</span> aria-invalid={!!formState.errors?.name}
<Input placeholder="Telefone"
as="textarea" {...register("telephone")}
className="h-28" />
aria-invalid={!!formState.errors?.message} <Error>{formState.errors.telephone?.message}</Error>
{...register("message")} </Control>
/>
</Label> <Control>
<Error className="lg:!pl-0">{formState.errors.message?.message}</Error> <Input
</div> aria-invalid={!!formState.errors?.name}
placeholder="Empresa"
{...register("orgname")}
/>
<Error>{formState.errors.orgname?.message}</Error>
</Control>
<Control>
<Input
as="textarea"
className="h-28"
placeholder="Mensagem"
aria-invalid={!!formState.errors?.message}
{...register("message")}
/>
<Error>{formState.errors.message?.message}</Error>
</Control>
<button <button
type="submit" type="submit"
className="p-2.5 border border-lime-400/50 rounded-xl cursor-pointer transition" className="p-2.5 border border-lime-400 rounded-lg cursor-pointer"
> >
Enviar Enviar
</button> </button>
@@ -79,33 +93,23 @@ export default function Contact() {
export function Input({ as = "input", className, ...props }) { export function Input({ as = "input", className, ...props }) {
return createElement(as, { return createElement(as, {
className: clsx( className: clsx(
"bg-white/10 focus:bg-white focus:text-black rounded-xl p-4 w-full focus:outline-0 transition duration-150", "bg-white/5 focus:bg-white/15 rounded-lg p-3 w-full border border-white/10 focus:border-lime-400 focus:outline-0 transition",
"aria-invalid:outline-2 aria-invalid:outline-red-600", "placeholder-white/70",
"aria-invalid:border-red-600",
className, className,
), ),
...props, ...props,
}); });
} }
function Label({ children, className }) { function Control({ children, className }) {
return ( return <label className={className}>{children}</label>;
<label
className={clsx(
"flex max-lg:flex-col lg:items-center gap-1 lg:gap-2.5",
className,
)}
>
{children}
</label>
);
} }
function Error({ children, className }) { function Error({ children, className }) {
if (children) { if (children) {
return ( return (
<p className={clsx("text-sm text-red-500 lg:pl-16", className)}> <p className={clsx("text-sm text-red-400", className)}>{children}</p>
{children}
</p>
); );
} }

View File

@@ -5,7 +5,7 @@ import mulherdenegocios from "~/assets/mulher-de-negocios.png";
import homemdenegocios from "~/assets/homem-de-negocios.png"; import homemdenegocios from "~/assets/homem-de-negocios.png";
--- ---
<Container> <Container {...Astro.props}>
<div class="border border-lime-400 rounded-2xl lg:grid grid-cols-3"> <div class="border border-lime-400 rounded-2xl lg:grid grid-cols-3">
<div <div
class="bg-linear-to-tr from-lime-400/50 to-lime-300 rounded-2xl p-5 relative h-136 max-lg:hidden -m-px max-xl:overflow-hidden" class="bg-linear-to-tr from-lime-400/50 to-lime-300 rounded-2xl p-5 relative h-136 max-lg:hidden -m-px max-xl:overflow-hidden"

View File

@@ -19,15 +19,21 @@ const { title } = Astro.props;
> >
<Container class="flex items-center"> <Container class="flex items-center">
<button <button
class="text-black font-semibold cursor-pointer flex items-center gap-1 hover:outline-2 rounded" class="text-black font-medium cursor-pointer lg:bg-white/15 hover:outline lg:border border-black lg:py-0.5 lg:px-2.5 rounded-lg transition"
x-bind:aria-expanded="open" x-bind:aria-expanded="open"
x-on:click="open = true" x-on:click="open = true"
aria-haspopup="true" aria-haspopup="true"
> >
<div class="truncate max-w-36 sm:max-w-72 md:max-w-124"> <div class="flex items-center gap-1">
{title} <div class="truncate max-w-36 sm:max-w-72">
{title}
</div>
<Icon
name="chevron-down"
aria-hidden="true"
class="size-4 mt-1"
/>
</div> </div>
<Icon name="chevron-down" aria-hidden="true" class="size-4" />
</button> </button>
<button <button

View File

@@ -2,7 +2,7 @@
import Container from "~/components/Container.astro"; import Container from "~/components/Container.astro";
--- ---
<Container class="2xl:w-5/12 lg:py-24 space-y-6" {...Astro.props}> <Container id="modulos" class="2xl:w-5/12 lg:py-24 space-y-6" {...Astro.props}>
<div class="space-y-2.5"> <div class="space-y-2.5">
<h4 class="text-pretty text-4xl lg:text-6xl">Módulos deste curso</h4> <h4 class="text-pretty text-4xl lg:text-6xl">Módulos deste curso</h4>
<p> <p>

View File

@@ -1,8 +1,9 @@
--- ---
import Container from "~/components/Container.astro"; import Container from "~/components/Container.astro";
import Form from "./Contact.jsx";
--- ---
<Container id="planos"> <Container id="modelos" {...Astro.props}>
<section class="space-y-5 lg:space-y-10 xl:w-4/6 mx-auto"> <section class="space-y-5 lg:space-y-10 xl:w-4/6 mx-auto">
<h1 class="text-pretty text-4xl lg:text-6xl"> <h1 class="text-pretty text-4xl lg:text-6xl">
Modelos de contratação para sua empresa Modelos de contratação para sua empresa
@@ -90,3 +91,21 @@ import Container from "~/components/Container.astro";
</div> </div>
</section> </section>
</Container> </Container>
<div class="relative z-40" style="display: none;">
<div class="fixed inset-0 bg-gray-900/20 backdrop-blur backdrop-filter">
</div>
<div class="fixed inset-0 overflow-y-auto">
<div class="flex justify-center items-center h-full max-lg:p-2.5">
<div
class="lg:w-1/4 bg-black p-5 lg:p-12 rounded-2xl border border-white/15 space-y-5 drop-shadow"
>
<h1 class="text-3xl lg:text-4xl font-medium">
Preencha os dados da sua empresa
</h1>
<Form client:load />
</div>
</div>
</div>
</div>

View File

@@ -1,4 +1,3 @@
export { default as Contact } from "./Contact.astro";
export { default as Cert } from "./Cert.astro"; export { default as Cert } from "./Cert.astro";
export { default as Clients } from "./Clients.astro"; export { default as Clients } from "./Clients.astro";
export { default as Features } from "./Features.astro"; export { default as Features } from "./Features.astro";

View File

@@ -17,7 +17,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -91,5 +90,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -17,7 +17,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -91,5 +90,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -17,7 +17,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -91,5 +90,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -17,7 +17,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -91,5 +90,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -7,5 +7,4 @@ draft: true
course: course:
hours: 8 hours: 8
trainer: francis
--- ---

View File

@@ -17,7 +17,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -63,5 +62,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -17,9 +17,8 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Faq, Faq,
Plans Plans,
} from "~/components/Course"; } from "~/components/Course";
<Plans /> <Plans />
@@ -61,5 +60,3 @@ import {
<Faq /> <Faq />
<Cert /> <Cert />
<Contact />

View File

@@ -7,6 +7,4 @@ draft: false
course: course:
hours: 8 hours: 8
trainer: francis
modules: []
--- ---

View File

@@ -7,6 +7,4 @@ draft: false
course: course:
hours: 8 hours: 8
trainer: francis
modules: []
--- ---

View File

@@ -21,7 +21,6 @@ import {
Features, Features,
Cert, Cert,
Trainer, Trainer,
Contact,
Plans, Plans,
} from "~/components/Course"; } from "~/components/Course";
@@ -86,5 +85,3 @@ import {
<Trainer name="francis" /> <Trainer name="francis" />
<Cert /> <Cert />
<Contact />

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18" />
</svg>

After

Width:  |  Height:  |  Size: 233 B

View File

@@ -23,12 +23,8 @@ const year = new Date().getFullYear();
<body> <body>
<header> <header>
<Container class="flex items-center py-3"> <Container class="flex items-center py-2.5">
<a <a href="/" aria-label="Página inicial">
href="/"
aria-label="Página inicial"
class="hover:outline rounded-xs outline-offset-2"
>
<Icon name="logos/eduseg" class="w-28 h-auto" /> <Icon name="logos/eduseg" class="w-28 h-auto" />
</a> </a>
@@ -54,8 +50,17 @@ const year = new Date().getFullYear();
</main> </main>
<footer class="py-2.5 lg:py-6 text-white/70"> <footer class="py-2.5 lg:py-6 text-white/70">
<Container> <Container class="flex max-lg:flex-col gap-2.5 justify-between">
&copy; {year} EDUSEG&reg; Todos os direitos reservados. CNPJ15.608.435/0001-90 <div>
&copy; {year} EDUSEG&reg; Todos os direitos reservados. CNPJ15.608.435/0001-90
</div>
<a
href="#"
class="underline hover:no-underline flex items-center gap-1 max-lg:self-center"
>
<Icon name="arrow-up" />
<span>Voltar ao início</span>
</a>
</Container> </Container>
</footer> </footer>

View File

@@ -4,6 +4,7 @@ import { Picture } from "astro:assets";
import { Icon } from "astro-icon/components"; import { Icon } from "astro-icon/components";
import Layout from "~/layouts/Layout.astro"; import Layout from "~/layouts/Layout.astro";
import Container from "~/components/Container.astro"; import Container from "~/components/Container.astro";
import Stats from "~/components/Stats.astro";
import HeaderNav from "~/components/Course/HeaderNav.astro"; import HeaderNav from "~/components/Course/HeaderNav.astro";
import placeholder from "~/assets/placeholder.png"; import placeholder from "~/assets/placeholder.png";
@@ -114,7 +115,7 @@ const { Content } = await render(course);
} p/ matrícula } p/ matrícula
</a> </a>
<a <a
href="#planos" href="#modelos"
class="text-blue-400 underline hover:no-underline text-center" class="text-blue-400 underline hover:no-underline text-center"
> >
Ver mais modelos de contratação Ver mais modelos de contratação

View File

@@ -0,0 +1,11 @@
---
import Container from "~/components/Container.astro";
---
<Container>
<div class="w-4/6 mx-auto">
<div>+100.000 Profissionais capacitados</div>
<div>+5.000 Empresas atendidas</div>
<div>12 anos de experiência</div>
</div>
</Container>

View File

@@ -5,6 +5,7 @@ import Layout from "~/layouts/Layout.astro";
import Container from "~/components/Container.astro"; import Container from "~/components/Container.astro";
import Search from "./_components/Search.astro"; import Search from "./_components/Search.astro";
import { Clients } from "~/components/Course"; import { Clients } from "~/components/Course";
import Stats from "./_components/Stats.astro";
import mulhercomepi from "~/assets/mulher-com-epi.png"; import mulhercomepi from "~/assets/mulher-com-epi.png";
const trends = [ const trends = [
@@ -70,6 +71,8 @@ const trends = [
</nav> </nav>
</Container> </Container>
<Stats />
<Clients /> <Clients />
</div> </div>
</Layout> </Layout>