Strongtie Design System
Getting StartedComponents

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Setup Guide
  • Package Installation
  • Code Quality Setup
  • Migration Guide
  • Resources
Registry
  • Getting Started
  • Combobox
  • Datepicker
  • MultiSelect
  • Tree
Guides
  • Framework Recommendations
Foundations
  • States
  • Variables
Components
  • Accordion
  • Alert
  • Alert Dialog
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • Button Group
  • Calendar
  • Card
  • Carousel
  • Chart
  • Checkbox
  • Collapsible
  • Command
  • Combobox
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Empty
  • Field
  • Hover Card
  • Input
  • Input Group
  • Item
  • Kbd
  • Label
  • Menubar
  • Multi Select
  • Navigation Menu
  • Pagination
  • Popover
  • Progress
  • Radio Group
  • Scroll Area
  • Select
  • Separator
  • Sheet
  • Sidebar
  • Skeleton
  • Slider
  • Switch
  • Table
  • Tabs
  • Textarea
  • Toaster
  • Toggle
  • Toggle Group
  • Tooltip
  • Tree
2026 Simpson Strong-Tie
  1. Docs
  2. Components
  3. Input

Input

PreviousNext

Input is a text entry field that allows users to enter and edit text in a single line.

Text inputs are fundamental form elements that support all standard HTML input types and attributes, making them versatile for various data entry needs such as text, email, password, numbers, and more. Inputs provide visual feedback for focus, validation states, and disabled states to guide users through data entry tasks.

Use inputs for collecting user information in forms, search interfaces, or any scenario requiring text-based data entry. Inputs should be paired with labels to clearly identify their purpose and improve accessibility. Consider using appropriate input types and validation attributes to enhance the user experience and data quality.

Example

"use client"

import { Input } from "@strongtie/design-system/input"

export function InputDefault() {
  return <Input placeholder="Enter text..." />
}

Installation

npm install @strongtie/design-system
import { Input } from "@strongtie/design-system/input"

Props

All components accept standard HTML attributes and React props.

Examples

"use client"

import { Input } from "@strongtie/design-system/input"

export function InputDefault() {
  return <Input placeholder="Enter text..." />
}

Disabled

"use client"

import { Input } from "@strongtie/design-system/input"
import { Label } from "@strongtie/design-system/label"

export function InputDisabled() {
  return (
    <div className="flex flex-col gap-2">
      <Label htmlFor="disabled-input">Disabled Input</Label>
      <Input
        id="disabled-input"
        type="text"
        placeholder="You cannot edit this"
        disabled
        defaultValue="This input is disabled"
      />
    </div>
  )
}

Types

"use client"

import { Input } from "@strongtie/design-system/input"
import { Label } from "@strongtie/design-system/label"

export function InputTypes() {
  return (
    <div className="grid w-full max-w-sm gap-4">
      <div className="grid items-center gap-1.5">
        <Label htmlFor="text">Text</Label>
        <Input type="text" id="text" placeholder="Enter text" />
      </div>
      <div className="grid items-center gap-1.5">
        <Label htmlFor="email">Email</Label>
        <Input type="email" id="email" placeholder="email@example.com" />
      </div>
      <div className="grid items-center gap-1.5">
        <Label htmlFor="password">Password</Label>
        <Input type="password" id="password" placeholder="Password" />
      </div>
      <div className="grid items-center gap-1.5">
        <Label htmlFor="number">Number</Label>
        <Input type="number" id="number" placeholder="123" />
      </div>
      <div className="grid items-center gap-1.5">
        <Label htmlFor="date">Date</Label>
        <Input type="date" id="date" />
      </div>
    </div>
  )
}

With Label

"use client"

import { Input } from "@strongtie/design-system/input"
import { Label } from "@strongtie/design-system/label"

export function InputWithLabel() {
  return (
    <div className="grid w-full max-w-sm items-center gap-1.5">
      <Label htmlFor="email">Email</Label>
      <Input type="email" id="email" placeholder="Email" />
    </div>
  )
}

Styling

Components can be styled using the className prop. The design system uses Tailwind CSS for styling.

Classes

CSS classes used by this component:

  • input

Accessibility

Ensure proper accessibility attributes are added when implementing this component.

Input GroupItem

On This Page

ExampleInstallationPropsExamplesDisabledTypesWith LabelStylingClassesAccessibility

Contribute

  • Report an issue
  • Request a feature
  • Edit this page