Advertisement · 728 × 90

Posts by Soren

another good example of `tabular-nums` in action. must have for columns of right-aligned numbers (tables, invoices, dashboards).

normal table's columns have ragged left edges as digits swap between narrow ("1") and wide ("0", "8") glyphs.

where tabular stays perfectly flush ~

1 month ago 4 2 0 0
Video

`tabular-nums` should be the default for any number that updates ( timers, counters, prices, percentages, scores, live data etc ).

you can enable this tnum OpenType feature using the CSS property `font-variant-numeric`.

.tabular-nums {
font-variant-numeric: tabular-nums;
}

1 month ago 12 4 0 1

another good example of `tabular-nums` in action. must have for columns of right-aligned numbers (tables, invoices, dashboards).

normal table's columns have ragged left edges as digits swap between narrow ("1") and wide ("0", "8") glyphs.

where tabular stays perfectly flush ~

1 month ago 4 2 0 0
Video

`tabular-nums` should be the default for any number that updates ( timers, counters, prices, percentages, scores, live data etc ).

you can enable this tnum OpenType feature using the CSS property `font-variant-numeric`.

.tabular-nums {
font-variant-numeric: tabular-nums;
}

1 month ago 12 4 0 1
Video

do you click on `mailto` links? maybe some of you do. but i’ve seen many ( me included ) prefer to just copy the email address instead.

this impl satisfies both groups:
– click the email address for the `mailto` link
– or click the icon to copy to clipboard

1 month ago 4 1 0 0
Video

do you click on `mailto` links? maybe some of you do. but i’ve seen many ( me included ) prefer to just copy the email address instead.

this impl satisfies both groups:
– click the email address for the `mailto` link
– or click the icon to copy to clipboard

1 month ago 4 1 0 0

"w/o prediction cone" VS "w/ prediction cone"

1 month ago 1 0 0 0
Advertisement
Video

prediction cone/safe triangle — this is something we take so much for granted in modern day native UIs.

but it's not the same for most web-based dropdown menus. it took me a while to implement this here.

Amazon, macOS, Windows all implement some version of this.

1 month ago 5 1 0 1
Video

prediction cone/safe triangle — this is something we take so much for granted in modern day native UIs.

but it's not the same for most web-based dropdown menus. it took me a while to implement this here.

Amazon, macOS, Windows all implement some version of this.

1 month ago 5 1 0 1
Video

a "Table of Contents" component inspired from devouringdetails.com .

tho this is a bit simpler version for my blogs ( you can see them here sorenblank.com/writing ).

you can try it from here: sorenblank.com/writing/scroll-tracking-table-of-contents

1 month ago 2 1 0 0
Video

ever seen these small dead zones in a list of closely stacked elements? im seeing this more often.

this can be easily fixed using css `::before` pseudo element on each element:

::before {
content: "";
position: absolute;
inset: -10px 0; /* extends 10px vertically */
}

1 month ago 3 1 0 0
Video

SVG is really fun! here my recent exploration of svg dashed animations for tryarchitect.

`stroke-dashoffset` being used here to animate the offset effect. can be bit tricky.

@keyframe {
from { stroke-dashoffset: 0; }
to { stroke-dashoffset: ${-dashCycle}; }
}

2 months ago 6 1 0 1

SVG dashed animation on buttons ~

i've been experimenting how i can use this effect in different ui components. it goes well with buttons i think.

looks pretty seamless when you are using it along some transform movements of the component.

2 months ago 3 1 0 0
Video

ever seen these small dead zones in a list of closely stacked elements? im seeing this more often.

this can be easily fixed using css `::before` pseudo element on each element:

::before {
content: "";
position: absolute;
inset: -10px 0; /* extends 10px vertically */
}

1 month ago 3 1 0 0
Advertisement
Video

a "Table of Contents" component inspired from devouringdetails.com .

tho this is a bit simpler version for my blogs ( you can see them here sorenblank.com/writing ).

