{ "name": "FeatureCardTwelve", "description": "List-based feature section with large label on left and content with bullet points on right.", "constraints": { "textRules": { "title": { "required": true, "example": "Choose Your Plan", "minChars": 2, "maxChars": 50 }, "description": { "required": true, "example": "Find the perfect fit for your needs", "minChars": 5, "maxChars": 300 }, "tag": { "required": false, "example": "Plans", "minChars": 2, "maxChars": 30 } }, "featureRules": { "id": { "required": true, "example": "premium", "note": "Unique identifier for the feature" }, "label": { "required": true, "example": "Premium", "minChars": 2, "maxChars": 30, "note": "Large display label shown on left side (5xl mobile, 6xl desktop)" }, "title": { "required": true, "example": "Premium features for your most demanding needs", "minChars": 10, "maxChars": 120, "note": "Feature heading shown at xl (mobile) / 3xl (desktop)" }, "items": { "required": true, "minItems": 1, "maxItems": 8, "structure": "string[]", "note": "Inline bullet list with accent-colored dots. Each item should be 5-50 characters." }, "buttons": { "required": false, "maxButtons": 2, "structure": "Array<{text: string, onClick?: () => void, href?: string}>", "note": "Optional buttons at bottom of content area. First button is primary, second is secondary." } }, "itemRules": { "minItems": 1, "maxItems": 8, "recommendedItems": "2-5", "note": "Works best with 2-5 features for clear comparison" } }, "propsSchema": { "features": "Array<{ id: string, label: string, title: string, items: string[], buttons?: Array<{text: string, onClick?: () => void, href?: string}> }>", "animationType": "'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal' (required)", "title": "string", "titleSegments?": "Array<{ type: 'text', content: string } | { type: 'image', src: string, alt?: string }> - For inline images in title", "description": "string", "textboxLayout": "'default' | 'split' | 'split-actions' | 'split-description' | 'inline-image' (required - 'inline-image' uses titleSegments for rich text with images)", "useInvertedBackground": "'noInvert' | 'invertDefault'", "tag?": "string", "tagIcon?": "LucideIcon", "buttons?": "Array<{text: string, onClick?: () => void, href?: string}>", "ariaLabel?": "string (default: 'Feature section')", "className?": "string" }, "usageExample": " console.log('clicked') }] }]} animationType=\"opacity\" title=\"Choose Your Plan\" description=\"Find the perfect fit for your needs\" textboxLayout=\"default\" useInvertedBackground={\"noInvert\"} />", "do": [ "Use for feature showcases", "Use for capability displays", "Use for pricing pages", "Use for subscription tiers", "Requires features[]", "Requires titleSegments?[]", "Requires buttons?[]" ], "dont": [ "Do not use more than 8 items" ], "editRules": { "textOnly": true, "layoutLocked": true, "styleLocked": true } }