@paper-design/shaders-react 0.0.42 → 0.0.44

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.
Files changed (64) hide show
  1. package/README.md +18 -5
  2. package/dist/index.d.ts +7 -1
  3. package/dist/index.js +11 -1
  4. package/dist/index.js.map +2 -2
  5. package/dist/shaders/color-panels.d.ts +3 -0
  6. package/dist/shaders/color-panels.js +73 -2
  7. package/dist/shaders/color-panels.js.map +2 -2
  8. package/dist/shaders/dithering.d.ts +0 -1
  9. package/dist/shaders/dithering.js +3 -17
  10. package/dist/shaders/dithering.js.map +2 -2
  11. package/dist/shaders/dot-grid.d.ts +0 -1
  12. package/dist/shaders/dot-grid.js +2 -93
  13. package/dist/shaders/dot-grid.js.map +2 -2
  14. package/dist/shaders/dot-orbit.d.ts +3 -0
  15. package/dist/shaders/dot-orbit.js +50 -2
  16. package/dist/shaders/dot-orbit.js.map +2 -2
  17. package/dist/shaders/god-rays.d.ts +0 -1
  18. package/dist/shaders/god-rays.js +6 -25
  19. package/dist/shaders/god-rays.js.map +2 -2
  20. package/dist/shaders/grain-gradient.d.ts +1 -2
  21. package/dist/shaders/grain-gradient.js +6 -21
  22. package/dist/shaders/grain-gradient.js.map +2 -2
  23. package/dist/shaders/liquid-metal.js +3 -3
  24. package/dist/shaders/liquid-metal.js.map +1 -1
  25. package/dist/shaders/mesh-gradient.d.ts +1 -0
  26. package/dist/shaders/mesh-gradient.js +20 -7
  27. package/dist/shaders/mesh-gradient.js.map +2 -2
  28. package/dist/shaders/metaballs.d.ts +3 -0
  29. package/dist/shaders/metaballs.js +46 -2
  30. package/dist/shaders/metaballs.js.map +2 -2
  31. package/dist/shaders/neuro-noise.d.ts +3 -0
  32. package/dist/shaders/neuro-noise.js +53 -3
  33. package/dist/shaders/neuro-noise.js.map +2 -2
  34. package/dist/shaders/perlin-noise.d.ts +0 -2
  35. package/dist/shaders/perlin-noise.js +2 -43
  36. package/dist/shaders/perlin-noise.js.map +2 -2
  37. package/dist/shaders/pulsing-border.d.ts +2 -1
  38. package/dist/shaders/pulsing-border.js +69 -40
  39. package/dist/shaders/pulsing-border.js.map +2 -2
  40. package/dist/shaders/simplex-noise.d.ts +3 -0
  41. package/dist/shaders/simplex-noise.js +47 -3
  42. package/dist/shaders/simplex-noise.js.map +2 -2
  43. package/dist/shaders/smoke-ring.js +3 -2
  44. package/dist/shaders/smoke-ring.js.map +2 -2
  45. package/dist/shaders/spiral.d.ts +0 -3
  46. package/dist/shaders/spiral.js +26 -93
  47. package/dist/shaders/spiral.js.map +2 -2
  48. package/dist/shaders/static-mesh-gradient.d.ts +12 -0
  49. package/dist/shaders/static-mesh-gradient.js +157 -0
  50. package/dist/shaders/static-mesh-gradient.js.map +7 -0
  51. package/dist/shaders/static-radial-gradient.d.ts +12 -0
  52. package/dist/shaders/static-radial-gradient.js +178 -0
  53. package/dist/shaders/static-radial-gradient.js.map +7 -0
  54. package/dist/shaders/swirl.js +17 -17
  55. package/dist/shaders/swirl.js.map +2 -2
  56. package/dist/shaders/voronoi.d.ts +2 -0
  57. package/dist/shaders/voronoi.js +36 -2
  58. package/dist/shaders/voronoi.js.map +2 -2
  59. package/dist/shaders/warp.d.ts +0 -5
  60. package/dist/shaders/warp.js +6 -108
  61. package/dist/shaders/warp.js.map +2 -2
  62. package/dist/shaders/waves.js +3 -3
  63. package/dist/shaders/waves.js.map +1 -1
  64. package/package.json +2 -2
