foobartel.com :: All Posts
Kirby 4
A Note in the Calendar
SVG Repo
The Punctuation Guide
Tiny Helpers - Free, Single-Purpose Tools
Bionic Reading
Predatory Community
Priority Hints
CSS Contextual Spacing
Reluctant to New Things
Ahead of The Curve
Better Writing - Wrong Side of Write
The Web AIM Million
… when you're invisible - Webrocker
103 Bits of Advice I Wish I Had Known
A Note on Notes
Open Source Alternatives
2222222
Free for Developers
Better Text Decoration With CSS’ text-underline-offset
Starship Prompt - Displaying the GIT Branch in Terminal
How Flexbox Works
Better RSS Titles
Good Read: NFTs are so, so dumb
Finding the Currently Focused Element
A Sunny Second
Hello Twenty Twentytwo!
The Third Web
Bartender - A macOS Menu Bar Utility
The CSS :has() pseudo-class, aka Parent Selector
Taba11y - Tab Order Chrome Extension
iOS 15, AirPods Pro and the Boy Who Cried Wolf
The Fonts Top 1000
Unregistering a Service Worker
Understanding Color Blindness
Adding a JavaScript Event Handler (with addEventListener) to Multiple Elements
My Custom CSS Reset
The Top 10 Web Design Mistakes of 2021
Tool Tip: Syncthing
Return to Alfred
Replicating Kirby content with rsync and cron
Web Vitals Patterns
2021 Epson International Pano Awards
Deleting the Kirby Page Cache After Deploying with DeployHQ
Volume Controls Reimagined
OpenMoji - An open source icon library
Color And Contrast
The Provenance Framework
Removing Empty Array Keys in PHP
Kirby 3.6 Image Block with Support for webp, avif & Lazy Loading
Just Another Week of Quarantine in Hong Kong
Why Web Performance Matters for Your Business
The CSS :has() Selector
Preload, Preconnect, Prefetch
Pantone Color Hong Kong Tram Green
Going First
The Performance Impact of Browser Extensions
Tool Tip: Renaming Files with Name Mangler on macOS
Sans Bullshit Sans
Accessibility Tooling
5 Most Annoying Website Features as a Blind Person
Personality
Kirby 3.5.6
All You Need to Know About Image Optimisation
Previewing Local Domains from Remote Devices with ngrok
Kirby 3.5.4
Tweetbot Synch Issues
Accessible Front End Components
How to Favicon in 2021
Geldingadalur Volcano Live Feed
Adventures in Typography
Coding Fonts
The Webmentions Are Back
Beautiful Image Placeholders
Captain Edward Font
Design Horoscopes
Buying Creative Time
Writing Good Alt Text
That Inner Doubt
Clearing a classList (with the JavaScript Spread Operator)
Diving into the ::before and ::after Pseudo-elements
And That Was That
Return
Work with CSS, Instead of Against It
Escaping the Virus
Targeting Selectors Without a Class Attribute
Native Lazy-Loading as HTML Standard
A New Editor Typeface: JetBrains Mono
Progressive Enhancement as Approach and Mindset
What A Blog Is
CSS Overflow-x and the Clipping of Borders
02022020
What They Say
Kung Hei Fat Choi - To The Year of The Rat
Kirby 3.3.3-rc.1
Merging Kirby Collections
Digital Gardens
Kirby 3.3.2
The new CSS :is() pseudo-class
Encoding mailto: Subject Lines
Accessibility & Inclusive Components
Dealing with Ads in 2020
Synchronising Directories with Unison
Who Can Use - Color Contrast Check
City View
Typographic Illusions
Sticking With The Defaults
The Beautiful Side
Write It Down
AirPods Pro Page Performance
Using The Platform
Kirby 3.3.0-rc.2
Pixelated Population
The Last Boat Sunset
From Kirby to Twitter
Upgrading to macOS Catalina
Owning Your Content - A Love Letter to My Website
Great Support Makes Loyal Customers
HEX Color Codes Explained
Quick-Fixing macOS Audio Woes
Affecting Power Usage
Images to Kirby Content Directories with Bash
Redacted
Dev Lids
The Effect of CSS Filter Grayscale
Conference Talks for The Rainy Days
Accessibility Insights
Resizing on Click - Without JavaScript
Sorting an Array in JavaScript
Helpful CSS Filters
A Look at Average Page Load Time
Lazy Loading Inline Frames
Optimised Kirby Content Images
State-Controlled Social Media
Media Queries, Frameworks & An Eye for Design
Modern Web Development on the JAMstack
Implementing Better Open Graph Article Information
Kirby Panel Custom Colors on Localhost
The Fading Trust in Technology
Dropbox Alternatives
Dato - A Better Menu Bar Clock
Eco-Yeah
On Taking Notes
Faceless Paintings
CSS-in-HTML
Thinking of “You Got This”
Resource: Stupid .htaccess Tricks
Welcome Brid.gy
On Conference Proposal Rejections
Undoing GIT
Testing Webmentions
TikTok, Who’s There?
<hr>: The Thematic Break Element
Desktop Resizing on macOS
Oh The F’ing Rains
Introducing TILRS
Image Optimisation Tools
SVG to PNG Export Automation
Exponential Notation for CSS Property Values
Layering Objects in Apple Keynote Templates
Learning Styles
Running a Local Server
Kirby Snippets in V3
Content-Security-Policy and Base 64 Images
Of Logos, a Cucumber, and Craftmanship
Design, Trust and Limited Creativity
Staying Curious at Beyond Tellerrand 2019
Petbarn Identity Redesigned
“Ethics” and Ethics and the Right Thing to Do
Faster Cursor Movement in Terminal
Stopping the Dark Patterns of Booking Sites
Better Terminal Navigation with Markers
Batch Editing Kirby Content Files
Coming Back to Social
It’s Getting Dark Out There - A Thought on Dark Mode
Inviting Conference Speakers
Old Goodie
Loading Web Fonts
Resolving CSS Gridlock
The Problem With Full Stack
Leading Zeros in CSS Values
Long Live the iPhone 7
December
Breaking Things, Fixing Things…
Deep Work & Scheduling Work Time
All That Data
When Things Go Wrong
Sticky Things
Semantic Components
CSS-in-JS, Kindness and Evolution
Productivity and Complexity on the Web
On Tracking
#cfpwomen
Make It The Best You Can
Better CfP Feedback
GDPR is Great. And Sucks.
GDPR and the Deadline Race
Take Your Stance
Instagram & Target Ads
Remember Sass?
A Better Feed
Compressive Images
Taking Responsibility for the Things You Build and Run
How Fast Is Amp Really?
Happy 29th
This Content is Not for You…
Respecting Users
Local .dev Domains and the Mysterious HTTPS Redirect
Social Media & Society
A Change is Coming
Personal Views from Team Colloq
Tech Reputation
For the Open Web
Launching Colloq
Deleting multiple GIT branches
Feature Iteration Fatigue
Improving Your Newsletter's First Impression
iCloud Calendar Spam - Part 2
iPhone & iCloud - Which iFind very annoying sometimes
The Value of Attending Conferences
iCloud Calendar Spam
Oh, Apple or Having Fun Installing a New iPhone
Shopify Theme Kit
Shopify Theme Kit Time Out
Shopify: Achieving Collections in Collections
Kirby Panel Issues and MAMP Pro
Gulp CSS Assets for Shopify
Late to the Gulp Party
The Good, Old, Rusty Crank
"M" as in Making
Embedding Tweets in Kirby’s Markdown
The 13-Year Itch
Component Libraries
Facelifting
Better Writing
Form Function Class 6
Hong Kong CodeConf 15
Broken Glass
A Kirby Scratchpad
Git Commit Wildcard
Outside the box
RegEx'ing
Going Full Kirby
Google Web Light – Speeding Up the Mobile Web
Chrome DevTools, RemoteDebug & BrowserRemote
How to undo (almost) anything with Git
New Adventures with Grunt UnCSS
Full Mobile Throttle
To A Happy & More Secure 2015!
Missed in HKG
Harbour Front Monthly #4
Perf Rocks!
The Difficult Has Become Too Easy
Harbour Front HK Monthly #3 (and #3.5)
Escaping an Issue with Grunt "string-replace"
Mac OS X Yosemite Upgrade & PostgreSQL
Mac OS X: Open With… Duplicates
Design for Mobile: Why We Need to Think Beyond the West
Harbour Front HK Monthly #1
Grunt-processhtml Multiple/All Files in a Directory
Front End, Front-End or Frontend?
Front End Best Practices
A Different Mobile Navigation Pattern – Made in China
The Ultimate* Guide to Conference Speaking
On The Existence of Slow(er) Mobile Networks
Harbour Front Web Days
Getting Ready to Grunt
Talks from Chrome Dev Summit 2013
Automating Front-end Workflow
Git Cheatsheet
Introducing "layout boundaries"
A Change of Schedule
Spotlight & Indexing on OS X
Resuming curl Downloads
Your Work Is A Gift
Spec Work — Now 100% More Responsive
Notes from "Lean UX Agility Through Cross-fund Collaboration" by Jeff Gothelf at UXHK 2013
Notes from "Design Management And Continuous Design" by Josh Seiden at UXHK 2013
Notes from "Redesigning Businesses" by Timothy Loo at UXHK 2013
Responsive Performance Benchmark Comparison
State of The Internet Report – Q3 2012
LTE Tethering on ThreeHK
Mobile Sign Up Forms Must Die!
To An Awesome 2013
The Evolution of The Web
Slides from My Talk "Open Device Labs for A Better User Experience' at The Hive in Hong Kong
The Mobile Factbook 2012
jQuery Performance Issues With Show/Hide
The Web We Lost
Notes On My Talk "Responsive Web Design & Workflows for Today's Web' At The Hive In Hong Kong
Mailchimp's Template Import Behaviour
Blue Beanie Day 2012
Mountain Lion's Screensaver Freeze
Getting Your Digital Sh*# Together – Part 2
Testing Mobile Performance With Mobitest
Responsive Web Design Workflow With webEdition CMS
The Hong Kong Open Device Lab
Getting Your Digital Sh*# Together – Part 1
Tame Your Pixels With Pixel-fitting
Mountain Lion's "Save As…' Is Broken
Speed Up Your Website With Google's PageSpeed Service
The Mobile Shift – The End of Small Studios?
Opening Notification Center Mentions And Direct Messages in Twitter.app
Introductions To LESS And Sass
OS X 10.8 Mountain Lion
WP Admin Bookmarklet
Environmental Decisions
The Future Will Be Right There
Google Recommends Responsive Design for Smartphone-Optimized Websites
Testing Your Responsive Designs
The New Web Design Guidelines
Racing The Streets of San Francisco
Webkit Inspector Supports Responsive Development
A Better Drag And Drop
The Webkit Inspector Demystified
Improving Text Manipulation on The iPad
Speed Up Your App
Newsletter Design Issues with Outlook 2010
Removing Files via SSH
Owning A Majority
The Innovator's Patent Agreement
The Power of Viral
TOS Well Done
Adaptive Images
How Images Are Downloaded
Font Awesome
20 Years of Awesome
It's Time To Get Back On It
The Power of External Power Sources
OSX Lion Special Characters: A Special Place
Welcome My New Workhorse – A MacBook Air 2011
The Mac App Store
Happy New Year