{"version":3,"file":"GradientGlowText.BlzTYIOa.mjs","names":["useRef","useState","c","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/vJYAAD8RHcdZ1qWelO8Z/BbECX9Pce3UL56dFjRDX/GradientGlowText.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useRef,useEffect,useCallback,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * GradientGlowText\n * Monochrome vertical-gradient heading (single or double line). Static state =\n * the gradient. On hover the cursor lights the letters with a HORIZONTAL falloff\n * (tall ellipse => whole letters light, fade only left/right, spanning both lines\n * as one continuous light field):\n *   - CORE: bright ellipse clipped to the TEXT (+ optional Center Blur).\n *   - BLOOM: three blurred, text-clipped radial fills (far/outer/inner, NO mask ->\n *     no mask-clip rectangle) with long tails that fade to true 0 (no visible edge).\n * Two lines share ONE continuous gradient + ONE glow field via background-clip:text.\n *\n * RESPONSIVE (WYSIWYG on canvas): holds the EXACT px size you set until the widest\n * line would exceed Fit Width % of the container, then shrinks proportionally to\n * hold that %. At Min Scale % it stops shrinking and WRAPS to the next line instead.\n * Never upscales (center-align handles wide screens). Height hugs the text (auto),\n * width fills the section — the box shows the real spacing that ships.\n *\n * Perf: per hover-frame only the gradient CENTER moves; pure CSS. Sizing is a\n * ResizeObserver (needed for the glow geometry in px), measured after fonts load.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1000\n * @framerIntrinsicHeight 140\n */export default function GradientGlowText(props){const{twoLines,text,font,text2,font2,gap,align,topColor,bottomColor,midpoint,glowColor,radius,spread,bloom,softness,centerBlur,follow,fitPercent,minScale,background,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.CANVAS;const rootRef=useRef(null);const rigRef=useRef(null);const measRef=useRef(null);// responsive fit\nconst[scale,setScale]=useState(1);const[wrap,setWrap]=useState(false);// hover rig\nconst box=useRef({w:1,h:1,x:0,y:0});const t=useRef({x:.5,y:.5});const c=useRef({x:.5,y:.5});const on=useRef(0);const onTarget=useRef(0);const raf=useRef(null);// Font control returns fontSize as a unit string (\"150px\") — parseFloat, not Number.\nconst baseFs1=parseFloat(font?.fontSize)||120;const baseFs2=parseFloat(font2?.fontSize)||60;// ---- responsive fit: hold px until fitPercent, then shrink; wrap at minScale ----\nconst computeFit=useCallback(()=>{const root=rootRef.current;const meas=measRef.current;if(!root||!meas)return;const containerW=root.clientWidth;if(!containerW)return;let naturalW=0;const kids=meas.children;for(let i=0;i<kids.length;i++){naturalW=Math.max(naturalW,kids[i].scrollWidth);}if(!naturalW)return;const target=fitPercent/100*containerW;let s=naturalW<=target?1:target/naturalW;const min=minScale/100;let w=false;if(s<min){s=min;w=true;}setScale(prev=>Math.abs(prev-s)>.001?s:prev);setWrap(prev=>prev!==w?w:prev);},[fitPercent,minScale]);useEffect(()=>{let ro;const run=()=>computeFit();if(typeof document!==\"undefined\"&&document.fonts?.ready){document.fonts.ready.then(run);}run();if(typeof ResizeObserver!==\"undefined\"&&rootRef.current){ro=new ResizeObserver(run);ro.observe(rootRef.current);}return()=>{if(ro)ro.disconnect();};},[computeFit,text,text2,twoLines,baseFs1,baseFs2,font?.fontFamily,font?.fontWeight,font?.letterSpacing,font2?.fontFamily,font2?.fontWeight,font2?.letterSpacing]);// ---- hover (never on canvas / touch) ----\nconst measure=useCallback(()=>{const rig=rigRef.current;if(!rig)return;const r=rig.getBoundingClientRect();box.current={w:r.width,h:r.height,x:r.left,y:r.top};},[]);const apply=useCallback(()=>{const rig=rigRef.current;if(!rig)return;rig.style.setProperty(\"--gx\",c.current.x*100+\"%\");rig.style.setProperty(\"--gy\",c.current.y*100+\"%\");rig.style.setProperty(\"--on\",on.current.toFixed(3));},[]);const loop=useCallback(()=>{const k=Math.min(Math.max(follow,.03),.3);c.current.x+=(t.current.x-c.current.x)*k;c.current.y+=(t.current.y-c.current.y)*k;on.current+=(onTarget.current-on.current)*.12;apply();const moving=Math.abs(t.current.x-c.current.x)>6e-4||Math.abs(t.current.y-c.current.y)>6e-4||Math.abs(onTarget.current-on.current)>.004;if(moving){raf.current=requestAnimationFrame(loop);}else{on.current=onTarget.current;apply();raf.current=null;}},[apply,follow]);const kick=useCallback(()=>{if(raf.current==null)raf.current=requestAnimationFrame(loop);},[loop]);useEffect(()=>{const onResize=()=>measure();window.addEventListener(\"resize\",onResize);return()=>{window.removeEventListener(\"resize\",onResize);if(raf.current!=null)cancelAnimationFrame(raf.current);};},[measure]);const onMove=useCallback(e=>{if(isCanvas)return;const{x,y,w,h}=box.current;t.current.x=(e.clientX-x)/w;t.current.y=(e.clientY-y)/h;kick();},[isCanvas,kick]);const enter=useCallback(()=>{if(isCanvas)return;measure();onTarget.current=1;kick();},[isCanvas,kick,measure]);const leave=useCallback(()=>{if(isCanvas)return;onTarget.current=0;kick();},[isCanvas,kick]);const clip={color:\"transparent\",WebkitTextFillColor:\"transparent\",WebkitBackgroundClip:\"text\",backgroundClip:\"text\"};// scaled geometry (WYSIWYG: real px the site will render)\nconst fs1=baseFs1*scale;const fs2=baseFs2*scale;const rad=radius*scale;const gp=gap*scale;const blockH=twoLines?Math.max(fs1,fs1+fs2+gp):fs1;const ry=twoLines?blockH*1.7:fs1*3;const midMix=`color-mix(in oklch, ${topColor}, ${bottomColor})`;const gradient=`linear-gradient(180deg, ${topColor} 0%, ${midMix} ${midpoint}%, ${bottomColor} 100%)`;const g=p=>`color-mix(in srgb, ${glowColor} ${p}%, transparent)`;const coreBg=`radial-gradient(ellipse var(--r) ${ry}px at var(--gx,50%) var(--gy,50%), ${glowColor} 0%, ${glowColor} ${spread*.32}%, transparent ${spread}%)`;const farBg=`radial-gradient(ellipse calc(var(--r) * 2.1 * var(--soft)) ${ry}px at var(--gx,50%) var(--gy,50%), ${g(100)} 0%, ${g(62)} 16%, ${g(30)} 38%, ${g(14)} 56%, ${g(5)} 74%, ${g(1.5)} 88%, ${g(0)} 100%)`;const outerBg=`radial-gradient(ellipse calc(var(--r) * 1.3 * var(--soft)) ${ry}px at var(--gx,50%) var(--gy,50%), ${g(100)} 0%, ${g(85)} 10%, ${g(35)} 42%, ${g(10)} 66%, ${g(0)} 92%)`;const innerBg=`radial-gradient(ellipse calc(var(--r) * 0.82 * var(--soft)) ${ry}px at var(--gx,50%) var(--gy,50%), ${g(100)} 0%, ${g(92)} 18%, ${g(45)} 48%, ${g(0)} 84%)`;const alignItems=align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\";const justify=align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\";const container=extra=>({display:\"flex\",flexDirection:\"column\",alignItems,margin:0,padding:0,textAlign:align,...extra});const spanStyle=(f,size,marginTop)=>({...f,fontSize:`${size}px`,display:\"block\",margin:0,marginTop:marginTop!=null?`${marginTop}px`:0,padding:0,whiteSpace:wrap?\"normal\":\"nowrap\",lineHeight:f?.lineHeight??.9,color:\"transparent\",WebkitTextFillColor:\"transparent\"});const measSpanStyle=(f,size)=>({...f,fontSize:`${size}px`,display:\"block\",whiteSpace:\"nowrap\",lineHeight:f?.lineHeight??.9,margin:0,padding:0});const renderLines=()=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{style:spanStyle(font,fs1),children:text}),twoLines&&/*#__PURE__*/_jsx(\"span\",{style:spanStyle(font2,fs2,gp),children:text2})]});const bloomLayer=(blurPx,bg,opa)=>container({...clip,position:\"absolute\",inset:0,pointerEvents:\"none\",backgroundImage:bg,filter:`blur(${blurPx}px)`,opacity:`calc(${opa} * ${bloom} * var(--on, 0))`});return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,onPointerMove:onMove,onPointerEnter:enter,onPointerLeave:leave,style:{position:\"relative\",width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:justify,overflow:\"visible\",background,...style},children:[/*#__PURE__*/_jsxs(\"div\",{ref:measRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,top:0,height:0,overflow:\"hidden\",visibility:\"hidden\",pointerEvents:\"none\",whiteSpace:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"span\",{style:measSpanStyle(font,baseFs1),children:text}),twoLines&&/*#__PURE__*/_jsx(\"span\",{style:measSpanStyle(font2,baseFs2),children:text2})]}),/*#__PURE__*/_jsxs(\"div\",{ref:rigRef,style:{position:\"relative\",overflow:\"visible\",maxWidth:\"100%\",[\"--r\"]:`${rad}px`,[\"--soft\"]:softness,[\"--gx\"]:\"50%\",[\"--gy\"]:\"50%\",[\"--on\"]:0},children:[/*#__PURE__*/_jsx(\"div\",{style:container({...clip,position:\"relative\",backgroundImage:gradient}),children:renderLines()}),!isCanvas&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:bloomLayer(fs1*.5,farBg,.34),children:renderLines()}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:bloomLayer(fs1*.18,outerBg,.55),children:renderLines()}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:bloomLayer(fs1*.075,innerBg,1),children:renderLines()}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:container({...clip,position:\"absolute\",inset:0,pointerEvents:\"none\",backgroundImage:coreBg,opacity:\"var(--on, 0)\",filter:centerBlur>0?`blur(${centerBlur*scale}px)`:undefined}),children:renderLines()})]})]})]});}GradientGlowText.defaultProps={twoLines:false,text:\"sustainability\",text2:\"matters most\",gap:0,align:\"center\",topColor:\"hsl(0, 0%, 58%)\",bottomColor:\"hsl(0, 0%, 22%)\",midpoint:50,glowColor:\"rgb(255, 255, 255)\",radius:470,spread:72,bloom:.75,softness:1,centerBlur:3,follow:.12,fitPercent:80,minScale:50,background:\"rgba(0,0,0,0)\"};addPropertyControls(GradientGlowText,{twoLines:{type:ControlType.Boolean,title:\"Two Lines\",enabledTitle:\"Two\",disabledTitle:\"One\",defaultValue:false},text:{type:ControlType.String,title:\"Text 1\",displayTextArea:true,defaultValue:\"sustainability\"},font:{type:ControlType.Font,title:\"Font 1\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:120,fontWeight:900,lineHeight:.9,letterSpacing:\"-0.02em\"}},text2:{type:ControlType.String,title:\"Text 2\",displayTextArea:true,defaultValue:\"matters most\",hidden:p=>!p.twoLines},font2:{type:ControlType.Font,title:\"Font 2\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:60,fontWeight:700,lineHeight:.9,letterSpacing:\"0em\"},hidden:p=>!p.twoLines},gap:{type:ControlType.Number,title:\"Line Gap\",min:-200,max:160,step:1,unit:\"px\",defaultValue:0,hidden:p=>!p.twoLines},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",displaySegmentedControl:true},topColor:{type:ControlType.Color,title:\"Top\",defaultValue:\"hsl(0, 0%, 58%)\"},bottomColor:{type:ControlType.Color,title:\"Bottom\",defaultValue:\"hsl(0, 0%, 22%)\"},midpoint:{type:ControlType.Number,title:\"Midpoint\",min:0,max:100,step:1,unit:\"%\",defaultValue:50},glowColor:{type:ControlType.Color,title:\"Glow\",defaultValue:\"rgb(255, 255, 255)\"},radius:{type:ControlType.Number,title:\"Glow Width\",min:80,max:1600,step:10,unit:\"px\",defaultValue:470},spread:{type:ControlType.Number,title:\"Spread\",min:20,max:95,step:1,unit:\"%\",defaultValue:72},bloom:{type:ControlType.Number,title:\"Bloom\",min:0,max:1.3,step:.05,defaultValue:.75},softness:{type:ControlType.Number,title:\"Falloff\",min:.6,max:2.6,step:.05,defaultValue:1},centerBlur:{type:ControlType.Number,title:\"Center Blur\",min:0,max:30,step:1,unit:\"px\",defaultValue:3},follow:{type:ControlType.Number,title:\"Follow\",min:.03,max:.3,step:.01,defaultValue:.12},fitPercent:{type:ControlType.Number,title:\"Fit Width %\",min:50,max:100,step:1,unit:\"%\",defaultValue:80},minScale:{type:ControlType.Number,title:\"Min Scale %\",min:20,max:100,step:1,unit:\"%\",defaultValue:50},background:{type:ControlType.Color,title:\"Surface\",defaultValue:\"rgba(0,0,0,0)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientGlowText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"140\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"1000\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientGlowText.map"],"mappings":"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"}