For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/v0.2.0/en/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/v0.2.0/en/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/v0.2.0/en/components/input-group.md.

Input Group

Live preview
12 results

Usage

Include CSS

Import Tailwind and one full A3S UI style bundle.

@import "tailwindcss";
@import "@a3s-lab/ui/a3s.css";

Or import only the base CSS, Input Group component CSS, and one style pack.

@import "tailwindcss";
@import "@a3s-lab/ui/base.css";
@import "@a3s-lab/ui/components/input-group.css";
@import "@a3s-lab/ui/styles/a3s.css";

Using CDN or bundler imports? See the Installation page.

Add your input group HTML

<div class="input-group">
  <input type="text" aria-label="Search" placeholder="Search..." />
  <span data-align="start" aria-hidden="true"> <!-- icon --></span>
  <span data-align="end">12 results</span>
</div>

Add class="input-group" to the root. Native controls stay semantic and become borderless children inside that shell.

<div class="input-group">

The root shell. Add role="group" and an accessible label only when the group itself needs to be named.

<input>, <textarea>, <select>
The native control. Use aria-invalid="true" for invalid state and disabled for disabled state.
<span>, <svg>, <kbd>
Decorative or helper content. Use aria-hidden="true" for decorative icons.
<button>, <div role="group">
Interactive actions. Use role="group" with an accessible label when multiple related actions share one side of the input.
<header>, <footer>
Header or footer addon rows for vertically oriented input groups.
data-align="start|end"
Optional visual placement. Values use logical direction, so start/end automatically flip in RTL. Use data-orientation="vertical" on the root for header/footer layouts.
[data-control]
Escape hatch for custom controls that are not native input, textarea, or select.

Examples

Use data-align="start|end" on addon wrappers to position them inline. Use data-orientation="vertical" with header or footer for block placement.

Inline start

Live preview

Icon positioned at the start.

Inline end

Live preview

Icon positioned at the end.

Block start

Live preview
Full Name

Header positioned above the input.

script.js

Header positioned above the textarea.

Block end

Live preview
USD

Footer positioned below the input.

0/280

Footer positioned below the textarea.

Icon

Live preview

Text

Live preview
$USD
https://.com
@company.com
120 characters left

Button

Live preview
https://

Kbd

Live preview
⌘K
Live preview

Spinner

Live preview
Saving...
Please wait...

Textarea

Live preview
Line 1, Column 1
script.js

Custom input

Live preview

RTL

Live preview
١٢ نتيجة
جاري الحفظ...
٠/٢٨٠

تذييل موضع أسفل منطقة النص.