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