Raksha Tated

Product Designer

I work with agencies and product companies, mostly on consumer iOS apps, healthcare platforms and AI software. I care a lot about the space between design and code.

If you’d like to work together, book a call or email Copied. I’ll get back within 12 hours. For anything else, DM me on X.

Timezones
IST, UTC+0 and AEDT
Status
In the studio
  • X
  • GitHub
  • LinkedIn
  • Medium
Project · 2025Ova IOS app.
Project · 2026Studyloop IOS app.
SiddharthaShelfBooks I’ve read.
Project · 2026Nurture pregnancy app.
SiddharthaShelfBooks I’ve read.
Project · 2026Nurture pregnancy app.
LinksLinks.
Project · 2025Ova IOS app.
Project · 2026Studyloop IOS app.
Project · 2025Tickle IOS App.
LinksLinks.
Essay · 2026Frontend coding with Agents.
Project · 2025Ova IOS app.
Project · 2025Tickle IOS App.
SiddharthaShelfBooks I’ve read.
Project · 2026Nurture pregnancy app.
SiddharthaShelfBooks I’ve read.
Project · 2026Nurture pregnancy app.
Essay · 2026Frontend coding with Agents.
Project · 2025Ova IOS app.

Raksha Tated

Product Designer

In the studio

I work with agencies and product companies, mostly on consumer iOS apps, healthcare platforms and AI software. I care a lot about the space between design and code.

If you’d like to work together, book a call or email me. I’ll get back within 12 hours. For anything else, DM me on X.

Book a call

hey@raksha.design

  • X
  • GitHub
  • LinkedIn
  • Medium
Timezones
IST, UTC+0 and AEDT
Status
In the studio

Frontend coding with Agents.

2026

Words are control surfaces

Last week, I was struggling with a liquid animation I’d spent hours on. I wanted a shape to emerge from a larger menu like a droplet of water.

Here’s the initial prompt I used alongside my Figma designs:

Initial prompt

When the previous button is clicked, this menu opens. We want it to open from the cursor’s trigger point and the button’s placement, not from a fixed left or right side.

It should emerge like a smooth, liquid-morphed rectangle flowing out of the main button. Use this liquid UI code example as a reference for the feel.

This was frustrating because it kept producing a rectangle that simply slid out of another rectangle. It was basically just a change in Y position, even after I gave it a direct codebase reference for a liquid-gooey morph.

Now compare that to the result when I explained the morph mechanism with better vocabulary:

Revised prompt

The customise bottom tray should emerge from the main menu like a gooey, liquid tray. Think of the bottom tray as a child component that comes out of the main menu: it should start as a droplet and scale or morph into the full tray. Once the tray has formed, its icons should animate in from their original positions.

As the droplet separates, it should leave a small liquid trail that lingers until everything fully solidifies. The main menu should also show a subtle trail effect.

Some rules to keep in mind:

  • •
    Treat LiquidItem as the main component.
  • •
    effect="morph" → merging blobs for groups, menus, and avatars.
  • •
    effect="move" → rubbery slider or tab indicators with trailing tails.
  • •
    Use morph and move objects like tuning knobs:
    • 0..1 for bounce, wobble, and springiness.
    • speed for tempo.
    • dissolve to control how much content melts where items touch.
  • •
    Assume the file’s whole job is:
    • Normalize: turn designer-friendly knobs into stable physics.
    • Protect: warn or block combinations that look visually wrong, such as dissolve + move.
Interactive comparison

I shared Jakub’s GitHub repo, asked my browser to explain the code to me, and used that explanation to shape the prompt.

With my first prompt, I just wanted to get the idea out without overthinking it. That can also be an efficient approach: get something small and tangible out instead of writing huge markdown files that clutter the context window. Start rough, then zoom in on different components and polish through iterations.

“Iteration is key. None of the current interfaces fully solve the problem of specifying your intent to the model in the most efficient way.” Silas Alberti, Cognition

Referencing later, curating first

Types of referencing:

  • •
    Media: photos and videos
  • •
    Other websites
  • •
    Open-source codebases and GitHub links
  • •
    Code snippets for micro-level component behaviours
  • •
    States and storyboards
  • •
    Articles from design engineers, designers, and technical breakdowns

