From 0f73305855490bad575e95ca25d2f3cce4562eb9 Mon Sep 17 00:00:00 2001 From: rajnishpatell Date: Sun, 9 Nov 2025 16:18:11 +0530 Subject: [PATCH] feat: added Enhanced Random Quote Generator play --- src/common/header/header.css | 4 +- src/common/playleaderboard/leaderBoard.css | 305 +++++++++--------- src/common/playlists/playlist.css | 2 +- src/common/techstack/TechStacks.css | 2 +- .../Selection-Sort-Visualizer/select.css | 189 +++++------ src/plays/codenchill/Readme.md | 2 - src/plays/daily-journa/Readme.md | 4 +- src/plays/dictionary/Readme.md | 2 +- src/plays/emojipedia/readme.md | 1 - .../random-quote-card-generator/Readme.md | 1 - src/plays/random-quotes/RandomQuotes.js | 285 ++++++++++++++++ src/plays/random-quotes/Readme.md | 64 ++++ src/plays/random-quotes/cover.jpg.jpeg | Bin 0 -> 84278 bytes src/plays/random-quotes/styles.css | 152 +++++++++ src/plays/simple-todo-app/Readme.md | 4 +- src/plays/simple-todo-app/styles.css | 33 +- src/plays/steps/Readme.md | 2 +- src/plays/tenzies-game/Readme.md | 1 - src/plays/text-to-speech/styles.css | 14 +- src/plays/typing-speed-test/readme.md | 1 - 20 files changed, 792 insertions(+), 276 deletions(-) create mode 100644 src/plays/random-quotes/RandomQuotes.js create mode 100644 src/plays/random-quotes/Readme.md create mode 100644 src/plays/random-quotes/cover.jpg.jpeg create mode 100644 src/plays/random-quotes/styles.css diff --git a/src/common/header/header.css b/src/common/header/header.css index 8324afb537..19c8f4cc20 100644 --- a/src/common/header/header.css +++ b/src/common/header/header.css @@ -283,8 +283,8 @@ .header-links > li > .app-header-btn.app-header-btn--secondary:hover, .header-links > li > .app-header-btn.app-header-btn--secondary:focus { -border-color: var(--color-brand-primary); -background-color: var(--color-neutral-10); + border-color: var(--color-brand-primary); + background-color: var(--color-neutral-10); } .header-links > li > .app-header-btn.app-header-btn--secondary { diff --git a/src/common/playleaderboard/leaderBoard.css b/src/common/playleaderboard/leaderBoard.css index bab6f4799f..9fed5cd318 100644 --- a/src/common/playleaderboard/leaderBoard.css +++ b/src/common/playleaderboard/leaderBoard.css @@ -37,158 +37,157 @@ justify-content: center; height: 100vh; } */ - + .leaderboard-wrapper { - background-color: #ffffff; - border-radius: 16px; - padding: 24px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); - font-family: 'Inter', sans-serif; - max-width: 800px; - margin: 20px auto; - } - - .leaderboard-title { - font-size: 24px; - font-weight: 600; - color: #1a202c; - margin-bottom: 24px; - } - - .podium-container { - display: flex; - justify-content: center; - align-items: flex-end; - gap: 8px; - margin-bottom: 16px; - } - - .podium-card { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - padding: 16px; - border-radius: 12px; - width: 120px; - color: #4a5568; - border: 1px solid #e2e8f0; - transition: transform 0.2s ease-in-out; - } - - .podium-card:hover { - transform: translateY(-5px); - } - - .podium-avatar { - width: 60px; - height: 60px; - border-radius: 50%; - border: 3px solid #fff; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); - margin-bottom: 8px; - } - - .podium-name { - font-weight: 600; - font-size: 14px; - color: #2d3748; - } - - .podium-rank { - font-size: 12px; - font-weight: 500; - margin-bottom: 4px; - } - - .podium-points { - font-weight: 700; - font-size: 14px; - color: #1a202c; - } - - .podium-second { - background-color: #f7fafc; - height: 170px; - order: 1; - } - - .podium-first { - background-color: #fffbef; - height: 200px; - border-color: #f6e05e; - order: 2; - } - - .podium-third { - background-color: #fdf5f2; - height: 150px; - order: 3; - } - - .winner-announcement { - text-align: center; - color: #4a5568; - font-size: 14px; - margin-bottom: 32px; - line-height: 1.5; - } - + background-color: #ffffff; + border-radius: 16px; + padding: 24px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + font-family: 'Inter', sans-serif; + max-width: 800px; + margin: 20px auto; +} - .leaderboard-table-container { - box-shadow: none !important; - border: 1px solid #e2e8f0; - border-radius: 12px !important; - } - - .leaderboard-table-header { - font-weight: 600 !important; - font-size: 12px !important; - color: #718096 !important; - text-transform: uppercase; - background-color: #f7fafc !important; - border-bottom: 1px solid #e2e8f0 !important; - } - - .leaderboard-table-cell { - font-size: 14px !important; - color: #2d3748 !important; - border-bottom: 1px solid #e2e8f0 !important; - } - - .user-profile { - display: flex; - align-items: center; - gap: 12px; - font-weight: 500; - } - - .table-avatar { - width: 32px; - height: 32px; - border-radius: 50%; - } - - .rank-cell { - display: flex; - align-items: center; - gap: 8px; - font-weight: 600 !important; - } - - .points-cell { - font-weight: 600 !important; - } - - .rank-icon { - font-size: 16px !important; - } - .rank-up { - color: #38a169; - } - .rank-down { - color: #e53e3e; - } - .rank-same { - color: #a0aec0; - } \ No newline at end of file +.leaderboard-title { + font-size: 24px; + font-weight: 600; + color: #1a202c; + margin-bottom: 24px; +} + +.podium-container { + display: flex; + justify-content: center; + align-items: flex-end; + gap: 8px; + margin-bottom: 16px; +} + +.podium-card { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 16px; + border-radius: 12px; + width: 120px; + color: #4a5568; + border: 1px solid #e2e8f0; + transition: transform 0.2s ease-in-out; +} + +.podium-card:hover { + transform: translateY(-5px); +} + +.podium-avatar { + width: 60px; + height: 60px; + border-radius: 50%; + border: 3px solid #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + margin-bottom: 8px; +} + +.podium-name { + font-weight: 600; + font-size: 14px; + color: #2d3748; +} + +.podium-rank { + font-size: 12px; + font-weight: 500; + margin-bottom: 4px; +} + +.podium-points { + font-weight: 700; + font-size: 14px; + color: #1a202c; +} + +.podium-second { + background-color: #f7fafc; + height: 170px; + order: 1; +} + +.podium-first { + background-color: #fffbef; + height: 200px; + border-color: #f6e05e; + order: 2; +} + +.podium-third { + background-color: #fdf5f2; + height: 150px; + order: 3; +} + +.winner-announcement { + text-align: center; + color: #4a5568; + font-size: 14px; + margin-bottom: 32px; + line-height: 1.5; +} + +.leaderboard-table-container { + box-shadow: none !important; + border: 1px solid #e2e8f0; + border-radius: 12px !important; +} + +.leaderboard-table-header { + font-weight: 600 !important; + font-size: 12px !important; + color: #718096 !important; + text-transform: uppercase; + background-color: #f7fafc !important; + border-bottom: 1px solid #e2e8f0 !important; +} + +.leaderboard-table-cell { + font-size: 14px !important; + color: #2d3748 !important; + border-bottom: 1px solid #e2e8f0 !important; +} + +.user-profile { + display: flex; + align-items: center; + gap: 12px; + font-weight: 500; +} + +.table-avatar { + width: 32px; + height: 32px; + border-radius: 50%; +} + +.rank-cell { + display: flex; + align-items: center; + gap: 8px; + font-weight: 600 !important; +} + +.points-cell { + font-weight: 600 !important; +} + +.rank-icon { + font-size: 16px !important; +} +.rank-up { + color: #38a169; +} +.rank-down { + color: #e53e3e; +} +.rank-same { + color: #a0aec0; +} diff --git a/src/common/playlists/playlist.css b/src/common/playlists/playlist.css index 4b90f9f7fc..fccc439833 100644 --- a/src/common/playlists/playlist.css +++ b/src/common/playlists/playlist.css @@ -351,7 +351,7 @@ margin-top: 0.4rem; padding-top: 0.4rem; } - .header-rightcol{ + .header-rightcol { max-width: 95%; } diff --git a/src/common/techstack/TechStacks.css b/src/common/techstack/TechStacks.css index f0cd91ce9b..3fcd7cbfbd 100644 --- a/src/common/techstack/TechStacks.css +++ b/src/common/techstack/TechStacks.css @@ -180,4 +180,4 @@ .tech-brand-name { font-size: 1.5rem; } -} \ No newline at end of file +} diff --git a/src/plays/Selection-Sort-Visualizer/select.css b/src/plays/Selection-Sort-Visualizer/select.css index a1ad33ff24..b54eb0a5a5 100644 --- a/src/plays/Selection-Sort-Visualizer/select.css +++ b/src/plays/Selection-Sort-Visualizer/select.css @@ -1,96 +1,97 @@ /* Scoped styles for the Selection Sort Visualizer */ .visualizer-body { - background-color: papayawhip; - } - - .visualizer-container * { - font-size: 16px; - font-weight: bold; - font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; - } - - .visualizer-head { - margin-top: 20px; - margin-right: 20vw; - margin-left: 20vw; - text-align: center; - font-size: 30px; - background-color: greenyellow; - color: white; - border-radius: 19px; - font-weight: bolder; - } - - .visualizer-input-container { - display: flex; - flex-direction: row; - margin: 2rem 5rem; - } - - .input-field { - width: 180px; - height: 40px; - border: 1px solid black; - border-radius: 5px; - outline: none; - text-align: center; - } - - .button-blue, - .button-green { - width: 100px; - text-align: center; - margin-left: 10px; - border: 1px solid black; - border-radius: 5px; - height: 40px; - color: white; - } - - .button-green { - background-color: #4cd430; - } - - .button-blue { - background-color: #3478d5; - } - - #input-visualizer { - margin: 0 5rem; - margin-top: 2rem; - display: flex; - text-align: center; - } - - #input-visualizer div { - margin-right: 10px; - background-color: #e6852c; - border: 1px solid black; - border-radius: 5px; - padding: 10px; - width: 50px; - color: white; - } - - #output-visualizer { - display: flex; - flex-direction: column; - } - - #output-visualizer div { - margin: 0 5rem; - margin-top: 2rem; - display: flex; - text-align: center; - } - - #output-visualizer div span { - margin-right: 10px; - background-color: #3478d5; - border: 1px solid black; - border-radius: 5px; - padding: 10px; - width: 50px; - color: white; - } - + background-color: papayawhip; +} + +.visualizer-container * { + font-size: 16px; + font-weight: bold; + font-family: + 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, + sans-serif; +} + +.visualizer-head { + margin-top: 20px; + margin-right: 20vw; + margin-left: 20vw; + text-align: center; + font-size: 30px; + background-color: greenyellow; + color: white; + border-radius: 19px; + font-weight: bolder; +} + +.visualizer-input-container { + display: flex; + flex-direction: row; + margin: 2rem 5rem; +} + +.input-field { + width: 180px; + height: 40px; + border: 1px solid black; + border-radius: 5px; + outline: none; + text-align: center; +} + +.button-blue, +.button-green { + width: 100px; + text-align: center; + margin-left: 10px; + border: 1px solid black; + border-radius: 5px; + height: 40px; + color: white; +} + +.button-green { + background-color: #4cd430; +} + +.button-blue { + background-color: #3478d5; +} + +#input-visualizer { + margin: 0 5rem; + margin-top: 2rem; + display: flex; + text-align: center; +} + +#input-visualizer div { + margin-right: 10px; + background-color: #e6852c; + border: 1px solid black; + border-radius: 5px; + padding: 10px; + width: 50px; + color: white; +} + +#output-visualizer { + display: flex; + flex-direction: column; +} + +#output-visualizer div { + margin: 0 5rem; + margin-top: 2rem; + display: flex; + text-align: center; +} + +#output-visualizer div span { + margin-right: 10px; + background-color: #3478d5; + border: 1px solid black; + border-radius: 5px; + padding: 10px; + width: 50px; + color: white; +} diff --git a/src/plays/codenchill/Readme.md b/src/plays/codenchill/Readme.md index 459a56951d..b211cad3ec 100644 --- a/src/plays/codenchill/Readme.md +++ b/src/plays/codenchill/Readme.md @@ -9,7 +9,6 @@ - It comes with a bunch of features with a seamless User Experience and an elegant design for both mobile and desktop. - The following are the features of the tool: - - You can easily play, pause , and shuffle your lo-fi tracks, and adjust the volume or mute the audio with just one click. - You can set the timer in three fixed tabs - Rest, Work and Focus , or even set a custom timer to fit your specific needs. Once you turn on the timer, you can see it in the title of your browser tab. @@ -48,5 +47,4 @@ ## Resources - Have installed one node module for implementing the download feature: - - `redux-toolkit` module diff --git a/src/plays/daily-journa/Readme.md b/src/plays/daily-journa/Readme.md index a1bfca02bc..4f59404709 100644 --- a/src/plays/daily-journa/Readme.md +++ b/src/plays/daily-journa/Readme.md @@ -11,8 +11,8 @@ This play is about writing daily entries, categorising them by mood or topic, an - User: GhadaRV - Gihub Link: https://github.com/GhadaRV -- Blog: -- Video: +- Blog: +- Video: ## Implementation Details diff --git a/src/plays/dictionary/Readme.md b/src/plays/dictionary/Readme.md index ad215b77fc..54c581fdff 100644 --- a/src/plays/dictionary/Readme.md +++ b/src/plays/dictionary/Readme.md @@ -14,7 +14,7 @@ Display the definition, pronunciation, antonyms and synonyms of the word ## Implementation Details -This implenmetation uses axios to call a remote API. The remote API returns the meaning as well as synonyms and antonyms of the word entered by the user, which is rendered. +This implenmetation uses axios to call a remote API. The remote API returns the meaning as well as synonyms and antonyms of the word entered by the user, which is rendered. ## Consideration diff --git a/src/plays/emojipedia/readme.md b/src/plays/emojipedia/readme.md index a406e7803a..20e4bb86a2 100644 --- a/src/plays/emojipedia/readme.md +++ b/src/plays/emojipedia/readme.md @@ -26,7 +26,6 @@ Emojipedia is a fun project play where users can search for any emojis and can c - The implementation is quite simple. In this project, I've used [Open Emoji API](https://emoji-api.com/). - There are basically three main components: - - `Emojipedia`: As the name suggests it is an entry point of the project. - `EmojiCard`: It is responsible for rendering Emoji characters and their Unicode name in the card format. - `SkeletonCard`: This component is an animated placeholder that simulates the layout of a page while data is being loaded. diff --git a/src/plays/random-quote-card-generator/Readme.md b/src/plays/random-quote-card-generator/Readme.md index d2e0dbe2fa..6a7fd116ca 100644 --- a/src/plays/random-quote-card-generator/Readme.md +++ b/src/plays/random-quote-card-generator/Readme.md @@ -7,7 +7,6 @@ - This tool can be used in real life for social media posts/stories. - Customizations available: - - Editing the background color of container from the available gradients - Editing the Quote Card color (Dark/Light) - Changing the aspect ratio ( 2 options available): diff --git a/src/plays/random-quotes/RandomQuotes.js b/src/plays/random-quotes/RandomQuotes.js new file mode 100644 index 0000000000..501b429ed0 --- /dev/null +++ b/src/plays/random-quotes/RandomQuotes.js @@ -0,0 +1,285 @@ +import React, { useState, useEffect } from 'react'; +import PlayHeader from 'common/playlists/PlayHeader'; +import './styles.css'; + +// WARNING: Do not change the entry component name +function RandomQuotes(props) { + const [quote, setQuote] = useState(''); + const [author, setAuthor] = useState(''); + const [category, setCategory] = useState('motivational'); + const [loading, setLoading] = useState(false); + + // Reliable category tags (quotable.io) + const categories = { + motivational: 'motivational', + life: 'life', + programming: 'technology' + }; + + // Local fallback quotes — EXPANDED LIST + const localFallback = { + motivational: [ + { content: 'The only way to do great work is to love what you do.', author: 'Steve Jobs' }, + { content: "Believe you can and you're halfway there.", author: 'Theodore Roosevelt' }, + { content: 'Don’t watch the clock; do what it does. Keep going.', author: 'Sam Levenson' }, + { + content: + 'Success is not final; failure is not fatal: It is the courage to continue that counts.', + author: 'Winston Churchill' + }, + { + content: 'Push yourself because no one else is going to do it for you.', + author: 'Unknown' + }, + { content: 'Dream bigger. Do bigger.', author: 'Unknown' }, + { + content: 'You don’t have to be great to start, but you have to start to be great.', + author: 'Zig Ziglar' + }, + { content: 'Hard work beats talent when talent doesn’t work hard.', author: 'Tim Notke' }, + { content: 'If opportunity doesn’t knock, build a door.', author: 'Milton Berle' }, + { + content: 'Discipline is choosing between what you want now and what you want most.', + author: 'Abraham Lincoln' + }, + { content: 'Don’t limit your challenges—challenge your limits.', author: 'Jerry Dunn' }, + { content: 'It always seems impossible until it’s done.', author: 'Nelson Mandela' }, + { content: 'Make each day your masterpiece.', author: 'John Wooden' }, + { content: 'A little progress each day adds up to big results.', author: 'Satya Nani' }, + { + content: 'Do something today that your future self will thank you for.', + author: 'Sean Patrick Flanery' + } + ], + + life: [ + { + content: "Life is what happens when you're busy making other plans.", + author: 'John Lennon' + }, + { content: 'Keep smiling, because life is a beautiful thing.', author: 'Marilyn Monroe' }, + { content: 'The purpose of our lives is to be happy.', author: 'Dalai Lama' }, + { + content: + "In the end, it's not the years in your life that count. It's the life in your years.", + author: 'Abraham Lincoln' + }, + { + content: 'Life is really simple, but we insist on making it complicated.', + author: 'Confucius' + }, + { + content: 'Good friends, good books, and a sleepy conscience: this is the ideal life.', + author: 'Mark Twain' + }, + { + content: 'To live is the rarest thing in the world. Most people exist, that is all.', + author: 'Oscar Wilde' + }, + { + content: 'Life isn’t about finding yourself. It’s about creating yourself.', + author: 'George Bernard Shaw' + }, + { + content: 'Happiness is not something ready-made. It comes from your own actions.', + author: 'Dalai Lama' + }, + { + content: 'You only live once, but if you do it right, once is enough.', + author: 'Mae West' + }, + { + content: 'Difficulties in life are intended to make us better, not bitter.', + author: 'Dan Reeves' + }, + { + content: 'The biggest adventure you can take is to live the life of your dreams.', + author: 'Oprah Winfrey' + }, + { + content: + 'Enjoy the little things, for one day you may look back and realize they were the big things.', + author: 'Robert Brault' + }, + { + content: 'Life itself is the most wonderful fairy tale.', + author: 'Hans Christian Andersen' + }, + { content: 'In the book of life, the answers aren’t in the back.', author: 'Charlie Brown' } + ], + + programming: [ + { content: 'Talk is cheap. Show me the code.', author: 'Linus Torvalds' }, + { + content: + 'Programs must be written for people to read, and only incidentally for machines to execute.', + author: 'Harold Abelson' + }, + { content: 'First, solve the problem. Then, write the code.', author: 'John Johnson' }, + { + content: 'Experience is the name everyone gives to their mistakes.', + author: 'Oscar Wilde' + }, + { + content: 'Code is like humor. When you have to explain it, it’s bad.', + author: 'Cory House' + }, + { content: 'Fix the cause, not the symptom.', author: 'Steve Maguire' }, + { + content: 'Optimism is an occupational hazard of programming: feedback is the treatment.', + author: 'Kent Beck' + }, + { content: 'Simplicity is the soul of efficiency.', author: 'Austin Freeman' }, + { + content: 'Before software can be reusable it first has to be usable.', + author: 'Ralph Johnson' + }, + { + content: 'Programming isn’t about what you know; it’s about what you can figure out.', + author: 'Chris Pine' + }, + { content: 'The best error message is the one that never shows up.', author: 'Thomas Fuchs' }, + { content: 'You can’t have great software without a great team.', author: 'Martin Fowler' }, + { content: 'Make it work, make it right, make it fast.', author: 'Kent Beck' }, + { + content: + 'Any fool can write code that a computer can understand. Good programmers write code that humans can understand.', + author: 'Martin Fowler' + }, + { + content: 'The function of good software is to make the complex appear simple.', + author: 'Grady Booch' + } + ], + + general: [ + { content: 'Don’t watch the clock; do what it does. Keep going.', author: 'Sam Levenson' }, + { content: 'Simplicity is the soul of efficiency.', author: 'Austin Freeman' }, + { content: 'Everything you can imagine is real.', author: 'Pablo Picasso' }, + { + content: 'Whether you think you can or you think you can’t, you’re right.', + author: 'Henry Ford' + } + ] + }; + + const fetchWithTimeout = async (url, timeout = 7000) => { + const controller = new AbortController(); + const id = setTimeout(() => controller.abort(), timeout); + try { + const res = await fetch(url, { signal: controller.signal }); + clearTimeout(id); + + return res; + } catch (err) { + clearTimeout(id); + + throw err; + } + }; + + const fetchQuote = async () => { + setLoading(true); + const tag = categories[category] || ''; + const taggedUrl = tag ? `https://api.quotable.io/random?tags=${encodeURIComponent(tag)}` : null; + const generalUrl = 'https://api.quotable.io/random'; + + try { + let data; + + if (taggedUrl) { + try { + const res = await fetchWithTimeout(taggedUrl); + if (!res.ok) throw new Error(); + data = await res.json(); + } catch { + console.warn('Tagged fetch failed, trying general endpoint'); + } + } + + if (!data) { + try { + const res = await fetchWithTimeout(generalUrl); + if (!res.ok) throw new Error(); + data = await res.json(); + } catch { + console.warn('General fetch failed'); + } + } + + if (data && data.content) { + setQuote(data.content); + setAuthor(data.author || 'Unknown'); + } else { + const pool = localFallback[category] || localFallback.general; + const random = pool[Math.floor(Math.random() * pool.length)]; + setQuote(random.content); + setAuthor(random.author); + } + } catch (err) { + console.error('Unexpected fetch error:', err); + const pool = localFallback[category] || localFallback.general; + const random = pool[Math.floor(Math.random() * pool.length)]; + setQuote(random.content); + setAuthor(random.author); + } finally { + setLoading(false); + } + }; + + const speakQuote = () => { + if (!quote || !window.speechSynthesis) return; + const utter = new SpeechSynthesisUtterance(`${quote} — ${author}`); + window.speechSynthesis.cancel(); + window.speechSynthesis.speak(utter); + }; + + useEffect(() => { + fetchQuote(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [category]); + + return ( +
+ +
+
+

✨ Enhanced Random Quote Generator ✨

+ +
+ + + + + +
+ +
+ {loading ? ( +

Loading...

+ ) : ( + <> +

“{quote}”

+

— {author}

+ + )} +
+
+
+
+ ); +} + +export default RandomQuotes; diff --git a/src/plays/random-quotes/Readme.md b/src/plays/random-quotes/Readme.md new file mode 100644 index 0000000000..80d3ca81cd --- /dev/null +++ b/src/plays/random-quotes/Readme.md @@ -0,0 +1,64 @@ +# Random Quotes + +An enhanced Random Quote Generator built using React. It allows users to generate motivational, life, and programming quotes with category selection and text-to-speech support for accessibility. + +## Play Demographic + +- Language: js +- Level: Intermediate + +## Creator Information + +- User: rajnishpatell +- Gihub Link: https://github.com/rajnishpatell +- Blog: +- Video: + +## Implementation Details + +The Enhanced Random Quote Generator is a React-based interactive project that displays motivational, life, and programming quotes dynamically. Users can switch categories, generate new quotes, and even listen to them using text-to-speech functionality. + +⚙️ Core Features + +Dynamic Quote Fetching: Fetches quotes from the Quotable API + based on the selected category (motivational, life, or programming). + +Offline Fallback: Includes a local quote dataset to ensure the app works even if the API request fails. + +Category Selection: Users can easily switch between categories using a dropdown menu. + +Text-to-Speech: Integrated browser speech synthesis to read quotes aloud for accessibility. + +Modern UI/UX Design: Styled using custom CSS with a gradient background, glassmorphism effect, and responsive layout. + +Error Handling & Retry: Automatically falls back to a general quote or local list when the API fails, ensuring smooth user experience. + +Loading State: Displays a loading message while fetching new quotes. + +🛠️ Tech Stack + +Frontend: React.js (Functional Components + Hooks) + +Styling: Custom CSS (responsive + animations) + +APIs: Quotable.io API + +Speech: Web Speech API (Text-to-Speech) + +Tools: npm, Vite (via ReactPlay environment) + +## Consideration + +The app uses the Quotable API, but also includes a local fallback quote list to ensure it works offline or if the API request fails. + +Text-to-Speech (TTS) relies on the browser’s built-in SpeechSynthesis API, which may behave slightly differently across browsers. + +Quotes are categorized into Motivational, Life, and Programming to give users a more focused experience. + +The design follows ReactPlay contribution guidelines and uses component-based structure for easy maintenance. + +Accessibility and simplicity were prioritized, ensuring the UI works well on both desktop and mobile devices. + +## Resources + +Update external resources(if any) diff --git a/src/plays/random-quotes/cover.jpg.jpeg b/src/plays/random-quotes/cover.jpg.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..541396acd9ed7de6db15283b05d64c5e99ecaee3 GIT binary patch literal 84278 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

