@paper-design/shaders-react 0.0.32 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -4
- package/dist/index.d.ts +42 -39
- package/dist/index.js +22 -19
- package/dist/index.js.map +2 -2
- package/dist/shader-mount.d.ts +4 -1
- package/dist/shader-mount.js +7 -1
- package/dist/shader-mount.js.map +2 -2
- package/dist/shaders/color-panels.d.ts +9 -0
- package/dist/shaders/color-panels.js +107 -0
- package/dist/shaders/color-panels.js.map +7 -0
- package/dist/shaders/dithering.d.ts +1 -1
- package/dist/shaders/dithering.js +45 -54
- package/dist/shaders/dithering.js.map +2 -2
- package/dist/shaders/dot-grid.d.ts +1 -1
- package/dist/shaders/dot-grid.js +30 -30
- package/dist/shaders/dot-grid.js.map +2 -2
- package/dist/shaders/dot-orbit.d.ts +1 -1
- package/dist/shaders/dot-orbit.js +7 -4
- package/dist/shaders/dot-orbit.js.map +2 -2
- package/dist/shaders/god-rays.d.ts +1 -1
- package/dist/shaders/god-rays.js +26 -19
- package/dist/shaders/god-rays.js.map +2 -2
- package/dist/shaders/grain-gradient.d.ts +1 -1
- package/dist/shaders/grain-gradient.js +30 -19
- package/dist/shaders/grain-gradient.js.map +2 -2
- package/dist/shaders/liquid-metal.d.ts +4 -1
- package/dist/shaders/liquid-metal.js +89 -20
- package/dist/shaders/liquid-metal.js.map +2 -2
- package/dist/shaders/mesh-gradient.d.ts +1 -1
- package/dist/shaders/mesh-gradient.js +5 -5
- package/dist/shaders/mesh-gradient.js.map +2 -2
- package/dist/shaders/metaballs.d.ts +1 -1
- package/dist/shaders/metaballs.js +6 -3
- package/dist/shaders/metaballs.js.map +2 -2
- package/dist/shaders/neuro-noise.d.ts +1 -1
- package/dist/shaders/neuro-noise.js +12 -18
- package/dist/shaders/neuro-noise.js.map +2 -2
- package/dist/shaders/perlin-noise.d.ts +1 -1
- package/dist/shaders/perlin-noise.js +18 -18
- package/dist/shaders/perlin-noise.js.map +2 -2
- package/dist/shaders/pulsing-border.d.ts +1 -1
- package/dist/shaders/pulsing-border.js +8 -8
- package/dist/shaders/pulsing-border.js.map +2 -2
- package/dist/shaders/simplex-noise.d.ts +1 -1
- package/dist/shaders/simplex-noise.js +3 -3
- package/dist/shaders/simplex-noise.js.map +2 -2
- package/dist/shaders/smoke-ring.d.ts +1 -1
- package/dist/shaders/smoke-ring.js +10 -10
- package/dist/shaders/smoke-ring.js.map +2 -2
- package/dist/shaders/spiral.d.ts +1 -1
- package/dist/shaders/spiral.js +20 -20
- package/dist/shaders/spiral.js.map +2 -2
- package/dist/shaders/swirl.d.ts +1 -1
- package/dist/shaders/swirl.js +12 -13
- package/dist/shaders/swirl.js.map +2 -2
- package/dist/shaders/voronoi.d.ts +1 -1
- package/dist/shaders/voronoi.js +14 -14
- package/dist/shaders/voronoi.js.map +2 -2
- package/dist/shaders/warp.d.ts +8 -8
- package/dist/shaders/warp.js +119 -115
- package/dist/shaders/warp.js.map +2 -2
- package/dist/shaders/waves.d.ts +1 -1
- package/dist/shaders/waves.js +18 -18
- package/dist/shaders/waves.js.map +2 -2
- package/package.json +2 -2
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
5
|
|
|
6
6
|
import { memo } from "react";
|
|
7
|
-
import { ShaderMount } from "../shader-mount";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
8
|
import {
|
|
9
9
|
getShaderColorFromString,
|
|
10
10
|
grainGradientFragmentShader,
|
|
11
11
|
ShaderFitOptions,
|
|
12
12
|
defaultPatternSizing,
|
|
13
|
-
defaultObjectSizing
|
|
13
|
+
defaultObjectSizing,
|
|
14
|
+
GrainGradientShapes
|
|
14
15
|
} from "@paper-design/shaders";
|
|
15
16
|
import { jsx } from "react/jsx-runtime";
|
|
16
17
|
const defaultPreset = {
|
|
@@ -19,11 +20,12 @@ const defaultPreset = {
|
|
|
19
20
|
...defaultPatternSizing,
|
|
20
21
|
speed: 1,
|
|
21
22
|
frame: 0,
|
|
22
|
-
|
|
23
|
+
colorBack: "#000a0f",
|
|
24
|
+
colors: ["#c4730b", "#bdad5f", "#d8ccc7"],
|
|
23
25
|
softness: 0.7,
|
|
24
26
|
intensity: 0.15,
|
|
25
27
|
noise: 0.5,
|
|
26
|
-
shape:
|
|
28
|
+
shape: "wave"
|
|
27
29
|
}
|
|
28
30
|
};
|
|
29
31
|
const dotsPreset = {
|
|
@@ -33,11 +35,12 @@ const dotsPreset = {
|
|
|
33
35
|
scale: 0.6,
|
|
34
36
|
speed: 1,
|
|
35
37
|
frame: 0,
|
|
36
|
-
|
|
38
|
+
colorBack: "#0a0000",
|
|
39
|
+
colors: ["#6f0000", "#0080ff", "#f2ebc9"],
|
|
37
40
|
softness: 0.75,
|
|
38
41
|
intensity: 0.15,
|
|
39
42
|
noise: 0.7,
|
|
40
|
-
shape:
|
|
43
|
+
shape: "dots"
|
|
41
44
|
}
|
|
42
45
|
};
|
|
43
46
|
const truchetPreset = {
|
|
@@ -46,11 +49,12 @@ const truchetPreset = {
|
|
|
46
49
|
...defaultPatternSizing,
|
|
47
50
|
speed: 1,
|
|
48
51
|
frame: 0,
|
|
49
|
-
|
|
52
|
+
colorBack: "#0a0000",
|
|
53
|
+
colors: ["#6f2200", "#eabb7c", "#39b523"],
|
|
50
54
|
softness: 0,
|
|
51
55
|
intensity: 0.2,
|
|
52
56
|
noise: 1,
|
|
53
|
-
shape:
|
|
57
|
+
shape: "truchet"
|
|
54
58
|
}
|
|
55
59
|
};
|
|
56
60
|
const cornersPreset = {
|
|
@@ -59,11 +63,12 @@ const cornersPreset = {
|
|
|
59
63
|
...defaultObjectSizing,
|
|
60
64
|
speed: 1,
|
|
61
65
|
frame: 0,
|
|
62
|
-
|
|
66
|
+
colorBack: "#031018",
|
|
67
|
+
colors: ["#00aeff", "#00ffcc", "#ffc800"],
|
|
63
68
|
softness: 0.4,
|
|
64
69
|
intensity: 0.35,
|
|
65
70
|
noise: 0.35,
|
|
66
|
-
shape:
|
|
71
|
+
shape: "corners"
|
|
67
72
|
}
|
|
68
73
|
};
|
|
69
74
|
const ripplePreset = {
|
|
@@ -73,11 +78,12 @@ const ripplePreset = {
|
|
|
73
78
|
scale: 0.5,
|
|
74
79
|
speed: 1,
|
|
75
80
|
frame: 0,
|
|
76
|
-
|
|
81
|
+
colorBack: "#140a00",
|
|
82
|
+
colors: ["#6f2d00", "#88ddae", "#2c0b1d"],
|
|
77
83
|
softness: 0.5,
|
|
78
84
|
intensity: 0.5,
|
|
79
85
|
noise: 0.5,
|
|
80
|
-
shape:
|
|
86
|
+
shape: "ripple"
|
|
81
87
|
}
|
|
82
88
|
};
|
|
83
89
|
const blobPreset = {
|
|
@@ -87,11 +93,12 @@ const blobPreset = {
|
|
|
87
93
|
scale: 1.3,
|
|
88
94
|
speed: 1,
|
|
89
95
|
frame: 0,
|
|
90
|
-
|
|
96
|
+
colorBack: "#0f0e18",
|
|
97
|
+
colors: ["#3e6172", "#a49b74", "#568c50"],
|
|
91
98
|
softness: 0,
|
|
92
99
|
intensity: 0.15,
|
|
93
100
|
noise: 0.5,
|
|
94
|
-
shape:
|
|
101
|
+
shape: "blob"
|
|
95
102
|
}
|
|
96
103
|
};
|
|
97
104
|
const spherePreset = {
|
|
@@ -100,11 +107,12 @@ const spherePreset = {
|
|
|
100
107
|
...defaultObjectSizing,
|
|
101
108
|
speed: 1,
|
|
102
109
|
frame: 0,
|
|
103
|
-
|
|
110
|
+
colorBack: "#000319",
|
|
111
|
+
colors: ["#0059b3", "#37f5f5", "#18c039"],
|
|
104
112
|
softness: 1,
|
|
105
113
|
intensity: 0.15,
|
|
106
114
|
noise: 0.5,
|
|
107
|
-
shape:
|
|
115
|
+
shape: "sphere"
|
|
108
116
|
}
|
|
109
117
|
};
|
|
110
118
|
const moonPreset = {
|
|
@@ -114,11 +122,12 @@ const moonPreset = {
|
|
|
114
122
|
scale: 0.6,
|
|
115
123
|
speed: 1,
|
|
116
124
|
frame: 0,
|
|
117
|
-
|
|
125
|
+
colorBack: "#000000",
|
|
126
|
+
colors: ["#000000", "#28272d", "#ffeccc"],
|
|
118
127
|
softness: 1,
|
|
119
128
|
intensity: 0.56,
|
|
120
129
|
noise: 1,
|
|
121
|
-
shape:
|
|
130
|
+
shape: "sphere"
|
|
122
131
|
}
|
|
123
132
|
};
|
|
124
133
|
const grainGradientPresets = [
|
|
@@ -135,6 +144,7 @@ const GrainGradient = memo(function GrainGradientImpl({
|
|
|
135
144
|
// Own props
|
|
136
145
|
speed = defaultPreset.params.speed,
|
|
137
146
|
frame = defaultPreset.params.frame,
|
|
147
|
+
colorBack = defaultPreset.params.colorBack,
|
|
138
148
|
colors = defaultPreset.params.colors,
|
|
139
149
|
softness = defaultPreset.params.softness,
|
|
140
150
|
intensity = defaultPreset.params.intensity,
|
|
@@ -154,12 +164,13 @@ const GrainGradient = memo(function GrainGradientImpl({
|
|
|
154
164
|
}) {
|
|
155
165
|
const uniforms = {
|
|
156
166
|
// Own uniforms
|
|
167
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
157
168
|
u_colors: colors.map(getShaderColorFromString),
|
|
158
169
|
u_colorsCount: colors.length,
|
|
159
170
|
u_softness: softness,
|
|
160
171
|
u_intensity: intensity,
|
|
161
172
|
u_noise: noise,
|
|
162
|
-
u_shape: shape,
|
|
173
|
+
u_shape: GrainGradientShapes[shape],
|
|
163
174
|
// Sizing uniforms
|
|
164
175
|
u_fit: ShaderFitOptions[fit],
|
|
165
176
|
u_scale: scale,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/shaders/grain-gradient.tsx"],
|
|
4
|
-
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport {\n getShaderColorFromString,\n grainGradientFragmentShader,\n ShaderFitOptions,\n type GrainGradientUniforms,\n type GrainGradientParams,\n type ShaderPreset,\n defaultPatternSizing,\n defaultObjectSizing,\n} from '@paper-design/shaders';\n\nexport interface GrainGradientProps extends ShaderComponentProps, GrainGradientParams {}\n\ntype GrainGradientPreset = ShaderPreset<GrainGradientParams>;\n\
|
|
5
|
-
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport {\n getShaderColorFromString,\n grainGradientFragmentShader,\n ShaderFitOptions,\n type GrainGradientUniforms,\n type GrainGradientParams,\n type ShaderPreset,\n defaultPatternSizing,\n defaultObjectSizing,\n GrainGradientShapes,\n} from '@paper-design/shaders';\n\nexport interface GrainGradientProps extends ShaderComponentProps, GrainGradientParams {}\n\ntype GrainGradientPreset = ShaderPreset<GrainGradientParams>;\n\nexport const defaultPreset: GrainGradientPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#000a0f',\n colors: ['#c4730b', '#bdad5f', '#d8ccc7'],\n softness: 0.7,\n intensity: 0.15,\n noise: 0.5,\n shape: 'wave',\n },\n};\n\nexport const dotsPreset: GrainGradientPreset = {\n name: 'Dots',\n params: {\n ...defaultPatternSizing,\n scale: 0.6,\n speed: 1,\n frame: 0,\n colorBack: '#0a0000',\n colors: ['#6f0000', '#0080ff', '#f2ebc9'],\n softness: 0.75,\n intensity: 0.15,\n noise: 0.7,\n shape: 'dots',\n },\n};\n\nexport const truchetPreset: GrainGradientPreset = {\n name: 'Truchet',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorBack: '#0a0000',\n colors: ['#6f2200', '#eabb7c', '#39b523'],\n softness: 0,\n intensity: 0.2,\n noise: 1,\n shape: 'truchet',\n },\n};\n\nexport const cornersPreset: GrainGradientPreset = {\n name: 'Corners',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#031018',\n colors: ['#00aeff', '#00ffcc', '#ffc800'],\n softness: 0.4,\n intensity: 0.35,\n noise: 0.35,\n shape: 'corners',\n },\n};\n\nexport const ripplePreset: GrainGradientPreset = {\n name: 'Ripple',\n params: {\n ...defaultObjectSizing,\n scale: 0.5,\n speed: 1,\n frame: 0,\n colorBack: '#140a00',\n colors: ['#6f2d00', '#88ddae', '#2c0b1d'],\n softness: 0.5,\n intensity: 0.5,\n noise: 0.5,\n shape: 'ripple',\n },\n};\n\nexport const blobPreset: GrainGradientPreset = {\n name: 'Blob',\n params: {\n ...defaultObjectSizing,\n scale: 1.3,\n speed: 1,\n frame: 0,\n colorBack: '#0f0e18',\n colors: ['#3e6172', '#a49b74', '#568c50'],\n softness: 0,\n intensity: 0.15,\n noise: 0.5,\n shape: 'blob',\n },\n};\n\nexport const spherePreset: GrainGradientPreset = {\n name: 'Sphere',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#000319',\n colors: ['#0059b3', '#37f5f5', '#18c039'],\n softness: 1,\n intensity: 0.15,\n noise: 0.5,\n shape: 'sphere',\n },\n};\n\nexport const moonPreset: GrainGradientPreset = {\n name: 'Moon',\n params: {\n ...defaultObjectSizing,\n scale: 0.6,\n speed: 1,\n frame: 0,\n colorBack: '#000000',\n colors: ['#000000', '#28272d', '#ffeccc'],\n softness: 1,\n intensity: 0.56,\n noise: 1,\n shape: 'sphere',\n },\n};\n\nexport const grainGradientPresets: GrainGradientPreset[] = [\n cornersPreset,\n defaultPreset,\n dotsPreset,\n truchetPreset,\n ripplePreset,\n blobPreset,\n spherePreset,\n moonPreset,\n];\n\nexport const GrainGradient: React.FC<GrainGradientProps> = memo(function GrainGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n softness = defaultPreset.params.softness,\n intensity = defaultPreset.params.intensity,\n noise = defaultPreset.params.noise,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_softness: softness,\n u_intensity: intensity,\n u_noise: noise,\n u_shape: GrainGradientShapes[shape],\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies GrainGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={grainGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { type ShaderComponentProps } from '../shader-mount';
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
2
|
import { type LiquidMetalParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
3
|
export interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {
|
|
4
4
|
}
|
|
5
5
|
type LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;
|
|
6
6
|
export declare const defaultPreset: LiquidMetalPreset;
|
|
7
|
+
export declare const fullScreenPreset: LiquidMetalPreset;
|
|
8
|
+
export declare const spherePreset: LiquidMetalPreset;
|
|
9
|
+
export declare const dropsPreset: LiquidMetalPreset;
|
|
7
10
|
export declare const liquidMetalPresets: LiquidMetalPreset[];
|
|
8
11
|
export declare const LiquidMetal: React.FC<LiquidMetalProps>;
|
|
9
12
|
export {};
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
5
|
|
|
6
6
|
import { memo } from "react";
|
|
7
|
-
import { ShaderMount } from "../shader-mount";
|
|
8
|
-
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
9
|
import {
|
|
10
|
-
getShaderColorFromString,
|
|
11
10
|
liquidMetalFragmentShader,
|
|
12
11
|
ShaderFitOptions,
|
|
13
|
-
defaultObjectSizing
|
|
12
|
+
defaultObjectSizing,
|
|
13
|
+
getShaderColorFromString,
|
|
14
|
+
LiquidMetalShapes
|
|
14
15
|
} from "@paper-design/shaders";
|
|
15
16
|
import { jsx } from "react/jsx-runtime";
|
|
16
17
|
const defaultPreset = {
|
|
@@ -19,24 +20,85 @@ const defaultPreset = {
|
|
|
19
20
|
...defaultObjectSizing,
|
|
20
21
|
speed: 1,
|
|
21
22
|
frame: 0,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
colorBack: "#ffffff",
|
|
24
|
+
colorTint: "#ffffff",
|
|
25
|
+
softness: 0.3,
|
|
26
|
+
repetition: 3,
|
|
27
|
+
shiftRed: 0.3,
|
|
28
|
+
shiftBlue: 0.3,
|
|
29
|
+
distortion: 0.3,
|
|
30
|
+
contour: 0.88,
|
|
31
|
+
shape: "metaballs"
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const fullScreenPreset = {
|
|
35
|
+
name: "Full Screen",
|
|
36
|
+
params: {
|
|
37
|
+
...defaultObjectSizing,
|
|
38
|
+
speed: 1,
|
|
39
|
+
frame: 0,
|
|
40
|
+
colorBack: "#111111",
|
|
41
|
+
colorTint: "#ffffff",
|
|
42
|
+
softness: 0.3,
|
|
43
|
+
repetition: 3,
|
|
44
|
+
shiftRed: 0.3,
|
|
45
|
+
shiftBlue: 0.3,
|
|
46
|
+
distortion: 0.07,
|
|
47
|
+
contour: 0,
|
|
48
|
+
shape: "none",
|
|
27
49
|
worldWidth: 0,
|
|
28
50
|
worldHeight: 0
|
|
29
51
|
}
|
|
30
52
|
};
|
|
31
|
-
const
|
|
53
|
+
const spherePreset = {
|
|
54
|
+
name: "Sphere",
|
|
55
|
+
params: {
|
|
56
|
+
...defaultObjectSizing,
|
|
57
|
+
scale: 0.7,
|
|
58
|
+
speed: 2,
|
|
59
|
+
frame: 0,
|
|
60
|
+
colorBack: "#ffffff",
|
|
61
|
+
colorTint: "#d1e0ff",
|
|
62
|
+
softness: 0.45,
|
|
63
|
+
repetition: 4,
|
|
64
|
+
shiftRed: 1,
|
|
65
|
+
shiftBlue: 0.3,
|
|
66
|
+
distortion: 0.1,
|
|
67
|
+
contour: 0.4,
|
|
68
|
+
shape: "circle"
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const dropsPreset = {
|
|
72
|
+
name: "Drops",
|
|
73
|
+
params: {
|
|
74
|
+
...defaultObjectSizing,
|
|
75
|
+
scale: 2.2,
|
|
76
|
+
speed: 1,
|
|
77
|
+
frame: 0,
|
|
78
|
+
colorBack: "#00042e",
|
|
79
|
+
colorTint: "#5b4dc7",
|
|
80
|
+
softness: 0.45,
|
|
81
|
+
repetition: 4,
|
|
82
|
+
shiftRed: -0.5,
|
|
83
|
+
shiftBlue: -1,
|
|
84
|
+
distortion: 0.1,
|
|
85
|
+
contour: 1,
|
|
86
|
+
shape: "metaballs"
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const liquidMetalPresets = [defaultPreset, spherePreset, dropsPreset, fullScreenPreset];
|
|
32
90
|
const LiquidMetal = memo(function LiquidMetalImpl({
|
|
33
91
|
// Own props
|
|
92
|
+
colorBack = defaultPreset.params.colorBack,
|
|
93
|
+
colorTint = defaultPreset.params.colorTint,
|
|
34
94
|
speed = defaultPreset.params.speed,
|
|
35
95
|
frame = defaultPreset.params.frame,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
96
|
+
softness = defaultPreset.params.softness,
|
|
97
|
+
repetition = defaultPreset.params.repetition,
|
|
98
|
+
shiftRed = defaultPreset.params.shiftRed,
|
|
99
|
+
shiftBlue = defaultPreset.params.shiftBlue,
|
|
100
|
+
distortion = defaultPreset.params.distortion,
|
|
101
|
+
contour = defaultPreset.params.contour,
|
|
40
102
|
shape = defaultPreset.params.shape,
|
|
41
103
|
// Sizing props
|
|
42
104
|
fit = defaultPreset.params.fit,
|
|
@@ -52,11 +114,15 @@ const LiquidMetal = memo(function LiquidMetalImpl({
|
|
|
52
114
|
}) {
|
|
53
115
|
const uniforms = {
|
|
54
116
|
// Own uniforms
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
117
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
118
|
+
u_colorTint: getShaderColorFromString(colorTint),
|
|
119
|
+
u_softness: softness,
|
|
120
|
+
u_repetition: repetition,
|
|
121
|
+
u_shiftRed: shiftRed,
|
|
122
|
+
u_shiftBlue: shiftBlue,
|
|
123
|
+
u_distortion: distortion,
|
|
124
|
+
u_contour: contour,
|
|
125
|
+
u_shape: LiquidMetalShapes[shape],
|
|
60
126
|
// Sizing uniforms
|
|
61
127
|
u_fit: ShaderFitOptions[fit],
|
|
62
128
|
u_scale: scale,
|
|
@@ -82,6 +148,9 @@ const LiquidMetal = memo(function LiquidMetalImpl({
|
|
|
82
148
|
export {
|
|
83
149
|
LiquidMetal,
|
|
84
150
|
defaultPreset,
|
|
85
|
-
|
|
151
|
+
dropsPreset,
|
|
152
|
+
fullScreenPreset,
|
|
153
|
+
liquidMetalPresets,
|
|
154
|
+
spherePreset
|
|
86
155
|
};
|
|
87
156
|
//# sourceMappingURL=liquid-metal.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/shaders/liquid-metal.tsx"],
|
|
4
|
-
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n
|
|
5
|
-
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n liquidMetalFragmentShader,\n ShaderFitOptions,\n type LiquidMetalUniforms,\n type LiquidMetalParams,\n type ShaderPreset,\n defaultObjectSizing,\n getShaderColorFromString,\n LiquidMetalShapes,\n} from '@paper-design/shaders';\n\nexport interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {}\n\ntype LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;\n\nexport const defaultPreset: LiquidMetalPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.3,\n contour: 0.88,\n shape: 'metaballs',\n },\n};\n\nexport const fullScreenPreset: LiquidMetalPreset = {\n name: 'Full Screen',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#111111',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.07,\n contour: 0,\n shape: 'none',\n worldWidth: 0,\n worldHeight: 0,\n },\n};\n\nexport const spherePreset: LiquidMetalPreset = {\n name: 'Sphere',\n params: {\n ...defaultObjectSizing,\n scale: 0.7,\n speed: 2,\n frame: 0,\n colorBack: '#ffffff',\n colorTint: '#d1e0ff',\n softness: 0.45,\n repetition: 4,\n shiftRed: 1,\n shiftBlue: 0.3,\n distortion: 0.1,\n contour: 0.4,\n shape: 'circle',\n },\n};\n\nexport const dropsPreset: LiquidMetalPreset = {\n name: 'Drops',\n params: {\n ...defaultObjectSizing,\n scale: 2.2,\n speed: 1,\n frame: 0,\n colorBack: '#00042e',\n colorTint: '#5b4dc7',\n softness: 0.45,\n repetition: 4,\n shiftRed: -0.5,\n shiftBlue: -1,\n distortion: 0.1,\n contour: 1,\n shape: 'metaballs',\n },\n};\n\nexport const liquidMetalPresets: LiquidMetalPreset[] = [defaultPreset, spherePreset, dropsPreset, fullScreenPreset];\n\nexport const LiquidMetal: React.FC<LiquidMetalProps> = memo(function LiquidMetalImpl({\n // Own props\n colorBack = defaultPreset.params.colorBack,\n colorTint = defaultPreset.params.colorTint,\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n softness = defaultPreset.params.softness,\n repetition = defaultPreset.params.repetition,\n shiftRed = defaultPreset.params.shiftRed,\n shiftBlue = defaultPreset.params.shiftBlue,\n distortion = defaultPreset.params.distortion,\n contour = defaultPreset.params.contour,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: LiquidMetalProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorTint: getShaderColorFromString(colorTint),\n\n u_softness: softness,\n u_repetition: repetition,\n u_shiftRed: shiftRed,\n u_shiftBlue: shiftBlue,\n u_distortion: distortion,\n u_contour: contour,\n u_shape: LiquidMetalShapes[shape],\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies LiquidMetalUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={liquidMetalFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ShaderComponentProps } from '../shader-mount';
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
2
|
import { type MeshGradientParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
3
|
export interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {
|
|
4
4
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
5
|
|
|
6
6
|
import { memo } from "react";
|
|
7
|
-
import { ShaderMount } from "../shader-mount";
|
|
8
|
-
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
9
|
import {
|
|
10
10
|
defaultObjectSizing,
|
|
11
11
|
getShaderColorFromString,
|
|
@@ -19,7 +19,7 @@ const defaultPreset = {
|
|
|
19
19
|
...defaultObjectSizing,
|
|
20
20
|
speed: 1,
|
|
21
21
|
frame: 4e4,
|
|
22
|
-
colors: ["
|
|
22
|
+
colors: ["#5100ff", "#00ff80", "#ffcc00", "#ea00ff"],
|
|
23
23
|
distortion: 0.8,
|
|
24
24
|
swirl: 0.1
|
|
25
25
|
}
|
|
@@ -30,7 +30,7 @@ const purplePreset = {
|
|
|
30
30
|
...defaultObjectSizing,
|
|
31
31
|
speed: 0.6,
|
|
32
32
|
frame: 100,
|
|
33
|
-
colors: ["
|
|
33
|
+
colors: ["#aaa7d7", "#3c2b8e", "#f4eabb", "#c99cd5"],
|
|
34
34
|
distortion: 0.3,
|
|
35
35
|
swirl: 0.5
|
|
36
36
|
}
|
|
@@ -41,7 +41,7 @@ const beachPreset = {
|
|
|
41
41
|
...defaultObjectSizing,
|
|
42
42
|
speed: 0.1,
|
|
43
43
|
frame: 0,
|
|
44
|
-
colors: ["
|
|
44
|
+
colors: ["#bcecf6", "#80c3e4", "#f3eccb", "#f3d987"],
|
|
45
45
|
distortion: 0.8,
|
|
46
46
|
swirl: 0.35
|
|
47
47
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/shaders/mesh-gradient.tsx"],
|
|
4
|
-
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n meshGradientFragmentShader,\n ShaderFitOptions,\n type MeshGradientParams,\n type MeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {}\n\ntype MeshGradientPreset = ShaderPreset<MeshGradientParams>;\n\
|
|
5
|
-
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n meshGradientFragmentShader,\n ShaderFitOptions,\n type MeshGradientParams,\n type MeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {}\n\ntype MeshGradientPreset = ShaderPreset<MeshGradientParams>;\n\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 40000,\n colors: ['#5100ff', '#00ff80', '#ffcc00', '#ea00ff'],\n distortion: 0.8,\n swirl: 0.1,\n },\n};\n\nexport const purplePreset: MeshGradientPreset = {\n name: 'Purple',\n params: {\n ...defaultObjectSizing,\n speed: 0.6,\n frame: 100,\n colors: ['#aaa7d7', '#3c2b8e', '#f4eabb', '#c99cd5'],\n distortion: 0.3,\n swirl: 0.5,\n },\n};\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n ...defaultObjectSizing,\n speed: 0.1,\n frame: 0,\n colors: ['#bcecf6', '#80c3e4', '#f3eccb', '#f3d987'],\n distortion: 0.8,\n swirl: 0.35,\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, purplePreset, beachPreset];\n\nexport const MeshGradient: React.FC<MeshGradientProps> = memo(function MeshGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n distortion = defaultPreset.params.distortion,\n swirl = defaultPreset.params.swirl,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MeshGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_distortion: distortion,\n u_swirl: swirl,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MeshGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={meshGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAoFH;AA9EG,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,eAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,cAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,sBAA4C,CAAC,eAAe,cAAc,WAAW;AAE3F,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,aAAa,cAAc,OAAO;AAAA,EAClC,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAsB;AACpB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ShaderComponentProps } from '../shader-mount';
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
2
|
import { type MetaballsParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
3
|
export interface MetaballsProps extends ShaderComponentProps, MetaballsParams {
|
|
4
4
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
5
|
|
|
6
6
|
import { memo } from "react";
|
|
7
|
-
import { ShaderMount } from "../shader-mount";
|
|
8
|
-
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
9
|
import {
|
|
10
10
|
defaultObjectSizing,
|
|
11
11
|
getShaderColorFromString,
|
|
@@ -20,7 +20,8 @@ const defaultPreset = {
|
|
|
20
20
|
scale: 1,
|
|
21
21
|
speed: 1,
|
|
22
22
|
frame: 0,
|
|
23
|
-
|
|
23
|
+
colorBack: "#ffffff",
|
|
24
|
+
colors: ["#b399ff", "#99ffc4", "#ffe699", "#e099ff"],
|
|
24
25
|
count: 7,
|
|
25
26
|
size: 1
|
|
26
27
|
}
|
|
@@ -30,6 +31,7 @@ const Metaballs = memo(function MetaballsImpl({
|
|
|
30
31
|
// Own props
|
|
31
32
|
speed = defaultPreset.params.speed,
|
|
32
33
|
frame = defaultPreset.params.frame,
|
|
34
|
+
colorBack = defaultPreset.params.colorBack,
|
|
33
35
|
colors = defaultPreset.params.colors,
|
|
34
36
|
size = defaultPreset.params.size,
|
|
35
37
|
count = defaultPreset.params.count,
|
|
@@ -47,6 +49,7 @@ const Metaballs = memo(function MetaballsImpl({
|
|
|
47
49
|
}) {
|
|
48
50
|
const uniforms = {
|
|
49
51
|
// Own uniforms
|
|
52
|
+
u_colorBack: getShaderColorFromString(colorBack),
|
|
50
53
|
u_colors: colors.map(getShaderColorFromString),
|
|
51
54
|
u_colorsCount: colors.length,
|
|
52
55
|
u_size: size,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/shaders/metaballs.tsx"],
|
|
4
|
-
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount';\nimport { colorPropsAreEqual } from '../color-props-are-equal';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\
|
|
5
|
-
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;
|
|
4
|
+
"sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff',\n colors: ['#b399ff', '#99ffc4', '#ffe699', '#e099ff'],\n count: 7,\n size: 1,\n },\n};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset];\n\nexport const Metaballs: React.FC<MetaballsProps> = memo(function MetaballsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n count = defaultPreset.params.count,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MetaballsProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_count: count,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MetaballsUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
|
|
5
|
+
"mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAgEH;AA1DG,MAAM,gBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,mBAAsC,CAAC,aAAa;AAE1D,MAAM,YAAsC,KAAK,SAAS,cAAc;AAAA;AAAA,EAE7E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAmB;AACjB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,yBAAyB,UAAoB;AAErH,GAAG,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ShaderComponentProps } from '../shader-mount';
|
|
1
|
+
import { type ShaderComponentProps } from '../shader-mount.js';
|
|
2
2
|
import { type NeuroNoiseParams, type ShaderPreset } from '@paper-design/shaders';
|
|
3
3
|
export interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {
|
|
4
4
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
5
5
|
|
|
6
6
|
import { memo } from "react";
|
|
7
|
-
import { ShaderMount } from "../shader-mount";
|
|
8
|
-
import { colorPropsAreEqual } from "../color-props-are-equal";
|
|
7
|
+
import { ShaderMount } from "../shader-mount.js";
|
|
8
|
+
import { colorPropsAreEqual } from "../color-props-are-equal.js";
|
|
9
9
|
import {
|
|
10
10
|
defaultPatternSizing,
|
|
11
11
|
getShaderColorFromString,
|
|
@@ -19,31 +19,23 @@ const defaultPreset = {
|
|
|
19
19
|
...defaultPatternSizing,
|
|
20
20
|
speed: 1,
|
|
21
21
|
frame: 0,
|
|
22
|
-
colorFront: "
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
colorFront: "#ffffff",
|
|
23
|
+
colorMid: "#bf9eff",
|
|
24
|
+
colorBack: "#000000",
|
|
25
|
+
brightness: 0.3,
|
|
26
|
+
contrast: 0.6
|
|
25
27
|
}
|
|
26
28
|
};
|
|
27
|
-
const
|
|
28
|
-
name: "Marble",
|
|
29
|
-
params: {
|
|
30
|
-
...defaultPatternSizing,
|
|
31
|
-
scale: 0.4,
|
|
32
|
-
speed: 0,
|
|
33
|
-
frame: 0,
|
|
34
|
-
colorFront: "hsla(230, 24%, 15%, 1)",
|
|
35
|
-
colorBack: "hsla(0, 0%, 97%, 1)",
|
|
36
|
-
brightness: 1.1
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const neuroNoisePresets = [defaultPreset, marblePreset];
|
|
29
|
+
const neuroNoisePresets = [defaultPreset];
|
|
40
30
|
const NeuroNoise = memo(function NeuroNoiseImpl({
|
|
41
31
|
// Own props
|
|
42
32
|
speed = defaultPreset.params.speed,
|
|
43
33
|
frame = defaultPreset.params.frame,
|
|
44
34
|
colorFront = defaultPreset.params.colorFront,
|
|
35
|
+
colorMid = defaultPreset.params.colorMid,
|
|
45
36
|
colorBack = defaultPreset.params.colorBack,
|
|
46
37
|
brightness = defaultPreset.params.brightness,
|
|
38
|
+
contrast = defaultPreset.params.contrast,
|
|
47
39
|
// Sizing props
|
|
48
40
|
fit = defaultPreset.params.fit,
|
|
49
41
|
scale = defaultPreset.params.scale,
|
|
@@ -59,8 +51,10 @@ const NeuroNoise = memo(function NeuroNoiseImpl({
|
|
|
59
51
|
const uniforms = {
|
|
60
52
|
// Own uniforms
|
|
61
53
|
u_colorFront: getShaderColorFromString(colorFront),
|
|
54
|
+
u_colorMid: getShaderColorFromString(colorMid),
|
|
62
55
|
u_colorBack: getShaderColorFromString(colorBack),
|
|
63
56
|
u_brightness: brightness,
|
|
57
|
+
u_contrast: contrast,
|
|
64
58
|
// Sizing uniforms
|
|
65
59
|
u_fit: ShaderFitOptions[fit],
|
|
66
60
|
u_scale: scale,
|