From 9508b4a94d56d5960c55ace61bf160d33abf57bc Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 12 Aug 2026 12:52:09 +0000
Subject: [PATCH 1/3] Add Textarea field sizing option
Co-authored-by: HiroAgustin <1458873+HiroAgustin@users.noreply.github.com>
---
.changeset/textarea-field-sizing.md | 5 +++++
packages/react/src/Textarea/TextArea.module.css | 5 +++++
packages/react/src/Textarea/Textarea.docs.json | 8 +++++++-
.../react/src/Textarea/Textarea.features.stories.tsx | 9 +++++++++
packages/react/src/Textarea/Textarea.stories.tsx | 4 ++++
packages/react/src/Textarea/Textarea.test.tsx | 11 +++++++++++
packages/react/src/Textarea/Textarea.tsx | 6 ++++++
7 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 .changeset/textarea-field-sizing.md
diff --git a/.changeset/textarea-field-sizing.md b/.changeset/textarea-field-sizing.md
new file mode 100644
index 00000000000..f4a5d6c3bd1
--- /dev/null
+++ b/.changeset/textarea-field-sizing.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': minor
+---
+
+Textarea: Add a `fieldSizing` option that allows the field to grow with its content
diff --git a/packages/react/src/Textarea/TextArea.module.css b/packages/react/src/Textarea/TextArea.module.css
index 9397b4f8b3d..f152902ca93 100644
--- a/packages/react/src/Textarea/TextArea.module.css
+++ b/packages/react/src/Textarea/TextArea.module.css
@@ -29,6 +29,11 @@
resize: vertical;
}
+.TextArea[data-field-sizing='true'] {
+ min-height: 1lh;
+ field-sizing: content;
+}
+
.TextArea:disabled {
resize: none;
}
diff --git a/packages/react/src/Textarea/Textarea.docs.json b/packages/react/src/Textarea/Textarea.docs.json
index d657b622f17..23a16a99245 100644
--- a/packages/react/src/Textarea/Textarea.docs.json
+++ b/packages/react/src/Textarea/Textarea.docs.json
@@ -67,6 +67,12 @@
"defaultValue": "'both'",
"description": "Changes the resize behavior"
},
+ {
+ "name": "fieldSizing",
+ "type": "boolean",
+ "defaultValue": "false",
+ "description": "Allows the textarea to grow to fit its content"
+ },
{
"name": "characterLimit",
"type": "number",
@@ -110,4 +116,4 @@
}
],
"subcomponents": []
-}
\ No newline at end of file
+}
diff --git a/packages/react/src/Textarea/Textarea.features.stories.tsx b/packages/react/src/Textarea/Textarea.features.stories.tsx
index ccce128c3c0..0a79f15f167 100644
--- a/packages/react/src/Textarea/Textarea.features.stories.tsx
+++ b/packages/react/src/Textarea/Textarea.features.stories.tsx
@@ -108,6 +108,15 @@ export const CustomResizeBehavior = () => (
)
+export const FieldSizing = () => (
+
+)
+
export const MinimumHeight = () => (