
Professional custom fields for Strapi CMS that provide advanced functionality with comprehensive validation, dynamic options, and user-friendly interfaces.
released April 9, 2026
npm install @webbycrown/advanced-fieldsProfessional custom fields for Strapi CMS that provide advanced functionality with comprehensive validation, dynamic options, and user-friendly interfaces.
NPM Package: @webbycrown/advanced-fields
Strapi Market: https://market.strapi.io/plugins/@webbycrown-advanced-fields
šŗ Learn how to use Advanced Fields in Strapi with our step-by-step guide
Direct link: https://www.webbycrown.com/guides/advanced-fields-for-strapi/implementation-guide
A short introduction and quick overview of Advanced Fields for Strapi, showcasing available field types, configuration options, and real-world usage inside the Strapi admin panel.
ā¶ļø Watch Full Video on YouTube
npm install @webbycrown/advanced-fieldsyarn add @webbycrown/advanced-fields// Example: Text validation with custom error message and field note
{
"required": true,
"maxLength": 255,
"minLength": 3,
"regex": "^[a-zA-Z0-9\\s]+$",
"options": {
"customErrorMessage": "Please enter valid text",
"placeholder": "Enter your text here",
"defaultValue": "Default text",
"fieldNote": "This field accepts alphanumeric characters and spaces only"
}
}// Example: Multiple checkbox with validation and field note
{
"required": true,
"options": {
"checkboxType": "multiple",
"checkboxOptions": "1|Option 1\n2|Option 2\n3|Option 3",
"minChoices": 1,
"maxChoices": 2,
"layout": "vertical",
"defaultSelected": "1\n2",
"fieldNote": "Please select at least 1 and at most 2 options"
}
}// Example: Single radio with dynamic options and field note
{
"required": true,
"options": {
"selectionType": "single",
"radioOptions": "small|Small\nmedium|Medium\nlarge|Large",
"layout": "horizontal",
"defaultSelected": "medium",
"fieldNote": "Choose the size that best fits your needs"
}
}// Example: Enumeration with dynamic options and field note
{
"required": true,
"options": {
"enumOptions": "red|Red\nblue|Blue\ngreen|Green\nyellow|Yellow",
"defaultSelected": "red\nblue",
"minChoices": 1,
"customErrorMessage": "Please select at least one color",
"fieldNote": "You can select up to 3 colors"
}
}// Example: Color picker with default value and validation
{
"required": true,
"options": {
"format": "hex", // hex | rgb | rgba | hsl
"allowOpacity": true,
"defaultValue": "#3498db",
"presetColors": "#ff0000\n#00ff00\n#0000ff\n#ffffff\n#000000",
"customErrorMessage": "Please select a valid color",
"fieldNote": "You can choose or enter a custom color"
}
}
| Option | Type | Description | Default |
|---|---|---|---|
required | boolean | Field is required | false |
unique | boolean | Values must be unique | false |
maxLength | number | Maximum character length | 0 (unlimited) |
minLength | number | Minimum character length | 0 |
regex | string | Validation pattern | "" |
options.defaultValue | string | Pre-filled value | "" |
options.placeholder | string | Placeholder text | "" |
options.customErrorMessage | string | Custom error message | "" |
options.fieldNote | string | Helpful note displayed below field | "" |
private | boolean | Hide from API | false |
| Option | Type | Description | Default |
|---|---|---|---|
required | boolean | Field is required | false |
options.checkboxType | string | single or multiple | single |
options.checkboxOptions | string | Options in value|label format | "" |
options.defaultSelected | string | Pre-selected options | "" |
options.minChoices | number | Minimum selections | 0 |
options.maxChoices | number | Maximum selections | 0 |
options.layout | string | vertical, horizontal, or grid | vertical |
options.customErrorMessage | string | Custom error message | "" |
options.fieldNote | string | Helpful note displayed below field | "" |
private | boolean | Hide from API | false |
| Option | Type | Description | Default |
|---|---|---|---|
required | boolean | Field is required | false |
options.selectionType | string | single or multiple | single |
options.radioOptions | string | Options in value|label format | "" |
options.defaultSelected | string | Pre-selected options | "" |
options.minChoices | number | Minimum selections | 0 |
options.maxChoices | number | Maximum selections | 0 |
options.layout | string | vertical, horizontal, or grid | vertical |
options.customErrorMessage | string | Custom error message | "" |
options.fieldNote | string | Helpful note displayed below field | "" |
private | boolean | Hide from API | false |
| Option | Type | Description | Default |
|---|---|---|---|
required | boolean | Field is required | false |
options.enumOptions | string | Options in value|label format | "" |
options.defaultSelected | string | Pre-selected options | "" |
options.minChoices | number | Minimum selections | 0 |
options.maxChoices | number | Maximum selections | 0 |
options.customErrorMessage | string | Custom error message | "" |
options.fieldNote | string | Helpful note displayed below field | "" |
private | boolean | Hide from API | false |
| Option | Type | Description | Default |
|---|---|---|---|
required | boolean | Field is required | false |
options.format | string | hex, rgb, rgba, hsl | hex |
options.allowOpacity | boolean | Enable alpha (RGBA) | false |
options.defaultValue | string | Default color value | "" |
options.presetColors | string | Preset colors (newline separated) | "" |
options.customErrorMessage | string | Custom validation message | "" |
options.fieldNote | string | Helpful note below field | "" |
private | boolean | Hide from API | false |
// GET /api/articles
{
"data": [
{
"id": 1,
"attributes": {
"title": "Sample Article",
"advancedInput": "user@example.com",
"advancedCheckbox": ["1", "2"],
"advancedRadio": ["medium"]
}
}
]
}// POST /api/articles
{
"data": {
"title": "New Article",
"advancedInput": "new@example.com",
"advancedCheckbox": ["1", "3"],
"advancedRadio": ["large"]
}
}// GET /api/articles
{
"data": [
{
"id": 1,
"attributes": {
"title": "Sample Article",
"advancedInput": "user@example.com",
"advancedCheckbox": ["1", "2"],
"advancedRadio": ["medium"],
"advancedEnumeration": ["Red", "Green","Blue"]
}
}
]
}Options are stacked vertically for easy scanning.
Options are arranged in a horizontal row for compact forms.
Options are displayed in a responsive grid for better space utilization.
We welcome contributions! Please see our Contributing Guidelines for details.
# Clone the repository
git clone https://github.com/webbycrown/strapi-advanced-fields.git
# Install dependencies
npm install
# Start development
npm run developThis project is licensed under the MIT License - see the LICENSE file for details.
Share your work with the community and get it listed in the Strapi ecosystem for everyone to discover and use.
Submit
