Documentation Index
Fetch the complete documentation index at: https://docs.heychocolate.com/llms.txt
Use this file to discover all available pages before exploring further.
The Hey Chocolate Framer integration provides React-based components that work natively in Framer projects with full property controls.
Installation
Install the Hey Chocolate package in your Framer project:
npm install @heychocolate/framer
Or add it via Framer’s package manager.
Components
Carbon Badge
import { CarbonBadge } from '@heychocolate/framer';
export default function ProductBadge() {
return (
<CarbonBadge
productId="prod_abc123"
apiKey="sk_live_your_key"
variant="detailed"
theme="light"
/>
);
}
Impact Calculator
import { ImpactCalculator } from '@heychocolate/framer';
export default function Calculator() {
return (
<ImpactCalculator
productId="prod_abc123"
apiKey="sk_live_your_key"
showScenarios={true}
showBreakdown={true}
/>
);
}
Comparison Table
import { ComparisonTable } from '@heychocolate/framer';
export default function Compare() {
return (
<ComparisonTable
productIds={["prod_abc123", "prod_def456"]}
apiKey="sk_live_your_key"
metrics={["co2", "mki", "water"]}
/>
);
}
Supply Chain Viewer
import { SupplyChainViewer } from '@heychocolate/framer';
export default function SupplyChain() {
return (
<SupplyChainViewer
productId="prod_abc123"
apiKey="sk_live_your_key"
layout="graph"
height="500px"
/>
);
}
Property controls
All components expose Framer property controls for visual editing:
import { addPropertyControls, ControlType } from 'framer';
import { CarbonBadge } from '@heychocolate/framer';
addPropertyControls(CarbonBadge, {
productId: { type: ControlType.String, title: 'Product ID' },
variant: {
type: ControlType.Enum,
title: 'Variant',
options: ['compact', 'detailed', 'inline'],
},
theme: {
type: ControlType.Enum,
title: 'Theme',
options: ['light', 'dark', 'auto'],
},
});
Overrides
Use Framer overrides to connect sustainability data to custom designs:
import { Override } from 'framer';
import { HeyChocolate } from '@heychocolate/sdk';
const client = new HeyChocolate({ apiKey: 'sk_live_your_key' });
export function withImpactScore(): Override {
const [score, setScore] = useState(null);
useEffect(() => {
client.products.get('prod_abc123').then(product => {
setScore(product.impactScore.co2Equivalent);
});
}, []);
return {
text: score ? `${score} kg CO2e` : 'Loading...',
};
}