<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pranamya Rajashekhar</title>
    <description>The latest articles on DEV Community by Pranamya Rajashekhar (@pranamyark).</description>
    <link>https://dev.to/pranamyark</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F959061%2F903c196d-bd96-4f49-aa8f-ec285ccdc192.jpeg</url>
      <title>DEV Community: Pranamya Rajashekhar</title>
      <link>https://dev.to/pranamyark</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pranamyark"/>
    <language>en</language>
    <item>
      <title>Sketch 'n' Scribble: Scene and Dialogue Generator using Google AI Studio</title>
      <dc:creator>Pranamya Rajashekhar</dc:creator>
      <pubDate>Sun, 03 Aug 2025 14:42:11 +0000</pubDate>
      <link>https://dev.to/pranamyark/sketch-n-scribble-scene-and-dialogue-generator-using-google-ai-studio-3ep9</link>
      <guid>https://dev.to/pranamyark/sketch-n-scribble-scene-and-dialogue-generator-using-google-ai-studio-3ep9</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is my submission for &lt;a href="https://dev.to/deved/build-apps-with-google-ai-studio"&gt;DEV Education Track: Build Apps with Google AI Studio&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Ever wanted to write RPG-style dialogue without spending hours contemplating and typing lines for every NPC? What if an AI could help you generate immersive scenes and character interactions directly on demand?&lt;/p&gt;

&lt;p&gt;In this post, I’ll provide an overview of how I built a narrative scene and dialogue generator powered by &lt;a href="https://aistudio.google.com/app/apps" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;, using &lt;strong&gt;Vite&lt;/strong&gt;, &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;TypeScript&lt;/strong&gt;, and deployed it for the world to use.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I set out to build a Narrative Scene and Dialogue Generator - a web application that helps users (especially game developers, writers, and storytellers) create immersive dialogues and imagery for their story based on the custom scenes, characters, and intents that they have entered.&lt;/p&gt;

&lt;p&gt;The goal was to let users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Define a unique scene of their choice, for example, a derelict space station or mysterious forest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Describe the characters, their appearances, personalities, and any other relevant details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Specify the intent of the dialogue, for example, “ask for access” or “seek guidance”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And instantly generate a formatted dialogue and visually interesting scene.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;You can access this application in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://sketch-and-scribble.vercel.app/" rel="noopener noreferrer"&gt;Live website&lt;/a&gt;: &lt;em&gt;Ideal for general use&lt;/em&gt;. If you have a billed API key, you'll be able to generate both dialogue and images. With a free API key, you can still generate dialogues, but &lt;strong&gt;image generation will be unavailable due to API limitations.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google AI Studio via the &lt;a href="https://aistudio.google.com/app/prompts?state=%7B%22ids%22:%5B%2210gAYcq4--eJjyNgV3kk9ThnXt1Eoe4Wd%22%5D,%22action%22:%22open%22,%22userId%22:%22117011870627219793409%22,%22resourceKeys%22:%7B%7D%7D&amp;amp;usp=sharing" rel="noopener noreferrer"&gt;applet&lt;/a&gt;: &lt;em&gt;Recommended if you want full functionality without needing a billed key&lt;/em&gt;. Running the app within the AI Studio environment allows image generation to work even with a free-tier setup.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🗝️ You can get your free API key &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
📂 You can also view the code &lt;a href="https://github.com/pranamyaRK/sketch-and-scribble" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;When I first set out to build this project, I didn’t expect it to turn into such a fun and rewarding experience. My initial goal was simple: create a web app that could help generate some dialogue based on a scene and characters - something lightweight, useful for storytelling, and powered by AI. What started as a basic idea soon evolved into an iterative journey of experimenting with prompts, adjusting designs, and integrating better features.&lt;/p&gt;

&lt;p&gt;This was my first time building something with Google AI Studio thus I allowed the Gemini model itself to select the frameworks to be used and it selected React + TypeScript + Vite for frontend. This was also a great opportunity to explore how prompt engineering could drive real functionality.&lt;/p&gt;

&lt;p&gt;Along the way, I encountered a number of challenges which I had to solve as well. For example, figuring out how to let users securely input their own API keys when deploying the app without access to a billed key was a puzzle I had to solve. I also spent time refining the UX by prompting the system to include buttons for downloading results and separate areas for displaying the dialogues and the scene image.&lt;/p&gt;