@@ -17,36 +17,18 @@ const defaultPreset = {
17
17
  name: "Default",
18
18
  params: {
19
19
  ...defaultPatternSizing,
20
- colorBack: "#fafafa",
21
- colorFront: "#808080",
22
- density: 0,
23
- distortion: 0,
24
- strokeWidth: 0.5,
25
- strokeTaper: 0,
26
- strokeCap: 0,
27
- noiseFrequency: 0,
28
- noisePower: 0,
29
- softness: 0.01,
30
- speed: 1,
31
- frame: 0
32
- }
33
- };
34
- const noisyPreset = {
35
- name: "Noisy",
36
- params: {
37
- ...defaultPatternSizing,
20
+ scale: 1.3,
38
21
  colorBack: "#a1ef2a",
39
22
  colorFront: "#288918",
40
- scale: 1.3,
41
23
  density: 0.5,
42
24
  distortion: 0,
43
25
  strokeWidth: 0.5,
44
26
  strokeTaper: 0,
45
- strokeCap: 0.5,
46
- noiseFrequency: 0.1,
47
- noisePower: 1,
27
+ strokeCap: 0,
28
+ noise: 1,
29
+ noiseFrequency: 0.25,
48
30
  softness: 0,
49
- speed: 1,
31
+ speed: 0.75,
50
32
  frame: 0
51
33
  }
52
34
  };
@@ -56,15 +38,14 @@ const dropletPreset = {
56
38
  ...defaultPatternSizing,
57
39
  colorBack: "#effafe",
58
40
  colorFront: "#bf40a0",
59
- scale: 0.65,
60
- density: 0,
41
+ density: 0.9,
61
42
  distortion: 0,
62
- strokeWidth: 0.05,
63
- strokeTaper: 0,
43
+ strokeWidth: 0.25,
44
+ strokeTaper: 0.18,
64
45
  strokeCap: 1,
65
- noiseFrequency: 0,
66
- noisePower: 0,
67
- softness: 0,
46
+ noise: 0.74,
47
+ noiseFrequency: 0.33,
48
+ softness: 0.02,
68
49
  speed: 1,
69
50
  frame: 0
70
51
  }