Meng To talks about using screenshots and screen recordings when building 0–1 tools with AI. Screenshots and recordings are one way to reference, but there are many more powerful options.

Here, more ≠ better.

The more precise the references, the better. If I want a right sidebar on my website, it’s best if I reference, via a link, screen recording, or states, exactly how I want the sidebar to behave instead of attaching ten inspiration images of different sidebars without specifying behaviour.

Another approach I find useful is to bookmark as many technical articles as possible, even if you’re not particularly technical or don’t fully understand them. When used with the right context, these articles teach your agent the mechanics of what you’re trying to build.

For example, I’d reference make exit animations feel better to apply across all my menus at once, so my agent understands that exit animations should not mirror entry animations, with one-off conditions excluded. The context consumed here is minimal because I’m referencing one small part of an article to improve exit animations across my site. You don’t need a whole 500-word skill for this. Being concise and articulate is better.

A library of strong references is a goldmine for building. It’s less about having everything memorized, and more about using the same references often enough that you start remembering what applies where.

Josh’s animation blogs are another treasure trove. Reading them on a car ride home beats blindly prompting with them. After all, my agent’s performance is only as good as my understanding. Consider this component alone: it was made with Codex by referencing squash and stretch.

Squash-and-stretch componentAdd the component or recording referenced in this example.

We can take this a step further by referencing snippets from a course you bought. I use content from Interface Craft a lot to reference relevant builds with my agent, because prompting is knowledge transfer. Transferring knowledge from the greats also transfers some taste into the output.

For something like liquid UI on frontend, referencing open-source codebases like Jakub Antalik’s liquid-gooey is another shortcut: it teaches an agent the feel and mechanics we’re aiming for.

Generative design tools can be another way to reference and explore ideas in code. Variant helps with components and shaders in React; you can attach those React snippets to your agent and then tweak where needed. Almost all shader prototypes on this website were generated with Variant, then refined with 5.6 Sol.

Referencing starts with the art of collecting because you can’t reference what you don’t know exists. There are countless useful, time-saving resources built by amazing people on the internet, and we’d be foolish not to use them and build on top of them.

Skills cannot save you (alone)

I like to think of skills with this analogy: imagine you hire someone to do your dishes. You’d hand them a set of instructions showing where each kind of plate goes, the sizing arrangement, and so on. That would be super useful. Now imagine you hand them a manual and blueprint of your entire house instead of just stating where the dishes go in the kitchen. Think about the cognitive load they’d have to endure just to reach the part that matters.

A lot of us use whole web-improvement skills to improve a single button. That’s one reason a model’s output can degrade over time on the same task, even if it does the job well at first: cognitive load for humans is what context load is for models.

Here’s a list of all my skills, but I find myself using fewer and fewer over time. I usually use them for audits instead of creation. When I do use them, it’s for highly specific tasks rather than “overall improvements.”

Rules create stability

Context equilibria: a balance between newly injected code or tool outputs and the model’s intrinsic tendency to dilute past instructions.

Having a tight set of rules before starting a project helps keep my agent on track. These rules apply throughout the project. They can live in a markdown file, but they can also be as simple as a few guiding facets or pointers.

For example, my guiding facets for this article are:

  • •
    Observations with practical examples
  • •
    Avoid jargon; if I use it, add contextual explanations
  • •
    References, lots of them

I like to check these at a few points during writing so I don’t drift. Managing agents with project-specific facets like this gives them a recurring evaluation frame.

For a design project, these could look like:

  • •
    No serif fonts anywhere by default. Only use them if explicitly asked.
  • •
    Only two typefaces at a time: title or subtitle, and body.
  • •
    Enter animations should ease out; exit animations should ease in.
  • •
    All animations should stay under 350ms; repeating animations should be under 200ms.
  • •
    Use a four-point grid system for all layouts and sizing.
  • •
    After coding every animation, check its behaviour before the final pass.

Anchoring prompts at the end of a context window also helps the agent stay aligned. For now, it’s helpful to know exactly when my agent’s output starts degrading so I can course-correct. Methods for context finessing should probably end up in a new article once I have more information through trial and error.

Tile artwork: horse model and gallop by Mirada for ROME, adapted into binary. CC BY-NC-SA 3.0.