&lt;p&gt;What stood out the most to me was how much power a good prompt can unlock. Each version of the app was brought out by a new prompt and each small tweak, a new idea, or a clarification that brought the tool closer to what I imagined. In the sections that follow, I’ll walk you through the key prompts I used, the issues I faced, and how I solved them to make this AI-powered storytelling tool a reality.&lt;/p&gt;

&lt;h3&gt;
  
  
  The prompts I used
&lt;/h3&gt;

&lt;p&gt;I used a series of incremental prompts in Google AI Studio to shape and evolve the app. Instead of trying to get everything right in one shot, I approached the project iteratively by initially defining the main goal after which I used new prompts for adding new features, refining functionality and improving the UX.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 1: Creating the Core - A Fantasy Dialogue Generator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started with a simple prompt which outlined the main goal of the application:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Build a Narrative Game Dialogue Generator, where the user can describe a fantasy world or RPG scenario, and the application auto-generates character dialogues.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This first version focused on letting users describe the setting and the characters they needed, then used the Gemini model to output the dialogue in a structured format. It worked great for roleplaying game writers or developers who wanted fast, immersive NPC dialogue generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompting process:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhaej5gtp1ny9qu75o6j6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhaej5gtp1ny9qu75o6j6.png" alt="Initial screen showing the app prompting in progress in Google AI Studio Build" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4c134i14g42v1tlnclzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4c134i14g42v1tlnclzo.png" alt="Image of the input used to generate the dialogue" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsh1f06i1fk2svg1aj2vb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsh1f06i1fk2svg1aj2vb.png" alt="Image of the generated dialogue" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As seen from the above output, the application can now generate only the dialogue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 2: Enhancing World-Building with Visuals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After building the dialogue feature, I wanted to take it further by helping users visualize their custom scene. I prompted:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Add another feature to generate an image of the setting when a button called 'Generate Scene Image' is clicked.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The application now had another button specifically to generate a scene as shown below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompting Process:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdaag30hz1ozdsi8i5wy2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdaag30hz1ozdsi8i5wy2.png" alt="Image showing the new UI with an extra generate scene button" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompting Output for the same input:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzw9nhlmnidvh986ufs8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzw9nhlmnidvh986ufs8u.png" alt="Image showing the generated scene for the same input as previously mentioned" width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This added a new layer of interactivity. Now users could not only imagine the story, but also see a scene image generated using a text-to-image model. It deepened the world-building experience and made the app feel more complete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 3: Improving the UI and Adding Download Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once both dialogue and images were being generated successfully, I noticed that to save the dialogue and image, users would have to manually right-click the image to save into their local systems. It would be logical to have separate buttons to allow the users to save the image and dialogue if they liked the generated content. The next prompt I used said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Fix the title of the application and other text descriptions to include scene generation. Add required buttons to download the scene image and the dialogue once it has been created.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now the application looked like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output including download buttons for both the image and the dialogue:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F028xyj44r0gtiznbwdur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F028xyj44r0gtiznbwdur.png" alt="Image showing the download button for the generated dialogue" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9w3boimpld8zasnljh09.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9w3boimpld8zasnljh09.png" alt="Image showing the download button for the generated scene" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This small change added a lot of polish. It helped clarify the app's dual functionality and also gave users the option to download their content, making it more useful and convenient for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 4: Attempt at adding API Key Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now at this point I downloaded the zip file into my own system to tinker with and I realised that image generation required a billed API key, which I didn’t have access to, therefore I was unable to generate the images. I was stumped and unsure how to go about it, but I found &lt;a href="https://dev.to/yvol/ai-studio-personalized-storybook-illustrator-2loh"&gt;this great blog&lt;/a&gt; by &lt;a class="mentioned-user" href="https://dev.to/yvol"&gt;@yvol&lt;/a&gt; whereby this challenge was overcome. I decided to use the same technique. So I updated the app with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I want the user to be able to enter their own API key securely and use it before generating the image.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unfortunately, this didn’t work as intended. When I asked Gemini to add a feature for users to enter their own API key, it declined, citing security concerns. It explained that API keys should only be accessed via &lt;code&gt;process.env.API_KEY&lt;/code&gt; to prevent exposing them on the client side. Allowing user input for keys was considered a security risk, so the model stuck to the environment-based approach, following industry best practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 5: Successfully added API Key Input feature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To work around this limitation, I prompted Gemini with a clarification:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“No, I currently do not have access to the billed API key, so I am unable to generate images when hosting this website. I wish for the user to be able to enter their own API key so that if it is billed and possible, then they can generate the images if they require. I nor any other user will be able to access the entered API key.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This prompt helped communicate that the API key would remain private to the user and never be exposed or stored, allowing the app to support optional image generation for those with access to the required capabilities.&lt;/p&gt;

