#

#

Visual

SC Neon Wave Shader

SC Neon Wave Shader

SC Neon Wave Shader

Sep 1, 2025

0 views

A WebGL-based neon shader effect for Framer. Renders an animated glowing wave with hue-shifted neon colors, interactive hover response, and real-time distortion. Ideal for futuristic hero sections, reactive backgrounds, or experimental UI flourishes.

Lilac Flower
Lilac Flower
Lilac Flower
Lilac Flower
#
Built With
React, WebGL (GLSL shaders), Framer Code Component API
#
Layout Support
Fills parent frame, responsive to resizing
#
Orientation
Full background canvas
#
Ideal Use Case
Hero banners, experimental motion backdrops, cyberpunk UI
#
Built With
React, WebGL (GLSL shaders), Framer Code Component API
#
Layout Support
Fills parent frame, responsive to resizing
#
Orientation
Full background canvas
#
Ideal Use Case
Hero banners, experimental motion backdrops, cyberpunk UI
#
Built With
React, WebGL (GLSL shaders), Framer Code Component API
#
Layout Support
Fills parent frame, responsive to resizing
#
Orientation
Full background canvas
#
Ideal Use Case
Hero banners, experimental motion backdrops, cyberpunk UI

//

Tags

shader
neon
wave
webgl
glow
interactive
//
Technologies
WebGL + GLSL
//
Notes
No external libs; pure WebGL shader compiled at runtime.
//
Technologies
WebGL + GLSL
//
Notes
No external libs; pure WebGL shader compiled at runtime.
//
Technologies
WebGL + GLSL
//
Notes
No external libs; pure WebGL shader compiled at runtime.
#
Logic Level
High (custom GLSL, shader compilation, event handling)
#
Runtime Cost
Medium–High (continuous render loop; GPU-intensive)
#
Component Size
~15–20 KB (shader code heavy)
#
Notes
Disable on mobile if battery/perf concerns.
#
Logic Level
High (custom GLSL, shader compilation, event handling)
#
Runtime Cost
Medium–High (continuous render loop; GPU-intensive)
#
Component Size
~15–20 KB (shader code heavy)
#
Notes
Disable on mobile if battery/perf concerns.
#
Logic Level
High (custom GLSL, shader compilation, event handling)
#
Runtime Cost
Medium–High (continuous render loop; GPU-intensive)
#
Component Size
~15–20 KB (shader code heavy)
#
Notes
Disable on mobile if battery/perf concerns.
  1. Add to your Framer project and place on the canvas.

  2. Configure Base Color + Hover Color (Vec3 strings, e.g., "0.2,0.4,1.0").

  3. Adjust distortion: Vertical Distortion, Wave Frequency, Glow Alpha.

  4. Toggle Mouse Reactive and Reset on Leave for interaction control.

  5. Use Section ID to isolate multiple instances without input conflicts.

  • Preset A (Default Glow): base=0.2,0.4,1.0 · hover=1.0,0.3,0.8 · speed=1.0

  • Preset B (Cyber Pink): base=0.8,0.0,0.8 · hover=0.2,0.8,1.0 · glow=1.5 · bgAlpha=0.8

  • Preset C (Subtle Lines): base=0.1,0.6,0.9 · hover=0.9,0.1,0.2 · speed=0.5 · distortion=0.2

  • Compiles vertex and fragment shaders on mount.

  • Fragment shader computes neon wave using sine distortion + rect masks.

  • Colors hue-shifted via YIQ → RGB matrix transform.

  • Mouse position injected into shader uniforms for hover/interaction.

  • Continuous requestAnimationFrame updates iTime, wave distortion, and glow.

  • Lower Wave Frequency + Glow Alpha = less GPU stress.

  • Keep animationSpeed ≤ 2 for smoothness across devices.

  • On low-end hardware, disable Mouse Reactive to reduce uniform updates.

  • Requires WebGL (desktop and most mobile browsers).

  • Firefox may render slightly differently due to composite differences.

  • Pointer events disabled (pointerEvents: none on canvas).

  • Purely decorative; mark container aria-hidden="true" if non-essential.

  • Avoid excessive motion in contexts with reduced motion settings (can wrap with prefers-reduced-motion check).

  • No external calls; all shader code runs locally.

  • No eval/dangerous APIs.

  • Cleans up event listeners + RAF loop on unmount.

