freddie Profile Banner
freddie Profile
freddie

@frederic_ooo

Followers
658
Following
481
Media
244
Statuses
12,837

product engineer, detail obsessed. strong opinions, weakly held.

London, England
Joined September 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@frederic_ooo
freddie
1 year
One of my latest UI challenges at @windenhq was creating this filter menu component. Accessibility, keyboard navigation, CSS defensiveness and cool animations were a very fun rollercoaster. @radix_ui + @framer motion + 🧁vanilla extract for styling. Play:
4
2
27
@frederic_ooo
freddie
2 years
Should I have spent 8 hours building a Pagination component with @framer motion? Probably not. Did I do it anyway?
56
68
2K
@frederic_ooo
freddie
1 year
I’m addicted to @GabrielVergnaud ’s ts-pattern: with only it as a dependency, here’s a quick relative time difference formatter. No moment, no dayjs, no date-functions.
Tweet media one
5
16
226
@frederic_ooo
freddie
2 years
@darylginn @figma @framer @copy_ai @airtable @gumroad @Mailchimp @Calendly first three are replacements to TOOLS, not people. You phrased it as if "Need a musician? Try slamming your hands on the table! 🤷"
4
3
208
@frederic_ooo
freddie
9 months
@thekitze You have an interest to push for mediocrity. You sell a mediocre web dev course for a living. This is hard stuff to make, and your alumni will not be able to learn that. I can see why you don’t appreciate intricacy.
13
0
188
@frederic_ooo
freddie
1 year
@xirclebox One could say ‘on the left, a single file gets you a page styled, on the right you only see half the story and need another tab in another programming language, and translate names to behaviours back and forth’
9
0
119
@frederic_ooo
freddie
8 months
@BHolmesDev even bigger brain: use the value of `aria-expanded` to style it.
1
0
105
@frederic_ooo
freddie
2 years
Picked up on @nandafyi inspired by @family ’s currency amount picker and created a localised text input on the web. Tricky to get the experience right!
5
4
102
@frederic_ooo
freddie
1 year
@novikoff oh it’s just the streaming platform, I thought it was the main logo that had changed phew
1
0
93
@frederic_ooo
freddie
1 year
@ayushsoni_io UI designers finally discover what a ligature means. on the next episode: tabular vs linear figures
1
0
73
@frederic_ooo
freddie
4 years
@LasikEyes fuck i always wanted to shoot beams from my eyes count me in
1
1
63
@frederic_ooo
freddie
2 years
@dan_abramov that’s the worst advice i’ve ever heard /s
1
0
63
@frederic_ooo
freddie
3 years
Hate manually typing your page props on @nextjs ? Here's a snippet that will infer the props from whatever you return from it. Covers notFound and redirects too. #TypeScript #FrontEnd #ReactJS #nextjs
Tweet media one
5
10
57
@frederic_ooo
freddie
9 months
@thekitze you: - don’t know their performance metrics and are guessing you’re better than them purely for ego purposes - proved my point by celebrating how you lazily put a rubbish website online to sell a lazy course - think $20k is a lot of money
0
0
45
@frederic_ooo
freddie
2 years
Creating a UI library for my company. Having prior experience with @chakra_ui enabled me to value (and shamelessly copy) the ComponentWithAs type so much. Chakra is so well made, and have aged like fine wine 🍷
3
8
44
@frederic_ooo
freddie
2 years
@romanshamin_en some caveats: — pixel aligning your capitals potentially misaligns your lowercase — most professional typefaces have worked on hinting to make sure this is not a big issue — modularity is broken so you need fine tuning on everything — you’re disregarding overshoot!
3
1
42
@frederic_ooo
freddie
2 years
@VishalMalvi_ Nah mate I'd kill for designers at my company to be this visually interesting — it's mostly buttons and plain text with bland pictures in squares :(
1
1
40
@frederic_ooo
freddie
8 months
@youyuxi yep, it’s a sub par junior dev today, but what about in 6 months? i’m both stoked to be writing issues and reviewing PRs as they come, and afraid companies will jump ship and have super small, overworked teams of maestros and not devs
6
0
43
@frederic_ooo
freddie
2 years
@ThePrimeagen have your git history be pure madness if you can revert and react to stuff quickly. 0.01% of the time you’ll stare at your repo’s commit history, caring about its aesthetics is petty
2
0
36
@frederic_ooo
freddie
2 years
@jensneuse_de the dev community in general is very hostile towards non _truly_ organic dissemination, and next 13, the app directory and RSC feels a little forced down our throats via good marketing. I also share this natural aversion as of late. It’s a great tool but too much going on!
1
0
36
@frederic_ooo
freddie
1 year
@nyan_satan jokes on you they have more skeuomorphism now than in ios6 era. Everything is draggable, physics feel real. Visual skeuomorphism may have been dramatically reduced but overall apple devices are far more skeuomorphic now than they were.
2
0
30
@frederic_ooo
freddie
2 years
@MicheleRivaCode ISR is truly where Next.js shines. with on demand i’ve managed to completely turn a SSR website into a static, always up to date website with reduced TTFB
2
0
29
@frederic_ooo
freddie
3 years
@laholiva @bichinhosbrabo eu fiz isso com ‘top’ e até hoje sigo usando help
0
0
28
@frederic_ooo
freddie
2 years
@acdlite Never seen so many rules and ‘should’s in a single thread. I agree with you but not in those extremes. There are lots of uses of react in surgical spots on legacy websites, or SPAs that make sense. What I fully agree with is: don’t set up your own tooling, use Vite.
0
0
28
@frederic_ooo
freddie
1 year
the @shadcn ui brings me joy. I feel like shopping for components and my terminal is the trolley. and everything is free and organic.
0
0
28
@frederic_ooo
freddie
1 year
@anatudor the css vars is not the reason for the 7 seconds. that’s a correlation without causation. send us the website and let’s analyse the waterfall — i bet £10 css files play little to no part in the loading of this website
1
0
27
@frederic_ooo
freddie
2 years
2
0
26
@frederic_ooo
freddie
2 years
@Reddit ’s new native app top bar has such a good feel to it — I tried replicating it on the web using @framer motion, and this is looking 🔥! play with it:
0
1
26
@frederic_ooo
freddie
3 years
@davidkramer @gethackteam graphQL can be a dangerous abstraction if it makes three data sources from three locations feel like a single call. Only rely on graphQL if you know extensively the origin your requests are being served from.
1
0
24
@frederic_ooo
freddie
11 months
@SHL0MS so it seems we’re pretty fucked
Tweet media one
2
0
24
@frederic_ooo
freddie
2 years
@InterestingsAsF lol clearly the video is reversed that’s impossible
5
0
23
@frederic_ooo
freddie
1 year
@BHolmesDev rebase is MUCHHH more work to do, much easier to fuck up! Merge is the way and if it’s a PR you can squash and merge and never look back at that merge commit you’ve added. Or just carry on, got history is supposed to be historical
0
0
23
@frederic_ooo
freddie
1 year
@wesbos Ill be honest I tried mechanical keybs but my typing speed on the apple ones is unparalleled and the key layout is the same when i’m on the sofa and on my desk so it works very well
4
0
24
@frederic_ooo
freddie
1 year
@shadcn hello 87 page.tsx files 🤣 Having a hard time cmd+P'ing to the right files
5
0
23
@frederic_ooo
freddie
1 year
the perceived speed of a @remix_run + @prisma app on serverless vs. on a traditional VPS is DRAMATICALLY different. The zero cold starts and collocation of db+server are shocking. I’m so glad I tried lol
2
0
23
@frederic_ooo
freddie
1 year
@novikoff source? i found nothing on google about a rebrand
3
0
22
@frederic_ooo
freddie
1 year
not a crypto guy but would use this browser like crazy for the UI itself. @family is my go-to reference for UI design; their masterful execution of object permanence and snappy-and-classy animations is what I dream to be able to deliver to everything I create!
@benjitaylor
Benji Taylor
1 year
Fun little detail when navigating between the start page and tabs page in the new @family browser
8
9
235
1
0
20
@frederic_ooo
freddie
3 years
@rauchg we’re migrating our app from CRA to Next 12 motivated by middleware. All in all, we’re reducing our code base by 4000 lines and keeping the same functionality! Not bad at all ;)
Tweet media one
2
0
20
@frederic_ooo
freddie
1 year
@xirclebox and by your logic you can extract it all to a single class on body and style everything with nth-child locators xd. It’s all tradeoffs. There’s a comfortable middle ground for each one of us, it’s fine you prefer raw CSS but not everyone has to follow
1
0
19
@frederic_ooo
freddie
2 years
@mattpocockuk I know it’s not that simple, but wouldn’t it make sense for the browsers collectively support TS syntax parsing out of the box? I would see a bright future if TS is natively supported and only the tooling is transpiled (unrealistic much)
2
0
17
@frederic_ooo
freddie
1 year
Is this legal react??? I wrote this and feel like someone could sue me at any second. @mattpocockuk any way around so many casts? I mean it doesn't matter that much but looks dirty
Tweet media one
2
0
18
@frederic_ooo
freddie
7 months
@0xglitchbyte 1. web dev is platform agnostic 2. you dont need any software to write a html page 3. I’ve done a bit of game dev, a lot of web dev and have never even heard of raylib 4. this website makes it a hard sell, it’s ghastly
Tweet media one
1
0
17
@frederic_ooo
freddie
2 years
@kentcdodds @heyImMapleLeaf idk man I think it's just resistance but code looks more organised with colons. It gets rid some ambiguity like return and others. I might just be old
1
0
18
@frederic_ooo
freddie
1 year
@joyofcodedev learn to think in rems, it pays off. this conversion breaks accessibility and defeats the purpose of the unit. 1 rem = 1 highly legible font size
2
0
17
@frederic_ooo
freddie
2 years
@framer I need help with getting higher quality video outputs on twitter. The video I uploaded is much much sharper than the artifact-ridden mess you see here 😢
2
0
17
@frederic_ooo
freddie
1 year
@IansTechYT contrasts were baddddd back then. settings looks ghastly! bad spacing, horrible feedback as to what’s selected etc. UI design surely came a long way since then
0
0
16
@frederic_ooo
freddie
8 months
@rajeshdavidbabu @vercel I love the idea, but we could _always_ do this with dynamic imports. There’s quality of life improvements for sure, and the API with generators looks cute, but this isn’t something that has just been made possible — in fact Google has been doing that for search for a decade now
3
0
16
@frederic_ooo
freddie
9 months
@thekitze yet the landing page for your course that has literally one section still has bad layout shift 😆 zeroto💩
0
0
16
@frederic_ooo
freddie
8 months
@_georgemoller sorting imports is not an eslint job. it’s purely aesthetic, non-bug-introducing. if you’re watching this video just use prettier () or biome for this. it’ll be faster to run and with fewer false errors. (or just treat imports as cattle and not pets)
3
2
14
@frederic_ooo
freddie
2 years
@diegohaz should just not have default on the base interface, to begin with. It’s not being implemented why add a default? xd
1
0
16
@frederic_ooo
freddie
2 years
@izzynobre você tem tantos gadgets que pelo menos uma mina de lítio foi dedicada à sua mochila
1
1
16
@frederic_ooo
freddie
2 years
ts-pattern is such a great tool for writing semantic, scalable JSX. I find myself not using ternaries or short-circuits anymore, just match the fuck of everything — it reads better! Pitching it to the team nonstop. @GabrielVergnaud awesome job.
0
1
16
@frederic_ooo
freddie
2 years
@chakra_ui users can use this quick snippet to set it according to `colorMode` and instantly enhance their UIs. (copy the image alt text for the code)
Tweet media one
@diegohaz
Haz
2 years
If your site has a dark theme, make sure to set: :root { color-scheme: dark } So scroll bars are also dark.
11
188
1K
1
1
15
@frederic_ooo
freddie
2 years
@rolivaalonso now change the sizing scale from increments of 4 to increments of 6! Tailwind is not a replacement for CSS, it's a design system css framework on top of. Comparing it with a lower level is like saying "why make apps in react if I can make them in vanilla"? IT’S MODULAR!
1
0
15
@frederic_ooo
freddie
11 months
@adamwathan that’s cursed, very easy to go wrong. Checkbox now has a wrapper if children exist, which will behave very differently in flex containers or grids. The label also needs to take in a unique id and have `for`. imho just always have a wrapper if needed, stop reinventing the wheel
1
1
15
@frederic_ooo
freddie
1 year
@ryanflorence @leeerob @tomus_sherman i love and respect that. loaders and actions work fine, stability is underrated
1
0
15
@frederic_ooo
freddie
7 months
me today panicking “why is my @tryamie PAUSED????”
Tweet media one
1
0
14
@frederic_ooo
freddie
2 years
@darylginn Poppins, never seen a more disgusting typeface. Terrible kerning, laughable stroke thicknesses. It’s only used because it’s a free version of something that looks a little like Circular, GT Walsheim
2
0
15
@frederic_ooo
freddie
1 year
@DavidKPiano how it lets people build over engineered stuff with too much js. Just stumbled across a 200+ solution to a scroll navigation bar with shallow routing, 2 useEffects, states for keeping track of current menu item etc. Could’ve simply used the URL hash.
3
0
15
@frederic_ooo
freddie
2 years
@housecor what a PHENOMENAL read. I can see myself in so many moments mentioned. Proudly I’m exactly this kind of geezer today:
Tweet media one
0
0
15
@frederic_ooo
freddie
2 years
@peduarte by an average developer* you can 100% have peak UX with a react SPA, but most single responsibility principle driven devs will have each screen, each button, each emoji load separately from its own API call and get to spinnageddon. Hoping RSC helps with this
0
0
15
@frederic_ooo
freddie
1 year
@DenisJeliazkov graphic designers with editorial experience are now shrivelling and dying
0
0
14
@frederic_ooo
freddie
2 years
@zollotech ‘Apple devices don’t need drivers for peripherals’ the drivers for the peripherals
Tweet media one
1
0
13
@frederic_ooo
freddie
2 years
@IrffanAsiff @framer That's an excellent idea, I might make a primitive à la @radix_ui
2
0
14
@frederic_ooo
freddie
1 year
@_georgemoller I’d move the object literal map to outside the component to avoid redeclaring it again every time (and also it's a constant, just keep it outside the function scope)
1
0
14
@frederic_ooo
freddie
2 years
@steveklabnik i’ll wait for rust 3 pro max to learn it
0
0
13
@frederic_ooo
freddie
1 year
@JLarky npm sql injection that's a new one
1
0
12
@frederic_ooo
freddie
2 years
@tannerlinsley i’ve already pre-typed ‘pnpm i @tanstack /router’ for when you’re ready
1
0
12
@frederic_ooo
freddie
7 months
@_sakanachandesu besides terrible spacing and icons, it sort of aged well??? looks more polished than the average google UI. and the scale of blue is stable!
0
0
11
@frederic_ooo
freddie
9 months
@dan_abramov2 devs are weary creatures: if we feel you just wanna sell us stuff we back off immediately. RSCs have had poor naming and are too closely tied with an for profit infrastructure hyped org. the concept of serialising VDOM is awesome, but the general perception is ‘SSR in next’
1
0
11
@frederic_ooo
freddie
11 months
@mjackson regulation has literally saved the world countless times. the EU might be the first to impose AI rules but they will not be the last. hopefully we’ll see these rules develop and mature as we have a better understanding of the tech not regulating is how you get school shootings
0
0
11
@frederic_ooo
freddie
1 year
@andrewjclare @thisismeJohn29 @Hanstsaiz is your dad really that distant?
2
0
11
@frederic_ooo
freddie
2 years
@markdalgleish vanilla extract’s API is so good! Building my first UI library with it, and making use of all the goodies like sprinkles for utility classes and recipes for variants feels like cheating. All the component styling logic now has become a single js object!
Tweet media one
1
2
12
@frederic_ooo
freddie
2 years
@AdhamDannaway @ridd_design @PracticalUi just be careful not to rid your UI of any traces of personality, like this example shows
2
0
10
@frederic_ooo
freddie
1 year
I like tailwind, but to me the best way to style anything was always Stitches by @peduarte and team. Just so ergonomic, maintainable and type-safe. The next great thing was Vanilla Extract, which shared some of the ergonomics. Now @panda__css JOINS THE BEST AND IMPROVES ON IT!
1
0
12
@frederic_ooo
freddie
2 years
@sdw how do you feel considering yourself a designer but not being able to understand visual proportion and perception? Eyes aren’t mathematical. Have a quick look at Helvetica’s stroke widths and you might have a stroke yourself if that’s what you believe is right.
0
0
12
@frederic_ooo
freddie
11 months
@acdlite this but integration. end to end is flaky as fuck
1
0
11
@frederic_ooo
freddie
1 year
@ThePrimeagen ending commit messages with a full stop sounds so aggressive idk why
2
0
10
@frederic_ooo
freddie
2 years
@sebmck with the best intentions in mind I think Rome is AWESOME but visually it falls short of feeling like a tool for, or from, the future. It has that web 2.0 vibe and looks a bit too corporate! @vercel 's a shining example on how to be cutting edge _and_ look the part!
1
0
11
@frederic_ooo
freddie
1 year
@disco_lu love how they use really clean class names
1
0
11
@frederic_ooo
freddie
9 months
@dan_abramov2 really bullish once we see someone else (probably @remix_run but we never know, @tannerlinsley is on fire lately, let the boy be bored for a weekend and we might have it) implement RSC completely differently it’ll make a lot more sense.
1
0
10
@frederic_ooo
freddie
1 year
@thekitze I dont know why but the null at the end was so funny???
1
0
11
@frederic_ooo
freddie
1 year
@_dbum @remix_run <Button onClick={() => navigate(‘/home’)} >
1
1
10
@frederic_ooo
freddie
1 year
@metruzanca @mattpocockuk good job! I’d just rename to FirestorePath, singular. The type may _look_ like an array but in fact it’s a collection of "or"s, with one being used. Look when you declare the consts you’re annotating them with a plural word and using a string — feels misleading doesn’t it?
1
0
11
@frederic_ooo
freddie
8 months
@mattpocockuk not QA but i just wrote TS code for two hours without running it. Architected an API, created lots of types, handlers, and only after it, wrote unit tests to run it. Types gave me confidence I wouldn’t have even to write a simple two layer handler. i’d say TS even for tiny stuf
0
0
8
@frederic_ooo
freddie
7 months
@joshmanders although your point is good, more libraries is not a testament to good or bad, it’s simply that react is more barebones, less opinionated. the whole js ecosystem is based off reinventing itself with faster/better tools, so the less your tools are intertwined the best
1
0
10
@frederic_ooo
freddie
2 years
@peduarte Raycast+AI has the potential to be an all powerful assistant for desktops, the future looks bright
1
1
10
@frederic_ooo
freddie
7 months
@mattpocockuk @AndaristRake blindly, you very well as well ◡̈
1
0
10
@frederic_ooo
freddie
1 year
stitches was the hero of css-in-js frameworks. so many quality of life techniques were pioneered by it. it’s still my favourite way of styling but it’s time to move on! i’ll be using a mix of tailwind/cva and panda to patch the hole in my heart left by stitches. GOAT.
@peduarte
Pedro Duarte
1 year
Stitches is officially no longer maintained I'm really proud of the impact @stitchesjs had on the space, and how many new styling solutions were inspired by it Alongside with Radix, it's one of the projects I'm most proud of Thank you all for the support Lastly, a huge
Tweet media one
37
34
563
1
0
10
@frederic_ooo
freddie
11 months
When I purchased @alignui I didn’t expect it to also contain a design system course 🤯 so much detail from semantic tokens to depth via shadows. It’s shaping up unbelievably well.
1
1
10
@frederic_ooo
freddie
10 months
@upintheozone border radius on number 2’s bottom bar is 1 or 2 units less than it should, leading to a flat end at the sides :(
1
0
8
@frederic_ooo
freddie
1 year
woah @figma auto generates react components now and they come typed with React.FC I hear @mattpocockuk fuming 😂
1
0
10
@frederic_ooo
freddie
2 years
@mattpocockuk Being a mid-weight was when it felt the most like it — picking up tickets from the Todo lane (main quest), sometimes picking up some other tasks that people entrust you into doing (side quests), talking to NPCs (product owner) 🤣
2
0
9
@frederic_ooo
freddie
2 years
@jon_neal yeah and it was all about iframes! micro frontends were a lot easier back then ironically
1
1
10
@frederic_ooo
freddie
2 years
@tomdoes_tech @trpcio start with all in the resolver, if it gets to cognitively complex, I break ‘statements’ into their own calls. e.g.: getUserRole(); authorise(role); createTask(task); notifyOnSlack()… so it all feels like a simple thread!
0
0
9
@frederic_ooo
freddie
1 year
@turborepo @bunjavascript do we even need caching anymore 😆? it’s just so fast
0
0
1
@frederic_ooo
freddie
7 months
@saltyAom i’m using it right now to power a game engine that’s sending websocket messages for each step of a turn based system. couldn’t imagine any other way of engineering this without it
0
0
7
@frederic_ooo
freddie
11 months
I always use `.repeat(100)` to test for CSS defensiveness. Whenever there is user input required, there is unpredictability in string lengths.
2
0
9
@frederic_ooo
freddie
2 years
@ryanflorence Remix is such a wonderful meta framework. In my honest opinion it is really ahead of Next on the race for minimal js. But that's not the only fight: the community and backing of Next vs lack thereof on Remix makes it hard to justify building any apps in company projects w it :(
2
0
9