Docs Components Primitives

InputGroup

React example follows below.
ts
import { InputGroup, Button } from "@grassroot/ui-react";
export default function InputGroupDemo() {
return (
<div className="flex flex-col gap-3.5">
<InputGroup>
<InputGroup.Addon>https://</InputGroup.Addon>
<input
className="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="my-service"
/>
<InputGroup.Addon>.grassroot.sh</InputGroup.Addon>
</InputGroup>
<InputGroup>
<input
className="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="Search deployments"
/>
<Button variant="primary">Search</Button>
</InputGroup>
</div>
);
}
ts
<script setup lang="ts">
import { InputGroupAddon, InputGroup, Button } from "@grassroot/ui-vue";
</script>
<template>
<div class="flex flex-col gap-3.5">
<InputGroup>
<InputGroupAddon>https://</InputGroupAddon>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="my-service"
/>
<InputGroupAddon>.grassroot.sh</InputGroupAddon>
</InputGroup>
<InputGroup>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="Search deployments"
/>
<Button variant="primary">Search</Button>
</InputGroup>
</div>
</template>
ts
import { Component } from "@angular/core";
import {
GrassrootInputGroupAddon,
GrassrootInputGroup,
GrassrootButton,
} from "@grassroot/ui-angular";
@Component({
selector: "app-input-group-demo",
standalone: true,
imports: [GrassrootInputGroupAddon, GrassrootInputGroup, GrassrootButton],
host: { style: "display: contents" },
template: `
<div class="flex flex-col gap-3.5">
<grassroot-input-group>
<grassroot-input-group-addon>https://</grassroot-input-group-addon>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="my-service"
/>
<grassroot-input-group-addon>.grassroot.sh</grassroot-input-group-addon>
</grassroot-input-group>
<grassroot-input-group>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="Search deployments"
/>
<grassroot-button variant="primary">Search</grassroot-button>
</grassroot-input-group>
</div>
`,
})
export class InputGroupDemoComponent {}
export default InputGroupDemoComponent;
ts
<script lang="ts">
import { InputGroupAddon, InputGroup, Button } from "@grassroot/ui-svelte";
</script>
<div class="flex flex-col gap-3.5">
<InputGroup>
<InputGroupAddon>https://</InputGroupAddon>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="my-service"
/>
<InputGroupAddon>.grassroot.sh</InputGroupAddon>
</InputGroup>
<InputGroup>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="Search deployments"
/>
<Button variant="primary">Search</Button>
</InputGroup>
</div>
ts
/** @jsxImportSource solid-js */
import { InputGroup, InputGroupAddon, Button } from "@grassroot/ui-solid";
export default function InputGroupDemo() {
return (
<div class="flex flex-col gap-3.5">
<InputGroup>
<InputGroupAddon>https://</InputGroupAddon>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="my-service"
/>
<InputGroupAddon>.grassroot.sh</InputGroupAddon>
</InputGroup>
<InputGroup>
<input
class="min-w-0 flex-1 px-3 py-2.5 text-[15px] text-body placeholder:text-muted"
placeholder="Search deployments"
/>
<Button variant="primary">Search</Button>
</InputGroup>
</div>
);
}

Installation

API Reference

Import

import { InputGroup, Button } from "@grassroot/ui-react";

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { InputGroupAddon, InputGroup, Button } from "@grassroot/ui-vue";

Content regions

  • default

Import

import { Component } from "@angular/core";
import {
  GrassrootInputGroupAddon,
  GrassrootInputGroup,
  GrassrootButton,
} from "@grassroot/ui-angular";

Content regions

  • default

Import

import { InputGroupAddon, InputGroup, Button } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
class
string
optional
className
string
optional
Prop
class
Type
string
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Content regions

  • children

Import

import { InputGroup, InputGroupAddon, Button } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
className
string
optional
Prop
className
Type
string
Default
Requirement
optional

Content regions

  • children

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.