Footer Newsletter
poyraz/footer-newsletterFreeComponent
Poyraz Soft Glass Footer Newsletter with container-responsive layout and semantic tokens.
Install it
npx shadcn@latest add https://ui.poyrazavsever.com/r/footer-newsletter.jsonSource
1"use client";23import * as React from "react";45import { Button } from "@/components/ui/atoms/button";6import { Input } from "@/components/ui/atoms/input";7import { cn } from "@/lib/utils";89export interface FooterNewsletterProps extends React.HTMLAttributes<HTMLDivElement> {10 heading?: string;11 description?: string;12 placeholder?: string;13 buttonText?: string;14 onSubscribe?: (email: string) => void;15}1617const FooterNewsletter = React.forwardRef<HTMLDivElement, FooterNewsletterProps>(18 (19 {20 className,21 heading = "Subscribe to our newsletter",22 description = "Get the latest updates directly in your inbox.",23 placeholder = "you@example.com",24 buttonText = "Subscribe",25 onSubscribe,26 ...props27 },28 ref,29 ) => {30 const [email, setEmail] = React.useState("");3132 function handleSubmit(event: React.FormEvent<HTMLFormElement>) {33 event.preventDefault();34 const value = email.trim();35 if (!value) return;36 onSubscribe?.(value);37 setEmail("");38 }3940 return (41 <div42 ref={ref}43 data-slot="footer-newsletter"44 className={cn(45 "rounded-lg border border-border bg-surface-subtle p-4 @sm/footer:p-6",46 className,47 )}48 {...props}49 >50 <h4 className="text-sm font-semibold text-foreground">{heading}</h4>51 <p className="mt-1 text-xs text-muted-foreground">{description}</p>52 <form53 data-slot="footer-newsletter-form"54 onSubmit={handleSubmit}55 className="mt-4 flex flex-col gap-2 @sm/footer:flex-row"56 >57 <Input58 type="email"59 value={email}60 onChange={(event) => setEmail(event.target.value)}61 placeholder={placeholder}62 aria-label={placeholder}63 required64 className="min-w-0 flex-1"65 />66 <Button type="submit" className="shrink-0">67 {buttonText}68 </Button>69 </form>70 </div>71 );72 },73);74FooterNewsletter.displayName = "FooterNewsletter";7576export { FooterNewsletter };
What it pulls in
Other registry items
Files it writes
More from poyraz
All 71 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | poyraz | Components | Free | 2 deps | |
| Alertalert | poyraz | Components | Free | 2 deps | |
| Announcement Barannouncement-bar | poyraz | Components | Free | 2 deps | |
| Autocompleteautocomplete | poyraz | Components | Free | 1 dep | |
| Avataravatar | poyraz | Components | Free | 2 deps | |
| Badgebadge | poyraz | Components | Free | 1 dep | |
| Bg Patternbg-pattern | poyraz | Components | Free | no deps | |
| Breadcrumbbreadcrumb | poyraz | Components | Free | 1 dep |
