Deprecated: Return type of I::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 62

Deprecated: Return type of I::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 91

Deprecated: Return type of I::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 71

Deprecated: Return type of I::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 101

Deprecated: Return type of I::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/i.php on line 53

Deprecated: Return type of Collection::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/public/kirby/toolkit/lib/collection.php on line 80

Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /home/public/kirby/toolkit/lib/url.php on line 135
One Tap Less | What's new on One Tap Less

What's new on One Tap Less

Apple's keynote was shipshape and didn't spark much controversy — until Ben Thompson published this, so I want to share the latest improvements I made to the site, poorly uploaded one day before the keynote, but as any developer will tell you, You gotta ship it, because there will always exist something to tweak and a feature to include. I embraced a long weekend and released the update and I hope you like them.

I'm proud to maintain a fast website, but I hope you noticed it is even faster now. Google did. This site uses something called critical CSS the first time you load it. This means I inline the styles required to paint the above the fold, the content you see without scrolling. Loading a stylesheet halts the rendering of the page, therefore, you won't get any text until it is completely loaded. This approach saves a request and reduces the CSS by about 70%. The full stylesheet is loaded asynchronously and applies the remaining styles. In your following visits, a cookie will claim that you have the CSS in cache and skip the critical CSS. For more on critical CSS, check this article by the Filament Group.

I neglected Twitter and bookmarks for too long but now every post should have a Twitter Card. They're dynamic and will include large images if the article has any otherwise use the site's icon. Talking about icons, they're finally a reality: you can bookmark this site in most Apple devices and you shall get a pretty icon to embellish your home screen.

Analytics tells me there's a good chance you're reading this from your mobile device, therefore, if it ain't your first time around, you noticed the navigation changed and that the search bar is back to relevancy. I plan a few more sections to the site that will increment the navigation, so this version should support them with little effort. As always, the web is not set in stone: if it doesn't work I just go back to the drawing board and think of something else. I overlooked a task in my to-do list to create a <select> at the bottom of the page in case you turned Javascript off, but it is coming.

Talking about Javascript, you probably saw footnotes like these1 around the web, they're built with a jQuery plugin named bigfoot2. I wrote my own version, littlefoot, in pure Javascript and no customization at all. This halved the plugin's size and allowed me to dump jQuery for good.

I still didn't use this anywhere, but I built a Kirby tag to embed actions into articles, henceforth, actions will pop out and you'll be able to find them effortlessly as you scan the page to satisfy your automation craving3. This is how these embed actions look like:

Add Symbols and Emojis

Searches for your selection on Symbolay, returns to Drafts after you copied a symbol and places it by your cursor. Requires the Clipboard Cursor utility action.

Get Action

Most changes happened to the Actions' page. I replaced the dropdown to move across sections for an inline representation to find out if you would use it at all. Every action gained its own page so you can send them to a friend or save the link to install later. The requirement box gained a tiny label to explicitly state what it points out to. You can access the article where the action was featured by clicking the icon next to the action's title.

My favorite new feature is at the bottom of the Actions' page: you can now submit your own actions to the site, just paste the link to the action4 and it will fetch the data from your action. Your name5, e-mail and Twitter are stored in your device's localStorage. Your name and Twitter handle are used for proper attribution and will be publicly displayed if I approve your action. Your e-mail is never shared and would only be used if I must contact you privately.

So if you have an action you're proud of, send it this way so we can build a directory with the best actions out there.


  1. Move along, this was just an example. 

  2. Bigfoot is supposed to get a pure Javascript version soon, dropping the jQuery requirement, which is great because some sites, like Six Colors, load jQuery mostly to use this plugin. 

  3. Unfortunately I doubt they'll look good in your RSS reader. 

  4. Currently supports 1Writer, Drafts, Workflow, Editorial and Launch Center Pro. 

  5. Use any name you're comfortable with, doesn't have to be your name of birth, I'm not Facebook.