Name

Type

Default

Description

baseNeonColor

string(Vec3)

“0.2,0.4,1.0”

RGB vec3 string for base neon color.

hoverNeonColor

string(Vec3)

“1.0,0.3,0.8”

RGB vec3 string for hover neon color.

baseHue

number(0–1)

0.0

Hue shift factor for base color.

hoverHue

number(0–1)

0.0

Hue shift factor for hover color.

animationSpeed

number

1.0

Global animation time multiplier.

verticalDistortion

number

0.4

Wave vertical distortion (scroll amplitude).

waveFrequency

number

10.0

Frequency of the wave oscillation.

glowAlpha

number

1.0

Glow strength multiplier.

bgAlpha

number

1.0

Background alpha blend.

mouseReactive

boolean

true

Enable mouse tracking reactivity.

resetOnMouseOut

boolean

true

Fade out effect after leaving canvas.

sectionId

string

“default”

Unique ID to avoid conflicts with multiple shaders.

name:baseNeonColor
type:string(Vec3)
default:“0.2,0.4,1.0”
desc:RGB vec3 string for base neon color.
name:hoverNeonColor
type:string(Vec3)
default:“1.0,0.3,0.8”
desc:RGB vec3 string for hover neon color.
name:baseHue
type:number(0–1)
default:0.0
desc:Hue shift factor for base color.
name:hoverHue
type:number(0–1)
default:0.0
desc:Hue shift factor for hover color.
name:animationSpeed
type:number
default:1.0
desc:Global animation time multiplier.
name:verticalDistortion
type:number
default:0.4
desc:Wave vertical distortion (scroll amplitude).
name:waveFrequency
type:number
default:10.0
desc:Frequency of the wave oscillation.
name:glowAlpha
type:number
default:1.0
desc:Glow strength multiplier.
name:bgAlpha
type:number
default:1.0
desc:Background alpha blend.
name:mouseReactive
type:boolean
default:true
desc:Enable mouse tracking reactivity.
name:resetOnMouseOut
type:boolean
default:true
desc:Fade out effect after leaving canvas.
name:sectionId
type:string
default:“default”
desc:Unique ID to avoid conflicts with multiple shaders.

Name

Type

Default

Description

name:baseNeonColor
type:string(Vec3)
default:“0.2,0.4,1.0”
desc:RGB vec3 string for base neon color.
name:hoverNeonColor
type:string(Vec3)
default:“1.0,0.3,0.8”
desc:RGB vec3 string for hover neon color.
name:baseHue
type:number(0–1)
default:0.0
desc:Hue shift factor for base color.
name:hoverHue
type:number(0–1)
default:0.0
desc:Hue shift factor for hover color.
name:animationSpeed
type:number
default:1.0
desc:Global animation time multiplier.
name:verticalDistortion
type:number
default:0.4
desc:Wave vertical distortion (scroll amplitude).
name:waveFrequency
type:number
default:10.0
desc:Frequency of the wave oscillation.
name:glowAlpha
type:number
default:1.0
desc:Glow strength multiplier.
name:bgAlpha
type:number
default:1.0
desc:Background alpha blend.
name:mouseReactive
type:boolean
default:true
desc:Enable mouse tracking reactivity.
name:resetOnMouseOut
type:boolean
default:true
desc:Fade out effect after leaving canvas.
name:sectionId
type:string
default:“default”
desc:Unique ID to avoid conflicts with multiple shaders.
  • Purely decorative; mark container aria-hidden="true" if non-essential.

  • Avoid excessive motion in contexts with reduced motion settings (can wrap with prefers-reduced-motion check).

  • No external calls; all shader code runs locally.

  • No eval/dangerous APIs.

  • Cleans up event listeners + RAF loop on unmount.

  • Shader math adapted from GLSL neon and wave distortion patterns.

  • Implementation & Framer adaptation by SecretoCho Design.

SecretoCho Design 2025

Provided “as is” for visual/UX purposes. Validate performance impact, accessibility, and GPU compatibility before production use.

Stay ahead of the curve with insights into emerging visualization trends and technologies.