From 92ff588d6f1d1a3eca0624125216c05dcfcb7e80 Mon Sep 17 00:00:00 2001 From: Xevion Date: Fri, 25 Nov 2022 00:20:07 -0600 Subject: [PATCH] Add hide/regenerate button, hero icons, abstract text --- package.json | 1 + src/App.tsx | 102 +++++++++++++++++++++++++++------------------------ src/Post.tsx | 31 ++++++++++++++++ yarn.lock | 5 +++ 4 files changed, 91 insertions(+), 48 deletions(-) create mode 100644 src/Post.tsx diff --git a/package.json b/package.json index 7fef416..d7e625d 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "preview": "vite preview" }, "dependencies": { + "@heroicons/react": "^2.0.13", "@use-it/event-listener": "^0.1.7", "autoprefixer": "^10.4.13", "chance": "^1.1.9", diff --git a/src/App.tsx b/src/App.tsx index f148047..3531d34 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,9 +1,22 @@ -import { useEventListener, useWindowSize } from "usehooks-ts"; -import useBackground from "./useBackground"; +import { useEventListener, useInterval, useWindowSize } from "usehooks-ts"; +import useBackground from "@/useBackground"; +import Post from "@/Post"; +import { useToggle } from "usehooks-ts"; + +import { + ArrowPathIcon, + EyeIcon, + EyeSlashIcon, +} from "@heroicons/react/24/solid"; function App() { const { width, height } = useWindowSize(); - const { svg, backgrounds, regenerate } = useBackground({ width, height, ratio: 0.3 }); + const { svg, backgrounds, regenerate } = useBackground({ + width, + height, + ratio: 0.4, + }); + const [postHidden, toggleHidden] = useToggle(false); useEventListener("keydown", (e) => { if (e.code != "Enter") return; @@ -12,58 +25,51 @@ function App() { regenerate(); }); - const appStyle = { + const [iconSpinning, toggleIconSpinning, setIconSpinning] = useToggle(false); + useInterval( + () => { + setIconSpinning(false); + }, + iconSpinning ? 200 : null + ); + + const style = { background: [`url("${svg}")`, ...backgrounds].join(", "), }; return ( -
+
-
-
-
-
-

- Ryan Walters -

- - Published on {new Date().toLocaleDateString()} - +
+ + +
+
+ {!postHidden ? ( +
+
- -
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed - consequat lacus sit amet erat efficitur elementum. Fusce - hendrerit bibendum ipsum, sit amet volutpat augue egestas sed. - Curabitur ut blandit felis. Suspendisse euismod, orci quis - consectetur pretium, libero eros lobortis lacus, vel interdum - ex sem sed sapien. Aliquam erat volutpat. Curabitur tempus - faucibus lobortis. Nulla sodales ipsum sit amet ligula - elementum faucibus. Donec aliquam enim a arcu gravida tempus. - Etiam tempus lectus et mauris feugiat, vel imperdiet quam - mattis. Suspendisse urna enim, cursus quis nibh et, egestas - ultrices tortor. Quisque imperdiet elit molestie lorem - placerat posuere. Duis in dolor non elit tempor mattis. Proin - vehicula facilisis nibh. -

-

- Maecenas rhoncus, erat auctor scelerisque condimentum, nibh - magna tristique felis, vitae condimentum mi est quis dui. - Fusce non imperdiet massa. Sed varius ultrices odio non - faucibus. Pellentesque habitant morbi tristique senectus et - netus et malesuada fames ac turpis egestas. Pellentesque - semper pulvinar vehicula. Fusce vel convallis eros. Duis - cursus feugiat quam, quis sodales enim malesuada non. - Vestibulum ante ipsum primis in faucibus orci luctus et - ultrices posuere cubilia curae; Maecenas in efficitur elit, - sed suscipit magna. Duis finibus blandit leo vitae mollis. In - et est pulvinar, condimentum est sed, scelerisque nisl. Nunc - eleifend eros aliquet libero. -

-
-
+ ) : null}
diff --git a/src/Post.tsx b/src/Post.tsx new file mode 100644 index 0000000..1f22378 --- /dev/null +++ b/src/Post.tsx @@ -0,0 +1,31 @@ +const Post = () => { + return ( + <> +
+
+

+ Grain +

+ + Created by{" "} + + Ryan Walters + + +
+

What?

+
+

+ A small experiment on creating beautiful, dynamic backgrounds with + colorful gradients & film grain. +

+
+
+ + ); +}; +export default Post; diff --git a/yarn.lock b/yarn.lock index 40dcf21..d36db97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -255,6 +255,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz#32c65517a09320b62530867345222fde7794fbe1" integrity sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA== +"@heroicons/react@^2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.13.tgz#9b1cc54ff77d6625c9565efdce0054a4bcd9074c" + integrity sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ== + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"