Files
9c22b7c4-07ad-415b-a5a4-074…/registry/components/FeatureCardSeven.json
2026-04-11 14:02:15 +00:00

119 lines
5.2 KiB
JSON

{
"name": "FeatureCardSeven",
"description": "Vertical stack feature section with alternating left/right layouts and numbered step cards with square images.",
"details": "Use for sequential feature presentations or process flows in a vertical layout. Each card displays a numbered step badge, title, description, and square aspect ratio media (image or video) in a two-column layout. On desktop, the layout alternates between text-left/image-right (even indices) and image-left/text-right (odd indices) creating a zigzag pattern. On mobile, always displays as flex-col (text on top, image below). Uses CardList component with GSAP scroll animations and stagger effect. Optional header with title, description, tag, and buttons. Header supports centered or split textbox layout (split: tag + title + description left, buttons right; split-actions: tag + title left, buttons only right; split-description: tag + title left, description only right).",
"constraints": {
"textRules": {
"title": {
"required": true,
"example": "Our Features",
"minChars": 2,
"maxChars": 35
},
"description": {
"required": true,
"example": "Sequential features with numbered badges",
"minChars": 5,
"maxChars": 250
},
"tag": {
"required": false,
"example": "Features",
"minChars": 2,
"maxChars": 30
}
},
"featureCardRules": {
"title": {
"required": true,
"example": "Modern Architecture",
"minChars": 2,
"maxChars": 50
},
"description": {
"required": true,
"example": "Built with the latest technologies and best practices",
"minChars": 10,
"maxChars": 300
}
},
"mediaRules": {
"imageSrc": {
"required": false,
"example": "/feature1.jpg",
"note": "Either imageSrc or videoSrc required per card Either imageSrc or videoSrc should be provided. Image is recommended if no videoSrc."
},
"videoSrc": {
"required": false,
"example": "/feature1.mp4",
"note": "Either imageSrc or videoSrc required per card"
},
"imageAlt": {
"required": false,
"example": "Modern architecture illustration",
"note": "Falls back to feature title if not provided"
},
"videoAriaLabel": {
"required": false,
"example": "Modern architecture video",
"note": "Falls back to feature title if not provided"
}
}
},
"propsSchema": {
"features": "Array<{ title: string, description: string, buttons?: ButtonConfig[] } & ({ imageSrc: string, imageAlt?: string } | { videoSrc: string, videoAriaLabel?: string })>",
"animationType": "'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal' (required - controls GSAP scroll animations with stagger effect)",
"title": "string",
"titleSegments?": "Array<{ type: 'text', content: string } | { type: 'image', src: string, alt?: string }> - For inline images in title",
"description": "string",
"tag?": "string",
"tagIcon?": "LucideIcon",
"tagAnimation?": "'none' | 'opacity' | 'slide-up' | 'blur-reveal'",
"buttons?": "Array<{text: string, onClick?: () => void, href?: string}>",
"buttonAnimation?": "'none' | 'opacity' | 'slide-up' | 'blur-reveal'",
"textboxLayout": "'default' | 'split' | 'split-actions' | 'split-description' | 'inline-image' (required - 'inline-image' uses titleSegments for rich text with images)",
"useInvertedBackground": "boolean",
"ariaLabel?": "string (default: 'Feature section')",
"className?": "string",
"containerClassName?": "string",
"cardClassName?": "string",
"textBoxTitleClassName?": "string",
"titleImageWrapperClassName?": "string - For styling image wrapper in inline-image layout",
"titleImageClassName?": "string - For styling images in inline-image layout",
"textBoxDescriptionClassName?": "string",
"textBoxClassName?": "string",
"textBoxTagClassName?": "string",
"textBoxButtonContainerClassName?": "string",
"textBoxButtonClassName?": "string",
"textBoxButtonTextClassName?": "string",
"cardContentClassName?": "string",
"stepNumberClassName?": "string",
"cardTitleClassName?": "string",
"cardDescriptionClassName?": "string",
"imageContainerClassName?": "string",
"imageClassName?": "string",
"cardButtonClassName?": "string",
"cardButtonTextClassName?": "string"
},
"usageExample": "<FeatureCardSeven features={[{ title: 'Modern Architecture', description: 'Built with the latest technologies and best practices', imageSrc: '/feature1.jpg' }]} title=\"Our Features\" description=\"Sequential features with numbered badges\" textboxLayout=\"default\" animationType=\"blur-reveal\" useInvertedBackground={false} />",
"do": [
"Use for process flows",
"Use for roadmaps",
"Use for step-by-step explanation",
"Use for feature showcases",
"Use for capability displays",
"Requires features[]",
"Requires titleSegments?[]",
"Requires buttons?[]"
],
"dont": [
"Do not use non-sequential content",
"Do not use single item"
],
"editRules": {
"textOnly": true,
"layoutLocked": true,
"styleLocked": true
}
}