Files
2026-04-11 12:59:02 +00:00

81 lines
2.7 KiB
JSON

{
"name": "FooterBaseReveal",
"description": "Animated footer reveal wrapper that creates a fixed footer with scroll-triggered reveal effect.",
"details": "Use when you want the footer to stay fixed at the bottom and reveal as users scroll. Wraps FooterBase component with fixed positioning and dynamic height calculation using ResizeObserver. Creates a reveal animation effect as content scrolls up. Ideal for modern, engaging scroll experiences.",
"constraints": {
"textRules": {
"copyrightText": {
"required": false,
"default": "© 2025 | Webild",
"example": "© 2025 Company Name",
"minChars": 5,
"maxChars": 50
},
"columnTitle": {
"required": true,
"example": "Product",
"minChars": 2,
"maxChars": 20
},
"itemLabel": {
"required": true,
"example": "Features",
"minChars": 2,
"maxChars": 30
}
},
"structureRules": {
"columns": {
"required": true,
"minColumns": 1,
"maxColumns": 3,
"note": "Each column must have title and items array"
},
"items": {
"required": true,
"minItems": 1,
"structure": {
"label": "string - Link text (required)",
"href": "string - Link destination (optional). External URLs open in new tab, internal values scroll to sections",
"onClick": "() => void - Additional click handler (optional)"
}
}
}
},
"propsSchema": {
"logoSrc?": "string",
"logoAlt?": "string",
"logoText": "string (required)",
"columns": "Array<{ title: string, items: Array<{ label: string, href: string }> }> - Footer navigation columns (required)",
"copyrightText?": "string",
"onPrivacyClick?": "() => void",
"ariaLabel?": "string",
"className?": "string",
"wrapperClassName?": "string",
"containerClassName?": "string",
"footerClassName?": "string",
"footerContainerClassName?": "string",
"logoClassName?": "string",
"logoImageClassName?": "string",
"logoTextClassName?": "string",
"columnsClassName?": "string",
"columnClassName?": "string",
"columnTitleClassName?": "string",
"columnItemClassName?": "string",
"copyrightContainerClassName?": "string",
"copyrightTextClassName?": "string",
"privacyButtonClassName?": "string"
},
"usageExample": "<FooterBaseReveal logoText=\"Company Name\" columns={[{ title: 'Product', items: [{ label: 'Features', href: 'features' }, { label: 'Pricing', href: 'pricing' }] }]} copyrightText=\"© 2025 | Company\" />",
"do": [
"Use for general use",
"Requires columns[]"
],
"dont": [],
"editRules": {
"textOnly": true,
"layoutLocked": true,
"styleLocked": true
}
}