Luis Llanes's Avatar

Luis Llanes

@ll-luis.bsky.social

Software Engineering Student πŸ§‘πŸΌβ€πŸ’»Frontend Web Developer React | TypeScript | Next.js llanesluis.xyz

94 Followers  |  84 Following  |  29 Posts  |  Joined: 27.11.2024  |  2.374

Latest posts by ll-luis.bsky.social on Bluesky

Post image Post image

A @shadcn.com
theme inspired by T3 chat
was due, so I did it!
Do you approve @t3.gg?

Check it out: themux.vercel.app

13.04.2025 10:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

Pretty (and fully functional) on mobile too btw!

09.04.2025 06:12 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image Post image Post image

Update on my theme customizer, now it:
βœ… Supports Tailwind v4 and v3
βœ… Supports oklch, hsl, rgb and hex
βœ… Allows user to paste their primary color as a starting point
βœ… Provides surface presets (background, card, popover, etc)
βœ… Let’s the user sync light and dark mode
βœ… Token color picker
#shadcn

09.04.2025 05:24 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Thank you so much, it means a lot!! Fun features coming soon;)

09.04.2025 03:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

github.com/llanesluis/t...
themux.vercel.app

01.04.2025 03:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image Post image Post image

For the last 2 weeks I’ve been building a shadcn/ui theme customizer that supports Tailwind V4. For my pleasant surprise, I just found out that @shadcn.com is building the official one!!
I took lots of inspo from the V3 one, I’d be happy to share what I’ve done:D

#shadcn/ui #tailwind4

01.04.2025 03:43 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
A shadcn/ui theme generator that works with Tailwind CSS version 4

A shadcn/ui theme generator that works with Tailwind CSS version 4

The tool provides presets, and soon you’ll be able to create your own themes

The tool provides presets, and soon you’ll be able to create your own themes

The generated code is ready to be copied and pasted into your css file, providing color variables in `oklch`

The generated code is ready to be copied and pasted into your css file, providing color variables in `oklch`

There’s a page containing *most* of shadcn/ui components to showcase the styles applied

There’s a page containing *most* of shadcn/ui components to showcase the styles applied

🎨 shadcn/ui + Tailwind CSS v4 theme generator

βœ… Default shadcn presets using Tailwind v4
βœ… Custom presets and radius
βœ… All shadcn components showcase
βœ… Just copy and paste to your css file

πŸ“‹Soon:
- Allow the user to make their own theme
- Fonts playground

themux.vercel.app
#shadcn #tailwindcss

26.03.2025 05:46 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

I haven’t made the switch yet but I’ve heard their docs have links to YouTube videos

09.03.2025 18:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

{ !!array.length && … }
Works since React skips *false* and nullish values when rendering

22.02.2025 18:21 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

IMO you should give 3 a chance and see how it does

22.02.2025 00:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

How many of them mentioned your favorite actresses? :o

15.02.2025 02:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Spanish:

> Aprende a crear interacciones ΓΊnicas y detalles encantadores con la magia de CSS, JavaScript, SVG y Canvas.
>
> Β‘AquΓ­ comparto todos mis trucos!

This version shows the *intention* and sounds *natural*, also *neutral* across all Spanish dialects ;)

07.02.2025 21:14 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

When we say "React compares the Virtual DOM to the Real DOM to make only the necessary changes…", are talking about the *Current Fiber Tree* (representing the Real DOM snapshot) and the *WorkInProgress Fiber Tree* (representing the Virtual DOM snapshot, which means React Element Tree snapshot) ??

21.01.2025 03:04 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I’m glad I found your content! I like understanding how my tools *work* under the hood.

20.01.2025 04:44 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Understanding React Server Components | Tony Alicea A deep dive into the internals of React and NextJS to understand RSCs.

I can’t tell how good this article is!
I’m not even half way done with it and it already clarified so many things, I’m blown away. @tonyalicea.dev thanks!

tonyalicea.dev/blog/underst...

20.01.2025 04:29 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

I had an issue once where the JavaScript interpreter couldn’t tell it was an IIFE (without assigning the result to a variable), just because I wasn’t using semicolons :/

In these cases you could:
1. Write semicolons
2. Write β€œvoid” before the IIFE
3. Not use IIFEs lol

17.01.2025 05:36 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Is it using Tailwind 4? Have you tried it yet? Hopefully it comes out soon

13.01.2025 05:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Don’t know what hurts my eyes more: the light theme or that many props lol

13.01.2025 05:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Works perfectly and out of the box if you have shadcn and next-themes set up

12.01.2025 03:44 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It’s using:
> Next.js
> next-themes
> TailwindCSS
> lucide-react icons
> next/dynamic API to disable SSR

12.01.2025 03:30 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Showcase of the devtool, it shows the screen size, the current screen breakpoint and the active theme, allowing you to change the theme easily. It makes building responsive websites so much easier!

Showcase of the devtool, it shows the screen size, the current screen breakpoint and the active theme, allowing you to change the theme easily. It makes building responsive websites so much easier!

I built this silly devtool and it’s been SO useful when building responsive websites

- just render it on the Root Layout
- does not ship to production bundle
- runs client side only to avoid hydration errors due to β€˜window’
- can be hidden when it’s being annoying

github.com/llanesluis/t...

12.01.2025 03:27 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

A couple days in and I’ve help many people already! πŸ₯²

06.01.2025 06:24 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Few things are better for your career than being known as a helpful person

04.01.2025 21:26 β€” πŸ‘ 154    πŸ” 6    πŸ’¬ 6    πŸ“Œ 0
Dynamic APIs in Next.js 15 now require to be awaited since they’re now Promises. I suggested typing params as Promise<> and then either await it (server components) or use β€œuse()” new React 19 API

Dynamic APIs in Next.js 15 now require to be awaited since they’re now Promises. I suggested typing params as Promise<> and then either await it (server components) or use β€œuse()” new React 19 API

How to pass seachParams around server components without prop drilling or context in client components (without giving up SEO and quick first paint)

How to pass seachParams around server components without prop drilling or context in client components (without giving up SEO and quick first paint)

follow up of the previous screenshot

follow up of the previous screenshot

Post image

@t3.gg said β€œshow the world that you kinda know what you’re talking about”.
So I finally got involved and shared what I’ve learned.. I’ve been helping people on Discord servers @nextjs.org, @t3.gg and @codinginflow.bsky.social, and oddly enough I happen to know the right answers :’) feels good!

04.01.2025 02:51 β€” πŸ‘ 30    πŸ” 0    πŸ’¬ 4    πŸ“Œ 1

Exactly.
At the end it all depends on the user experience you want to provide🀷

31.12.2024 07:41 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Regarding the H2s, maybe moving them to the parent component would be best to only show the skeleton for the component itself, after all they’re part of the page 🀷

30.12.2024 21:12 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

If both child components are wrapped in its own Suspense it wouldn’t matter, both fetches will trigger simultaneously, show their respective fallback and stream in independently.

If both child components are wrapped within the same Suspense both will wait until the slowest resolves

30.12.2024 20:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

I would wrap each component in its own <Suspense>, so each can resolve independently. I would also fire the promises in the parent component and pass down as props to each child component.
Other than that I guess it depends on the user experience you want to provide.

30.12.2024 14:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

What is this font it looks so pleasing lol 😭

07.12.2024 02:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Isn’t that what TanStack Start is going for? That’s my impression

01.12.2024 20:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@ll-luis is following 20 prominent accounts