@@ -73,17 +54,17 @@ const sandPreset = {
73
54
  name: "Sand",
74
55
  params: {
75
56
  ...defaultPatternSizing,
76
- colorBack: "#dedede",
57
+ scale: 0.7,
58
+ colorBack: "#ffffff",
77
59
  colorFront: "#a09560",
78
- scale: 0.75,
79
- density: 0,
60
+ density: 1,
80
61
  distortion: 0,
81
- strokeWidth: 0.15,
62
+ strokeWidth: 0.5,
82
63
  strokeTaper: 0,
83
64
  strokeCap: 0,
84
- noiseFrequency: 30,
85
- noisePower: 1,
86
- softness: 0.2,
65
+ noise: 1,
66
+ noiseFrequency: 1,
67
+ softness: 1,
87
68
  speed: 0,
88
69
  frame: 0
89
70
  }
@@ -92,67 +73,22 @@ const swirlPreset = {
92
73
  name: "Swirl",
93
74
  params: {
94
75
  ...defaultPatternSizing,
76
+ scale: 0.45,
95
77
  colorBack: "#b3e6d9",
96
78
  colorFront: "#1a2b4d",
97
- scale: 4,
98
- density: 0.8,
79
+ density: 0.2,
99
80
  distortion: 0,
100
81
  strokeWidth: 0.5,
101
82
  strokeTaper: 0,
102
83
  strokeCap: 0,
103
- noiseFrequency: 0,
104
- noisePower: 0,
84
+ noise: 0,
85
+ noiseFrequency: 0.3,
105
86
  softness: 0.5,
106
87
  speed: 1,
107
88
  frame: 0
108
89
  }
109
90
  };
110
- const hookPreset = {
111
- name: "Hook",
112
- params: {
113
- ...defaultPatternSizing,
114
- colorBack: "#85c2e0",
115
- colorFront: "#000000",
116
- scale: 0.8,
117
- density: 0,
118
- distortion: 0,
119
- strokeWidth: 0.5,
120
- strokeTaper: 0.5,
121
- strokeCap: 0,
122
- noiseFrequency: 0,
123
- noisePower: 0,
124
- softness: 0.02,
125
- speed: 3,
126
- frame: 0
127
- }
128
- };
129
- const vinylPreset = {
130
- name: "Vinyl",
131
- params: {
132
- ...defaultPatternSizing,
133
- colorBack: "#c2babb",
134
- colorFront: "#262626",
135
- density: 0,
136
- distortion: 0.3,
137
- strokeWidth: 0.95,
138
- strokeTaper: 0,
139
- strokeCap: 1,
140
- noiseFrequency: 0,
141
- noisePower: 0,
142
- softness: 0.11,
143
- speed: 1,
144
- frame: 0
145
- }
146
- };
147
- const spiralPresets = [
148
- defaultPreset,
149
- noisyPreset,
150
- dropletPreset,
151
- swirlPreset,
152
- sandPreset,
153
- hookPreset,
154
- vinylPreset
155
- ];
91
+ const spiralPresets = [defaultPreset, sandPreset, dropletPreset, swirlPreset];
156
92
  const Spiral = memo(function SpiralImpl({
157
93
  // Own props
158
94
  speed = defaultPreset.params.speed,
@@ -165,7 +101,7 @@ const Spiral = memo(function SpiralImpl({
165
101
  strokeTaper = defaultPreset.params.strokeTaper,
166
102
  strokeCap = defaultPreset.params.strokeCap,
167
103
  noiseFrequency = defaultPreset.params.noiseFrequency,
168
- noisePower = defaultPreset.params.noisePower,
104
+ noise = defaultPreset.params.noise,
169
105
  softness = defaultPreset.params.softness,
170
106
  // Sizing props
171
107
  fit = defaultPreset.params.fit,
@@ -189,7 +125,7 @@ const Spiral = memo(function SpiralImpl({
189
125
  u_strokeTaper: strokeTaper,
190
126
  u_strokeCap: strokeCap,
191
127
  u_noiseFrequency: noiseFrequency,
192
- u_noisePower: noisePower,
128
+ u_noise: noise,
193
129
  u_softness: softness,
194
130
  // Sizing uniforms
195
131
  u_fit: ShaderFitOptions[fit],
@@ -208,11 +144,8 @@ export {
208
144
  Spiral,
209
145
  defaultPreset,
210
146
  dropletPreset,
211
- hookPreset,
212
- noisyPreset,
213
147
  sandPreset,
214
148
  spiralPresets,
215
- swirlPreset,
216
- vinylPreset
149
+ swirlPreset
217
150
  };
218
151
  //# sourceMappingURL=spiral.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/spiral.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n ShaderFitOptions,\n spiralFragmentShader,\n type ShaderPreset,\n type SpiralParams,\n type SpiralUniforms,\n} from '@paper-design/shaders';\n\nexport interface SpiralProps extends ShaderComponentProps, SpiralParams {}\n\ntype SpiralPreset = ShaderPreset<SpiralParams>;\n\nexport const defaultPreset: SpiralPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n colorBack: '#fafafa',\n colorFront: '#808080',\n density: 0,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFrequency: 0,\n noisePower: 0,\n softness: 0.01,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const noisyPreset: SpiralPreset = {\n name: 'Noisy',\n params: {\n ...defaultPatternSizing,\n colorBack: '#a1ef2a',\n colorFront: '#288918',\n scale: 1.3,\n density: 0.5,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0.5,\n noiseFrequency: 0.1,\n noisePower: 1,\n softness: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const dropletPreset: SpiralPreset = {\n name: 'Droplet',\n params: {\n ...defaultPatternSizing,\n colorBack: '#effafe',\n colorFront: '#bf40a0',\n scale: 0.65,\n density: 0,\n distortion: 0,\n strokeWidth: 0.05,\n strokeTaper: 0,\n strokeCap: 1,\n noiseFrequency: 0,\n noisePower: 0,\n softness: 0,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const sandPreset: SpiralPreset = {\n name: 'Sand',\n params: {\n ...defaultPatternSizing,\n colorBack: '#dedede',\n colorFront: '#a09560',\n scale: 0.75,\n density: 0,\n distortion: 0,\n strokeWidth: 0.15,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFrequency: 30,\n noisePower: 1,\n softness: 0.2,\n speed: 0,\n frame: 0,\n },\n};\n\nexport const swirlPreset: SpiralPreset = {\n name: 'Swirl',\n params: {\n ...defaultPatternSizing,\n colorBack: '#b3e6d9',\n colorFront: '#1a2b4d',\n scale: 4,\n density: 0.8,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noiseFrequency: 0,\n noisePower: 0,\n softness: 0.5,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const hookPreset: SpiralPreset = {\n name: 'Hook',\n params: {\n ...defaultPatternSizing,\n colorBack: '#85c2e0',\n colorFront: '#000000',\n scale: 0.8,\n density: 0,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0.5,\n strokeCap: 0,\n noiseFrequency: 0,\n noisePower: 0,\n softness: 0.02,\n speed: 3,\n frame: 0,\n },\n};\n\nexport const vinylPreset: SpiralPreset = {\n name: 'Vinyl',\n params: {\n ...defaultPatternSizing,\n colorBack: '#c2babb',\n colorFront: '#262626',\n density: 0,\n distortion: 0.3,\n strokeWidth: 0.95,\n strokeTaper: 0,\n strokeCap: 1,\n noiseFrequency: 0,\n noisePower: 0,\n softness: 0.11,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const spiralPresets: SpiralPreset[] = [\n defaultPreset,\n noisyPreset,\n dropletPreset,\n swirlPreset,\n sandPreset,\n hookPreset,\n vinylPreset,\n];\n\nexport const Spiral: React.FC<SpiralProps> = memo(function SpiralImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colorFront = defaultPreset.params.colorFront,\n density = defaultPreset.params.density,\n distortion = defaultPreset.params.distortion,\n strokeWidth = defaultPreset.params.strokeWidth,\n strokeTaper = defaultPreset.params.strokeTaper,\n strokeCap = defaultPreset.params.strokeCap,\n noiseFrequency = defaultPreset.params.noiseFrequency,\n noisePower = defaultPreset.params.noisePower,\n softness = defaultPreset.params.softness,\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}: SpiralProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_density: density,\n u_distortion: distortion,\n u_strokeWidth: strokeWidth,\n u_strokeTaper: strokeTaper,\n u_strokeCap: strokeCap,\n u_noiseFrequency: noiseFrequency,\n u_noisePower: noisePower,\n u_softness: softness,\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 SpiralUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={spiralFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n ShaderFitOptions,\n spiralFragmentShader,\n type ShaderPreset,\n type SpiralParams,\n type SpiralUniforms,\n} from '@paper-design/shaders';\n\nexport interface SpiralProps extends ShaderComponentProps, SpiralParams {}\n\ntype SpiralPreset = ShaderPreset<SpiralParams>;\n\nexport const defaultPreset: SpiralPreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n scale: 1.3,\n colorBack: '#a1ef2a',\n colorFront: '#288918',\n density: 0.5,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noise: 1,\n noiseFrequency: 0.25,\n softness: 0,\n speed: 0.75,\n frame: 0,\n },\n};\n\nexport const dropletPreset: SpiralPreset = {\n name: 'Droplet',\n params: {\n ...defaultPatternSizing,\n colorBack: '#effafe',\n colorFront: '#bf40a0',\n density: 0.9,\n distortion: 0,\n strokeWidth: 0.25,\n strokeTaper: 0.18,\n strokeCap: 1,\n noise: 0.74,\n noiseFrequency: 0.33,\n softness: 0.02,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const sandPreset: SpiralPreset = {\n name: 'Sand',\n params: {\n ...defaultPatternSizing,\n scale: 0.7,\n colorBack: '#ffffff',\n colorFront: '#a09560',\n density: 1,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noise: 1,\n noiseFrequency: 1,\n softness: 1,\n speed: 0,\n frame: 0,\n },\n};\n\nexport const swirlPreset: SpiralPreset = {\n name: 'Swirl',\n params: {\n ...defaultPatternSizing,\n scale: 0.45,\n colorBack: '#b3e6d9',\n colorFront: '#1a2b4d',\n density: 0.2,\n distortion: 0,\n strokeWidth: 0.5,\n strokeTaper: 0,\n strokeCap: 0,\n noise: 0,\n noiseFrequency: 0.3,\n softness: 0.5,\n speed: 1,\n frame: 0,\n },\n};\n\nexport const spiralPresets: SpiralPreset[] = [defaultPreset, sandPreset, dropletPreset, swirlPreset];\n\nexport const Spiral: React.FC<SpiralProps> = memo(function SpiralImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colorFront = defaultPreset.params.colorFront,\n density = defaultPreset.params.density,\n distortion = defaultPreset.params.distortion,\n strokeWidth = defaultPreset.params.strokeWidth,\n strokeTaper = defaultPreset.params.strokeTaper,\n strokeCap = defaultPreset.params.strokeCap,\n noiseFrequency = defaultPreset.params.noiseFrequency,\n noise = defaultPreset.params.noise,\n softness = defaultPreset.params.softness,\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}: SpiralProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_density: density,\n u_distortion: distortion,\n u_strokeWidth: strokeWidth,\n u_strokeTaper: strokeTaper,\n u_strokeCap: strokeCap,\n u_noiseFrequency: noiseFrequency,\n u_noise: noise,\n u_softness: softness,\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 SpiralUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={spiralFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,12 @@
1
+ import { type ShaderComponentProps } from '../shader-mount.js';
2
+ import { type StaticMeshGradientParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface StaticMeshGradientProps extends ShaderComponentProps, StaticMeshGradientParams {
4
+ }
5
+ type StaticMeshGradientPreset = ShaderPreset<StaticMeshGradientParams>;
6
+ export declare const defaultPreset: StaticMeshGradientPreset;
7
+ export declare const seaPreset: StaticMeshGradientPreset;
8
+ export declare const sixtiesPreset: StaticMeshGradientPreset;
9
+ export declare const impressionismPreset: StaticMeshGradientPreset;
10
+ export declare const staticMeshGradientPresets: StaticMeshGradientPreset[];
11
+ export declare const StaticMeshGradient: React.FC<StaticMeshGradientProps>;
12
+ export {};
@@ -0,0 +1,157 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { memo } from "react";
7
+ import { ShaderMount } from "../shader-mount.js";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal.js";
9
+ import {
10
+ defaultObjectSizing,
11
+ getShaderColorFromString,
12
+ staticMeshGradientFragmentShader,
13
+ ShaderFitOptions
14
+ } from "@paper-design/shaders";
15
+ import { jsx } from "react/jsx-runtime";
16
+ const defaultPreset = {
17
+ name: "Default",
18
+ params: {
19
+ ...defaultObjectSizing,
20
+ speed: 0,
21
+ frame: 0,
22
+ colors: ["#264653", "#9c2b2b", "#f4a261", "#ffffff"],
23
+ positions: 0,
24
+ waveX: 0.6,
25
+ waveXShift: 0.7,
26
+ waveY: 0.7,
27
+ waveYShift: 0.7,
28
+ mixing: 0.5,
29
+ grainMixer: 0,
30
+ grainOverlay: 0
31
+ }
32
+ };
33
+ const seaPreset = {
34
+ name: "Sea",
35
+ params: {
36
+ ...defaultObjectSizing,
37
+ speed: 0,
38
+ frame: 0,
39
+ colors: ["#013b65", "#03738c", "#a3d3ff", "#f2faef"],
40
+ positions: 0,
41
+ waveX: 0.53,
42
+ waveXShift: 0,
43
+ waveY: 0.95,
44
+ waveYShift: 0.64,
45
+ mixing: 0.5,
46
+ grainMixer: 0,
47
+ grainOverlay: 0
48
+ }
49
+ };
50
+ const sixtiesPreset = {
51
+ name: "1960s",
52
+ params: {
53
+ ...defaultObjectSizing,
54
+ speed: 0,
55
+ frame: 0,
56
+ colors: ["#000000", "#082400", "#b1aa91", "#8e8c15"],
57
+ positions: 42,
58
+ waveX: 0.45,
59
+ waveXShift: 0,
60
+ waveY: 1,
61
+ waveYShift: 0,
62
+ mixing: 0,
63
+ grainMixer: 0.37,
64
+ grainOverlay: 0.78
65
+ }
66
+ };
67
+ const impressionismPreset = {
68
+ name: "Impressionism",
69
+ params: {
70
+ ...defaultObjectSizing,
71
+ speed: 0,
72
+ frame: 0,
73
+ colors: ["#ffad0a", "#6200ff", "#e2a3ff", "#ff99fd"],
74
+ positions: 2,
75
+ waveX: 1,
76
+ waveXShift: 0.6,
77
+ waveY: 1,
78
+ waveYShift: 0.21,
79
+ mixing: 0.93,
80
+ grainMixer: 0,
81
+ grainOverlay: 0
82
+ }
83
+ };
84
+ const staticMeshGradientPresets = [
85
+ defaultPreset,
86
+ sixtiesPreset,
87
+ impressionismPreset,
88
+ seaPreset
89
+ ];
90
+ const StaticMeshGradient = memo(function StaticMeshGradientImpl({
91
+ // Own props
92
+ speed = defaultPreset.params.speed,
93
+ frame = defaultPreset.params.frame,
94
+ colors = defaultPreset.params.colors,
95
+ positions = defaultPreset.params.positions,
96
+ waveX = defaultPreset.params.waveX,
97
+ waveXShift = defaultPreset.params.waveXShift,
98
+ waveY = defaultPreset.params.waveY,
99
+ waveYShift = defaultPreset.params.waveYShift,
100
+ mixing = defaultPreset.params.mixing,
101
+ grainMixer = defaultPreset.params.grainMixer,
102
+ grainOverlay = defaultPreset.params.grainOverlay,
103
+ // Sizing props
104
+ fit = defaultPreset.params.fit,
105
+ rotation = defaultPreset.params.rotation,
106
+ scale = defaultPreset.params.scale,
107
+ originX = defaultPreset.params.originX,
108
+ originY = defaultPreset.params.originY,
109
+ offsetX = defaultPreset.params.offsetX,
110
+ offsetY = defaultPreset.params.offsetY,
111
+ worldWidth = defaultPreset.params.worldWidth,
112
+ worldHeight = defaultPreset.params.worldHeight,
113
+ ...props
114
+ }) {
115
+ const uniforms = {
116
+ // Own uniforms
117
+ u_colors: colors.map(getShaderColorFromString),
118
+ u_colorsCount: colors.length,
119
+ u_positions: positions,
120
+ u_waveX: waveX,
121
+ u_waveXShift: waveXShift,
122
+ u_waveY: waveY,
123
+ u_waveYShift: waveYShift,
124
+ u_mixing: mixing,
125
+ u_grainMixer: grainMixer,
126
+ u_grainOverlay: grainOverlay,
127
+ // Sizing uniforms
128
+ u_fit: ShaderFitOptions[fit],
129
+ u_rotation: rotation,
130
+ u_scale: scale,
131
+ u_offsetX: offsetX,
132
+ u_offsetY: offsetY,
133
+ u_originX: originX,
134
+ u_originY: originY,
135
+ u_worldWidth: worldWidth,
136
+ u_worldHeight: worldHeight
137
+ };
138
+ return /* @__PURE__ */ jsx(
139
+ ShaderMount,
140
+ {
141
+ ...props,
142
+ speed,
143
+ frame,
144
+ fragmentShader: staticMeshGradientFragmentShader,
145
+ uniforms
146
+ }
147
+ );
148
+ }, colorPropsAreEqual);
149
+ export {
150
+ StaticMeshGradient,
151
+ defaultPreset,
152
+ impressionismPreset,
153
+ seaPreset,
154
+ sixtiesPreset,
155
+ staticMeshGradientPresets
156
+ };
157
+ //# sourceMappingURL=static-mesh-gradient.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/static-mesh-gradient.tsx"],
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 staticMeshGradientFragmentShader,\n ShaderFitOptions,\n type StaticMeshGradientParams,\n type StaticMeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface StaticMeshGradientProps extends ShaderComponentProps, StaticMeshGradientParams {}\n\ntype StaticMeshGradientPreset = ShaderPreset<StaticMeshGradientParams>;\n\nexport const defaultPreset: StaticMeshGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n colors: ['#264653', '#9c2b2b', '#f4a261', '#ffffff'],\n positions: 0,\n waveX: 0.6,\n waveXShift: 0.7,\n waveY: 0.7,\n waveYShift: 0.7,\n mixing: 0.5,\n grainMixer: 0,\n grainOverlay: 0,\n },\n};\n\nexport const seaPreset: StaticMeshGradientPreset = {\n name: 'Sea',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n colors: ['#013b65', '#03738c', '#a3d3ff', '#f2faef'],\n positions: 0,\n waveX: 0.53,\n waveXShift: 0.0,\n waveY: 0.95,\n waveYShift: 0.64,\n mixing: 0.5,\n grainMixer: 0.0,\n grainOverlay: 0.0,\n },\n};\n\nexport const sixtiesPreset: StaticMeshGradientPreset = {\n name: '1960s',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n colors: ['#000000', '#082400', '#b1aa91', '#8e8c15'],\n positions: 42,\n waveX: 0.45,\n waveXShift: 0.0,\n waveY: 1.0,\n waveYShift: 0.0,\n mixing: 0.0,\n grainMixer: 0.37,\n grainOverlay: 0.78,\n },\n};\n\nexport const impressionismPreset: StaticMeshGradientPreset = {\n name: 'Impressionism',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n colors: ['#ffad0a', '#6200ff', '#e2a3ff', '#ff99fd'],\n positions: 2,\n waveX: 1.0,\n waveXShift: 0.6,\n waveY: 1.0,\n waveYShift: 0.21,\n mixing: 0.93,\n grainMixer: 0.0,\n grainOverlay: 0.0,\n },\n};\n\nexport const staticMeshGradientPresets: StaticMeshGradientPreset[] = [\n defaultPreset,\n sixtiesPreset,\n impressionismPreset,\n seaPreset,\n];\n\nexport const StaticMeshGradient: React.FC<StaticMeshGradientProps> = memo(function StaticMeshGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n positions = defaultPreset.params.positions,\n waveX = defaultPreset.params.waveX,\n waveXShift = defaultPreset.params.waveXShift,\n waveY = defaultPreset.params.waveY,\n waveYShift = defaultPreset.params.waveYShift,\n mixing = defaultPreset.params.mixing,\n grainMixer = defaultPreset.params.grainMixer,\n grainOverlay = defaultPreset.params.grainOverlay,\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}: StaticMeshGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_positions: positions,\n u_waveX: waveX,\n u_waveXShift: waveXShift,\n u_waveY: waveY,\n u_waveYShift: waveYShift,\n u_mixing: mixing,\n u_grainMixer: grainMixer,\n u_grainOverlay: grainOverlay,\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 StaticMeshGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={staticMeshGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ import { type ShaderComponentProps } from '../shader-mount.js';
2
+ import { type StaticRadialGradientParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface StaticRadialGradientProps extends ShaderComponentProps, StaticRadialGradientParams {
4
+ }
5
+ type StaticRadialGradientPreset = ShaderPreset<StaticRadialGradientParams>;
6
+ export declare const defaultPreset: StaticRadialGradientPreset;
7
+ export declare const crossSectionPreset: StaticRadialGradientPreset;
8
+ export declare const glowPreset: StaticRadialGradientPreset;
9
+ export declare const loFiPreset: StaticRadialGradientPreset;
10
+ export declare const staticRadialGradientPresets: StaticRadialGradientPreset[];
11
+ export declare const StaticRadialGradient: React.FC<StaticRadialGradientProps>;
12
+ export {};
@@ -0,0 +1,178 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { memo } from "react";
7
+ import { ShaderMount } from "../shader-mount.js";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal.js";
9
+ import {
10
+ defaultObjectSizing,
11
+ getShaderColorFromString,
12
+ staticRadialGradientFragmentShader,
13
+ ShaderFitOptions
14
+ } from "@paper-design/shaders";
15
+ import { jsx } from "react/jsx-runtime";
16
+ const defaultPreset = {
17
+ name: "Default",
18
+ params: {
19
+ ...defaultObjectSizing,
20
+ scale: 1,
21
+ speed: 0,
22
+ frame: 0,
23
+ colorBack: "#264653",
24
+ colors: ["#9c2b2b", "#f4a261", "#ffffff"],
25
+ radius: 1,
26
+ focalDistance: 0,
27
+ focalAngle: 0,
28
+ falloff: 0,
29
+ mixing: 0.7,
30
+ distortion: 0,
31
+ distortionShift: 0,
32
+ distortionFreq: 12,
33
+ grainMixer: 0,
34
+ grainOverlay: 0
35
+ }
36
+ };
37
+ const crossSectionPreset = {
38
+ name: "Cross Section",
39
+ params: {
40
+ ...defaultObjectSizing,
41
+ scale: 1,
42
+ speed: 0,
43
+ frame: 0,
44
+ colorBack: "#3d348b",
45
+ colors: ["#7678ed", "#f7b801", "#f18701", "#37a066"],
46
+ radius: 1,
47
+ focalDistance: 0,
48
+ focalAngle: 0,
49
+ falloff: 0,
50
+ mixing: 0,
51
+ distortion: 1,
52
+ distortionShift: 0,
53
+ distortionFreq: 12,
54
+ grainMixer: 0,
55
+ grainOverlay: 0
56
+ }
57
+ };
58
+ const glowPreset = {
59
+ name: "Glow",
60
+ params: {
61
+ ...defaultObjectSizing,
62
+ scale: 1,
63
+ speed: 0,
64
+ frame: 0,
65
+ colorBack: "#2e2e2e",
66
+ colors: ["#def4cd", "#ffb3fa", "#ff0040"],
67
+ radius: 0.7,
68
+ focalDistance: 0.99,
69
+ focalAngle: 0,
70
+ falloff: 0.24,
71
+ mixing: 0.35,
72
+ distortion: 0,
73
+ distortionShift: 0,
74
+ distortionFreq: 12,
75
+ grainMixer: 0,
76
+ grainOverlay: 0
77
+ }
78
+ };
79
+ const loFiPreset = {
80
+ name: "Lo-Fi",
81
+ params: {
82
+ ...defaultObjectSizing,
83
+ speed: 0,
84
+ frame: 0,
85
+ colorBack: "#2e1f27",
86
+ colors: ["#d72638", "#3f88c5", "#f49d37"],
87
+ radius: 1,
88
+ focalDistance: 0,
89
+ focalAngle: 0,
90
+ falloff: 0.9,
91
+ mixing: 0.5,
92
+ distortion: 0,
93
+ distortionShift: 0,
94
+ distortionFreq: 12,
95
+ grainMixer: 1,
96
+ grainOverlay: 0.5
97
+ }
98
+ };
99
+ const staticRadialGradientPresets = [
100
+ defaultPreset,
101
+ loFiPreset,
102
+ crossSectionPreset,
103
+ glowPreset
104
+ ];
105
+ const StaticRadialGradient = memo(function StaticRadialGradientImpl({
106
+ // Own props
107
+ speed = defaultPreset.params.speed,
108
+ frame = defaultPreset.params.frame,
109
+ colorBack = defaultPreset.params.colorBack,
110
+ colors = defaultPreset.params.colors,
111
+ radius = defaultPreset.params.radius,
112
+ focalDistance = defaultPreset.params.focalDistance,
113
+ focalAngle = defaultPreset.params.focalAngle,
114
+ falloff = defaultPreset.params.falloff,
115
+ grainMixer = defaultPreset.params.grainMixer,
116
+ mixing = defaultPreset.params.mixing,
117
+ distortion = defaultPreset.params.distortion,
118
+ distortionShift = defaultPreset.params.distortionShift,
119
+ distortionFreq = defaultPreset.params.distortionFreq,
120
+ grainOverlay = defaultPreset.params.grainOverlay,
121
+ // Sizing props
122
+ fit = defaultPreset.params.fit,
123
+ rotation = defaultPreset.params.rotation,
124
+ scale = defaultPreset.params.scale,
125
+ originX = defaultPreset.params.originX,
126
+ originY = defaultPreset.params.originY,
127
+ offsetX = defaultPreset.params.offsetX,
128
+ offsetY = defaultPreset.params.offsetY,
129
+ worldWidth = defaultPreset.params.worldWidth,
130
+ worldHeight = defaultPreset.params.worldHeight,
131
+ ...props
132
+ }) {
133
+ const uniforms = {
134
+ // Own uniforms
135
+ u_colorBack: getShaderColorFromString(colorBack),
136
+ u_colors: colors.map(getShaderColorFromString),
137
+ u_colorsCount: colors.length,
138
+ u_radius: radius,
139
+ u_focalDistance: focalDistance,
140
+ u_focalAngle: focalAngle,
141
+ u_falloff: falloff,
142
+ u_mixing: mixing,
143
+ u_distortion: distortion,
144
+ u_distortionShift: distortionShift,
145
+ u_distortionFreq: distortionFreq,
146
+ u_grainMixer: grainMixer,
147
+ u_grainOverlay: grainOverlay,
148
+ // Sizing uniforms
149
+ u_fit: ShaderFitOptions[fit],
150
+ u_rotation: rotation,
151
+ u_scale: scale,
152
+ u_offsetX: offsetX,
153
+ u_offsetY: offsetY,
154
+ u_originX: originX,
155
+ u_originY: originY,
156
+ u_worldWidth: worldWidth,
157
+ u_worldHeight: worldHeight
158
+ };
159
+ return /* @__PURE__ */ jsx(
160
+ ShaderMount,
161
+ {
162
+ ...props,
163
+ speed,
164
+ frame,
165
+ fragmentShader: staticRadialGradientFragmentShader,
166
+ uniforms
167
+ }
168
+ );
169
+ }, colorPropsAreEqual);
170
+ export {
171
+ StaticRadialGradient,
172
+ crossSectionPreset,
173
+ defaultPreset,
174
+ glowPreset,
175
+ loFiPreset,
176
+ staticRadialGradientPresets
177
+ };
178
+ //# sourceMappingURL=static-radial-gradient.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/static-radial-gradient.tsx"],
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 staticRadialGradientFragmentShader,\n ShaderFitOptions,\n type StaticRadialGradientParams,\n type StaticRadialGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface StaticRadialGradientProps extends ShaderComponentProps, StaticRadialGradientParams {}\n\ntype StaticRadialGradientPreset = ShaderPreset<StaticRadialGradientParams>;\n\nexport const defaultPreset: StaticRadialGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 0,\n frame: 0,\n colorBack: '#264653',\n colors: ['#9c2b2b', '#f4a261', '#ffffff'],\n radius: 1,\n focalDistance: 0,\n focalAngle: 0,\n falloff: 0,\n mixing: 0.7,\n distortion: 0,\n distortionShift: 0,\n distortionFreq: 12,\n grainMixer: 0,\n grainOverlay: 0,\n },\n};\n\nexport const crossSectionPreset: StaticRadialGradientPreset = {\n name: 'Cross Section',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 0,\n frame: 0,\n colorBack: '#3d348b',\n colors: ['#7678ed', '#f7b801', '#f18701', '#37a066'],\n radius: 1,\n focalDistance: 0,\n focalAngle: 0,\n falloff: 0,\n mixing: 0,\n distortion: 1,\n distortionShift: 0,\n distortionFreq: 12,\n grainMixer: 0,\n grainOverlay: 0,\n },\n};\n\nexport const glowPreset: StaticRadialGradientPreset = {\n name: 'Glow',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 0,\n frame: 0,\n colorBack: '#2e2e2e',\n colors: ['#def4cd', '#ffb3fa', '#ff0040'],\n radius: 0.7,\n focalDistance: 0.99,\n focalAngle: 0,\n falloff: 0.24,\n mixing: 0.35,\n distortion: 0.0,\n distortionShift: 0,\n distortionFreq: 12,\n grainMixer: 0.0,\n grainOverlay: 0.0,\n },\n};\n\nexport const loFiPreset: StaticRadialGradientPreset = {\n name: 'Lo-Fi',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n colorBack: '#2e1f27',\n colors: ['#d72638', '#3f88c5', '#f49d37'],\n radius: 1,\n focalDistance: 0,\n focalAngle: 0,\n falloff: 0.9,\n mixing: 0.5,\n distortion: 0,\n distortionShift: 0,\n distortionFreq: 12,\n grainMixer: 1,\n grainOverlay: 0.5,\n },\n};\n\nexport const staticRadialGradientPresets: StaticRadialGradientPreset[] = [\n defaultPreset,\n loFiPreset,\n crossSectionPreset,\n glowPreset,\n];\n\nexport const StaticRadialGradient: React.FC<StaticRadialGradientProps> = memo(function StaticRadialGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n radius = defaultPreset.params.radius,\n focalDistance = defaultPreset.params.focalDistance,\n focalAngle = defaultPreset.params.focalAngle,\n falloff = defaultPreset.params.falloff,\n grainMixer = defaultPreset.params.grainMixer,\n mixing = defaultPreset.params.mixing,\n distortion = defaultPreset.params.distortion,\n distortionShift = defaultPreset.params.distortionShift,\n distortionFreq = defaultPreset.params.distortionFreq,\n grainOverlay = defaultPreset.params.grainOverlay,\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}: StaticRadialGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_radius: radius,\n u_focalDistance: focalDistance,\n u_focalAngle: focalAngle,\n u_falloff: falloff,\n u_mixing: mixing,\n u_distortion: distortion,\n u_distortionShift: distortionShift,\n u_distortionFreq: distortionFreq,\n u_grainMixer: grainMixer,\n u_grainOverlay: grainOverlay,\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 StaticRadialGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={staticRadialGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }