All styling goes in props.className as a single Tailwind utility string. Non-class props (text, src, alt, etc.) stay on their own keys. root.animation for scroll effects.
A primary call-to-action button with icon
{
"canDelete": true,
"canEditName": true,
"text": "Get Started",
"url": "#",
"icon": {
"value": "ref-icon:tb/TbUserCircle"
},
"className": "bg-primary text-primary-content rounded-box shadow-(--shadow-style) px-6 py-3 font-bold text-center flex justify-center items-center gap-2 w-full md:w-fit"
}A secondary button with outline styling
{
"canDelete": true,
"canEditName": true,
"text": "Learn More",
"url": "#",
"className": "bg-transparent text-primary rounded-box border border-primary px-6 py-3 font-bold text-center flex justify-center items-center gap-4 w-full md:w-fit"
}A button that displays only an icon
{
"canDelete": true,
"canEditName": true,
"text": "Menu",
"icon": {
"value": "ref-icon:tb/TbMenu2",
"only": true,
"size": "w-6 h-6"
},
"className": "bg-primary text-primary-content rounded-box p-3 flex justify-center items-center w-12 h-12"
}A button for form submissions
{
"canDelete": true,
"canEditName": true,
"text": "Submit Form",
"type": "submit",
"icon": {
"value": "ref-icon:tb/TbSend",
"position": "right",
"size": "w-5 h-5"
},
"className": "bg-primary text-primary-content rounded-box px-6 py-3 font-bold text-center flex justify-center items-center gap-2 w-full md:w-fit"
}