&lt;p&gt;Now the application requested the user to enter their own API key before generating any dialogue or image as shown below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Resultant Application:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspo1q7hxi7hne0ymmgbj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspo1q7hxi7hne0ymmgbj.png" alt="Initial screen with warnings to enter API key" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo3jfujs1w9nk4hy7sho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo3jfujs1w9nk4hy7sho.png" alt="Pop-up screen requesting user to enter API key" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4ko049tv3dezpbm6sr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4ko049tv3dezpbm6sr2.png" alt="Application now ready to accept user input to generate the dialogue and scene image" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;What I Learned from Iterative Prompting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each of these prompts helped evolve the app in meaningful ways — from a simple generator to a customizable, visual, and user-secure tool. This iterative approach made development much faster, and prompt engineering truly felt like a new kind of programming.&lt;/p&gt;

&lt;p&gt;If you're building with GenAI tools like Google AI Studio, I highly recommend starting simple, then prompting your way forward.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In this blog, I share my journey of building a &lt;em&gt;Narrative Scene &amp;amp; Dialogue Generator using Google AI Studio&lt;/em&gt;, developed with React, TypeScript, and Vite. The app allows users to describe an RPG-style scene and characters, then generates structured dialogue - perfect for storytellers and game developers.&lt;/p&gt;

&lt;p&gt;Throughout the project, I iteratively improved the app using prompt engineering, adding features like scene image generation, downloadable outputs, and a secure way for users to input their own API keys. &lt;/p&gt;




&lt;h2&gt;
  
  
  Acknowledgements:
&lt;/h2&gt;

&lt;p&gt;Thanks to &lt;a class="mentioned-user" href="https://dev.to/yvol"&gt;@yvol&lt;/a&gt; whose &lt;a href="https://dev.to/yvol/ai-studio-personalized-storybook-illustrator-2loh"&gt;blog&lt;/a&gt; helped me to fix up the issue in my own project.&lt;/p&gt;




&lt;p&gt;Whether you liked this post or found a few bugs, I’d love to hear your thoughts - feel free to react and drop a comment! 🤗&lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Clock In, Clock Out: Office Life through CSS Art</title>
      <dc:creator>Pranamya Rajashekhar</dc:creator>
      <pubDate>Sat, 26 Jul 2025 17:11:22 +0000</pubDate>
      <link>https://dev.to/pranamyark/clock-in-clock-out-office-life-through-css-art-3mmg</link>
      <guid>https://dev.to/pranamyark/clock-in-clock-out-office-life-through-css-art-3mmg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, CSS Art: Office Culture&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Welcome to the cubicle jungle - rendered entirely in HTML and CSS!&lt;/p&gt;

&lt;p&gt;In this creative project, I decided to bring the quiet chaos of office life to the screen using nothing but pure CSS art. No JavaScript - just lines of code mimicking office chairs, cluttered desks, blistering hot coffee straight from the coffeemaker, and even that one perpetually malfunctioning printer out of ink. The idea? To capture the quirks of the everyday workspace digitally.&lt;/p&gt;

&lt;p&gt;To add a touch of charm and personality to the project, I implemented cursor trails that follow the mouse pointer in the form of footsteps. This subtle detail playfully represents the daily pattern of clocking in and out of office life. This effect ties the theme of representing the daily office life together both visually and metaphorically.&lt;/p&gt;

&lt;p&gt;Now, make sure to dive in, take a seat, and don’t forget to clock out!😉&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here’s the live demo of my project in Codepen — a snapshot of everyday office life crafted entirely with HTML and CSS. From the desk and chair to the glowing monitor and ambient details, every element was hand-coded to mimic a familiar workspace vibe.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Mia_RK/embed/JoYRbbW?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you'd like to view the full-screen demo in your own browser or check out the code, you can use the links below:&lt;/p&gt;

&lt;p&gt;💻 &lt;a href="https://pranamyark.github.io/ClockInClockOut-Office/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt; – &lt;strong&gt;Best viewed on desktop for the full experience!&lt;/strong&gt;&lt;br&gt;
📂 &lt;a href="https://github.com/pranamyaRK/ClockInClockOut-Office" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt; – Explore the source code, structure, and animations behind the scene.&lt;/p&gt;

