Sign in

Pavel Laptev

@pavellaptev.bsky.social
123 followers 62 following 210 posts

Design 𝘢𝘵 @gitbutler.com ⧓ pavellaptev.github.io

PostsRepliesMedia
Pavel Laptev @pavellaptev.bsky.social · 16/09/2026
I noticed that popular variable fonts like Inter and Geist lack some of the special symbols found in their static versions.
010
Pavel Laptev @pavellaptev.bsky.social · 12/09/2026
Figma color-mix feature. Posting it now so future me can check how wrong (close?) I was.
011
Pavel Laptev @pavellaptev.bsky.social · 11/09/2026
...or what, Cursor?
000
Pavel Laptev @pavellaptev.bsky.social · 08/09/2026
While we're still waiting for overlay scrollbars in CSS, here's a nice article on making one in 2026 using modern CSS: blog.master.dev/custom-scrol...
blog.master.dev
Custom Scrollbar Component In 2026
Thanks to some very modern CSS, we can visually replicate the logic of scrollbars. Then make them actually functional.
011
Pavel Laptev @pavellaptev.bsky.social · 07/09/2026
Wrote a small post about experimenting with the Figma agent + Claude + GitHub Actions to ship our design tokens to npm. The agents wrote all the scripts. Then a button ran them faster. blog.gitbutler.com/design-token...
blog.gitbutler.com
Figma agent vs. one button: shipping design tokens to npm
I automated our design tokens release with two AI agents. It took six minutes per run. A button my plugin has had for years takes seconds.
021
Pavel Laptev @pavellaptev.bsky.social · 21/08/2026
tokens-bruecke 3.6.0 is out 🎉 www.npmjs.com/package/toke... The new `--input` flag and `init` command so the Figma agent can drive the CLI: it dumps the variables from your open file, pipes them in, and gets DTCG tokens back. No API key. No Enterprise plan. A Figma skill is coming soon 👀
Screenshot of a Figma agent confirming a full round-trip with tokens-bruecke 3.6.0: it extracted a snapshot from a Figma file via the Plugin API and piped it through the CLI with --input. Counts listed: 2 variable collections (core, semantic), 233 variables, 43 text styles, 5 effect styles. The result was a clean 70KB DTCG tokens JSON with exit code 0, with colour ramps, semantic tokens and aliases intact — no API key and no Enterprise plan needed.
140
Pavel Laptev @pavellaptev.bsky.social · 21/08/2026
🤩
000
Pavel Laptev @pavellaptev.bsky.social · 07/08/2026
Encountering an issue with SVG rendering in Chrome 151.0.7922.75. Elements using vector-effect appear at half their intended stroke width. Wonder if I'm missing a configuration detail or it's a bug 🤔 codepen.io/editor/Pavel...
100
Pavel Laptev @pavellaptev.bsky.social · 01/08/2026
Impressive
011
Pavel Laptev @pavellaptev.bsky.social · 26/07/2026
I was digging into the UI kit Figma uses for building plugins through agents. Found the page with all components: help.figma.com/hc/en-us/art... The docs say: **Caution:** PropsKit components can only be used with generative plugins. That's not quite true 🤓 you can use it outside agents tab too.
130
Pavel Laptev @pavellaptev.bsky.social · 23/07/2026
Making logos in ASCII style for GitMerge'26. So far GitHub was the hardest one, but let's see how OpenAI and Cursor turns out. Time to see what these symbols can do █▄▀
141
Pavel Laptev @pavellaptev.bsky.social · 17/07/2026
CSS in Rust is wild. Spotted it today in a vibecoded project.
140
Pavel Laptev @pavellaptev.bsky.social · 14/07/2026
Not sure how long it's been like this, but I only just noticed that Figma is using web components. Neat.
2203
Pavel Laptev @pavellaptev.bsky.social · 13/07/2026
Finally added a proper JSON preview to the TokensBruecke plugin. Now you can fold groups and search for items without needing to open your editor. Also, the plugin now converts the entire JSON to align with the latest DTCG specs.
010
Pavel Laptev @pavellaptev.bsky.social · 11/07/2026
010
Pavel Laptev @pavellaptev.bsky.social · 19/05/2026
Made a few more stickers for @gitbutler.com to finish up the tattoo series.
130
Pavel Laptev @pavellaptev.bsky.social · 14/05/2026
Just a beautiful website code.storage. It's cool how they mix tribal tattoo art with terminal aesthetics and 3D elements. It is a great example of how to create a unique and memorable web design without overusing heavy effects or relying on a 'Tailwind-like' aesthetic.
code.storage
code.storage
Backed by git, built for scale.
120
Reposted by Pavel Laptev
Patrick Brosset @patrickbrosset.com · 04/03/2026
This demo doesn't use a single line of JS code to respond to the arrow keys. Movement of the player is handled 100% by the upcoming `focusgroup` HTML attribute! Focusgroup was definitely *not* made for this 😅 But, so cool to have this out of the box on the web. More ➡️ open-ui.org/components/s...
46716
Pavel Laptev @pavellaptev.bsky.social · 17/04/2026
Another interesting case: data population. A while back I built the JSON to Figma plugin to solve that. With FigClaw, I don't think I need it anymore.
010
Pavel Laptev @pavellaptev.bsky.social · 17/04/2026
Interesting that @figma.com still hasn't built anything like FigClaw. You can design in Figma Make, reach the canvas via MCP from your IDE — but nothing in between that just does things for you inside Figma itself, beyond some image generation and text editing. www.figma.com/community/pl...
020
Pavel Laptev @pavellaptev.bsky.social · 17/04/2026
New Figma plugin: FigClaw FigClaw runs a Claude agent loop: inspects nodes, writes Figma Plugin API code, executes it, reports back. The cool part is "Skills": drop in a .md file and Claude follows your rules, naming conventions, component patterns automatically. www.figma.com/community/pl...
figma.com
FigClaw | Figma
FigClaw is an agentic AI-powered Figma plugin that turns natural language into real canvas changes. Unlike a simple chat assistant, FigClaw runs an autonomous loop — it inspects your selection, reads...
270
Reposted by Pavel Laptev
Andy Stewart @andystew.art · 27/03/2026
I stumbled upon Josh Puckett's lovely Interface Craft website. I wanted to see how well the cards interaction (built with Framer Motion) would translate to native View Transitions. These don't have the little animated graphics, but that should be feasible with this approach.
251
Pavel Laptev @pavellaptev.bsky.social · 27/03/2026
Got some new prints in the @gitbutler.com office
122
Pavel Laptev @pavellaptev.bsky.social · 24/03/2026
One of the coolest web features I’m waiting for is the `focusgroup` attribute open-ui.org/components/s...
open-ui.org
Focusgroup (Explainer) | Open UI
Open UI
020
Pavel Laptev @pavellaptev.bsky.social · 21/03/2026
New @gitbutler.com stickers just arrived 🤡🎇🎸
072
Pavel Laptev @pavellaptev.bsky.social · 19/03/2026
Been thinking about how much JavaScript we ship for basic UI patterns. Wrote it up. Anchor positioning, Popover API, Scroll-Driven Animations and more — what they replace and what's still missing 👉 blog.gitbutler.com/the-great-cs...
blog.gitbutler.com
The Great CSS Expansion
CSS now does what Floating UI, GSAP ScrollTrigger, Framer Motion, and react-select used to require JavaScript for. Here is exactly how much that saves, why these libraries were painful beyond their si...
44424
Pavel Laptev @pavellaptev.bsky.social · 19/03/2026
Didn't know there was an issue about a new CSS logo github.com/CSS-Next/css.... Here are my favorite designs. It feels like a missed opportunity for something fun, because they went with a different direction.
000
Reposted by Pavel Laptev
David Aerne @meodai.bsky.social · 14/03/2026
Am I accidentally building a Color OS? :D Different needs require different stats, so I decided to let users rearrange, show, or hide color stats however they want.
936024
Pavel Laptev @pavellaptev.bsky.social · 15/03/2026
Checking out @unocss.dev today I’m expecting to build something "hellish" (in a good way). 👺
110
Pavel Laptev @pavellaptev.bsky.social · 10/03/2026
I love being able to draw any crazy stickers I want for @gitbutler.com! That’s a big part of what makes them different.
020
Pavel Laptev @pavellaptev.bsky.social · 09/03/2026
Saw a project called Readout by @benjitaylor.bsky.social. Neat idea, but a 14MB file size for a 200x200px image? That’s wild. Hard to trust the underlying code when the basics are that bloated.
030
Pavel Laptev @pavellaptev.bsky.social · 03/03/2026
yes editor.p5js.org/isohedral/fu...
000
Pavel Laptev @pavellaptev.bsky.social · 01/03/2026
That's funny and also true dbushell.com/2026/01/09/d...
dbushell.com
Death to Scroll Fade!
The one where I crowdsource an argument winner
110
Pavel Laptev @pavellaptev.bsky.social · 24/02/2026
That’s funny. I miss Silicon Valley 🥲
000
Pavel Laptev @pavellaptev.bsky.social · 20/02/2026
Soldered my first keyboard, the Lumberjack 5x12 KEEBD! Key takeaway: sufficient solder on hotswap sockets please. Red LED indicates FN key, not error state (kinda silly I forgot that while testing…)
120
Pavel Laptev @pavellaptev.bsky.social · 13/02/2026
Quite nice dashboard to see what’s currently cooking wpt.fyi/interop-2026
wpt.fyi
web-platform-tests dashboard
100
Pavel Laptev @pavellaptev.bsky.social · 12/02/2026
Exciting!
000
Pavel Laptev @pavellaptev.bsky.social · 11/02/2026
Need some CSS in State of JS
000
Pavel Laptev @pavellaptev.bsky.social · 06/02/2026
I like that's super easy to learn and use new @gitbutler.com CLI
010
Pavel Laptev @pavellaptev.bsky.social · 06/02/2026
There’s a new variable picker in the latest Chrome DevTools, nice
000
Reposted by Pavel Laptev
GitButler ⧓ @gitbutler.com · 05/02/2026
Now GitButler has a CLI! Stacked and parallel branches, smartlog, simple commit editing, easy undo, json output to every command. And it just works in any Git repo. Check it out: blog.gitbutler.com/but-cli
blog.gitbutler.com
Introducing the GitButler CLI
Now in technical preview, the new GitButler CLI brings all the power of GitButler to your command line
3425
Pavel Laptev @pavellaptev.bsky.social · 02/02/2026
a UI that speaks my language. #keyboard-tools
010
Pavel Laptev @pavellaptev.bsky.social · 02/02/2026
Cool! There is also a nice article by Jonatan medium.com/flat-pack-te...
medium.com
IKEA – a house full of cards
Cards are everywhere – in dashboards, mobile apps, and retail sites. But building one that feels right? That’s not so simple.
030
Pavel Laptev @pavellaptev.bsky.social · 22/01/2026
Hey! Finally can share a font I was working on for GitButler. We wanted a typeface that combined the precision of code with the beauty of magazine layouts. The result is a high-contrast, geometric and distinct But Head! 🔗 Story & Download: gitbutlerapp.github.io/but-head
gitbutlerapp.github.io
But Head | A Free Typeface
3369
Pavel Laptev @pavellaptev.bsky.social · 20/01/2026
Unscheduled keyboard maintenance due to a Coke spill. Luckily it was sugar-free. Taking it apart gave me a new appreciation for the Worklouder engineering though.
030
Pavel Laptev @pavellaptev.bsky.social · 28/12/2025
I just realized that I don’t need to duplicate `width` and `height` for square elements. There are 3 ways to handle equal dimensions: The Good, The Bad, and The Ugly.
030
Pavel Laptev @pavellaptev.bsky.social · 25/12/2025
🧵 Gemini vs. PC Building: It started with a simple request to build a PC layout on my sketch… and it gave me absolute gibberish. Then I double-checked in a new chat, and it admitted "yes, it's an AI bro".
100
Pavel Laptev @pavellaptev.bsky.social · 16/12/2025
Safari, Firefox now has it. Waiting for Chrome to drop the required colorspace from color-mix(). It's time :-)
github.com
Using `color-mix()` without specifying a colorspace · Issue #1166 · web-platform-tests/interop
Description color-mix() can now be used without a colorspace. It should default to the oklab colorspace. This is better than the status quo where most developers will just add in srgb which is the ...
020
Pavel Laptev @pavellaptev.bsky.social · 15/12/2025
Btw, I just added some fixes and features to the SVG Hell Yeah! plugin. - Added missing collection names - the ability to add a prefix and replace symbols on export www.figma.com/community/pl...
000
Pavel Laptev @pavellaptev.bsky.social · 14/12/2025
Just watched the Twilight Zone episode that definitely inspired Final Destination. It’s called 'Twenty-Two', 64 years old and holds up! 🤯
000