Lionel Péramo

@lionel-peramo.com

Senior Fullstack Dev Architecting high-performance, accessible, and eco-friendly web. Creator of OTRA (PHP) & EcoComposer. Writing about web perf, CSS, and modern APIs at lionel-peramo.com. Also composing melodic landscapes.

I would really appreciate a job since I have about 30 days left to survive. Nothing has worked out for a while now. Been living in hostels in SE Asia for over a year. Full stack js, Staff Engineer or PM, react, astro. Many senior positions, consulted for Apple Wireless on their data dashboards, etc

Screenshot of my bank accounts. $512 in checking. $22k charged on my credit card.

You can build a native mobile menu using zero lines of JavaScript. Modern CSS features handle complex interface states natively. The scope rule with the to keyword creates a donut scope. It isolates styles between the parent and the active menu item. 1/3 #CSS #WebDev #Frontend

Writing media query breakpoints can be long and repetitive. Custom Media Queries are coming to CSS to fix this issue. The custom-media rule allows you to define reusable breakpoint names. You define your screen sizes once and reuse them everywhere. 1/3 #CSS #WebDev #Frontend

Infographic showing CSS code for "Custom Media Queries". The first block defines a custom query named "--modern" for devices supporting color or hover. The second block shows its usage combined with a screen width greater than 1024px. The image then displays the equivalent standard CSS code for comparison. At the bottom, portrait of Lionel Péramo.

Native CSS scoping is now supported across all major browsers. The scope rule allows you to define where a style starts and stops. This creates a donut scope that prevents styles from leaking into sub-components. It protects nested elements from style side effects. 1/3 #CSS #WebDev #Frontend

Educational graphic titled "Scope in CSS" comparing two coding methods. The top block shows a complex CSS selector using ":not()" to target a title while avoiding nested elements. The bottom block shows the modern solution using the "@scope" rule, defining a clear boundary from ".card" to ".content". This demonstrates how native scoping simplifies code and prevents style leaking.

CSS is adding two new layout properties called column-wrap and column-height. They come from the CSS Multi-column Layout Level 2 specification. column-height sets a maximum height for text columns. column-wrap defines if content wraps into a new row of columns. 1/3 #CSS #WebDev #Frontend

Safari and Firefox introduced new CSS pseudo-classes for media elements. They allow you to style video players without using JavaScript. You can now change how a player looks based on its playback state. This makes custom media players faster and lighter. 1/3 #CSS #WebDev #Frontend

Educational graphic titled "New media CSS pseudo classes" on a forest background. It lists 7 new CSS pseudo-classes: :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-controls. Below the list, a code snippet shows how to display a loading spinner using the :buffering state in CSS. The bottom of the image features Lionel Péramo’s name and profile photo.

CSS is introducing a native inline if function. It allows you to write conditional logic directly inside property values. You no longer need complex CSS hacks or extra classes. The browser evaluates the condition and applies the matching value immediately. 1/3 #CSS #WebDev #Frontend

CSS code comparison titled 'CSS If'. The 'Before' section shows fragmented logic using separate @container style queries to override display and background. The 'After' section demonstrates unified logic using the new CSS if() function to handle conditions for display and background properties directly within a single rule.

Loading websites is often slow when loading full style files on every page. Compression Dictionary Transport solves this problem. It is an HTTP standard that compresses web files using a reference dictionary. It works for CSS, JavaScript, HTML, and JSON payloads. 1/2 #WebPerf #WebDev #CSS

This code example shows how to make websites load faster with a dictionary file. First, the server marks a base CSS file as a dictionary. Second, the web page registers this base file in HTML. Third, when opening a new page, the browser downloads only the code that is different. This reduces file size and makes page navigation faster.

Developers often use nested wrapper divs to combine CSS animations. This happens because standard animations overwrite each other. The CSS property animation-composition solves this problem. It allows you to stack multiple animations on a single element. 1/3 #CSS #WebDev #Frontend