diff --git a/packages/rn-tester/js/assets/rubber-ducky.png b/packages/rn-tester/js/assets/rubber-ducky.png new file mode 100644 index 00000000000..7ea75f9a25e Binary files /dev/null and b/packages/rn-tester/js/assets/rubber-ducky.png differ diff --git a/packages/rn-tester/js/examples/MixBlendMode/MixBlendModeExample.js b/packages/rn-tester/js/examples/MixBlendMode/MixBlendModeExample.js index 29e794738fa..c1c208db313 100644 --- a/packages/rn-tester/js/examples/MixBlendMode/MixBlendModeExample.js +++ b/packages/rn-tester/js/examples/MixBlendMode/MixBlendModeExample.js @@ -24,14 +24,18 @@ function LayeredView(props: Props) { return ( <> - - - - Hello, World! + + + + + Hello, World! + - + ); @@ -54,6 +58,22 @@ function LayeredImage(props: Props) { ); } +function LayeredViewWithState(props: Props): React.Node { + const [s, setS] = React.useState(true); + setTimeout(() => setS(!s), 5000); + + return ; +} + +function LayeredImageWithState(props: Props): React.Node { + const [s, setS] = React.useState(true); + setTimeout(() => setS(!s), 5000); + + return ( + + ); +} + const styles = StyleSheet.create({ commonImage: { width: 200, @@ -65,9 +85,19 @@ const styles = StyleSheet.create({ flexDirection: 'row', justifyContent: 'space-around', }, + duckContainer: { + alignSelf: 'center', + width: 150, + height: 165, + backgroundColor: 'lime', + }, + duck: { + width: '100%', + height: '100%', + }, backdrop: { - opacity: 0.99, // Creating stacking context height: 110, + width: 110, }, commonView: { backgroundColor: 'cyan', @@ -108,7 +138,7 @@ const examples: Array = mixBlendModes.map(mode => ({ name: mode, render(): React.Node { return ( - + @@ -116,6 +146,167 @@ const examples: Array = mixBlendModes.map(mode => ({ }, })); +examples.push( + { + title: 'Text mix-blend-mode', + description: 'mix-blend-mode: Text mix-blend-mode', + name: 'text', + render(): React.Node { + return ( + + + 'OVERLAY' BLENDING ON TEXT + + + ); + }, + }, + { + title: 'Spec Example 1', + description: 'mix-blend-mode: Spec Example 1', + name: 'spec-example-1', + render(): React.Node { + return ( + + + + ); + }, + }, + { + title: 'Spec Example 2', + description: 'mix-blend-mode: Spec Example 2', + name: 'spec-example-2', + render(): React.Node { + return ( + + + + + + + + + ); + }, + }, + { + title: 'Spec Example 3', + description: 'mix-blend-mode: Spec Example 3', + name: 'spec-example-3', + render(): React.Node { + return ( + + + + + + ); + }, + }, + { + title: 'mix-blend-mode with state updates', + description: 'Turn mix-blend-mode difference on and off every 5 seconds', + render(): React.Node { + return ( + + + + + ); + }, + }, + { + title: 'mix-blend-mode & filter', + description: 'mix-blend-mode & filter', + name: 'mix-blend-mode-filter', + render(): React.Node { + return ( + + + + + ); + }, + }, +); + exports.title = 'MixBlendMode'; exports.category = 'UI'; exports.description =