you can try it from here: sorenblank.com/writing/scroll-tracking-table-of-contents

1 month ago 2 1 0 0
Video

How I optimized video assets & perceived performance:

- Added tiny ~30px base64 blurred inline <img> placeholders (instant load!)
- Moved videos from @nextjs /public to @Cloudflare CDN
- Served .webm with .mp4 fallback via <source>

1 month ago 2 0 0 0

SVG dashed animation on buttons ~

i've been experimenting how i can use this effect in different ui components. it goes well with buttons i think.

looks pretty seamless when you are using it along some transform movements of the component.

2 months ago 3 1 0 0
Video

SVG is really fun! here my recent exploration of svg dashed animations for tryarchitect.

`stroke-dashoffset` being used here to animate the offset effect. can be bit tricky.

@keyframe {
from { stroke-dashoffset: 0; }
to { stroke-dashoffset: ${-dashCycle}; }
}

2 months ago 6 1 0 1

my post is a bit misleading. i am using 1 useState to save the state whether the sidebar is open or not. tho i could have done it even without any state ngl.

my rule is, if something can be done in css, i do it in css. period. just keep in mind about the browser support.

2 months ago 0 0 0 0

yeah. it's only supported on chromium for now. generally if something can be done in css, it should be done in css. i think that's the most performant approach.

2 months ago 0 0 0 0
Video

so much you can do in css using pseudo classes. used `:has` pseudo class to make the full hover animation here.

for hover state im doing `:has(*:is(.sidebar-icon-trigger:hover`

made only using css. no js listener used. took me longer than i thought it would.

6 months ago 114 9 4 3

the sidebar icon now matches the state or the state it will go to :33 css is nice ngl.

5 months ago 3 1 1 1
Video

smooth radius transform accordion component using css. no framer motion used here.

for auto height transition using css `grid` inspired by @jhey.dev. when collapsed `grid-rows-[0fr]` and expanded `grid-rows-[1fr]`.

and that with `ease-out-cubic` with `300ms` makes it feel just perfect ~

5 months ago 7 1 0 0
Video

3d book component. the static hover book is a pure css approach. no javascript used here. each page has a fixed rotation defined to it.

each page has a fixed rotation defined. pages are stacked with absolute positioning and all rotate from `origin-left` (the spine).

4 months ago 7 1 1 0
Advertisement
Video

for such case where the request is almost instant ( <100ms ), jumping directly to a `success state` is much more cleaner than adding artificial delay imo.

imo loading states are generally ambiguous and means nothing without a proper `success state`.

3 months ago 4 1 0 0
Video

squircles feels nice. it's my first time trying the experimental css `corner-shape` property.

you can just use in css `corner-shape: squircle` to make the squircles. had enough fun working on this control panel component.

note: this is only supported on "chromium" for now.

2 months ago 2 1 0 0
Video

ever wonder what makes `squircle` different? its the mechanics behind it.

css `corner-shape` maps to superellipse (Lamé curve) exponents.

superellipse(n): n=1 → round, n=2 → squircle, n=0 → bevel

higher n = flatter sides (squareish but smooth). squircle is the sweet spot.

2 months ago 1 1 0 0
Video

made a CSS `corner-shape` playground. you can try all the weird shapes like squircle, bevel, notch etc.

also a nice way to visualize how the css `superellipse` function actually works.

2 months ago 1 1 0 0
Video

made a CSS `corner-shape` playground. you can try all the weird shapes like squircle, bevel, notch etc.

also a nice way to visualize how the css `superellipse` function actually works.

2 months ago 1 1 0 0
Video

ever wonder what makes `squircle` different? its the mechanics behind it.

css `corner-shape` maps to superellipse (Lamé curve) exponents.

superellipse(n): n=1 → round, n=2 → squircle, n=0 → bevel

higher n = flatter sides (squareish but smooth). squircle is the sweet spot.

2 months ago 1 1 0 0