Header 48



<section id="relume" class="px-[5%] py-16 md:py-24 lg:py-28">
<div class="container">
<div class="flex flex-col gap-5 md:flex-row md:gap-12 lg:gap-20">
<div class="w-full max-w-lg">
<p class="mb-3 font-semibold md:mb-4">Tagline</p>
<h1 class="text-6xl font-bold md:text-9xl lg:text-10xl">Short heading here</h1>
</div>
<div class="w-full max-w-lg">
<p class="md:text-md">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros
elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut
commodo diam libero vitae erat.
</p>
<div class="mt-6 w-full max-w-sm md:mt-8">
<form
class="rb-4 mb-4 grid w-full max-w-sm grid-cols-1 gap-y-3 sm:grid-cols-[1fr_max-content] sm:gap-4"
>
<div class="relative flex w-full items-center">
<input
type="email"
class="flex size-full min-h-11 border border-border-primary bg-background-primary py-2 align-middle file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-neutral focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 px-3"
id="email"
placeholder="Enter your email"
value=""
/>
</div>
<button
class="focus-visible:ring-border-primary inline-flex gap-3 items-center justify-center whitespace-nowrap ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-border-primary bg-background-alternative text-text-alternative px-6 py-3"
title="Sign up"
>
Sign up
</button>
</form>
<div>
<p class="text-xs">
By clicking Sign Up you're confirming that you agree with our
<a href="#" class="underline">Terms and Conditions</a>.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
"use client";
import { useState } from "react";
import { Button, Input } from "@relume_io/relume-ui";
import type { ButtonProps } from "@relume_io/relume-ui";
type Props = {
tagline: string;
heading: string;
description: string;
inputPlaceholder?: string;
button: ButtonProps;
termsAndConditions: string;
};
export type Header48Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Header48 = (props: Header48Props) => {
const { heading, description, tagline, inputPlaceholder, button, termsAndConditions } = {
...Header48Defaults,
...props,
};
const [emailInput, setEmailInput] = useState<string>("");
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
console.log({
emailInput,
});
};
return (
<section id="relume" className="px-[5%] py-16 md:py-24 lg:py-28">
<div className="container">
<div className="flex flex-col gap-5 md:flex-row md:gap-12 lg:gap-20">
<div className="w-full max-w-lg">
<p className="mb-3 font-semibold md:mb-4">{tagline}</p>
<h1 className="text-6xl font-bold md:text-9xl lg:text-10xl">{heading}</h1>
</div>
<div className="w-full max-w-lg">
<p className="md:text-md">{description}</p>
<div className="mt-6 w-full max-w-sm md:mt-8">
<form
className="rb-4 mb-4 grid w-full max-w-sm grid-cols-1 gap-y-3 sm:grid-cols-[1fr_max-content] sm:gap-4"
onSubmit={handleSubmit}
>
<Input
id="email"
type="email"
placeholder={inputPlaceholder}
value={emailInput}
onChange={(e) => setEmailInput(e.target.value)}
/>
<Button {...button}>{button.title}</Button>
</form>
<div dangerouslySetInnerHTML={{ __html: termsAndConditions }} />
</div>
</div>
</div>
</div>
</section>
);
};
export const Header48Defaults: Props = {
tagline: "Tagline",
heading: "Short heading here",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
inputPlaceholder: "Enter your email",
button: {
title: "Sign up",
},
termsAndConditions: `
<p class='text-xs'>
By clicking Sign Up you're confirming that you agree with our
<a href='#' class='underline'>Terms and Conditions</a>.
</p>
`,
};
Need help?
For installation guidelines and API information, visit the docs.
Examples
No items found.