x=P*FBwqd>5&Y+Zo1NEvjuZlrw=LZvebot{m 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 literal 0 HcmV?d00001 diff --git a/src/plays/random-quotes/styles.css b/src/plays/random-quotes/styles.css new file mode 100644 index 0000000000..6abfc805b0 --- /dev/null +++ b/src/plays/random-quotes/styles.css @@ -0,0 +1,152 @@ +/* General layout */ +.rq-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 80vh; + background: linear-gradient(135deg, #667eea, #764ba2); + color: #fff; + font-family: "Poppins", sans-serif; + padding: 2rem; + border-radius: 20px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25); + transition: all 0.3s ease; +} + +.rq-title { + font-size: 2.2rem; + font-weight: 700; + text-align: center; + margin-bottom: 1.5rem; + letter-spacing: 1px; + color: #f9fafb; +} + +/* Control section */ +.rq-controls { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.8rem; + margin-bottom: 2rem; +} + +.rq-select { + padding: 0.7rem 1rem; + border: none; + border-radius: 8px; + background: rgba(255, 255, 255, 0.9); + color: #333; + font-size: 1rem; + font-weight: 500; + outline: none; + cursor: pointer; + transition: 0.3s; +} + +.rq-select:hover { + background: #f8fafc; +} + +.rq-btn { + background: #ffffff; + color: #333; + padding: 0.7rem 1.3rem; + font-size: 1rem; + font-weight: 600; + border-radius: 8px; + border: none; + cursor: pointer; + transition: all 0.3s ease-in-out; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +.rq-btn:hover { + background: #4f46e5; + color: #fff; + transform: translateY(-2px); +} + +.rq-speak { + background: #22c55e; + color: #fff; +} + +.rq-speak:hover { + background: #16a34a; +} + +/* Quote display */ +.rq-quote-box { + background: rgba(255, 255, 255, 0.15); + padding: 2rem; + border-radius: 15px; + backdrop-filter: blur(10px); + width: 90%; + max-width: 700px; + text-align: center; + transition: all 0.3s ease-in-out; + animation: fadeIn 0.6s ease; +} + +.rq-text { + font-size: 1.4rem; + line-height: 1.6; + margin-bottom: 1rem; + font-weight: 500; + color: #fefefe; + transition: 0.3s; +} + +.rq-author { + font-size: 1.1rem; + color: #d1d5db; + font-style: italic; + margin-top: 0.5rem; +} + +/* Loading text */ +.rq-loading { + font-size: 1.2rem; + color: #f9fafb; + font-style: italic; +} + +/* Subtle fade animation */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(15px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Responsive tweaks */ +@media (max-width: 600px) { + .rq-container { + padding: 1.5rem; + border-radius: 10px; + } + + .rq-title { + font-size: 1.6rem; + } + + .rq-text { + font-size: 1.1rem; + } + + .rq-controls { + flex-direction: column; + } + + .rq-btn, + .rq-select { + width: 100%; + text-align: center; + } +} diff --git a/src/plays/simple-todo-app/Readme.md b/src/plays/simple-todo-app/Readme.md index 6d8b5faf78..42d12fe404 100644 --- a/src/plays/simple-todo-app/Readme.md +++ b/src/plays/simple-todo-app/Readme.md @@ -11,8 +11,8 @@ A productivity-focused Todo app built with React + TypeScript. Capture tasks, ke - User: efebaslilar - Gihub Link: https://github.com/efebaslilar -- Blog: -- Video: +- Blog: +- Video: ## Implementation Details diff --git a/src/plays/simple-todo-app/styles.css b/src/plays/simple-todo-app/styles.css index 91b86dbdfc..7fb22ceb3f 100644 --- a/src/plays/simple-todo-app/styles.css +++ b/src/plays/simple-todo-app/styles.css @@ -13,8 +13,8 @@ gap: 0.75rem; margin-bottom: 1.25rem; } -.play-description{ - text-align: center; +.play-description { + text-align: center; } .todo-form input { @@ -24,7 +24,9 @@ border: 1px solid #cbd5f5; border-radius: 12px; background: #ffffff; - transition: border 0.2s ease, box-shadow 0.2s ease; + transition: + border 0.2s ease, + box-shadow 0.2s ease; } .todo-form input:focus { @@ -41,7 +43,9 @@ background: #6366f1; color: #f8fafc; cursor: pointer; - transition: background 0.2s ease, transform 0.1s ease; + transition: + background 0.2s ease, + transform 0.1s ease; } .todo-form button:hover { @@ -99,7 +103,10 @@ font-size: 0.85rem; font-weight: 500; cursor: pointer; - transition: background 0.2s ease, color 0.2s ease, border 0.2s ease; + transition: + background 0.2s ease, + color 0.2s ease, + border 0.2s ease; } .todo-filters button.active { @@ -144,7 +151,9 @@ border-radius: 12px; background: #fff; box-shadow: 0 4px 15px -12px rgba(15, 23, 42, 0.5); - transition: transform 0.2s ease, box-shadow 0.2s ease; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; } .todo-item:hover { @@ -192,7 +201,10 @@ cursor: pointer; padding: 0.35rem 0.65rem; border-radius: 8px; - transition: background 0.2s ease, color 0.2s ease, transform 0.1s ease; + transition: + background 0.2s ease, + color 0.2s ease, + transform 0.1s ease; } .todo-item-actions button:hover { @@ -211,7 +223,9 @@ border: 1px solid #cbd5f5; background: #ffffff; font-size: 0.95rem; - transition: border 0.2s ease, box-shadow 0.2s ease; + transition: + border 0.2s ease, + box-shadow 0.2s ease; } .todo-edit-input:focus { @@ -221,7 +235,8 @@ } .todo-item.editing { - box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.18), + box-shadow: + 0 0 0 2px rgba(99, 102, 241, 0.18), 0 18px 30px -22px rgba(15, 23, 42, 0.55); } diff --git a/src/plays/steps/Readme.md b/src/plays/steps/Readme.md index 2b14a4dddc..e69d0ef886 100644 --- a/src/plays/steps/Readme.md +++ b/src/plays/steps/Readme.md @@ -12,7 +12,7 @@ A web app with “next” and “previous” navigation buttons, where the “ne - User: aaqib605 - Gihub Link: https://github.com/aaqib605 - Blog: https://hashnode.com/@aaqib605 -- Video: +- Video: ## Implementation Details diff --git a/src/plays/tenzies-game/Readme.md b/src/plays/tenzies-game/Readme.md index 9125a621b1..b09071e18e 100644 --- a/src/plays/tenzies-game/Readme.md +++ b/src/plays/tenzies-game/Readme.md @@ -23,7 +23,6 @@ Tenzies is a dice roll game where you have to roll the dice until all dice are t - The implementation is quite simple. In this project, I use simple react concepts like `useState`, `useEffect`, `onClick` etc... - There are basically two main components: - - `Dice`: As the name suggests it is 10 dice box components that shows the number Between `1` to `6`. - `Main`: It is responsible for rendering dice components and handle all function Which is use to run the Game. diff --git a/src/plays/text-to-speech/styles.css b/src/plays/text-to-speech/styles.css index a11dff07f3..adc01c6b9a 100644 --- a/src/plays/text-to-speech/styles.css +++ b/src/plays/text-to-speech/styles.css @@ -29,7 +29,9 @@ font-size: 18px; resize: vertical; outline: none; - transition: border 0.2s, box-shadow 0.2s; + transition: + border 0.2s, + box-shadow 0.2s; } .tts-textarea:focus { @@ -46,7 +48,9 @@ font-weight: 600; font-size: 18px; cursor: pointer; - transition: background 0.3s ease, transform 0.1s; + transition: + background 0.3s ease, + transform 0.1s; } .tts-convert-btn:hover { @@ -90,7 +94,9 @@ background: #3b82f6; color: white; cursor: pointer; - transition: background 0.2s, transform 0.1s; + transition: + background 0.2s, + transform 0.1s; display: flex; align-items: center; justify-content: center; @@ -163,7 +169,7 @@ gap: 4px; } -.tts-sliders input[type="range"] { +.tts-sliders input[type='range'] { width: 100%; cursor: pointer; } diff --git a/src/plays/typing-speed-test/readme.md b/src/plays/typing-speed-test/readme.md index cb102d7e66..52adceadf7 100644 --- a/src/plays/typing-speed-test/readme.md +++ b/src/plays/typing-speed-test/readme.md @@ -52,7 +52,6 @@ The implementation of the Typing Speed Test project is quite simple. - Additionally, there is a `ResultModal` component that opens when the time is up or the user finishes typing all the words. This modal renders the statistics of the typing session, providing a summary of the user’s performance. - ## Contributing First of all thanks for wanting to contribute! To start contributing to this play, please go through the [Contribution guidelines of ReactPlay](https://github.com/reactplay/react-play/blob/main/CONTRIBUTING.md).