Extract specs from a Framer site
Read values from the build; never eyeball screenshots.
- HTML (
curlthe page): fonts in<style data-framer-font-css>, breakpoints in<script id="__framer__breakpoints">, page-load animations in<script id="__framer__appearAnimationsContent">(JSON keyed bydata-framer-appear-id). Layer names are indata-framer-name. - Component code: download every
framerusercontent.com/sites/.../*.mjslinked in the HTML. The page module holds the layout CSS per breakpoint. Search it for:__framer__enter/__framer__animate: scroll-in effects and their springs (stiffness,damping,delay).-hovervariants and.hoverCSS rules: hover states.displayNameto find a component,defaultPropsfor its size.- Code components (e.g. text reveals) are plain React with Motion; read their props and
useInViewoptions.
- Computed styles: in headless Chrome (Playwright,
channel="chrome"), walk the DOM and dump layout, type and color for every element at each breakpoint. Framer wraps variants indisplay: contentsdivs, so descend through zero-size nodes instead of skipping them. - Motion: convert Framer springs to CSS with the
spring()helper inwebsite/script.js(samples the physics intolinear()). Motion's spring withbounceanddurationmaps to damping ratio1 - bounce; solve stiffness the way Motion'sfindSpringdoes. - Verify: sample animated values per frame with
requestAnimationFrameon both sites, and run thewebsite-parityskill for layout.