r/Frontend • • 10m ago

When does AI use become bad ?

• Upvotes

Most of my apps/websites/projects are made by myself, the core functionality and most concepts, but i still struggle with the style and designing of the UI so i use AI for that part, most of the time only for the styling.

Is it bad ? Am i becoming lazy or would you consider it okay to cheat a little ?


r/Frontend • • 56m ago

Looking for feedback on web analytics UI / landing page

• Upvotes

Please post your feedback and comments in the original thread in r/Websites as I'm not OP:

https://www.reddit.com/r/Websites/comments/1xhnqj3/looking_for_feedback_on_web_analytics_ui_landing/


r/Frontend • • 23h ago

The best way to use icons in Web UIs • Lea Verou

Thumbnail
lea.verou.me
29 Upvotes

r/Frontend • • 19h ago

A Modern CSS Guide to Responsive Web Design

Thumbnail
stephcraft.net
11 Upvotes

If I missed anything, let me know!


r/Frontend • • 23h ago

Scroll-triggered animation as the missing piece for scrollytelling on the web

Thumbnail
utilitybend.com
0 Upvotes

r/Frontend • • 2d ago

Do you prefer dark mode on websites or does it just feel like a gimmick?

1 Upvotes

I keep seeing sites add a dark mode toggle. Curious whether people actually use it day to day or switch once and forget about it.


r/Frontend • • 2d ago

Splitting UI components into a logic core and a styled layer in Svelte 5 (prop-getters)

3 Upvotes

We build a data grid, and its cell editors (combo box, date picker, number input...) also had to work as standalone components. People kept asking to restyle them without forking. So we split every component into two parts.

The core is a plain function. It takes getters for its inputs and returns state plus "prop-getters" you spread onto your own elements:

<script lang="ts">
  import { createListbox } from '@svgrid/grid'

  let value = $state(null)
  const options = [{ value: 'a', label: 'Apple' }, { value: 'b', label: 'Banana' }]

  const lb = createListbox({
    options: () => options,
    value: () => value,
    onChange: (v) => (value = v),
  })
</script>

