diff --git a/.changeset/ninety-eggs-cross.md b/.changeset/ninety-eggs-cross.md
new file mode 100644
index 000000000..44faa114d
--- /dev/null
+++ b/.changeset/ninety-eggs-cross.md
@@ -0,0 +1,5 @@
+---
+"@openfun/cunningham-react": minor
+---
+
+add TextArea component
diff --git a/packages/react/src/components/Forms/Examples/index.stories.tsx b/packages/react/src/components/Forms/Examples/index.stories.tsx
index c739b3b04..9dcdfa549 100644
--- a/packages/react/src/components/Forms/Examples/index.stories.tsx
+++ b/packages/react/src/components/Forms/Examples/index.stories.tsx
@@ -8,6 +8,7 @@ import { Select } from ":/components/Forms/Select";
import { FileUploader } from ":/components/Forms/FileUploader";
import { Switch } from ":/components/Forms/Switch";
import { Radio } from ":/components/Forms/Radio";
+import { TextArea } from ":/components/Forms/TextArea";
export default {
title: "Components/Forms/Examples",
@@ -106,6 +107,9 @@ export const Application = () => {
accept="application/pdf"
/>
+
+
+
diff --git a/packages/react/src/components/Forms/Input/index.mdx b/packages/react/src/components/Forms/Input/index.mdx
index 091b8d098..b3940d94a 100644
--- a/packages/react/src/components/Forms/Input/index.mdx
+++ b/packages/react/src/components/Forms/Input/index.mdx
@@ -122,7 +122,7 @@ You can use all the props of the native html `` element props plus the fo
## Design tokens
-Here are the custom design tokens defined by the button.
+Here are the custom design tokens defined by the input.
| Token | Description |
|--------------- |----------------------------- |
diff --git a/packages/react/src/components/Forms/Input/index.scss b/packages/react/src/components/Forms/Input/index.scss
index e8f4691aa..8f6814275 100644
--- a/packages/react/src/components/Forms/Input/index.scss
+++ b/packages/react/src/components/Forms/Input/index.scss
@@ -25,6 +25,7 @@
flex-grow: 1;
text-overflow: ellipsis;
background-color: transparent;
+ font-family: var(--c--theme--font--families--base);
@extend %text-style;
&__icon-left,
@@ -87,7 +88,6 @@
&--disabled {
cursor: default;
-
border-color: var(--c--theme--colors--greyscale-200);
.c__input {
diff --git a/packages/react/src/components/Forms/TextArea/index.mdx b/packages/react/src/components/Forms/TextArea/index.mdx
new file mode 100644
index 000000000..212ad0a9b
--- /dev/null
+++ b/packages/react/src/components/Forms/TextArea/index.mdx
@@ -0,0 +1,126 @@
+import { Canvas, Meta, Story, Source, ArgTypes } from '@storybook/blocks';
+import * as Stories from './index.stories';
+import { TextArea } from '.';
+
+
+
+# TextArea
+
+Cunningham provides a versatile TextArea component that you can use in your forms.
+
+
+
+
+
+## States
+
+You can use the following props to change the state of the TextArea component by using the `state` props.
+
+
+
+
+
+
+
+## Disabled
+
+As a regular textarea, you can disable it by using the `disabled` props.
+
+
+
+## Texts
+
+You can define a text that will appear below the input by using the `text` props.
+
+
+
+You can also independently add a text on the right side by using the `rightText` props.
+
+
+
+## Width
+
+By default, the textarea has a default width, like all inputs. But you can force it to take the full width of its container by using the `fullWidth` props.
+
+
+
+## Chars Counter
+
+You can display a counter of the number of characters entered in the textarea by using the `charsCounter` props. Please bare
+in mind to also define `charCounterMax`.
+
+
+
+## Controlled / Non Controlled
+
+Like a native textarea, you can use the TextArea component in a controlled or non controlled way. You can see the example below
+using the component in a controlled way.
+
+
+
+## Ref
+
+You can use the `ref` props to get a reference to the textarea element.
+
+
+
+## Props
+
+You can use all the props of the native html `