diff --git a/packages/orbit-components/src/tmp-tailwind/Textarea/Textarea.stories.tsx b/packages/orbit-components/src/tmp-tailwind/Textarea/Textarea.stories.tsx
new file mode 100644
index 0000000000..5760ff89c3
--- /dev/null
+++ b/packages/orbit-components/src/tmp-tailwind/Textarea/Textarea.stories.tsx
@@ -0,0 +1,172 @@
+import * as React from "react";
+import { action } from "@storybook/addon-actions";
+import { text, boolean, select, number } from "@storybook/addon-knobs";
+
+import { SIZE_OPTIONS, RESIZE_OPTIONS } from "../../Textarea/consts";
+import RenderInRtl from "../../utils/rtl/RenderInRtl";
+import SPACINGS_AFTER from "../../common/getSpacingToken/consts";
+
+import Textarea from ".";
+
+export default {
+ title: "Tailwind/Textarea",
+};
+
+export const Default = () => {
+ const label = text("Label", "Label");
+ const value = text("Value", "");
+ const placeholder = text("Placeholder", "Placeholder");
+
+ return (
+
+ );
+};
+
+Default.story = {
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const SmallSize = () => {
+ const value = text("Value", "");
+ const placeholder = text("Placeholder", "Placeholder");
+
+ return (
+
+ );
+};
+
+SmallSize.story = {
+ name: "Small size",
+
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const WithLabel = () => {
+ const label = text("Label", "Label");
+ const value = text("Value", "");
+ const placeholder = text("Placeholder", "Placeholder");
+
+ return (
+
+ );
+};
+
+WithLabel.story = {
+ name: "With label",
+
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const WithHelp = () => {
+ const value = text("Value", "Something");
+ const placeholder = text("Placeholder", "Placeholder");
+ const help = text("Help", "Everything is fine.");
+
+ return (
+
+ );
+};
+
+WithHelp.story = {
+ name: "With help",
+
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const WithError = () => {
+ const value = text("Value", "Something");
+ const placeholder = text("Placeholder", "Placeholder");
+ const error = text("Error", "Something went wrong.");
+
+ return (
+
+ );
+};
+
+WithError.story = {
+ name: "With error",
+
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const Playground = () => {
+ const size = select("Size", Object.values(SIZE_OPTIONS), SIZE_OPTIONS.SMALL);
+ const label = text("Label", "Label");
+ const value = text("Value", "");
+ const fullHeight = boolean("fullHeight", true);
+ const placeholder = text("Placeholder", "Placeholder");
+ const help = text("Help", "");
+ const error = text("Error", "Something went wrong.");
+ const disabled = boolean("Disabled", false);
+ const readOnly = boolean("Read-only", false);
+ const resize = select("resize", Object.values(RESIZE_OPTIONS), RESIZE_OPTIONS.VERTICAL);
+ const maxLength = number("maxLength", Infinity);
+ const dataTest = text("dataTest", "test");
+ const rows = number("rows", 3);
+ const required = boolean("required", false);
+ const spaceAfter = select("spaceAfter", Object.values(SPACINGS_AFTER), SPACINGS_AFTER.MEDIUM);
+
+ return (
+
+ );
+};
+
+Playground.story = {
+ parameters: {
+ info: "Some description about this type of textarea in general.",
+ },
+};
+
+export const Rtl = () => {
+ const label = text("Label", "Label");
+ const help = text("Help", "");
+ const error = text("Error", "Something went wrong.");
+ return (
+
+
+
+ );
+};
+
+Rtl.story = {
+ name: "RTL",
+
+ parameters: {
+ info: "This is a preview of this component in RTL setup.",
+ },
+};
diff --git a/packages/orbit-components/src/tmp-tailwind/Textarea/__tests__/index.test.tsx b/packages/orbit-components/src/tmp-tailwind/Textarea/__tests__/index.test.tsx
new file mode 100644
index 0000000000..0e5ee8c261
--- /dev/null
+++ b/packages/orbit-components/src/tmp-tailwind/Textarea/__tests__/index.test.tsx
@@ -0,0 +1,86 @@
+import * as React from "react";
+import userEvent from "@testing-library/user-event";
+
+import { render, screen, act } from "../../../test-utils";
+import Textarea from "..";
+import SPACINGS_AFTER from "../../../common/getSpacingToken/consts";
+
+describe("Textarea", () => {
+ const user = userEvent.setup();
+
+ it("should have expected DOM output", async () => {
+ const name = "name";
+ const label = "Label";
+ const placeholder = "placeholder";
+ const dataTest = "test";
+ const maxLength = 200;
+ const fullHeight = true;
+ const spaceAfter = SPACINGS_AFTER.NORMAL;
+ const dataAttrs = {
+ "data-sample": "Sample",
+ };
+
+ render(
+