&lt;p&gt;(P.S. Remember to hover around and catch a few animations in action!)&lt;/p&gt;




&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;At first, I just wanted to build something simple; perhaps a desk, a laptop and a chair. But then I realized the desk looked rather empty😅 which I did not like at all. So, I found myself planning out an extensive scene, with other items such as a lamp, phone, printer, files and folders, plants and sticky notes.&lt;/p&gt;

&lt;p&gt;But I realised I needed something to simulate a real-life office environment but I was not sure how I would do anything complicated without the help of Javascript 🤔. I decided I could &lt;strong&gt;simulate a path of footsteps following the cursor trail&lt;/strong&gt;; from and to the office chair which was possible in CSS, and was an ode to the 9-to-5 we are so familiar with.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fniedcbl76s7sdhftvxdy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fniedcbl76s7sdhftvxdy.gif" alt="A short GIF showcasing the cursor trail implemented"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After sketching out the entire scene, I wanted to take it a step further by adding animations to enhance interactivity and inject a bit more fun into the project. By making use of Keyframes and some simple hover effects, I was able to bring several elements to life. Here’s what animates in the scene:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The office chair 🪑 shrinks on hover - like someone just sat down.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The lamp lights up 💡(because what's an office without some late-night overtime?).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The laptop screen 💻 and keyboard subtly glow on hover.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The phone screen 📱 lights up, ready for that never-ending call.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The potted plant 🌱 shakes, giving a touch of life to the space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The coffee cup ☕ trembles on hover — with a little surprise message! Ouch!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The printer paper 🖨️ shakes, as it is still out of ink (as usual).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These playful details not only added character, but made the entire experience feel more dynamic and immersive.&lt;/p&gt;

&lt;p&gt;There were moments when I hit a wall — like figuring out how to make trapezium shapes for the chair or choosing a background that felt just right. But every roadblock led me to learn something new, thanks to the many blogs and resources I discovered along the way (separate section for these resources below).&lt;/p&gt;

&lt;p&gt;I also utilized CSS media queries to enhance responsiveness - specifically, I hid the section containing the footstep cursor trails when the browser window became too small, ensuring the layout remained clean and uncluttered on smaller screens.&lt;/p&gt;

&lt;p&gt;One feature I’d love to explore next is adding sound effects🎵 especially  when tied to animations, since they would bring an extra layer of interactivity and personality to the scene. I’m also considering adding a Day/Night mode toggle, so users can switch between a bright morning office and a cozy late-night work vibe. And to make it more accessible, I’d like to work on full mobile responsiveness, ensuring the scene adapts well to smaller screens without losing any of its charm.&lt;/p&gt;

&lt;p&gt;Overall, I really enjoyed building this project - it was a fun blend of creativity and code, and I’m definitely looking forward to taking on more challenges like this in the future.✨&lt;/p&gt;




&lt;h2&gt;
  
  
  References and Resources:
&lt;/h2&gt;

&lt;p&gt;Throughout this project, I often found myself stuck or unsure how to bring certain elements to life — and these amazing resources were my go-to guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://yosracodes.hashnode.dev/how-i-make-css-art" rel="noopener noreferrer"&gt;This fantastic blog&lt;/a&gt; that kickstarted my entire CSS Art journey, laying the foundation for everything that followed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://getcssscan.com/css-box-shadow-examples" rel="noopener noreferrer"&gt;This helpful site&lt;/a&gt; that was a great reference and helped me add depth and realism to my items using box-shadows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://css-tricks.com/the-shapes-of-css/" rel="noopener noreferrer"&gt;This brilliant reference&lt;/a&gt; that rescued me when I was struggling with creating trapeziums for the chair and the laptop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@dailyfire/cursor-trails-3-simple-css-tricks-to-add-to-any-website-part-1-64750798583c" rel="noopener noreferrer"&gt;This creative blog&lt;/a&gt; that introduced me to the magic of cursor trails — an effect I now love.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://heropatterns.com/" rel="noopener noreferrer"&gt;This visually inspiring site&lt;/a&gt; that helped me choose the perfect background to tie the whole scene together.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Big thanks to these creators — their work made mine possible. 🌟&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;TL;DR: I decided to try my hand at CSS Art, and it turned out much better than I expected. 😁&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether you liked this post or found a few bugs, I’d love to hear your thoughts - feel free to like and drop a comment!&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
  </channel>
</rss>
