{ "name": "FeatureCardTwentySeven", "description": "Interactive flip cards with 3D rotation effect. Front shows title, icon, and media; back reveals description.", "constraints": { "textRules": { "title": { "required": true, "example": "Our Services", "minChars": 2, "maxChars": 50 }, "description": { "required": true, "example": "Discover what makes us different", "minChars": 5, "maxChars": 300 }, "tag": { "required": false, "example": "Services", "minChars": 2, "maxChars": 30 } }, "buttonRules": { "maxButtons": 2, "structure": { "text": "string - Button label", "href": "string - Link destination (optional)", "onClick": "() => void - Additional click handler (optional)", "props": "Partial - Additional button props (optional)" }, "note": "Button variant is controlled by ThemeProvider's defaultButtonVariant." }, "featureRules": { "minItems": 3, "maxItems": 8, "recommendedItems": "4", "structure": { "id": "string - Unique identifier (required)", "title": "string - Card title on both sides (required)", "description": "string - Description shown on back side (required)", "imageSrc": "string - Path to image (optional if videoSrc provided)", "videoSrc": "string - Path to video (optional if imageSrc provided)", "imageAlt": "string - Alt text for image" }, "note": "Each feature requires id, title, description, and media (image or video). Cards flip to reveal description on click." } }, "propsSchema": { "features": "FeatureCard[] (required) - Array with id, title, description, imageSrc/videoSrc", "gridVariant": "GridVariant (required)", "animationType": "CardAnimationType (required)", "title": "string", "titleSegments?": "TitleSegment[]", "description": "string", "tag?": "string", "tagIcon?": "LucideIcon", "tagAnimation?": "'none' | 'opacity' | 'slide-up' | 'blur-reveal'", "buttons?": "ButtonConfig[]", "buttonAnimation?": "'none' | 'opacity' | 'slide-up' | 'blur-reveal'", "textboxLayout": "TextboxLayout", "useInvertedBackground": "InvertedBackground", "carouselMode?": "'auto' | 'buttons' (default: 'buttons')", "uniformGridCustomHeightClasses?": "string (default: 'min-h-none')", "ariaLabel?": "string (default: 'Feature section')", "className?": "string", "containerClassName?": "string", "cardClassName?": "string", "textBoxTitleClassName?": "string", "textBoxTitleImageWrapperClassName?": "string", "textBoxTitleImageClassName?": "string", "textBoxDescriptionClassName?": "string", "cardTitleClassName?": "string", "cardDescriptionClassName?": "string", "gridClassName?": "string", "carouselClassName?": "string", "controlsClassName?": "string", "textBoxClassName?": "string", "textBoxTagClassName?": "string", "textBoxButtonContainerClassName?": "string", "textBoxButtonClassName?": "string", "textBoxButtonTextClassName?": "string" }, "usageExample": "\n \n", "do": [ "Use for interactive feature showcases where exploration is desired", "Best for 3-6 items (4 recommended)", "Use high-quality images or videos for the front side", "Keep descriptions concise for back side readability" ], "dont": [ "Do not use without media for each feature", "Do not use for text-heavy content on front side", "Do not use for more than 8 items" ], "editRules": { "textOnly": true, "layoutLocked": true, "styleLocked": true } }