{"version":3,"file":"GradientText.B3VONSDB.mjs","names":["mask","SVG","getProps","Icon","React.forwardRef","React.forwardRef","useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/5uOlPHdPlzVetBFGdDPc/G0bkCBxBX0gE3HLpCArC/kS20EjwX2.js","https:/framerusercontent.com/modules/ebnKqLMo8lhe8821JZfD/ANjYGZVytE3zq6XrGd0M/PSIe2P8yb.js","https:/framerusercontent.com/modules/FR2uv4T423TiQjfCQXrS/19PFxvN5Ks0o73hxFHYE/qIGF9L2wS.js","https:/framerusercontent.com/modules/TsIutlm9hVX0uv3hxgV5/pOuo9AtbuoHSvyPLaFXb/GradientText.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 10 12 L 7 12 L 7 20 L 3 20 L 3 12 L 0 12 L 0 8 L 3 8 L 3 5 C 3 2.239 5.239 0 8 0 L 11 0 L 11 4 L 8 4 C 7.333 4 7 4.333 7 5 L 7 8 L 11 8 Z\" fill=\"transparent\" height=\"20px\" id=\"aDDWwWBDt\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--1df8v9o, rgb(0,0,0))\" transform=\"translate(7 2)\" width=\"11px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,n2nHSaXfp:stroke??props.n2nHSaXfp??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,n2nHSaXfp,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-EUtK9\",className),layoutId:layoutId,ref:ref,style:{\"--1df8v9o\":n2nHSaXfp,...style}});});const css=[`.framer-EUtK9 { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1df8v9o); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"n2nHSaXfp\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Facebook\",\"color\":{\"type\":\"variable\",\"value\":\"1df8v9o\"},\"set\":{\"localId\":\"vectorSet/yXo17f3GZ\",\"id\":\"yXo17f3GZ\",\"moduleId\":\"eO37kitVCMcNEgHMGd3K\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-EUtK9\");Icon.displayName=\"Facebook\";export default Icon;addPropertyControls(Icon,{n2nHSaXfp:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Facebook\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1df8v9o\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/yXo17f3GZ\\\",\\\"id\\\":\\\"yXo17f3GZ\\\",\\\"moduleId\\\":\\\"eO37kitVCMcNEgHMGd3K\\\"}}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"true\",\"framerVariables\":\"{\\\"n2nHSaXfp\\\":\\\"stroke\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 18 L 7.5 10.5 M 10.5 7.5 L 18 0 M 5 0 L 0 0 L 13 18 L 18 18 Z\" fill=\"transparent\" height=\"18px\" id=\"KD49WOeur\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke=\"var(--1df8v9o, rgb(0,0,0))\" transform=\"translate(3 3)\" width=\"18px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,id,stroke,width,...props})=>{return{...props,n2nHSaXfp:stroke??props.n2nHSaXfp??\"rgb(0, 0, 0)\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,n2nHSaXfp,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-A2QNA\",className),layoutId:layoutId,ref:ref,style:{\"--1df8v9o\":n2nHSaXfp,...style}});});const css=[`.framer-A2QNA { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1df8v9o); mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"n2nHSaXfp\":\"stroke\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"X\",\"color\":{\"type\":\"variable\",\"value\":\"1df8v9o\"},\"set\":{\"localId\":\"vectorSet/yXo17f3GZ\",\"id\":\"yXo17f3GZ\",\"moduleId\":\"eO37kitVCMcNEgHMGd3K\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-A2QNA\");Icon.displayName=\"X\";export default Icon;addPropertyControls(Icon,{n2nHSaXfp:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"X\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1df8v9o\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/yXo17f3GZ\\\",\\\"id\\\":\\\"yXo17f3GZ\\\",\\\"moduleId\\\":\\\"eO37kitVCMcNEgHMGd3K\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerVariables\":\"{\\\"n2nHSaXfp\\\":\\\"stroke\\\"}\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ca8ceca)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-oPsLG .framer-styles-preset-1rd84a8:not(.rich-text-wrapper), .framer-oPsLG .framer-styles-preset-1rd84a8.rich-text-wrapper a { --framer-link-hover-text-color: var(--token-7f4b8c7b-5da5-47c4-8e47-1474e25aee29, #ffc373); --framer-link-text-background-radius: 0px; --framer-link-text-color: var(--token-f0025cda-b286-46e7-9542-a48ff9594d8b, #ffffff); }\"];export const className=\"framer-oPsLG\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useAnimation}from\"framer-motion\";import{useEffect,useLayoutEffect,useRef,useMemo,useState}from\"react\";// 文字の上下に確保する塗り余白（行間を詰めても g・y・p などの下端や、アクセント記号の上端が切れないように）\nconst PAINT_PAD=\"0.25em\";/**\n * 幅・高さは中身に合わせる（Fit Content）のを基本にする。\n * 幅を固定すると、字間を広げたときに枠からはみ出す（折り返しOFF時）か折り返す（ON時）。\n *\n * @framerSupportedLayoutWidth any-prefer-auto\n * @framerSupportedLayoutHeight auto\n */export default function GradientText({text=\"Gradient Text\",fontFamily=\"Inter\",fontSize=48,fontWeight=700,lineHeight=1.2,letterSpacing=0,textAlign=\"left\",wrap=false,gradientAngle=90,colorStart=\"#6366f1\",colorMid=\"#a855f7\",colorEnd=\"#ec4899\",useMiddleColor=true,shadow=false,shadowColor=\"rgba(15, 4, 28, 0.7)\",shadowX=0,shadowY=3,shadowBlur=8,startFrom=\"middle\",blurAmount=10,scaleFrom=1,offsetY=10,startDelay=0,stagger=.04,springDuration=.4,springBounce=.05,replay=false,style}){const containerRef=useRef(null);const wrapperRef=useRef(null);const charRefs=useRef([]);const controls=useAnimation();const hasPlayed=useRef(false);const isMounted=useRef(false)// マウント済みかどうかのフラグ\n;const[bgPositions,setBgPositions]=useState([]);const[totalWidth,setTotalWidth]=useState(200);const chars=useMemo(()=>text.split(\"\"),[text]);// 文字ごとの開始タイミング（全体の遅延 ＋ 文字間隔）\nconst delays=useMemo(()=>{const n=chars.length;if(n===0)return[];if(startFrom===\"middle\"){const center=(n-1)/2;return chars.map((_,i)=>startDelay+Math.abs(i-center)*stagger);}if(startFrom===\"end\"){return chars.map((_,i)=>startDelay+(n-1-i)*stagger);}return chars.map((_,i)=>startDelay+i*stagger);},[chars,startFrom,stagger,startDelay]);// 各文字のグラデーション位置を測る。\n// getBoundingClientRect は拡大縮小（スケール演出・キャンバスのズーム）の影響を受けて\n// 位置がずれ、先頭文字にグラデーションの終点色が回り込むため、変形前のレイアウト値（offsetLeft/offsetWidth）を使う\nuseLayoutEffect(()=>{const wrapper=wrapperRef.current;if(!wrapper)return;const width=wrapper.offsetWidth;if(width===0)return;const positions=charRefs.current.map(ref=>ref?ref.offsetLeft:0);setBgPositions(positions);setTotalWidth(width||200);},[text,fontFamily,fontSize,fontWeight,letterSpacing,wrap]);const gradient=useMiddleColor?`linear-gradient(${gradientAngle}deg, ${colorStart}, ${colorMid}, ${colorEnd})`:`linear-gradient(${gradientAngle}deg, ${colorStart}, ${colorEnd})`;const play=()=>{controls.set(\"hidden\");controls.start(\"visible\");};// スクロールで画面に入ったときだけ再生\nuseEffect(()=>{const el=containerRef.current;if(!el)return;const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){if(!hasPlayed.current||replay){hasPlayed.current=true;play();}}else if(replay){controls.set(\"hidden\");hasPlayed.current=false;}},{threshold:.1,root:null});observer.observe(el);return()=>observer.disconnect();},[replay]);// Framer エディタでプロパティを変更したときだけ再生（マウント時はスキップ）\nuseEffect(()=>{if(!isMounted.current){isMounted.current=true;return;}hasPlayed.current=false;const timer=setTimeout(()=>{hasPlayed.current=true;play();},50);return()=>clearTimeout(timer);},[text,startFrom,blurAmount,scaleFrom,offsetY,startDelay,stagger,springDuration,springBounce]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{display:\"inline-block\",width:\"fit-content\",height:\"fit-content\",overflow:\"visible\",whiteSpace:wrap?\"normal\":\"nowrap\",...style},children:/*#__PURE__*/_jsx(\"span\",{ref:wrapperRef,style:{position:\"relative\",display:\"inline-block\",fontFamily,fontSize,fontWeight,lineHeight,letterSpacing:`${letterSpacing}em`,textAlign,// 折り返しOFFなら、字間を広げても1行のまま（枠が狭いと右にはみ出す）\nwhiteSpace:wrap?\"pre-wrap\":\"nowrap\",// 影は文字全体の外側に付ける（drop-shadow なのでグラデーション文字でも透けない）。\n// 文字ごとの span は登場演出で filter: blur を使うので、影はここ（親）に付ける\nfilter:shadow?`drop-shadow(${shadowX}px ${shadowY}px ${shadowBlur}px ${shadowColor})`:undefined},children:chars.map((char,i)=>/*#__PURE__*/_jsx(motion.span,{ref:el=>{charRefs.current[i]=el;},animate:controls,custom:delays[i]??0,initial:\"hidden\",variants:{hidden:{opacity:0,filter:`blur(${blurAmount}px)`,scale:scaleFrom,y:offsetY},visible:delay=>({opacity:1,filter:\"blur(0px)\",scale:1,y:0,transition:{type:\"spring\",duration:springDuration,bounce:springBounce,delay}})},style:{display:\"inline-block\",whiteSpace:char===\" \"?\"pre\":\"normal\",// グラデーションは文字の枠の中にしか塗られないので、上下に塗り余白を足して\n    // 同じ分だけマイナスのマージンで戻す（見た目の行間・位置は変わらない）\n    paddingTop:PAINT_PAD,paddingBottom:PAINT_PAD,marginTop:`-${PAINT_PAD}`,marginBottom:`-${PAINT_PAD}`,background:gradient,backgroundSize:`${totalWidth}px 100%`,backgroundPosition:`${-(bgPositions[i]??0)}px 0`,WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundClip:\"text\"},children:char},`${text}-${i}`))})});}addPropertyControls(GradientText,{text:{type:ControlType.String,title:\"テキスト\",defaultValue:\"Gradient Text\",displayTextArea:true},fontFamily:{type:ControlType.String,title:\"フォント\",defaultValue:\"Inter\"},fontSize:{type:ControlType.Number,title:\"フォントサイズ\",defaultValue:48,min:8,max:200,unit:\"px\"},fontWeight:{type:ControlType.Number,title:\"ウェイト\",defaultValue:700,min:100,max:900,step:100},lineHeight:{type:ControlType.Number,title:\"行間\",defaultValue:1.2,min:.5,max:3,step:.1},letterSpacing:{type:ControlType.Number,title:\"字間 (em)\",defaultValue:0,min:-.2,max:1,step:.01},textAlign:{type:ControlType.Enum,title:\"揃え\",defaultValue:\"left\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"左\",\"中央\",\"右\"]},wrap:{type:ControlType.Boolean,title:\"折り返し\",defaultValue:false,enabledTitle:\"する\",disabledTitle:\"しない\"},gradientAngle:{type:ControlType.Number,title:\"角度\",defaultValue:90,min:0,max:360,unit:\"\\xb0\"},colorStart:{type:ControlType.Color,title:\"カラー（始点）\",defaultValue:\"#6366f1\"},useMiddleColor:{type:ControlType.Boolean,title:\"中間色\",defaultValue:true,enabledTitle:\"ON\",disabledTitle:\"OFF\"},colorMid:{type:ControlType.Color,title:\"カラー（中間）\",defaultValue:\"#a855f7\",hidden(props){return!props.useMiddleColor;}},colorEnd:{type:ControlType.Color,title:\"カラー（終点）\",defaultValue:\"#ec4899\"},shadow:{type:ControlType.Boolean,title:\"影\",defaultValue:false,enabledTitle:\"ON\",disabledTitle:\"OFF\"},shadowColor:{type:ControlType.Color,title:\"影の色\",defaultValue:\"rgba(15, 4, 28, 0.7)\",hidden(props){return!props.shadow;}},shadowX:{type:ControlType.Number,title:\"影 X\",defaultValue:0,min:-50,max:50,unit:\"px\",displayStepper:true,hidden(props){return!props.shadow;}},shadowY:{type:ControlType.Number,title:\"影 Y\",defaultValue:3,min:-50,max:50,unit:\"px\",displayStepper:true,hidden(props){return!props.shadow;}},shadowBlur:{type:ControlType.Number,title:\"影のぼかし\",defaultValue:8,min:0,max:60,unit:\"px\",displayStepper:true,hidden(props){return!props.shadow;}},startFrom:{type:ControlType.Enum,title:\"開始位置\",defaultValue:\"middle\",options:[\"start\",\"middle\",\"end\"],optionTitles:[\"先頭から\",\"真ん中から\",\"末尾から\"]},blurAmount:{type:ControlType.Number,title:\"ぼかし\",defaultValue:10,min:0,max:40,unit:\"px\"},scaleFrom:{type:ControlType.Number,title:\"スケール\",defaultValue:1,min:0,max:3,step:.05},offsetY:{type:ControlType.Number,title:\"オフセット Y\",defaultValue:10,min:-100,max:100,unit:\"px\"},startDelay:{type:ControlType.Number,title:\"遅延 (s)\",defaultValue:0,min:0,max:5,step:.1,displayStepper:true},stagger:{type:ControlType.Number,title:\"文字間隔 (s)\",defaultValue:.04,min:0,max:.3,step:.01},springDuration:{type:ControlType.Number,title:\"時間 (s)\",defaultValue:.4,min:.1,max:3,step:.05},springBounce:{type:ControlType.Number,title:\"バウンス\",defaultValue:.05,min:0,max:1,step:.01},replay:{type:ControlType.Boolean,title:\"リプレイ\",defaultValue:false,enabledTitle:\"ON\",disabledTitle:\"OFF\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientText.map"],"mappings":"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"}