[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"guide-nav":3,"doc-\u002Fdocs\u002Fprimitives\u002Feffects-blurs":145},[4,10,16,20,24,28,32,36,40,44,48,52,56,60,64,69,73,78,82,86,90,94,98,102,106,110,114,117,120,124,127,131,134,138,141],{"path":5,"title":6,"description":7,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide","Getting started","Shaders is a library of GPU effect components for Vue, React, Svelte, Solid, JavaScript and Framer, with a design editor for building with them.","code",null,{"path":11,"title":12,"description":13,"category":8,"exclude":14,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fquickstart","Quickstart","Install Shaders, render your first effect, and drive a prop from state.",[15],"js",{"path":17,"title":18,"description":19,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcomposing-effects","Composing effects","Stack components as layers and nest them to control which layers an effect touches.",{"path":21,"title":22,"description":23,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fblending-masking","Blending and masking","Control how a layer mixes with the layers below it, and reveal one layer through another.",{"path":25,"title":26,"description":27,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fprops-reactivity","Props and reactivity","Bind props to your framework's state so effects update when it changes, and animate props with an animation library.",{"path":29,"title":30,"description":31,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fdynamic-props","Dynamic props","Drive any numeric or position prop from time, the cursor, or another layer, without writing animation code.",{"path":33,"title":34,"description":35,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Flayout-positioning","Layout and positioning","Size and place a shader in your page with CSS, as a background, a fill, or an inline block.",{"path":37,"title":38,"description":39,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Ftransforms","Transforms","Position, size, and rotate any layer inside the canvas with a bounding box, in % or px units.",{"path":41,"title":42,"description":43,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fshape-effects","Shape effects","Pick the 2D, 3D or custom SVG shape that Glass, Neon, Emboss and other shape effects draw inside.",{"path":45,"title":46,"description":47,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcolor-space","Color space","Match colors to your design tool with the output color space, and keep bright layers from clipping with tone mapping.",{"path":49,"title":50,"description":51,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fhooks-events","Hooks and events","Run code when an effect is ready to show, and show a fallback when the GPU can't run it.",{"path":53,"title":54,"description":55,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fperformance","Performance","Learn what makes an effect expensive on the GPU and how to keep it inside the frame budget.",{"path":57,"title":58,"description":59,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcustom-shaders","Custom components","Write your own component in TypeScript, use it like any component in the library, and write WGSL by hand when you need to.",{"path":61,"title":62,"description":63,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Ftelemetry","Telemetry","The `\u003CShader>` component occasionally sends an anonymous performance report to help us improve the engine over time.",{"path":65,"title":66,"description":67,"category":68,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fmcp","Shaders MCP","Connect your AI coding agent to Shaders so it can find, install and edit effects in your codebase.","workflows",{"path":70,"title":71,"description":72,"category":68,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcli","Shaders CLI","Install shaders and presets into your codebase as component files, and keep them in sync with the design editor.",{"path":74,"title":75,"description":76,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fquick-tour-of-the-design-editor","Quick tour of the design editor","A short walkthrough of the full Shaders workflow, from designing on the infinite canvas to exporting code.","editor",{"path":79,"title":80,"description":81,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fintro-to-the-interface","Intro to the interface","A tour of the design editor interface: the canvas, layers, the Properties panel, and the ways to share and export.",{"path":83,"title":84,"description":85,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcomposing-your-first-shader-effect","Composing your first shader effect","Building a first shader effect in the design editor by stacking and nesting components as layers.",{"path":87,"title":88,"description":89,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fmasking-and-blending","Masking and blending","How blend modes and masks combine components in the design editor.",{"path":91,"title":92,"description":93,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fdynamic-prop-mapping","Dynamic prop mapping","Turning static props into dynamic ones in the design editor: mapping one layer's output into another's prop, following the cursor, or animating automatically.",{"path":95,"title":96,"description":97,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fcustom-media-and-transformations","Custom media and transformations","Uploading images, videos, and SVG files to the media gallery, adding them to a composition, and placing them with transformations.",{"path":99,"title":100,"description":101,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Finstalling-a-shader-via-mcp","Installing a shader via MCP","Installing a shader from the design editor into a hero section with the Shaders MCP.",{"path":103,"title":104,"description":105,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fexploring-shape-effects","Exploring shape effects","Applying shape effects such as liquid glass, liquid metal, and glowing edges to built-in shapes and your own SVG.",{"path":107,"title":108,"description":109,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fglass-component-spotlight","Component spotlight: Glass","A short look at the Glass component and the liquid-glass look it creates.",{"path":111,"title":112,"description":113,"category":77,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fdigital-looks-component-spotlight","Component spotlight: Digital looks","A look at the digital stylization components for glitchy, futuristic, or technical effects.",{"path":115,"title":12,"description":116,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fjs\u002Fquickstart","Install Shaders without a framework, render your first effect on a canvas, and update props at runtime.",{"path":118,"title":12,"description":119,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Freact\u002Fquickstart","Install Shaders in a React app, render your first effect, and drive a prop from state.",{"path":121,"title":122,"description":123,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Freact\u002Fssr","Next.js and SSR","Render Shaders in Next.js and other React SSR apps by keeping each shader on the client.",{"path":125,"title":12,"description":126,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fsolid\u002Fquickstart","Install Shaders in a Solid app, render your first effect, and drive a prop from a signal.",{"path":128,"title":129,"description":130,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fsolid\u002Fssr","SolidStart and SSR","Render Shaders in SolidStart and other Solid SSR apps by keeping each shader on the client.",{"path":132,"title":12,"description":133,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fsvelte\u002Fquickstart","Install Shaders in a Svelte app, render your first effect, and drive a prop from state.",{"path":135,"title":136,"description":137,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fsvelte\u002Fssr","SvelteKit and SSR","Render Shaders in SvelteKit and other Svelte SSR apps, where each shader already waits for the browser.",{"path":139,"title":12,"description":140,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fvue\u002Fquickstart","Install Shaders in a Vue app, render your first effect, and drive a prop from a ref.",{"path":142,"title":143,"description":144,"category":8,"exclude":9,"forceFramework":9},"\u002Fdocs\u002Fguide\u002Fvue\u002Fssr","Nuxt and SSR","Render Shaders in Nuxt and other Vue SSR apps by keeping each shader on the client.",{"id":146,"title":147,"body":148,"categoryId":1596,"categorySlug":1597,"categoryTitle":9,"curated":788,"description":1598,"editUrl":1599,"extension":1600,"group":1601,"groupTitle":1602,"kind":9,"meta":1603,"navigation":788,"path":1604,"seo":1605,"sourceUrl":1606,"stem":1607,"wordCount":1608,"__hash__":1609},"primitives\u002Fdocs\u002Fprimitives\u002F27.effects-blurs\u002Findex.md","Blurs, glows & screens",{"type":149,"value":150,"toc":1590},"minimark",[151,155,172,315,363,392,397,763,767,1114,1118,1192,1196,1586],[152,153,147],"h1",{"id":154},"blurs-glows-screens",[156,157,158,159,163,164,167,168,171],"p",{},"Effects that read the layer inside them (the child) as a texture and rebuild it: blurs, glows,\nsharpening, pixelation, shadows, retro screens, glitches, fluted glass, page peels and mirror\nfloors. A ",[160,161,162],"strong",{},"pointwise"," effect edits the child's color at one pixel; the words here are\n",[160,165,166],{},"gather"," effects, which sample the child at other pixels too, so they can smear, spread and\ndisplace it. Every word here goes in a filter definition's ",[8,169,170],{},"effect:"," field, or spreads into a\ndefinition when it needs its own pass over the child first.",[156,173,174,175,182,183,182,189,182,195,182,201,207,208,182,214,220,221,227,228,231,232,182,238,182,244,182,250,256,257,260,261,182,267,182,273,207,279,285,286,289,290,182,296,182,302,182,308,314],{},"Finished effects are one call: ",[176,177,179],"a",{"href":178},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fgaussianblur",[8,180,181],{},"gaussianBlur",", ",[176,184,186],{"href":185},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fmotionblur",[8,187,188],{},"motionBlur",[176,190,192],{"href":191},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbloom",[8,193,194],{},"bloom",[176,196,198],{"href":197},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpixelate",[8,199,200],{},"pixelate",[176,202,204],{"href":203},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsharpen",[8,205,206],{},"sharpen",",\n",[176,209,211],{"href":210},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscatter",[8,212,213],{},"scatter",[176,215,217],{"href":216},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbokehdefocus",[8,218,219],{},"bokehDefocus",". Stacked looks are assembled with ",[176,222,224],{"href":223},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fgatherstack",[8,225,226],{},"gatherStack"," from a ",[160,229,230],{},"sampling\nstage"," (how the child is first read: ",[176,233,235],{"href":234},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frgbsplit",[8,236,237],{},"rgbSplit",[176,239,241],{"href":240},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchromasmeartaps",[8,242,243],{},"chromaSmearTaps",[176,245,247],{"href":246},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcrisptap",[8,248,249],{},"crispTap",[176,251,253],{"href":252},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchildtap",[8,254,255],{},"childTap",")\nand ordered ",[160,258,259],{},"overlay stages"," that edit the result (",[176,262,264],{"href":263},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscanlines",[8,265,266],{},"scanlines",[176,268,270],{"href":269},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fadjust",[8,271,272],{},"adjust",[176,274,276],{"href":275},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frimlit",[8,277,278],{},"rimLit",[176,280,282],{"href":281},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fshadowcomposite",[8,283,284],{},"shadowComposite","). When several stages need the same geometry, build a ",[160,287,288],{},"frame"," once\n(",[176,291,293],{"href":292},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsphereframe",[8,294,295],{},"sphereFrame",[176,297,299],{"href":298},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fglitchframe",[8,300,301],{},"glitchFrame",[176,303,305],{"href":304},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ffluteframe",[8,306,307],{},"fluteFrame",[176,309,311],{"href":310},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpeelframe",[8,312,313],{},"peelFrame",") and hand it to each of them.",[156,316,317,318,182,322,182,328,207,334,182,340,182,344,348,349,182,352,355,356,359,360,362],{},"Blurs that need a separate pass (",[176,319,320],{"href":178},[8,321,181],{},[176,323,325],{"href":324},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchannelblur",[8,326,327],{},"channelBlur",[176,329,331],{"href":330},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fprogressiveblur",[8,332,333],{},"progressiveBlur",[176,335,337],{"href":336},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ftiltshift",[8,338,339],{},"tiltShift",[176,341,342],{"href":191},[8,343,194],{},[176,345,346],{"href":216},[8,347,219],{},") return both halves at once. Spread them into a definition\nthat declares ",[8,350,351],{},"species: 'custom'",[8,353,354],{},"requiresRTT: true"," and ",[8,357,358],{},"requiresChild: true"," instead of\nusing ",[8,361,170],{},".",[364,365,370],"pre",{"className":366,"code":367,"language":368,"meta":369,"style":369},"language-ts shiki shiki-themes github-dark","import {effects} from 'shaders\u002Fstd'\n","ts","",[8,371,372],{"__ignoreMap":369},[373,374,377,381,385,388],"span",{"class":375,"line":376},"line",1,[373,378,380],{"class":379},"snl16","import",[373,382,384],{"class":383},"s95oV"," {effects} ",[373,386,387],{"class":379},"from",[373,389,391],{"class":390},"sU2Wk"," 'shaders\u002Fstd'\n",[393,394,396],"h2",{"id":395},"reach-for-it-when","Reach for it when",[398,399,400,413],"table",{},[401,402,403],"thead",{},[404,405,406,410],"tr",{},[407,408,409],"th",{},"When you need",[407,411,412],{},"Use",[414,415,416,428,446,457,468,479,490,501,512,523,534,562,599,623,652,671,694,712,737,750],"tbody",{},[404,417,418,422],{},[419,420,421],"td",{},"a soft, even blur",[419,423,424],{},[176,425,426],{"href":178},[8,427,181],{},[404,429,430,433],{},[419,431,432],{},"a directional streak, a spin, or a zoom blur",[419,434,435,439,440],{},[176,436,437],{"href":185},[8,438,188],{}," with ",[176,441,443],{"href":442},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath",[8,444,445],{},"blurPath",[404,447,448,451],{},[419,449,450],{},"a blur that fades in across the canvas",[419,452,453],{},[176,454,455],{"href":330},[8,456,333],{},[404,458,459,462],{},[419,460,461],{},"a band in focus with blurred edges",[419,463,464],{},[176,465,466],{"href":336},[8,467,339],{},[404,469,470,473],{},[419,471,472],{},"a glow around bright parts",[419,474,475],{},[176,476,477],{"href":191},[8,478,194],{},[404,480,481,484],{},[419,482,483],{},"a lens blur with shaped highlight discs",[419,485,486],{},[176,487,488],{"href":216},[8,489,219],{},[404,491,492,495],{},[419,493,494],{},"a chromatic fringe from blurring channels apart",[419,496,497],{},[176,498,499],{"href":324},[8,500,327],{},[404,502,503,506],{},[419,504,505],{},"grainy diffusion rather than a smooth blur",[419,507,508],{},[176,509,510],{"href":210},[8,511,213],{},[404,513,514,517],{},[419,515,516],{},"crisper detail",[419,518,519],{},[176,520,521],{"href":203},[8,522,206],{},[404,524,525,528],{},[419,526,527],{},"a pixel grid, with gaps or rounded cells",[419,529,530],{},[176,531,532],{"href":197},[8,533,200],{},[404,535,536,539],{},[419,537,538],{},"a soft shadow behind the child",[419,540,541,545,546,182,552,182,558],{},[176,542,543],{"href":252},[8,544,255],{}," + ",[176,547,549],{"href":548},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fshadowoffset",[8,550,551],{},"shadowOffset",[176,553,555],{"href":554},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsilhouettecoverage",[8,556,557],{},"silhouetteCoverage",[176,559,560],{"href":281},[8,561,284],{},[404,563,564,567],{},[419,565,566],{},"an old CRT monitor",[419,568,569,545,573,182,577,182,581,182,587,182,593],{},[176,570,571],{"href":234},[8,572,237],{},[176,574,575],{"href":269},[8,576,272],{},[176,578,579],{"href":263},[8,580,266],{},[176,582,584],{"href":583},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fphosphormask",[8,585,586],{},"phosphorMask",[176,588,590],{"href":589},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fvignetteoverlay",[8,591,592],{},"vignetteOverlay",[176,594,596],{"href":595},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fopaque",[8,597,598],{},"opaque",[404,600,601,604],{},[419,602,603],{},"a worn VHS tape",[419,605,606,439,610,616,617],{},[176,607,608],{"href":240},[8,609,243],{},[176,611,613],{"href":612},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ftapewarp",[8,614,615],{},"tapeWarp",", then ",[176,618,620],{"href":619},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbeatpulse",[8,621,622],{},"beatPulse",[404,624,625,628],{},[419,626,627],{},"digital glitch bursts",[419,629,630,545,634,182,640,182,646],{},[176,631,632],{"href":298},[8,633,301],{},[176,635,637],{"href":636},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fglitchrgbsplit",[8,638,639],{},"glitchRgbSplit",[176,641,643],{"href":642},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcolorbarfills",[8,644,645],{},"colorBarFills",[176,647,649],{"href":648},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fdistortedscanlines",[8,650,651],{},"distortedScanlines",[404,653,654,657],{},[419,655,656],{},"the child bulging on a sphere",[419,658,659,545,663,182,667],{},[176,660,661],{"href":292},[8,662,295],{},[176,664,665],{"href":246},[8,666,249],{},[176,668,669],{"href":275},[8,670,278],{},[404,672,673,676],{},[419,674,675],{},"reeded or fluted glass over the child",[419,677,678,545,682,182,688],{},[176,679,680],{"href":304},[8,681,307],{},[176,683,685],{"href":684},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frefractedtaps",[8,686,687],{},"refractedTaps",[176,689,691],{"href":690},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fflutehighlight",[8,692,693],{},"fluteHighlight",[404,695,696,699],{},[419,697,698],{},"a page curling up from a corner",[419,700,701,545,705,711],{},[176,702,703],{"href":310},[8,704,313],{},[176,706,708],{"href":707},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpeelcompose",[8,709,710],{},"peelCompose"," with the four peel shades",[404,713,714,717],{},[419,715,716],{},"a mirror floor with a fading, softening reflection",[419,718,719,182,725,182,731],{},[176,720,722],{"href":721},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fmirroracrossrow",[8,723,724],{},"mirrorAcrossRow",[176,726,728],{"href":727},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fdepthrampblur",[8,729,730],{},"depthRampBlur",[176,732,734],{"href":733},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fplanarreflection",[8,735,736],{},"planarReflection",[404,738,739,742],{},[419,740,741],{},"film halation or phosphor bloom over a graded color",[419,743,744],{},[176,745,747],{"href":746},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscreenedbloom",[8,748,749],{},"screenedBloom",[404,751,752,755],{},[419,753,754],{},"a projector-gate wobble",[419,756,757],{},[176,758,760],{"href":759},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fframesway",[8,761,762],{},"frameSway",[393,764,766],{"id":765},"example","Example",[364,768,770],{"className":366,"code":769,"language":368,"meta":369,"style":369},"import {defineShader, p, effects, transformColor, transformBoolean} from 'shaders\u002Fstd'\n\nconst {gatherStack, childTap, shadowOffset, silhouetteCoverage, shadowComposite} = effects.blurs\n\n\u002F\u002F A soft drop shadow: read the child's silhouette offset in a compass direction, blur it,\n\u002F\u002F tint it, and place it behind the child.\nexport const SoftShadow = defineShader({\n  name: 'SoftShadow',\n  props: {\n    color: {default: '#000000', transform: transformColor},\n    distance: {default: 0.1},\n    angle: {default: 135},\n    blur: {default: 5},\n    intensity: {default: 0.5},\n    cutout: {default: false, transform: transformBoolean, compileTime: true},\n  },\n  effect: gatherStack(childTap(), [\n    shadowComposite({\n      coverage: silhouetteCoverage({\n        at: shadowOffset({angle: p('angle'), distance: p('distance')}),\n        blur: p('blur'),\n      }),\n      color: p('color'),\n      intensity: p('intensity'),\n      cutout: p('cutout'),\n    }),\n  ]),\n})\n",[8,771,772,783,790,827,832,839,845,867,878,884,896,908,919,930,941,958,964,980,988,998,1029,1045,1051,1066,1081,1096,1102,1108],{"__ignoreMap":369},[373,773,774,776,779,781],{"class":375,"line":376},[373,775,380],{"class":379},[373,777,778],{"class":383}," {defineShader, p, effects, transformColor, transformBoolean} ",[373,780,387],{"class":379},[373,782,391],{"class":390},[373,784,786],{"class":375,"line":785},2,[373,787,789],{"emptyLinePlaceholder":788},true,"\n",[373,791,793,796,799,802,804,806,808,810,812,814,816,818,821,824],{"class":375,"line":792},3,[373,794,795],{"class":379},"const",[373,797,798],{"class":383}," {",[373,800,226],{"class":801},"sDLfK",[373,803,182],{"class":383},[373,805,255],{"class":801},[373,807,182],{"class":383},[373,809,551],{"class":801},[373,811,182],{"class":383},[373,813,557],{"class":801},[373,815,182],{"class":383},[373,817,284],{"class":801},[373,819,820],{"class":383},"} ",[373,822,823],{"class":379},"=",[373,825,826],{"class":383}," effects.blurs\n",[373,828,830],{"class":375,"line":829},4,[373,831,789],{"emptyLinePlaceholder":788},[373,833,835],{"class":375,"line":834},5,[373,836,838],{"class":837},"sAwPA","\u002F\u002F A soft drop shadow: read the child's silhouette offset in a compass direction, blur it,\n",[373,840,842],{"class":375,"line":841},6,[373,843,844],{"class":837},"\u002F\u002F tint it, and place it behind the child.\n",[373,846,848,851,854,857,860,864],{"class":375,"line":847},7,[373,849,850],{"class":379},"export",[373,852,853],{"class":379}," const",[373,855,856],{"class":801}," SoftShadow",[373,858,859],{"class":379}," =",[373,861,863],{"class":862},"svObZ"," defineShader",[373,865,866],{"class":383},"({\n",[373,868,870,873,876],{"class":375,"line":869},8,[373,871,872],{"class":383},"  name: ",[373,874,875],{"class":390},"'SoftShadow'",[373,877,207],{"class":383},[373,879,881],{"class":375,"line":880},9,[373,882,883],{"class":383},"  props: {\n",[373,885,887,890,893],{"class":375,"line":886},10,[373,888,889],{"class":383},"    color: {default: ",[373,891,892],{"class":390},"'#000000'",[373,894,895],{"class":383},", transform: transformColor},\n",[373,897,899,902,905],{"class":375,"line":898},11,[373,900,901],{"class":383},"    distance: {default: ",[373,903,904],{"class":801},"0.1",[373,906,907],{"class":383},"},\n",[373,909,911,914,917],{"class":375,"line":910},12,[373,912,913],{"class":383},"    angle: {default: ",[373,915,916],{"class":801},"135",[373,918,907],{"class":383},[373,920,922,925,928],{"class":375,"line":921},13,[373,923,924],{"class":383},"    blur: {default: ",[373,926,927],{"class":801},"5",[373,929,907],{"class":383},[373,931,933,936,939],{"class":375,"line":932},14,[373,934,935],{"class":383},"    intensity: {default: ",[373,937,938],{"class":801},"0.5",[373,940,907],{"class":383},[373,942,944,947,950,953,956],{"class":375,"line":943},15,[373,945,946],{"class":383},"    cutout: {default: ",[373,948,949],{"class":801},"false",[373,951,952],{"class":383},", transform: transformBoolean, compileTime: ",[373,954,955],{"class":801},"true",[373,957,907],{"class":383},[373,959,961],{"class":375,"line":960},16,[373,962,963],{"class":383},"  },\n",[373,965,967,970,972,975,977],{"class":375,"line":966},17,[373,968,969],{"class":383},"  effect: ",[373,971,226],{"class":862},[373,973,974],{"class":383},"(",[373,976,255],{"class":862},[373,978,979],{"class":383},"(), [\n",[373,981,983,986],{"class":375,"line":982},18,[373,984,985],{"class":862},"    shadowComposite",[373,987,866],{"class":383},[373,989,991,994,996],{"class":375,"line":990},19,[373,992,993],{"class":383},"      coverage: ",[373,995,557],{"class":862},[373,997,866],{"class":383},[373,999,1001,1004,1006,1009,1011,1013,1016,1019,1021,1023,1026],{"class":375,"line":1000},20,[373,1002,1003],{"class":383},"        at: ",[373,1005,551],{"class":862},[373,1007,1008],{"class":383},"({angle: ",[373,1010,156],{"class":862},[373,1012,974],{"class":383},[373,1014,1015],{"class":390},"'angle'",[373,1017,1018],{"class":383},"), distance: ",[373,1020,156],{"class":862},[373,1022,974],{"class":383},[373,1024,1025],{"class":390},"'distance'",[373,1027,1028],{"class":383},")}),\n",[373,1030,1032,1035,1037,1039,1042],{"class":375,"line":1031},21,[373,1033,1034],{"class":383},"        blur: ",[373,1036,156],{"class":862},[373,1038,974],{"class":383},[373,1040,1041],{"class":390},"'blur'",[373,1043,1044],{"class":383},"),\n",[373,1046,1048],{"class":375,"line":1047},22,[373,1049,1050],{"class":383},"      }),\n",[373,1052,1054,1057,1059,1061,1064],{"class":375,"line":1053},23,[373,1055,1056],{"class":383},"      color: ",[373,1058,156],{"class":862},[373,1060,974],{"class":383},[373,1062,1063],{"class":390},"'color'",[373,1065,1044],{"class":383},[373,1067,1069,1072,1074,1076,1079],{"class":375,"line":1068},24,[373,1070,1071],{"class":383},"      intensity: ",[373,1073,156],{"class":862},[373,1075,974],{"class":383},[373,1077,1078],{"class":390},"'intensity'",[373,1080,1044],{"class":383},[373,1082,1084,1087,1089,1091,1094],{"class":375,"line":1083},25,[373,1085,1086],{"class":383},"      cutout: ",[373,1088,156],{"class":862},[373,1090,974],{"class":383},[373,1092,1093],{"class":390},"'cutout'",[373,1095,1044],{"class":383},[373,1097,1099],{"class":375,"line":1098},26,[373,1100,1101],{"class":383},"    }),\n",[373,1103,1105],{"class":375,"line":1104},27,[373,1106,1107],{"class":383},"  ]),\n",[373,1109,1111],{"class":375,"line":1110},28,[373,1112,1113],{"class":383},"})\n",[393,1115,1117],{"id":1116},"types","Types",[398,1119,1120,1130],{},[401,1121,1122],{},[404,1123,1124,1127],{},[407,1125,1126],{},"Type",[407,1128,1129],{},"What it is",[414,1131,1132,1142,1152,1162,1172,1182],{},[404,1133,1134,1139],{},[419,1135,1136],{},[8,1137,1138],{},"BlurPathSpec",[419,1140,1141],{},"The path a motion blur smears along: its kind plus the prop that anchors it.",[404,1143,1144,1149],{},[419,1145,1146],{},[8,1147,1148],{},"ComputeBackedEffect",[419,1150,1151],{},"The two halves a heavy blur adds to a definition: a pass that blurs the child ahead of time, and the fragment that reads it.",[404,1153,1154,1159],{},[419,1155,1156],{},[8,1157,1158],{},"GatherFrame",[419,1160,1161],{},"A geometry that several stages of one effect share: a warped coordinate, a surface normal, a coverage mask.",[404,1163,1164,1169],{},[419,1165,1166],{},[8,1167,1168],{},"OverlayStage",[419,1170,1171],{},"One editing stage of a stacked effect: takes the color so far and returns the edited color.",[404,1173,1174,1179],{},[419,1175,1176],{},[8,1177,1178],{},"PeelShade",[419,1180,1181],{},"One shading term of a page peel: a number per pixel read against the peel frame.",[404,1183,1184,1189],{},[419,1185,1186],{},[8,1187,1188],{},"SampleStage",[419,1190,1191],{},"The first stage of a stacked effect: reads the child as a texture and returns the starting color at this pixel.",[393,1193,1195],{"id":1194},"words","Words",[1197,1198,1200],"primitive-words",{":words":1199},"[{\"name\":\"gaussianBlur\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fgaussianblur\",\"summary\":\"A soft, even blur of the child.\"},{\"name\":\"motionBlur\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fmotionblur\",\"summary\":\"Smears the child along a path: a straight streak, an arc around a point, or a zoom out of a point.\"},{\"name\":\"blurPath\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath\",\"summary\":\"The three paths `motionBlur` can smear along.\"},{\"name\":\"progressiveBlur\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fprogressiveblur\",\"summary\":\"A blur that ramps from sharp to full strength in one direction across the child.\"},{\"name\":\"tiltShift\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ftiltshift\",\"summary\":\"Keeps a band of the child in focus and blurs everything beyond it, like a tilt-shift lens.\"},{\"name\":\"bloom\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbloom\",\"summary\":\"A glow: the child's bright parts spread into a soft halo that adds back on top.\"},{\"name\":\"bokehDefocus\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbokehdefocus\",\"summary\":\"A photographic lens blur where bright highlights bloom into aperture-shaped discs.\"},{\"name\":\"channelBlur\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchannelblur\",\"summary\":\"Blurs red, green and blue by separate amounts, for a soft chromatic fringe.\"},{\"name\":\"scatter\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscatter\",\"summary\":\"Scatters every pixel of the child by a random offset: a grainy diffusion, not a smooth blur.\"},{\"name\":\"sharpen\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsharpen\",\"summary\":\"Sharpens the child by boosting the contrast between each pixel and its neighbours.\"},{\"name\":\"pixelate\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpixelate\",\"summary\":\"Turns the child into a grid of flat cells, each showing one color.\"},{\"name\":\"gatherStack\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fgatherstack\",\"summary\":\"Assemble an effect from one sampling stage and an ordered list of overlay stages.\"},{\"name\":\"childTap\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchildtap\",\"summary\":\"The child's own color at this pixel, unchanged.\"},{\"name\":\"shadowOffset\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fshadowoffset\",\"summary\":\"The coordinate a shadow reads the child's silhouette from: `distance` away in the compass direction `angle`.\"},{\"name\":\"silhouetteCoverage\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsilhouettecoverage\",\"summary\":\"A soft copy of the child's alpha silhouette: a number per pixel from 0 to 1.\"},{\"name\":\"shadowComposite\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fshadowcomposite\",\"summary\":\"A tinted shadow behind the child.\"},{\"name\":\"rgbSplit\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frgbsplit\",\"summary\":\"The child with its red and blue pulled a little to either side, like a misaligned CRT.\"},{\"name\":\"adjust\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fadjust\",\"summary\":\"Brightness and contrast, pivoting around mid-grey.\"},{\"name\":\"scanlines\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscanlines\",\"summary\":\"Horizontal scanlines darkening the child in a smooth wave.\"},{\"name\":\"phosphorMask\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fphosphormask\",\"summary\":\"A faint red, green and blue phosphor stripe pattern across the child.\"},{\"name\":\"vignetteOverlay\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fvignetteoverlay\",\"summary\":\"Darkens the child toward its corners.\"},{\"name\":\"opaque\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fopaque\",\"summary\":\"Closes a three-channel stack as a solid color with alpha 1.\"},{\"name\":\"tapeWarp\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ftapewarp\",\"summary\":\"The wobbling, jittering coordinates of a worn VHS tape, to feed into `chromaSmearTaps`.\"},{\"name\":\"chromaSmearTaps\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fchromasmeartaps\",\"summary\":\"The child sampled like a VHS deck: brightness stays sharp while color bleeds sideways.\"},{\"name\":\"beatPulse\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbeatpulse\",\"summary\":\"A faint brightness throb, like the mains hum of an old television.\"},{\"name\":\"glitchFrame\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fglitchframe\",\"summary\":\"The shared geometry of a digital glitch: when bursts fire, which horizontal bands jitter, and which blocks shift or flip.\"},{\"name\":\"glitchRgbSplit\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fglitchrgbsplit\",\"summary\":\"The child sampled through a glitch frame, with red and blue pulled apart inside the active bands.\"},{\"name\":\"colorBarFills\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcolorbarfills\",\"summary\":\"Neon color bars filling the blocks a glitch frame currently has active.\"},{\"name\":\"distortedScanlines\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fdistortedscanlines\",\"summary\":\"CRT-style scanlines that appear only where a glitch frame is currently distorting.\"},{\"name\":\"sphereFrame\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fsphereframe\",\"summary\":\"The geometry of a sphere bulging out of the canvas: where each pixel reads the child from, where the sphere ends, and which way its surface faces.\"},{\"name\":\"crispTap\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcrisptap\",\"summary\":\"One clean sample of the child at a frame's warped coordinate.\"},{\"name\":\"rimLit\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frimlit\",\"summary\":\"A tinted rim of light around the edge of a bulged surface, added on top of the child's color.\"},{\"name\":\"fluteFrame\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Ffluteframe\",\"summary\":\"The geometry of fluted (reeded) glass over the child: where each pixel reads through the glass, how far its colors split, and the slope of the flute at that point.\"},{\"name\":\"refractedTaps\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frefractedtaps\",\"summary\":\"The child seen through a flute frame, with edge handling and a color split when `aberration` is above 0.\"},{\"name\":\"fluteHighlight\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fflutehighlight\",\"summary\":\"A specular highlight running along each flute, added on top of the child's color.\"},{\"name\":\"peelFrame\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpeelframe\",\"summary\":\"The geometry of a page curling up from one corner: where the curl reads the child from, how far it has turned, and how far each pixel is from the crease.\"},{\"name\":\"peelCompose\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fpeelcompose\",\"summary\":\"A finished page peel: the cast shadows, the flat page and the lit curl, layered back to front.\"},{\"name\":\"curlShading\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcurlshading\",\"summary\":\"The darkening in the crook of a curl, easing to full brightness at the lip.\"},{\"name\":\"curlSheen\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcurlsheen\",\"summary\":\"The band of light running up a curl.\"},{\"name\":\"overhangShadow\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Foverhangshadow\",\"summary\":\"The shadow a lifted curl casts on the flat page just past the crease.\"},{\"name\":\"revealShadow\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frevealshadow\",\"summary\":\"The shadow on the surface a peel reveals, just inside the crease.\"},{\"name\":\"mirrorAcrossRow\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fmirroracrossrow\",\"summary\":\"The coordinate mirrored across a horizontal line, for reading a reflection below it.\"},{\"name\":\"depthRampBlur\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fdepthrampblur\",\"summary\":\"The blur half of a mirror floor: blurs the child more the further a row sits below the line.\"},{\"name\":\"planarReflection\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fplanarreflection\",\"summary\":\"A mirror floor: the child as it is above a line, and its reflection fading out below it.\"},{\"name\":\"screenedBloom\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fscreenedbloom\",\"summary\":\"A tinted glow of the child's bright parts, screened over a color you have already graded: film halation, phosphor bloom.\"},{\"name\":\"frameSway\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fframesway\",\"summary\":\"A slight drifting shift and rotation of where the child is read from, like film in an unsteady projector gate.\"},{\"name\":\"blurPath.linear\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-linear\",\"summary\":\"A straight streak along an angle prop, in degrees (0 points right, 90 points down).\"},{\"name\":\"blurPath.orbit\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-orbit\",\"summary\":\"An arc streak rotating around a center prop (a position in uv).\"},{\"name\":\"blurPath.zoom\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-zoom\",\"summary\":\"A radial streak rushing outward from a center prop (a position in uv).\"},{\"name\":\"brightestNear\",\"path\":\"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbrightestnear\",\"summary\":\"The brightest color in a small ring around a point: the layer grown outward, so a spot just outside a bright area still reads as bright.\"}]",[1201,1202,1203,1211,1218,1228,1235,1242,1249,1256,1263,1270,1277,1284,1291,1298,1312,1319,1326,1333,1340,1347,1354,1361,1368,1377,1384,1391,1398,1405,1412,1419,1426,1433,1440,1447,1458,1465,1472,1479,1488,1497,1506,1515,1522,1529,1536,1543,1550,1559,1568,1577],"ul",{},[1204,1205,1206,1210],"li",{},[176,1207,1208],{"href":178},[8,1209,181],{}," — A soft, even blur of the child.",[1204,1212,1213,1217],{},[176,1214,1215],{"href":185},[8,1216,188],{}," — Smears the child along a path: a straight streak, an arc around a point, or a zoom out of a point.",[1204,1219,1220,1224,1225,1227],{},[176,1221,1222],{"href":442},[8,1223,445],{}," — The three paths ",[8,1226,188],{}," can smear along.",[1204,1229,1230,1234],{},[176,1231,1232],{"href":330},[8,1233,333],{}," — A blur that ramps from sharp to full strength in one direction across the child.",[1204,1236,1237,1241],{},[176,1238,1239],{"href":336},[8,1240,339],{}," — Keeps a band of the child in focus and blurs everything beyond it, like a tilt-shift lens.",[1204,1243,1244,1248],{},[176,1245,1246],{"href":191},[8,1247,194],{}," — A glow: the child's bright parts spread into a soft halo that adds back on top.",[1204,1250,1251,1255],{},[176,1252,1253],{"href":216},[8,1254,219],{}," — A photographic lens blur where bright highlights bloom into aperture-shaped discs.",[1204,1257,1258,1262],{},[176,1259,1260],{"href":324},[8,1261,327],{}," — Blurs red, green and blue by separate amounts, for a soft chromatic fringe.",[1204,1264,1265,1269],{},[176,1266,1267],{"href":210},[8,1268,213],{}," — Scatters every pixel of the child by a random offset: a grainy diffusion, not a smooth blur.",[1204,1271,1272,1276],{},[176,1273,1274],{"href":203},[8,1275,206],{}," — Sharpens the child by boosting the contrast between each pixel and its neighbours.",[1204,1278,1279,1283],{},[176,1280,1281],{"href":197},[8,1282,200],{}," — Turns the child into a grid of flat cells, each showing one color.",[1204,1285,1286,1290],{},[176,1287,1288],{"href":223},[8,1289,226],{}," — Assemble an effect from one sampling stage and an ordered list of overlay stages.",[1204,1292,1293,1297],{},[176,1294,1295],{"href":252},[8,1296,255],{}," — The child's own color at this pixel, unchanged.",[1204,1299,1300,1304,1305,1308,1309,362],{},[176,1301,1302],{"href":548},[8,1303,551],{}," — The coordinate a shadow reads the child's silhouette from: ",[8,1306,1307],{},"distance"," away in the compass direction ",[8,1310,1311],{},"angle",[1204,1313,1314,1318],{},[176,1315,1316],{"href":554},[8,1317,557],{}," — A soft copy of the child's alpha silhouette: a number per pixel from 0 to 1.",[1204,1320,1321,1325],{},[176,1322,1323],{"href":281},[8,1324,284],{}," — A tinted shadow behind the child.",[1204,1327,1328,1332],{},[176,1329,1330],{"href":234},[8,1331,237],{}," — The child with its red and blue pulled a little to either side, like a misaligned CRT.",[1204,1334,1335,1339],{},[176,1336,1337],{"href":269},[8,1338,272],{}," — Brightness and contrast, pivoting around mid-grey.",[1204,1341,1342,1346],{},[176,1343,1344],{"href":263},[8,1345,266],{}," — Horizontal scanlines darkening the child in a smooth wave.",[1204,1348,1349,1353],{},[176,1350,1351],{"href":583},[8,1352,586],{}," — A faint red, green and blue phosphor stripe pattern across the child.",[1204,1355,1356,1360],{},[176,1357,1358],{"href":589},[8,1359,592],{}," — Darkens the child toward its corners.",[1204,1362,1363,1367],{},[176,1364,1365],{"href":595},[8,1366,598],{}," — Closes a three-channel stack as a solid color with alpha 1.",[1204,1369,1370,1374,1375,362],{},[176,1371,1372],{"href":612},[8,1373,615],{}," — The wobbling, jittering coordinates of a worn VHS tape, to feed into ",[8,1376,243],{},[1204,1378,1379,1383],{},[176,1380,1381],{"href":240},[8,1382,243],{}," — The child sampled like a VHS deck: brightness stays sharp while color bleeds sideways.",[1204,1385,1386,1390],{},[176,1387,1388],{"href":619},[8,1389,622],{}," — A faint brightness throb, like the mains hum of an old television.",[1204,1392,1393,1397],{},[176,1394,1395],{"href":298},[8,1396,301],{}," — The shared geometry of a digital glitch: when bursts fire, which horizontal bands jitter, and which blocks shift or flip.",[1204,1399,1400,1404],{},[176,1401,1402],{"href":636},[8,1403,639],{}," — The child sampled through a glitch frame, with red and blue pulled apart inside the active bands.",[1204,1406,1407,1411],{},[176,1408,1409],{"href":642},[8,1410,645],{}," — Neon color bars filling the blocks a glitch frame currently has active.",[1204,1413,1414,1418],{},[176,1415,1416],{"href":648},[8,1417,651],{}," — CRT-style scanlines that appear only where a glitch frame is currently distorting.",[1204,1420,1421,1425],{},[176,1422,1423],{"href":292},[8,1424,295],{}," — The geometry of a sphere bulging out of the canvas: where each pixel reads the child from, where the sphere ends, and which way its surface faces.",[1204,1427,1428,1432],{},[176,1429,1430],{"href":246},[8,1431,249],{}," — One clean sample of the child at a frame's warped coordinate.",[1204,1434,1435,1439],{},[176,1436,1437],{"href":275},[8,1438,278],{}," — A tinted rim of light around the edge of a bulged surface, added on top of the child's color.",[1204,1441,1442,1446],{},[176,1443,1444],{"href":304},[8,1445,307],{}," — The geometry of fluted (reeded) glass over the child: where each pixel reads through the glass, how far its colors split, and the slope of the flute at that point.",[1204,1448,1449,1453,1454,1457],{},[176,1450,1451],{"href":684},[8,1452,687],{}," — The child seen through a flute frame, with edge handling and a color split when ",[8,1455,1456],{},"aberration"," is above 0.",[1204,1459,1460,1464],{},[176,1461,1462],{"href":690},[8,1463,693],{}," — A specular highlight running along each flute, added on top of the child's color.",[1204,1466,1467,1471],{},[176,1468,1469],{"href":310},[8,1470,313],{}," — The geometry of a page curling up from one corner: where the curl reads the child from, how far it has turned, and how far each pixel is from the crease.",[1204,1473,1474,1478],{},[176,1475,1476],{"href":707},[8,1477,710],{}," — A finished page peel: the cast shadows, the flat page and the lit curl, layered back to front.",[1204,1480,1481,1487],{},[176,1482,1484],{"href":1483},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcurlshading",[8,1485,1486],{},"curlShading"," — The darkening in the crook of a curl, easing to full brightness at the lip.",[1204,1489,1490,1496],{},[176,1491,1493],{"href":1492},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fcurlsheen",[8,1494,1495],{},"curlSheen"," — The band of light running up a curl.",[1204,1498,1499,1505],{},[176,1500,1502],{"href":1501},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Foverhangshadow",[8,1503,1504],{},"overhangShadow"," — The shadow a lifted curl casts on the flat page just past the crease.",[1204,1507,1508,1514],{},[176,1509,1511],{"href":1510},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Frevealshadow",[8,1512,1513],{},"revealShadow"," — The shadow on the surface a peel reveals, just inside the crease.",[1204,1516,1517,1521],{},[176,1518,1519],{"href":721},[8,1520,724],{}," — The coordinate mirrored across a horizontal line, for reading a reflection below it.",[1204,1523,1524,1528],{},[176,1525,1526],{"href":727},[8,1527,730],{}," — The blur half of a mirror floor: blurs the child more the further a row sits below the line.",[1204,1530,1531,1535],{},[176,1532,1533],{"href":733},[8,1534,736],{}," — A mirror floor: the child as it is above a line, and its reflection fading out below it.",[1204,1537,1538,1542],{},[176,1539,1540],{"href":746},[8,1541,749],{}," — A tinted glow of the child's bright parts, screened over a color you have already graded: film halation, phosphor bloom.",[1204,1544,1545,1549],{},[176,1546,1547],{"href":759},[8,1548,762],{}," — A slight drifting shift and rotation of where the child is read from, like film in an unsteady projector gate.",[1204,1551,1552,1558],{},[176,1553,1555],{"href":1554},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-linear",[8,1556,1557],{},"blurPath.linear"," — A straight streak along an angle prop, in degrees (0 points right, 90 points down).",[1204,1560,1561,1567],{},[176,1562,1564],{"href":1563},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-orbit",[8,1565,1566],{},"blurPath.orbit"," — An arc streak rotating around a center prop (a position in uv).",[1204,1569,1570,1576],{},[176,1571,1573],{"href":1572},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fblurpath-zoom",[8,1574,1575],{},"blurPath.zoom"," — A radial streak rushing outward from a center prop (a position in uv).",[1204,1578,1579,1585],{},[176,1580,1582],{"href":1581},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs\u002Fbrightestnear",[8,1583,1584],{},"brightestNear"," — The brightest color in a small ring around a point: the layer grown outward, so a spot just outside a bright area still reads as bright.",[1587,1588,1589],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}",{"title":369,"searchDepth":785,"depth":785,"links":1591},[1592,1593,1594,1595],{"id":395,"depth":785,"text":396},{"id":765,"depth":785,"text":766},{"id":1116,"depth":785,"text":1117},{"id":1194,"depth":785,"text":1195},"effects.blurs","effects-blurs","Effects that read the layer inside them (the child) as a texture and rebuild it: blurs, glows, sharpening, pixelation, shadows, retro screens, glitches, fluted glass, page peels and mirror floors.","https:\u002F\u002Fgithub.com\u002Fshader-effects-inc\u002Fshaders\u002Fedit\u002Fmain\u002Fpackages\u002Fcore\u002Fdocs\u002Fstd\u002Feffects.blurs.md","md","effects","Filters & effects",{},"\u002Fdocs\u002Fprimitives\u002Feffects-blurs",{"title":147,"description":1598},"https:\u002F\u002Fgithub.com\u002Fshader-effects-inc\u002Fshaders\u002Fblob\u002Fmain\u002Fpackages\u002Fcore\u002Fsrc\u002Fstd\u002Feffects\u002Fblurs.ts","docs\u002Fprimitives\u002F27.effects-blurs\u002Findex",50,"uzzFeTFiHdBKnm61NGe8sXYTkFYKzPVGyl90nx7fN0k"]