WingoUI
Buttons & Actions
ButtonButton GroupCopy ButtonDelete ButtonTheme ToggleToggleToggle Group
Inputs
Avatar UploadCalendarCheckboxColor PickerComboboxCron PickerCurrency InputDate PickerDate Range PickerDate Time PickerDuration PickerEmail InputFile UploadFilter BuilderInputInput GroupListboxMasked InputMention InputMonth PickerMulti SelectNumber InputOTP InputPassword InputPhone InputRadio GroupRatingSearch InputSegmented ControlSelectSignature PadSliderSwitchTag InputTextareaTime Picker
Forms
Address InputCSV ImportFieldForm WizardInline EditInvoice line itemsRich Text EditorSchema Builder
Navigation
Back To TopBounce SidebarBreadcrumbCommand MenuGlobal SearchGooey NavHook SidebarNav MenuNav TabsPaginationProximity SidebarScroll ProgressSidebarStepsTable Of ContentsTabsTopbarUser MenuWorkspace Switcher
Overlays
Alert DialogContext MenuDialogDrawerDropdown MenuFamily DrawerHover CardPopoverSheetShortcuts DialogTooltipTour
Feedback
AlertBannerCookie ConsentEmoji ReactionEmpty StateNotification BellNotification CenterProgressRoute ProgressSkeletonSpinnerToast
Data Display
Approval FlowAvatarBadgeCalendar ViewCode BlockComment ThreadContact cardCountdownDescription ListDiff ViewerFile ListFile managerFolderGanttJSON ViewerKbdLog ViewerMarkdownPresenceSchedulerTagTimelineTree View
Tables & Lists
Audit LogData TableDeal PipelineEditable GridKanbanListMembers tablePermissions MatrixTableTask ListVirtual List
Charts & Stats
Animated CounterArea chartBar chartDonut chartFunnel chartGaugeGitHub ActivityHeatmap calendarLeaderboardLine chartRadial barSparklineStat CardTrackerTrend badge
Layout
AccordionApp ShellCardCollapsibleDetail LayoutEntity HeaderPage HeaderScroll AreaSeparatorSettings LayoutSplit ViewToolbar
Media
Audio PlayerCarouselCSV ViewerDOCX EditorDOCX ViewerExcel ViewerFile SystemImage CropperImage LightboxLocation MapPDF ViewerPowerPoint ViewerQR CodeStep PlayerVideo Player
AI Kit
Agent Status CardChat MessageChat ThreadConversation ListFluid OrbGrid RevealMatrix OrbModel PickerPrompt InputReasoning IndicatorRule BuilderSuggestion ChipsTool Call TimelineUsage MeterVoice InputWorkflow Canvas
Text & Effects
Gravity Letters
Mobile
Action SheetBottom Tab BarFABHaptic ButtonHero HeaderInstall PromptLarge Title HeaderNotification BannerOnboarding CarouselPicker WheelPull To RefreshSlide To ConfirmSticky CTA BarSwipe DeckSwipeable Tabs
Commerce
Cart drawerCategory pickerCheckout stepsCoupon inputFavorite buttonFilter panelListing cardListing gridOrder trackerPricePrice rangePricing tableProduct galleryQuantity stepperReviewsSeller card
Marketing Sections
CTA SectionFAQ SectionFeature GridFeature ShowcaseHero SectionLogo CloudMarketing FooterMarketing HeaderMarketing SectionStats SectionTeam SectionTestimonials Section
Blocks
Admin Dashboard PageAdmin ShellAI Chat PageAutomation Builder PageCheckout PageCRM Contact PageCRM Pipeline PageError PagesInbox PageInvoice PageKPI DashboardListing Detail PageLogin PageMarketplace Home PageMarketplace Search PageMarketplace ShellMobile App HomeOnboarding FlowPost Listing WizardPricing PageRegister PageSettings PageUsers Admin Page
Templates
About PageAffiliate PageBlog PageBlog Post PageCareers PageChangelog PageCompare PageContact PageCustomers PageDocs Home PageFAQ PageFeature PageIntegrations PageLanding PageLegal PageStatus PageWaitlist Page
Hooks & Utilities
AI ChatChart kitCommerceDate utilsFile exportFile typesFiltersForm validationHapticsInvoicingMotion presetsNavigationNumber formatRelative timeRomanian locationsSpreadsheetText matchTonesUIProvideruseClipboarduseConsentuseControllableStateuseCooldownuseDebounceuseKeyboardInsetuseLocaleuseLongPressuseMediaControlsuseMediaQueryuseOverflowItemsusePersistedStateuseScrollEdgesuseScrollStateuseSelectionuseShortcutuseStickToBottom
GalleryTheme

Templates

Contact Page

TemplatesContact Page
Design
Compare PageCustomers Page
Design
Live props
Appearance
design
tone
ctaTone
radius
Layout
layout
showChannels
showHours
showOffices
showMap
showFaq
showLogos
header
footer
State
defaultTopic
Behavior
requireWorkEmail
chatHref
privacyHref
animateIn
locale
Code
import { ContactPage } from "@/components/templates/contact-page"

<ContactPage />
Free

v1.0.0·Added in 1.6.0

A SaaS contact page: a validated form, copyable channels with live office hours, offices on a drawn map, a short FAQ and logos.

Pick a topic (Sales, Support, Partnerships, Press) as cards with arrow keys or a tap, then fill in name, work email, company, company size (a bottom sheet on phones) and a message with a live character counter, and tick the consent box. Send message checks every field: each problem shows under its field and focus jumps to the first one; the email is also checked as soon as you leave it, and errors clear as you fix them. Company size is required for Sales only. While onSubmit runs the button spins; then the form turns into a Message sent panel ("Thanks, Emma. We'll reply within one business day.") with Send another, which keeps your name and email. Next to the form (under it on phones) the sales and support addresses and the phone number have copy buttons, Start a chat opens the chat, and Office hours shows Open now or Closed with the next opening, worked out in the office's time zone after the page loads. The office cards show each city's local time; picking one moves the drawn map and its Get directions link. The FAQ opens one answer at a time. The heading, form and channels rise in once on mount; reduced motion keeps them still.

Add to a project

npx wingo-ui@latest add contact-page

Dependencies

motionlucide-reactmarketing-sectionmarketing-headermarketing-footerfaq-sectionlogo-cloudbadgebuttoncheckboxcopy-buttonfieldinputradio-groupselecttextareanavigationmotiontonesui-config

Files

  • components/templates/contact-page.tsx
  • components/templates/contact-page-data.ts

See also

FAQ SectionLogo CloudRadio GroupCopy ButtonTextarea
PreviousCompare PageNext Customers Page