mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-10 06:24:35 +09:00
## Summary - move the complete GitBook documentation tree and assets into Builder under `/docs` - generate the exhaustive MCP page from the local CLI source in the same change - publish GitBook from a release-gated `docs` branch containing the exact successfully released revision - run MCP documentation tests, typechecking, and stale-output checks with the existing generated-docs check - remove links to the Community Discussions repository ## Technical choices - Import the current documentation as a linear snapshot so the branch satisfies Builder's required-linear-history protection. - Keep the Markdown wrapper separate from the TypeScript generator at `scripts/docs/mcp-page.md`. - Generate through `packages/cli/local.js` so CLI guidance and its documentation are reviewed together. - Let `check:generated-docs` reject CLI changes that leave the committed MCP page stale. - After both GitHub release creation and package publication succeed, fast-forward the read-only `docs` branch to the immutable release tag commit. A divergent update fails instead of publishing a different revision. - Configure GitBook to publish `/docs` from the `docs` branch, not directly from `main`. - Exclude `/docs` from the repository-wide `oxfmt` scan so imported GitBook Markdown retains its established formatting; generator tests and stale-output checks still validate the MCP page. - Exclude `transcripts/` and GitHub Discussions from the migration. ## Todo - [x] Import documentation, navigation, includes, and assets under `/docs`. - [x] Generate the MCP page from the local CLI source. - [x] Move MCP generation and validation into Builder. - [x] Require MCP documentation updates alongside CLI changes. - [x] Publish released revisions through a read-only `docs` branch. - [x] Remove Community repository links from Builder and the migrated docs. - [x] Preserve and verify a final Community Git bundle locally. - [ ] Merge this pull request. - [ ] Let the next successful release create or advance the `docs` branch. - [ ] Repoint GitBook Git Sync to `webstudio-is/webstudio`, branch `docs`, root directory `/docs`. - [ ] Verify `docs.webstudio.is`, navigation, assets, anchors, and the MCP page in production. - [ ] Delete `webstudio-is/webstudio-community`. ## Verification - `pnpm check:generated-docs` - `pnpm lint` - `pnpm oxfmt --check` - `git diff --check origin/main...HEAD` - generator regression test demonstrated failing when the GitBook wrapper behavior was removed, then passing after restoration - no fixture inputs or outputs are affected ## Known limitation All documentation merged after the previous release waits for the next successful release before GitBook publishes it. This deliberately keeps the public MCP reference aligned with an installable CLI revision. Ref #5986
3.7 KiB
3.7 KiB
description
| description |
|---|
| Add multi-line text input fields to forms in Webstudio. |
Textarea
See MDN: <textarea>
The Textarea component creates a multi-line text input field for collecting longer text content.
Overview
Textarea is used when you need users to enter multiple lines of text, such as messages, descriptions, comments, or any long-form content.
Properties
| Property | Type | Description |
|---|---|---|
name |
string | Form field name |
placeholder |
string | Hint text shown when empty |
value |
string | Current content |
required |
boolean | Whether the field is required |
disabled |
boolean | Whether input is disabled |
readonly |
boolean | Whether input is read-only |
rows |
number | Visible number of lines |
cols |
number | Visible width in characters |
maxlength |
number | Maximum character limit |
minlength |
number | Minimum character limit |
wrap |
string | Text wrapping mode (soft/hard) |
id |
string | Unique identifier |
class |
string | CSS class names |
Basic Usage
Form
├── Label (for: message)
├── Textarea (id: message, name: message, rows: 5)
└── Button (type: submit)
Sizing
Fixed Size
Set rows and cols attributes for fixed dimensions:
rows: Number of visible text linescols: Width in average character widths
CSS Sizing
For responsive sizing, use CSS:
width: Control width (e.g.,100%)height: Control heightmin-height/max-height: Set boundaries
Resizable Behavior
By default, textareas can be resized by users. Control this with CSS:
resize: none- Not resizableresize: vertical- Only vertical resizingresize: horizontal- Only horizontal resizingresize: both- Both directions (default)
Character Limits
Maximum Length
Textarea (maxlength: 500)
Show Character Count
Use a Text component with an expression to show remaining characters:
Remaining: {500 - textareaValue.length}
Styling
Common Styles
- Border: Match your design system's input styles
- Padding:
12pxfor comfortable text entry - Font: Use the same font as your text inputs
- Line Height: 1.5 for readability
State Styles
| State | Style Suggestion |
|---|---|
| Default | Subtle border, light background |
| Focus | Highlighted border or ring |
| Disabled | Muted colors, cursor: not-allowed |
| Invalid | Red border, error colors |
Best Practices
- Use labels: Always associate with a label
- Set appropriate rows: Show enough lines for expected content
- Provide size hints: Let users know expected length
- Consider auto-resize: Use JavaScript for auto-growing textareas
- Match input styles: Keep consistent with other form fields
- Add character count: For limited fields, show remaining characters
When to Use
| Use Textarea | Use Input |
|---|---|
| Comments/messages | Single-line fields |
| Descriptions | Names, emails |
| Bio/about sections | Phone numbers |
| Addresses (multi-line) | Short inputs |
| Notes | Passwords |