Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
2de3109
feat: name and group the answer types, one icon each
PhilReinking Oct 13, 2026
39d3850
feat: add a type picker grouped as Text, Choice, Rating, Other, Content
PhilReinking Oct 13, 2026
68b2b3f
feat: add a question anywhere through the type picker
PhilReinking Oct 13, 2026
6069071
feat: type / in an empty question to pick its answer type
PhilReinking Oct 13, 2026
35a9755
Merge remote-tracking branch 'origin/feat/bits-282b-outline-phone' in…
PhilReinking Oct 13, 2026
e710ffd
docs: add the type picker to the changelog (#276)
PhilReinking Oct 13, 2026
f9037f0
Merge branch 'feat/bits-282c-keyboard-move' into feat/bits-283-type-p…
PhilReinking Oct 13, 2026
bfb6428
docs: say that / picks the empty question's type
PhilReinking Oct 13, 2026
21be850
docs: use the new answer type names and the picker steps
PhilReinking Oct 13, 2026
2f9036d
feat: Add question at the end of the document adds at the end
PhilReinking Oct 13, 2026
9b5a38d
fix: an empty form doesn't say 0 questions
PhilReinking Oct 13, 2026
53de514
fix: the type picker scrolls into view, and a phone keeps its keyboar…
PhilReinking Oct 13, 2026
17d4bd1
fix: the keyboard-picked answer type shows a blue ring
PhilReinking Oct 13, 2026
3b5d677
fix: a click outside the / picker leaves the cursor where you clicked
PhilReinking Oct 13, 2026
17d3ccc
docs: answer type names in sentence case, as in the editor
PhilReinking Oct 13, 2026
e323b14
fix: a click elsewhere leaves the cursor there, also for the end picker
PhilReinking Oct 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -43,26 +43,26 @@ export default defineConfig({
collapsed: true,
items: [
{
text: "Information Block 📝",
text: "Text only 📝",
link: "/input-types/no-interaction",
},
{
text: "Multiple Choice 🔘",
text: "Single choice 🔘",
link: "/input-types/multiplechoice",
},
{ text: "Checkboxes ✅", link: "/input-types/checkboxes" },
{ text: "Short Text 💬", link: "/input-types/short-text" },
{ text: "Long Text 📄", link: "/input-types/long-text" },
{ text: "Short text 💬", link: "/input-types/short-text" },
{ text: "Long text 📄", link: "/input-types/long-text" },
{ text: "Number 🔢", link: "/input-types/number" },
{ text: "Email 📧", link: "/input-types/email" },
{ text: "Link 🔗", link: "/input-types/link" },
{ text: "Phone ☎️", link: "/input-types/phone" },
{ text: "Date 📅", link: "/input-types/date" },
{ text: "Secret 🔒", link: "/input-types/secret" },
{ text: "Hidden text 🔒", link: "/input-types/secret" },
{ text: "Rating ⭐", link: "/input-types/rating" },
{ text: "Scale 📊", link: "/input-types/scale" },
{
text: "File Upload 📁",
text: "File upload 📁",
link: "/input-types/file-upload",
},
{ text: "Consent ✓", link: "/input-types/consent" },
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Lines marked **Upgrade step** need you to act after updating.
- The API can copy a question (`POST /api/blocks/{block}/duplicate`) with its text, settings, answers and Required, but not its rules. The copy goes right after the original. (#262)
- The form's team can try a form in preview mode, also while it's a draft. Answers in preview mode are never stored or counted and send no webhooks or emails. (#266)
- Add `?preview=1` to your form's link to try it as a member of its team. Nothing is stored, files aren't uploaded and the form doesn't redirect at the end. (#270)
- Add a question right where you need it: between questions or from a question's menu, and type "/" in an empty question to pick its answer type. A picker groups the answer types as Text, Choice, Rating, Other and Content, and the new question opens ready to type. The answer types have new names, like Single choice, Short text and Text only. (#276)

### Changed

Expand Down
2 changes: 1 addition & 1 deletion docs/input-types/checkboxes.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ Checkboxes allow users to select multiple options from a list, making them perfe
- When you want to offer comprehensive option coverage

::: warning Note
If you want users to select only one option from a list, use the **Multiple Choice (Radio)** input type instead.
If you want users to select only one option from a list, use the **Single choice** input type instead.
:::
8 changes: 4 additions & 4 deletions docs/input-types/file-upload.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# File Upload 📁
# File upload 📁

The File Upload input type allows users to attach files to their form responses. It supports multiple file types and offers a user-friendly drag-and-drop interface.
The File upload input type allows users to attach files to their form responses. It supports multiple file types and offers a user-friendly drag-and-drop interface.

## How to use:

1. Choose **File Upload** as the input type
1. Choose **File upload** as the input type
2. Enter instructions for what files users should upload
3. Configure the upload settings:
- **Maximum Files**: Set how many files users can upload
Expand Down Expand Up @@ -40,7 +40,7 @@ The File Upload input type allows users to attach files to their form responses.
- **Document Collection**: ID verification or signed forms
- **Media Sharing**: Audio or video uploads for feedback

## When to use File Upload:
## When to use File upload:

- When you need users to submit existing files rather than typing information
- For collecting visual or media information that can't be entered as text
Expand Down
12 changes: 6 additions & 6 deletions docs/input-types/long-text.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Long Text 📄
# Long text 📄

The Long Text input type provides a multi-line text area for collecting detailed, open-ended responses from users. It's ideal for comments, feedback, descriptions, and any situation where users need to enter more than a brief phrase.
The Long text input type provides a multi-line text area for collecting detailed, open-ended responses from users. It's ideal for comments, feedback, descriptions, and any situation where users need to enter more than a brief phrase.

## How to use:

1. Select **Long Text** as the input type
1. Select **Long text** as the input type
2. Enter the question or prompt
3. Configure the text area options:
- **Rows**: Number of visible text rows (1-10, default: 5)
Expand Down Expand Up @@ -35,7 +35,7 @@ The Long Text input type provides a multi-line text area for collecting detailed
💡 Set an appropriate character limit based on the expected response length. For short paragraphs, 500 characters is usually sufficient, while detailed feedback might require 1000+ characters. Add clear instructions about the level of detail you're looking for to guide users.
:::

## When to use Long Text:
## When to use Long text:

- When you need more than a single line of text
- For qualitative, open-ended responses
Expand All @@ -45,13 +45,13 @@ The Long Text input type provides a multi-line text area for collecting detailed
- For feedback that requires elaboration

::: warning Note
While Long Text fields are great for detailed responses, very long responses may be difficult for users to type, especially on mobile devices. For extremely detailed information, consider breaking your questions into smaller, more focused parts.
While Long text fields are great for detailed responses, very long responses may be difficult for users to type, especially on mobile devices. For extremely detailed information, consider breaking your questions into smaller, more focused parts.
:::

## Technical Details:

- Text can include line breaks and paragraphs
- The character counter updates in real-time as users type
- Maximum storage capacity is virtually unlimited
- Long Text fields cannot include rich formatting (bold, italics, etc.)
- Long text fields cannot include rich formatting (bold, italics, etc.)

8 changes: 4 additions & 4 deletions docs/input-types/multiplechoice.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Multiple Choice 🔘
# Single choice 🔘

This input type allows users to select one option from a list of choices, perfect for questions with mutually exclusive answers.

## How to use:

1. Choose **Multiple Choice (Radio)** as the input type
1. Choose **Single choice** as the input type
2. Enter the question or prompt
3. Add your answer options, one per line
4. Toggle the "Required" option if necessary
Expand All @@ -28,7 +28,7 @@ This input type allows users to select one option from a list of choices, perfec
🌟 Keep options mutually exclusive and limit the number of choices to prevent overwhelming users. Consider adding an "Other" option for unexpected responses, and arrange options in a logical order (alphabetical, numerical, or by relevance).
:::

## When to use Multiple Choice:
## When to use Single choice:

- When users should select only one option from a list
- For questions with mutually exclusive answers
Expand All @@ -40,4 +40,4 @@ This input type allows users to select one option from a list of choices, perfec
If users might need to select more than one option, use the **Checkboxes** input type instead.
:::

![Multiple Choice Example](/assets/multiplechoice.gif)
![Single choice example](/assets/multiplechoice.gif)
12 changes: 6 additions & 6 deletions docs/input-types/no-interaction.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Information Block 📝
# Text only 📝

The Information Block displays information without requiring any user input. It's perfect for instructions, introductions, explanations, or content that doesn't need a response.
A Text only block displays information without requiring any user input. It's perfect for instructions, introductions, explanations, or content that doesn't need a response.

## How to use:

1. Choose **Information Block** as the block type
1. Choose **Text only** as the block type
2. Enter the content you want to display
3. Format your text using markdown for headings, lists, links, and emphasis
4. Add buttons if you want users to acknowledge the information or make a choice
Expand All @@ -26,10 +26,10 @@ The Information Block displays information without requiring any user input. It'
- **Thank You Messages**: Acknowledgments for participation

::: tip Best Practice
🌟 Keep information blocks concise and visually structured. Use headings, bullet points, and formatting to make content scannable and easy to understand.
🌟 Keep Text only blocks concise and visually structured. Use headings, bullet points, and formatting to make content scannable and easy to understand.
:::

## When to use Information Blocks:
## When to use Text only blocks:

- When you need to provide context before asking questions
- For introductory or concluding information
Expand All @@ -38,5 +38,5 @@ The Information Block displays information without requiring any user input. It'
- For any informational content that doesn't require user input

::: warning Note
Since Information Blocks don't collect any data, they won't appear in your submission results. They're purely for communication with your users.
Since Text only blocks don't collect any data, they won't appear in your submission results. They're purely for communication with your users.
:::
2 changes: 1 addition & 1 deletion docs/input-types/number.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The Number input type is specifically designed for collecting numerical data wit
- When you want proper numeric formatting (thousands separators)

::: warning Note
Number inputs only accept numeric values. If users might need to add any text or explanations with their numbers, consider using a Short Text input instead.
Number inputs only accept numeric values. If users might need to add any text or explanations with their numbers, consider using a Short text input instead.
:::

## Technical Details:
Expand Down
4 changes: 2 additions & 2 deletions docs/input-types/phone.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This input type is specifically designed for collecting phone numbers with appro

## How to use:

1. Select **Phone Number** as the input type
1. Select **Phone** as the input type
2. Enter the prompt asking for the phone number
3. Optionally, add a placeholder showing the expected format
4. Configure validation requirements if needed
Expand All @@ -28,7 +28,7 @@ This input type is specifically designed for collecting phone numbers with appro
🌟 Always specify what the phone number will be used for and include a privacy statement. For international forms, include example formatting or country code instructions.
:::

## When to use Phone Number input:
## When to use Phone input:

- When you need to contact users by phone or SMS
- For authentication or verification purposes
Expand Down
12 changes: 6 additions & 6 deletions docs/input-types/secret.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Secret 🔒
# Hidden text 🔒

The Secret input type lets you securely collect sensitive information from users. It works like a password field, masking the entered text to protect it from view.
The Hidden text input type lets you securely collect sensitive information from users. It works like a password field, masking the entered text to protect it from view.

## How to use:

1. Choose **Secret** as the input type
1. Choose **Hidden text** as the input type
2. Enter the question or prompt that asks for sensitive information
3. Optionally, add a placeholder text to guide users on what to enter

::: tip Best Practice
< Only use Secret inputs when necessary for sensitive information like passwords, access codes, or PIN numbers.
< Only use Hidden text inputs when necessary for sensitive information like passwords, access codes, or PIN numbers.
:::

## Features:
Expand All @@ -25,13 +25,13 @@ The Secret input type lets you securely collect sensitive information from users
- **Access Codes**: For private invitation codes or tokens
- **Private Information**: Any sensitive data that shouldn't be visible on screen

## When to use Secret inputs:
## When to use Hidden text inputs:

- When collecting information that should remain private
- When users are in public spaces and don't want others to see what they're typing
- For any authentication or verification processes
- When compliance or security requirements mandate protected input fields

::: warning Security Note
While Secret inputs hide information on screen, remember that this is a visual protection only. For truly sensitive information, ensure you have proper encryption and security measures in place for data transmission and storage.
While Hidden text inputs hide information on screen, remember that this is a visual protection only. For truly sensitive information, ensure you have proper encryption and security measures in place for data transmission and storage.
:::
14 changes: 7 additions & 7 deletions docs/input-types/short-text.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Short Text 💬
# Short text 💬

The Short Text input type provides a single-line text field for collecting brief responses from users. It's perfect for names, titles, brief answers, and any situation where responses are concise and fit on one line.
The Short text input type provides a single-line text field for collecting brief responses from users. It's perfect for names, titles, brief answers, and any situation where responses are concise and fit on one line.

## How to use:

1. Choose **Short Text** as the input type
1. Choose **Short text** as the input type
2. Enter the question or prompt
3. Configure the input options:
- **Placeholder**: Hint text shown when the field is empty
Expand All @@ -29,10 +29,10 @@ The Short Text input type provides a single-line text field for collecting brief
- **Simple Data**: "What city do you live in?"

::: tip Best Practice
🌟 Keep your questions specific to encourage brief responses. For any question where you expect answers might exceed a few words or require multiple sentences, use the Long Text input type instead.
🌟 Keep your questions specific to encourage brief responses. For any question where you expect answers might exceed a few words or require multiple sentences, use the Long text input type instead.
:::

## When to use Short Text:
## When to use Short text:

- When you need a brief, concise response
- For single-line information collection
Expand All @@ -42,12 +42,12 @@ The Short Text input type provides a single-line text field for collecting brief
- When inputs should be quick and straightforward

::: warning Note
Short Text fields have a hard limit of 100 characters. If users might need more space, consider using a Long Text input instead, which can accommodate more detailed responses.
Short text fields have a hard limit of 100 characters. If users might need more space, consider using a Long text input instead, which can accommodate more detailed responses.
:::

## Technical Details:

- Maximum character limit is fixed at 100 characters
- Input is single-line only (pressing Enter submits the form)
- Character counter updates in real-time as users type
- Unlike specialized inputs (email, phone, etc.), Short Text has no format validation
- Unlike specialized inputs (email, phone, etc.), Short text has no format validation
4 changes: 2 additions & 2 deletions docs/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ Once you have Input up and running, follow these steps to create your first form
5. Preview your form to ensure it looks and works as expected
6. Publish your form when it's ready to share

![Multiple Choice Example](/assets/multiplechoice.gif)
_Example: Adding a multiple choice question to your form_
![Single choice example](/assets/multiplechoice.gif)
_Example: Adding a single choice question to your form_

## Troubleshooting Common Issues

Expand Down
22 changes: 12 additions & 10 deletions docs/workbench/form-blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ Form blocks are the fundamental building components of any form in Input. Each b

Input offers a variety of block types to gather different kinds of information:

### Information Blocks
### Content Blocks

- [**Information Block**](/input-types/no-interaction): Displays text without requiring user input, useful for instructions or explanations
- [**Text only**](/input-types/no-interaction): Displays text without requiring user input, useful for instructions or explanations

### Text Input Blocks

- [**Short Text**](/input-types/short-text): For collecting brief responses like names or titles
- [**Long Text**](/input-types/long-text): For gathering detailed responses, comments, or feedback
- [**Short text**](/input-types/short-text): For collecting brief responses like names or titles
- [**Long text**](/input-types/long-text): For gathering detailed responses, comments, or feedback
- [**Email**](/input-types/email): Specifically for email addresses, with built-in validation
- [**Phone**](/input-types/phone): For phone numbers, with optional formatting
- [**Link**](/input-types/link): For collecting website URLs
- [**Secret**](/input-types/secret): For sensitive information like passwords, with masked input
- [**Hidden text**](/input-types/secret): For sensitive information like passwords, with masked input

### Choice Blocks

- [**Multiple Choice**](/input-types/multiplechoice): Allows selection of one option from several choices
- [**Single choice**](/input-types/multiplechoice): Allows selection of one option from several choices
- [**Checkboxes**](/input-types/checkboxes): Allows selection of multiple options from a list
- [**Scale**](/input-types/scale): Presents a numerical scale (e.g., 1-10) for rating questions
- [**Rating**](/input-types/rating): Star-based rating system for satisfaction or quality assessment
Expand All @@ -30,16 +30,18 @@ Input offers a variety of block types to gather different kinds of information:

- [**Number**](/input-types/number): For numerical input with optional min/max validation
- [**Date**](/input-types/date): For collecting calendar dates
- [**File Upload**](/input-types/file-upload): Allows users to upload files or images
- [**File upload**](/input-types/file-upload): Allows users to upload files or images
- [**Consent**](/input-types/consent): For collecting explicit consent with terms or policies

## Adding Blocks to Your Form

To add a new block to your form:

1. Click the "+" button at the bottom of an existing block
2. Choose the block type from the dropdown menu
3. The new block will be inserted below the current block
1. Point between two questions and click "Add question here", or choose "Add question below" in a question's menu
2. Choose the type in the picker, or type to search for it
3. The new question opens right there, ready to type

To change the type of an empty question, type "/" in its text.

## Block Groups

Expand Down
2 changes: 1 addition & 1 deletion docs/workbench/workbench.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The building blocks of your form are called "blocks." Each block represents a qu

When you select a block, you can configure its properties in the main workbench area:

1. **Block Type** - Choose the type of interaction (text, multiple choice, etc.)
1. **Block Type** - Choose the type of interaction (text, single choice, etc.)
2. **Question Text** - The main prompt or question for the user
3. **Description** - Optional additional information about the question
4. **Required Setting** - Toggle whether the user must complete this block
Expand Down
Loading