Input Textarea

Multi-line text input fields for longer content.

Basic Textarea

HTML
<div style="max-width: 400px">
            <label
                style="display: block; margin-bottom: 8px; font-weight: 500"
            >
                Description
            </label>
            <textarea
                class="textarea"
                rows="4"
                placeholder="Enter your description here..."
                style="
                    width: 100%;
                    padding: 12px;
                    border: 1px solid var(--color_line_secondary);
                    border-radius: 8px;
                    font-family: inherit;
                    font-size: 14px;
                    resize: vertical;
                    box-sizing: border-box;
                "
            ></textarea>
        </div>

Textarea with Character Count

Maximum 200 characters 0 / 200
HTML
<div style="max-width: 400px">
            <label
                style="display: block; margin-bottom: 8px; font-weight: 500"
            >
                Bio
            </label>
            <textarea
                class="textarea"
                rows="4"
                maxlength="200"
                placeholder="Tell us about yourself..."
                style="
                    width: 100%;
                    padding: 12px;
                    border: 1px solid var(--color_line_secondary);
                    border-radius: 8px;
                    font-family: inherit;
                    font-size: 14px;
                    resize: vertical;
                    box-sizing: border-box;
                "
            ></textarea>
            <div
                style="
                    display: flex;
                    justify-content: space-between;
                    margin-top: 6px;
                    font-size: 12px;
                    opacity: 0.7;
                "
            >
                <span>Maximum 200 characters</span>
                <span>0 / 200</span>
            </div>
        </div>

Textarea Sizes

HTML
<div
            style="
                display: flex;
                flex-direction: column;
                gap: 20px;
                max-width: 400px;
            "
        >
            <!-- Small -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 13px"
                >
                    Small
                </label>
                <textarea
                    class="textarea textarea--small"
                    rows="2"
                    placeholder="Small textarea..."
                    style="
                        width: 100%;
                        padding: 8px 10px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 6px;
                        font-family: inherit;
                        font-size: 13px;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
            <!-- Medium -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 14px"
                >
                    Medium (Default)
                </label>
                <textarea
                    class="textarea"
                    rows="3"
                    placeholder="Medium textarea..."
                    style="
                        width: 100%;
                        padding: 12px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 8px;
                        font-family: inherit;
                        font-size: 14px;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
            <!-- Large -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 15px"
                >
                    Large
                </label>
                <textarea
                    class="textarea textarea--large"
                    rows="5"
                    placeholder="Large textarea..."
                    style="
                        width: 100%;
                        padding: 16px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 10px;
                        font-family: inherit;
                        font-size: 16px;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
        </div>

Textarea States

This field is required
✓ Looks good!
HTML
<div
            style="
                display: flex;
                flex-direction: column;
                gap: 20px;
                max-width: 400px;
            "
        >
            <!-- Focus State -->
            <div>
                <label style="display: block; margin-bottom: 6px">
                    Focused
                </label>
                <textarea
                    class="textarea focus"
                    rows="3"
                    placeholder="Focused textarea..."
                    style="
                        width: 100%;
                        padding: 12px;
                        border: 2px solid var(--color_fill_primary);
                        border-radius: 8px;
                        font-family: inherit;
                        font-size: 14px;
                        resize: vertical;
                        box-sizing: border-box;
                        outline: none;
                        box-shadow: 0 0 0 3px
                            rgba(var(--color_fill_primary), 0.2);
                    "
                ></textarea>
            </div>
            <!-- Disabled State -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; opacity: 0.5"
                >
                    Disabled
                </label>
                <textarea
                    class="textarea disabled"
                    rows="3"
                    disabled
                    placeholder="Disabled textarea..."
                    style="
                        width: 100%;
                        padding: 12px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 8px;
                        font-family: inherit;
                        font-size: 14px;
                        resize: vertical;
                        box-sizing: border-box;
                        background: var(--color_fill_secondary);
                        opacity: 0.6;
                        cursor: not-allowed;
                    "
                ></textarea>
            </div>
            <!-- Error State -->
            <div>
                <label style="display: block; margin-bottom: 6px">Error</label>
                <textarea
                    class="textarea error"
                    rows="3"
                    placeholder="Error textarea..."
                    style="
                        width: 100%;
                        padding: 12px;
                        border: 2px solid var(--color_state_error);
                        border-radius: 8px;
                        font-family: inherit;
                        font-size: 14px;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                ></textarea>
                <span
                    style="
                        display: block;
                        margin-top: 6px;
                        font-size: 13px;
                        color: var(--color_state_error);
                    "
                >
                    This field is required
                </span>
            </div>
            <!-- Success State -->
            <div>
                <label style="display: block; margin-bottom: 6px">
                    Success
                </label>
                <textarea
                    class="textarea success"
                    rows="3"
                    style="
                        width: 100%;
                        padding: 12px;
                        border: 2px solid var(--color_state_success);
                        border-radius: 8px;
                        font-family: inherit;
                        font-size: 14px;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                >
Valid content here</textarea
                >
                <span
                    style="
                        display: block;
                        margin-top: 6px;
                        font-size: 13px;
                        color: var(--color_state_success);
                    "
                >
                    ✓ Looks good!
                </span>
            </div>
        </div>

Resize Options

HTML
<div
            style="
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
                gap: 20px;
            "
        >
            <!-- Vertical Resize -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 13px"
                >
                    Vertical Resize
                </label>
                <textarea
                    rows="3"
                    placeholder="Resize vertically..."
                    style="
                        width: 100%;
                        padding: 10px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 6px;
                        font-family: inherit;
                        resize: vertical;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
            <!-- Horizontal Resize -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 13px"
                >
                    Horizontal Resize
                </label>
                <textarea
                    rows="3"
                    placeholder="Resize horizontally..."
                    style="
                        width: 100%;
                        padding: 10px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 6px;
                        font-family: inherit;
                        resize: horizontal;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
            <!-- No Resize -->
            <div>
                <label
                    style="display: block; margin-bottom: 6px; font-size: 13px"
                >
                    No Resize
                </label>
                <textarea
                    rows="3"
                    placeholder="Cannot resize..."
                    style="
                        width: 100%;
                        padding: 10px;
                        border: 1px solid var(--color_line_secondary);
                        border-radius: 6px;
                        font-family: inherit;
                        resize: none;
                        box-sizing: border-box;
                    "
                ></textarea>
            </div>
        </div>