Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    T

    Tobias Ahlin

    tobiasahlin.com · Personal blog · on HN since 2012

    Tobias Ahlin, a designer and developer, writes about CSS techniques, animation, and moving from jQuery to vanilla JavaScript, and made the SpinKit spinners.

    Visit blogHN submissions
    Web DevelopmentDesign & UX
    What HN says

    HN commenters like the blog and link SpinKit, his collection of CSS loading spinners, which at least one commenter used in their own project.

    Stats for nerds
    18HN people shared it
    13linked in comments
    401story points
    Jul 2024last shared
    2014people per year2024

    Top posts on HN

    1. 1
      CSS animated loading indicators
      3 people · 327 points · first shared 2013 · 70 comments on HN
    2. 2
      Skeumorphism and storytelling
      1 person · 56 points · first shared 2012 · 11 comments on HN
    3. 3
      Cheat sheet for moving from jQuery to vanilla JavaScript
      2 people · 6 points · first shared 2019 · Discussion on HN
    4. 4
      Common Mac OS X Cursors
      1 person · 2 points · first shared 2023 · Discussion on HN
    5. 5
      Losing to Bureaucracy & Complexity in Adobe CS
      1 person · 2 points · first shared 2012 · Discussion on HN
    6. 6
      CSS masonry with flexbox,:nth-child(), and order
      1 person · 2 points · first shared 2021 · Discussion on HN
    7. 7
      Selecting previous siblings with CSS:has()
      2 people · 1 points · first shared 2023 · Discussion on HN
    8. 8
      Responsive type scales with composable CSS utilities
      1 person · 1 points · first shared 2023 · Discussion on HN
    9. 9
      Meaningful Motion with Action-Driven Animation
      1 person · 1 points · first shared 2019 · Discussion on HN
    10. 10
      Moving along a curved path in CSS with layered animation
      1 person · 1 points · first shared 2016 · Discussion on HN

    What HN people wrote when they linked it

    • dmitriidJun 2021

      > You're incoherent.

      I am very coherent

      Ok. Let's be very coherent. Let's talk about one single thing.

      Not so long ago Twitter redesigned their website. Mind you, Twitter is far from being a complex app UI-wise. It's basically text plus images. All they did was re-implement infinite scrolling using a well-known paradigm called a virtual list (or a virtual table).

      Here's a small video of their original result: https://grumpy.website/post/0RQvmdNmN

      Note: I implemented a similar functionality in C++ Builder circa 2004 and in Qt circa 2005. This entire functionality is either available right out of the box, or will take a first-year CS student a day or two to implement by following a simple tutorial (because virtual lists are a thing available in all UI kits since probable early 80s).

      It took Twitter close to a year to fix this functionality.

      Now, tell me: why is it that such a powerful platform:

      a) doesn't have this functionality out of the box

      b) requires a company the size of Twitter almost a year to implement somewhat satisfactorily

      c) why didn't Twitter just "go ahead and download a package" that implements this trivial primitive functionality that is so readily available, once again, everywhere else.

      From here on we can discuss all the other trivial and primitive things that require you to depend on someone to spend untold man-powers to implement them in the "so powerful a platform".

      And from there on we can move on to discussing why these trivial and primitive…

    • emmacharpJul 2024

      You may have to group elements, yes. But generally speaking, they already are grouped in some logical sense. And you can do a lot now with grid, without having to wrap child elements in containers. It's not absolutely separated but to great degree it is (in my experience at the very least).

      And yes, you can select previous elements with :has(). Here is an article about it: https://tobiasahlin.com/blog/previous-sibling-css-has/

    • lukasmApr 2014

      This is why I like HN. I was about to build something similar. I choose the same color and even picked the same spinner http://tobiasahlin.com/spinkit/ :)

      Kudos. I'd like to give a try with my mp3 library. Maybe just add it to README?

      I had two bugs.
      - header bg was not loaded
      - there was a high pitch sound (defo not part of the song)

    • stankotDec 2019

      I really love this one:
      https://tobiasahlin.com/

      Shameless self promotion (my blog):
      https://muffinman.io/

      And of course, Daring Fireball:
      https://daringfireball.net/

    • tyingqFeb 2017

      A collection of CSS spinners: https://github.com/tobiasahlin/SpinKit

      Demo: http://tobiasahlin.com/spinkit/

    Related

    WebKit Blogwebkit.org723 people

    Face ID and Touch ID for the Web

    WebKit Blog
    Company · last shared 2026
    Atomic Spinspin.atomicobject.com240 people

    Do you really need Redis? How to get away with just PostgreSQL

    Atomic Spin
    Company · last shared 2026
    Alexis Kinglexi-lambda.github.io172 people

    Parse, Don’t Validate

    Alexis King
    Personal · last shared 2026
    Raph Levienraphlinus.github.io128 people

    Thoughts on Rust bloat

    Raph Levien
    Personal · last shared 2026
    Wingologwingolog.org237 people

    FFS SSL

    Wingolog
    Personal · last shared 2026
    Tristan Humethume.ca93 people

    Teleforking a Process onto a Different Computer

    Tristan Hume
    Personal · last shared 2026
    Arseny Kapoulkinezeux.io38 people

    Eight Years at Roblox

    Arseny Kapoulkine
    Personal · last shared 2026
    Niko Matsakissmallcultfollowing.com221 people

    Towards a Rust Foundation

    Niko Matsakis
    Personal · last shared 2026