<ul {...lb.rootProps()}>
  {#each options as opt, i (opt.value)}
    <li {...lb.optionProps(i)}>{opt.label}</li>
  {/each}
</ul>

rootProps() and optionProps(i) return the role, the aria-* attributes, tabindex and the key/click handlers. Your markup gets the full listbox keyboard behavior without any of our CSS.

How we drew the line:

  • The core owns state, keyboard handling, ARIA, and parsing/formatting (clamping and stepping for the number input, filtering for the combo box). It never touches the DOM.
  • The styled component owns the CSS, positioning for popups, scroll-into-view and DOM measurement.

Inputs are getters (value: () => value), not values, because passing a $state value into a function in Svelte 5 reads it once at that moment. A getter keeps the core reactive without stores.

One snag: dropdown panels portal to <body> so the grid's scroll container can't clip them. That breaks CSS variable inheritance, so the theme's --sg-* tokens have to be copied onto the panel.

RTL also belongs in the core. With dir="rtl", the arrow keys reverse in tabs, sliders and trees, on top of the layout flipping.

Source (MIT): https://github.com/sv-grid/sv-grid

If you've built headless components in React or Vue, did you use prop-getters, or render props/slots? We're still not sure prop-getters scale well to the more complex widgets.


r/Frontend • • 2d ago

How do you handle API contract drift between your AI coding agents?

0 Upvotes

Running multiple agents on the same project and hitting this problem: one agent changes a response shape on the backend, the frontend agent consuming that endpoint has no idea anything moved. It keeps coding against the old contract. The build passes, the types check out locally, and the breakage only shows up when you actually run the thing end to end.

The context lives in two separate chat sessions. Neither agent knows what the other touched. By the time you notice, you're debugging a silent failure and trying to reconstruct which session changed what and when.

Curious how others handle this. Do you keep a shared contract file that both agents read before starting work? Pin the schema somewhere both can see it? Or just accept the breakage and fix it manually when it surfaces?


r/Frontend • • 3d ago

How do you check what your AI coding agents actually did overnight?

0 Upvotes

I've been running Claude Code and Cursor on frontend tasks while I sleep, and the hardest part isn't whether the code works. It's that I sit down in the morning and spend the first chunk of my day digging through session logs trying to reconstruct what happened. Which agent touched which files. Whether the changes are safe to build on or if I'm about to stack new work on something broken.

Right now my process is basically forensic. I open each session, scroll through the output, try to piece together the sequence. Sometimes an agent changed a component's prop interface and the other agent didn't notice, and I only find out when something breaks further down the line.

Curious how others handle this. Do you keep all the sessions open and scan them manually? Do you have agents write summaries somewhere? Or have you found a setup where you don't need to do morning archaeology at all?


r/Frontend • • 4d ago

Why my music game stopped playing sound through Web Audio on iPhones, and what plays it now

0 Upvotes

I built a music guessing game where every wrong guess adds another instrument to the song: drums first, then bass, guitar, piano, and the vocals last.

The first version mixed those layers live with the Web Audio API. On iPhones it played nothing, while the site's other game, which plays one MP3 through an <audio> element, worked on the same phones. The ringer switch and suspended or interrupted audio contexts can all silence Web Audio, and the bug reports couldn't tell them apart.

So now nothing on the page plays sound through Web Audio:

- Songs a background worker has processed have one premixed MP3 per level.

- For songs it hasn't reached yet, the browser decodes the stems in an OfflineAudioContext, renders one WAV per level into memory, and plays it through the same <audio> element. An offline context never makes a sound, so iOS has nothing to silence.

The game started as something I was building for my sister Shani while she was in the hospital. She passed away on August 29th, before I finished it. It's live now as Shabang, with a second game where you hear a fifth of a second of a song and every miss plays more.

I'm a mechanical engineer, not a developer, and I built it with Claude, so feedback from people who do this for a living is especially welcome.

Free, no signup: https://shabangmusic.com/


r/Frontend • • 5d ago

Trying to get good at frontend in age of AI

30 Upvotes

I really want to learn how to get good at frontend, to create better design for my own SAAS. I am currently a backend dev, so Its really tempting for me to prompt claude "make this look like x company" but as we know, its not perfect and I want to have control over these things. Can someone point me to any good resources with these goals in mind? I don't expect to know everything, but I want more creative control


r/Frontend • • 6d ago

Is JavaScript obfuscation still worth it?

61 Upvotes

We sell a white label scheduling dashboard that agencies put their own logo on and resell to their clients. And now a competitor has launched what is pretty much our frontend with different colors. It has the same odd validation messages and their bundle even has the name of a feature flag from an experiment we ran in the spring. I’m fairly sure someone fed our production bundle to an AI and had it rebuild the thing.

Management’s answer is to obfuscate everything before the next release. Before agreeing, I ran our bundle through javascript-obfuscator with most options enabled and gave the output to Claude. It produced readable code in about ten minutes and webcrack undid a good chunk of it without any AI. The obfuscated build was also noticeably bigger and our Sentry stack traces turned into nonsense.

And while reviewing the bundle, I noticed our plan limits for each agency are only checked on the frontend which means a user with devtools could switch on features they don’t pay for. Also noticed a Sentry auth token with a VITE_ prefix, which worried me more than the copied UI. We’ve rotated the token and we’re moving the plan checks into the API.

Does obfuscating your production JavaScript do anything useful for you?


r/Frontend • • 7d ago

How are you actually checking if your cookie banner works properly?

4 Upvotes

I feel like there is a weird gap between having a cookie banner and actually knowing if the site is doing what it is supposed to do. You can click accept and reject and everything looks normal, but that does not really tell you what scripts are firing underneath.
Do most people here actually test this themselves, or do you just rely on whatever CMP you are using?
I am especially curious about agencies managing a lot of sites. Checking everything manually sounds like a nightmare.


r/Frontend • • 7d ago

Frontend video

3 Upvotes

which playlist or video would you suggest for html css js
i dont wanna dive deeeeep into it cause i wanna learn ml and backend but wanna be able to control the frontend part to


r/Frontend • • 6d ago

I spent two weeks trying to sneak swear words past profanity filters. One invisible character beat all of them.

0 Upvotes

Before trusting a username filter, I tried to break the popular npm ones.

Dots (f.u.c.k) beat all four. But the one that got me was the zero-width space. Put one in the middle of a word and it looks identical on screen and in your logs, while the filter sees two harmless halves. You can stare at the reported name and not see what's wrong.

Others that worked: a Cyrillic Ѕ in "Ѕhit", full-width fuck, accents (Šhìt), a Greek υ in fυck.

The fix isn't a bigger word list. It's turning the text back into plain letters before the lookup: NFKC, strip invisible characters, map look-alikes. Then the opposite problem arrives, and your filter starts banning Scunthorpe, Cockpit_Ace and anyone named Dickson.

Handling both sides is what eventually became unprofane.com, but the normalization step alone fixes most of it for a word list.

What's the weirdest one you've seen get through?


r/Frontend • • 7d ago

Are there any existing tools (AI and not) that are already very good at CSS and front-end?

0 Upvotes

Hi, I was wondering if you use any AI tool or not AI to automate the boring part of front-end (at least for me, i like back-end) specifically CSS and design. Is there something out there that is really good at almost everything and gives you the complete package? so responsive, very good UI and not a clone etc...


r/Frontend • • 10d ago

How I handle a script-tag library in a CMS where you can't touch the JS: classes on body as the API

5 Upvotes

Some frontend decisions behind halloween.js (repo: https://github.com/rogulia/halloween.js).

It has to work when the site owner can only paste a script tag into a header field and add a class, with no control over execution order. So the public API is the class list on body. A MutationObserver re-syncs on every class change, so toggling a class later from a CMS field or a page builder works the same way.

Things I'd like a second opinion on:

  • Effects render in one fixed overlay layer with its own z-index variable, so they never shift layout. Does anyone see a case where that breaks (iOS Safari toolbars, sticky headers)?
  • The IIFE injects its own styles, so there's no CSS file to forget. I assume the trade-off is that a strict CSP has to allow injected styles, but I haven't tested that.
  • Malformed config (a bad season date) fails open instead of disabling the library. I went back and forth on that.

Live demo: https://halloween.js.org


r/Frontend • • 11d ago

New CSS Features just don’t hit the same these days

258 Upvotes

Seeing new css features get implemented, particularly ones that have been on my “wishlist” for years, is such a complicated feeling with how much Claude has invaded day to day work.

I was just reading about linked parameters and responsive iframes, thinking about potential projects I could have used them on, trying to store use cases somewhere deep in my brain for later use.

And suddenly I wondered if I will ever end up actually writing any of these new features myself. Or if I’ll have a chance to use them in an unexpected way and get a moment of feeling smart and clever. Or if I’ll ever have to think about their existence at all.

It’s just a weird new feeling of ennui I didn’t see coming and thought I’d yell into the void of Reddit on a Friday night.


r/Frontend • • 11d ago

DevTools pretty print can change what your JavaScript does. As a proof of concept, Tetris file that becomes Snake

Thumbnail trustsig.eu
13 Upvotes

A formatter, minifier or deobfuscator can be made to turn one script into another.

You can go try out all 186 techniques with this script: https://divergence.trustsig.eu/

Or try the Tetris-Snak demo here: https://divergence-game.trustsig.eu/

Techical breakdown: https://trustsig.eu/blog/javascript-divergence/


r/Frontend • • 10d ago

How do you verify UI changes from AI agents without losing your mind in raw code diffs?

0 Upvotes

Whenever I have an AI agent update my front-end code, reviewing the changes in Git or raw code diffs feels super inefficient.


r/Frontend • • 11d ago

A 15x15 freestyle gomoku (five-in-a-row) engine

Thumbnail
github.com
2 Upvotes

r/Frontend • • 11d ago

Client-Side LLMs Product Demo: PDF to AudioBook Generator

Thumbnail
github.com
4 Upvotes

I have been experimenting with client-side LLMs with WASM and WebGPU to investigate if this architecture could be used to create new SaaS features. Here is a product demo showing this concept in action


r/Frontend • • 12d ago

Three weekends into dogfooding my library's homepage and I'm starting to think it's a trap

0 Upvotes

My one sponsor pays $200 a month for my React drag and drop library and wants a real homepage with demos, so I set a rule that every demo has to use the library itself. Three weekends in I have half a hero and a drag demo that fights page scroll on iOS Safari, the same bug as two open issues, while 41 issues sit waiting. Do you even open a library's homepage, or go straight to the docs and last commit and would you trust it less if the homepage obviously was not built with the thing it is selling?


r/Frontend • • 14d ago

Frontend devs approving backend PRs they can't read

185 Upvotes

Hi.

At my company basically all code is written by agents now, so reviews got split by whoever is free instead of by who knows the area.

This week I'm a React dev and I approved 6 PRs in Go, two of them touching payments. Our manager says the AI review covers it, and coderabbit / claude review do catch real things, I'm not saying they don't.

The problem is I can't tell if what they didn't flag is fine, because I don't know Go. My name is still the one on the approval.

Is this happening at your company too or is it just us?


r/Frontend • • 14d ago

CSS is filling the gaps with rules. A way to style gaps in grid and flex.

Thumbnail
utilitybend.com
6 Upvotes