Getting StartedComponentsDesign TokensThemingTheme SynthesizerFrameworksAccessibilityUtilitiesServer RenderingBrowser SupportContributingChangelogApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip
ARC UIARC Radiant Components
v4.9DocsComponentsTokensSynthesizer
Getting StartedFrameworksServer RenderingDesign TokensThemingTheme SynthesizerTypographyUtilitiesAll ComponentsAccessibilityBrowser SupportChangelogContributingStatsApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip

Input Group

Combines an input with prefix and suffix addon slots for labels, icons, or buttons attached to the input border.

ComponentsInput Group
inputhybrid
<arc-input-group>

Overview

InputGroup wraps an input control with optional prefix and suffix addon areas that appear visually attached to the input. The addons share the input's border and focus glow, creating a single unified control that reads as one element. Common patterns include protocol prefixes ("https://"), domain suffixes (".com"), currency symbols, unit labels, and action buttons. The component strips border, border-radius, and box-shadow from slotted inputs so the group's outer container provides the unified visual frame. The focus-within pseudo-class triggers the accent border and glow on the outer container, so the entire group lights up when the inner input receives focus. Three size presets (sm, md, lg) adjust the addon padding and font size to match the input scale.

Guidelines

When to use

  • Use for inputs that need contextual labels like "https://", "$", or ".com"
  • Place action buttons (copy, clear, search) in the suffix slot
  • Match the group `size` to the slotted input size for alignment

When not to use

  • Do not put multiple inputs inside a single input group. Use one input per group
  • Do not use input group for purely decorative icons. Use the input's own icon slot if available
  • Do not nest input groups inside each other

Features

  • Prefix and suffix addon slots for labels, icons, or buttons
  • Unified border and focus glow across the entire group
  • Automatically strips border/radius/shadow from slotted inputs
  • Works with `arc-input`, `arc-select`, and native HTML inputs
  • Three size presets: sm, md, lg
  • Focus-within styling highlights the entire group on input focus
  • Exposed CSS parts: group, prefix, content, suffix

Preview

https:// $ USD

Usage

Layout and styling work without JavaScript via the HTML/CSS versions. Interactive features like events and state management require the Web Component or a framework wrapper.

<!-- URL input with prefix -->
<arc-input-group>
  <span slot="prefix">https://</span>
  <arc-input placeholder="example.com"></arc-input>
</arc-input-group>

<!-- Currency input with prefix and suffix -->
<arc-input-group>
  <span slot="prefix">$</span>
  <arc-input type="number" placeholder="0.00"></arc-input>
  <span slot="suffix">USD</span>
</arc-input-group>

API

size'sm' | 'md' | 'lg''md'
Controls addon padding and font size.

See Also