Textarea
shadcn-lit-registry/textareaFreeComponent
Displays a form textarea or a component that looks like a textarea.
Install it
npx shadcn@latest add https://lit-registry.lloydrichards.dev/r/textarea.jsonSource
1import type { Meta, StoryObj } from "@storybook/web-components-vite";2import { html } from "lit";34type TextareaArgs = HTMLTextAreaElement & { children?: string };56const meta: Meta<TextareaArgs> = {7 title: "ui/Textarea",8 component: "textarea",9 tags: ["autodocs"],10 argTypes: {11 placeholder: {12 control: "text",13 description: "Placeholder text shown when empty",14 },15 disabled: {16 control: "boolean",17 description: "Whether textarea is disabled",18 },19 required: {20 control: "boolean",21 description: "Whether textarea is required",22 },23 rows: {24 control: "number",25 description: "Number of visible text rows",26 },27 maxLength: {28 control: "number",29 description: "Maximum character length",30 },31 },32 args: {33 placeholder: "Type your message here.",34 disabled: false,35 required: false,36 rows: 3,37 },38 parameters: {39 layout: "centered",40 },41 render: (args) => html`42 <textarea43 placeholder=${args.placeholder}44 ?disabled=${args.disabled}45 ?required=${args.required}46 rows=${args.rows || 3}47 maxlength=${args.maxLength}48 class="ui-textarea w-96"49 ></textarea>50 `,51};5253export default meta;54type Story = StoryObj<TextareaArgs>;5556export const Default: Story = {};5758export const Disabled: Story = {59 args: { disabled: true },60};6162export const WithLabel: Story = {63 render: (args) => html`64 <div class="grid w-full gap-3">65 <label class="ui-label" for="message">Your message</label>66 <textarea67 id="message"68 placeholder=${args.placeholder}69 ?disabled=${args.disabled}70 class="ui-textarea w-96"71 ></textarea>72 </div>73 `,74};7576export const WithHelperText: Story = {77 render: (args) => html`78 <div class="grid w-full gap-3">79 <label class="ui-label" for="message-2">Your Message</label>80 <textarea81 id="message-2"82 placeholder=${args.placeholder || ""}83 ?disabled=${args.disabled}84 class="ui-textarea w-96"85 ></textarea>86 <p class="text-sm text-muted-foreground">87 Your message will be copied to the support team.88 </p>89 </div>90 `,91};9293export const WithCustomRows: Story = {94 args: {95 rows: 10,96 },97};9899export const WithMaxLength: Story = {100 args: {101 maxLength: 500,102 placeholder: "Max 500 characters...",103 },104};105106export const NoResize: Story = {107 render: () => html`108 <textarea109 placeholder="Type your message here."110// … truncated
Files it writes
More from shadcn-lit-registry
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | shadcn-lit-registry | Components | Free | 1 dep · 2 files | |
| Avataravatar | shadcn-lit-registry | Components | Free | no deps · 2 files | |
| Badgebadge | shadcn-lit-registry | Components | Free | no deps · 2 files | |
| Buttonbutton | shadcn-lit-registry | Components | Free | 1 dep · 2 files | |
| Cardcard | shadcn-lit-registry | Components | Free | no deps · 2 files | |
| Checkboxcheckbox | shadcn-lit-registry | Components | Free | 1 dep · 2 files | |
| Collapsiblecollapsible | shadcn-lit-registry | Components | Free | 1 dep · 2 files | |
| Commandcommand | shadcn-lit-registry | Components | Free | 1 dep · 2 files |
