Installing OpenBSD on Linveo KVM VPS 2024-10-21 I recently came across an amazing deal for a VPS on Linveo. For just $15 a year they provide: AMD KVM 1GB 1024 MB RAM 1 CPU Core 25 GB NVMe SSD 2000 GB Bandwidth It’s a pretty great deal and I suggest you look more into it if you’re interested! But this post is more focused on setting up...
Vertical Tabs in Safari 2024-09-26 I use Firefox as my main browser (specifically the Nightly build) which has vertical tabs built-in. There are instances where I need to use Safari, such as debugging or testing iOS devices, and in those instances I prefer to have a similar experience to that of Firefox. Luckily, Apple has finally made it fairly...
Build and Deploy Websites Automatically with Git 2024-09-20 I recently began the process of setting up my self-hosted1 cgit server as my main code forge. Updating repos via cgit on NearlyFreeSpeech on its own has been simple enough, but it lacked the “wow-factor” of having some sort of automated build process. I looked into a bunch of different...
Burning & Playing PS2 Games without a Modded Console 2024-09-02 Important: I do not support pirating or obtaining illegal copies of video games. This process should only be used to copy your existing PS2 games for backup, in case of accidental damage to the original disc. Requirements Note: This tutorial is tailored towards macOS users, but...
“This Key is Useless Now. Discard?” 2024-08-28 The title of this article probably triggers nostalgic memories for old school Resident Evil veterans like myself. My personal favourite in the series (not that anyone asked) was the original, 1998 version of Resident Evil 2 (RE2). I believe that game stands the test of time and is very close to a...
Perspective 2024-08-06 I recently read both Starting Hospice and No Salt posted on Jake’s blog and was quite moved. I don’t know Jake and have never met him - but his writing and shared experiences give a very real look into his mind and perspective. If you haven’t yet, I strongly recommend giving his site a read (or at the very least those two...
Setting Up Pi-Hole with Eero on Starlink 2024-07-24 A couple years ago I wrote about setting up a standard pi-hole server with eero WiFi but since that time I have swapped out my “cell tower” internet for Starlink. The speed improvement has been incredible and there is no looking back at regular, rural internet. With the switch over minor...
Dual Booting OpenBSD and Alpine Linux on a X220 ThinkPad 2024-07-10 I’ve always found it useful to run both OpenBSD and some form of Linux variation on my personal machines. Most times, I would default to running one OS on bare metal, while the other would simply live in a VM. This works okay but I prefer my operating systems having a “hardware...
Fixing Jekyll’s dart-sass Dependency on OpenBSD 2024-06-30 I recently wrote about working with multiple Ruby versions on OpenBSD which still works just fine, but I noticed a bug when trying to build a couple of my Jekyll projects locally: NotImplementedError: dart-sass for x86_64-openbsd7.5 For reference, these projects are being built with Ruby...
Building rbenv on OpenBSD 7.5 2024-06-02 I use Ruby (specifically with Jekyll) for a lot of my clubs/projects while using my personal laptop (X220 ThinkPad) which is runs OpenBSD. Since I recently upgraded to OpenBSD 7.5 I thought it could be helpful for others if I shared my process of building and using rbenv to install different Ruby versions....
Installing WordPress on NearlyFreeSpeech 2024-05-27 I recently went through the process of porting over my wife’s small business website (built off of WordPress + Woocommerce) from EasyWP to NearlyFreeSpeech. Although the process was fairly easy-going, I thought I would post my complete process here. That way, others who might wish to make the...
OpenBSD is a Cozy Operating System 2024-04-11 OpenBSD 7.5 running dwm on my X220 With the recent release of OpenBSD 7.5, I decided to run through my personal OpenBSD “installer” for laptop/desktop devices. The project is built off of the dwm tiling window manager and only installs a few basic packages. The last time I updated it was with the...
Please Make Your Table Headings Sticky 2024-02-23 I often stumble upon large data sets or table layouts across the web. When these tables contain hundreds of rows of content, things become problematic once you start to scroll… Your browser does not support the video tag. This should be a header Look at that table header disappear! Now, if I...
Website Backups with Apple iCloud 2024-02-16 My main work machine, an M2 MacBook Air, meshes really well with my iPhone SE (they are in the same ecosystem after all - duh!). Since both of these devices are Apple products, it makes sense that I pay for the optional iCloud service for extra storage. 50GB to be exact. I only need to bare minimum...
New Domain and Code Forge 2024-01-29 As you can clearly see, my site’s domain has switched over to btxx.org. This post will go into details about the reason for this URL swap (spoilers: I’m a cheapskate) - but that isn’t all. I have moved my personal git repositories over to my own hosting. I will explain the reasoning for that switch as well....
My Text Edtior is Not Open Source 2024-01-02 I’ve been using Sublime Text on and off for longer than I can remember. I think Sublime has been around since the start of my “real” career over 10 years ago, but I could be mistaken1. It certainly feels that long. And in that time I have never gotten upset with Sublime. I’ve never rage quit or ran...
Switching Things Over to ikiwiki 2023-12-17 I’ve done it again. My personal website is no longer generated with barf but is instead built on top of ikiwiki. The old RSS feed (btxx.org/atom.xml) still exists but will no longer receive updates. The new feed can be found on the bottom of the homepage (index.rss) Why a Wiki? I love the simplicity of...
Bringing dwm Shortcuts to GNOME 2023-11-02 The dwm window manager is my standard “go-to” for most of my personal laptop environments. For desktops with larger, higher resolution monitors I tend to lean towards using GNOME. The GNOME DE is fairly solid for my own purposes. This article isn’t going to deep dive into GNOME itself, but instead...
The X220 ThinkPad is the Best Laptop in the World 2023-09-26 The X220 ThinkPad is the greatest laptop ever made and you’re wrong if you think otherwise. No laptop hardware has since surpassed the nearly perfect build of the X220. New devices continue to get thinner and more fragile. Useful ports are constantly discarded for the sake of “design”....
Installing Older Versions of MongoDB on Arch Linux 2023-09-11 I’ve recently been using Arch Linux for my main work environment on my ThinkPad X260. It’s been great. As someone who is constantly drawn to minimalist operating systems such as Alpine or OpenBSD, it’s nice to use something like Arch that boasts that same minimalist approach but with...
Converting HEIF Images with macOS Automator 2023-07-21 Often times when you save or export photos from iOS to iCloud they often render themselves into heif or heic formats. Both macOS and iOS have no problem working with these formats, but a lot of software programs will not even recognize these filetypes. The obvious step would just be to...
Blogging for 7 Years 2023-06-24 My first public article was posted on June 28th 2016. That was seven years ago. In that time, quite a lot has changed in my life both personally and professionally. So, I figured it would be interesting to reflect on these years and document it for my own personal records. My hope is that this is something I could...
Improving Laptop Battery Performance on OpenBSD 2023-06-13 It is no secret that OpenBSD has poor battery performance on laptops. Although not as impressive as something like Alpine Linux or FreeBSD, you can tweak OpenBSD just enough to squeeze more life out of your machine’s battery. Our New Best Friend: ampd I won’t go into great detail about...
Running VSCode in Chromium on OpenBSD 2023-06-05 VSCode and its many variations are not available on OpenBSD. This doesn’t cause issue with many OpenBSD users, but those making the jump from Linux might miss access to such a popular editor. Lucky for us, there is a hacky workaround to solve this problem. VSCode in the Browser I tried my best to...
My Robotic Mower Woes 2023-05-19 A Brief Background I’m no stranger to robotic lawnmowers. When my wife and I moved into our rural home just over five years ago, we picked up the Husqvarna 450X Automower since I was far too lazy to manually mow my property and the cost was equal to that of a standard riding mower. It was a no-brainer. The...
Working with git Patches in Apple Mail 2023-05-11 Before we begin: You could likely automate this process in a more streamlined way, but for most use cases this workflow should be fine. I recently covered how to work with git email patches in Evolution on Linux, so I thought it would make sense to walk through a similar workflow for those using...
Stop Using Hamburger Menus (Sometimes) 2023-05-05 I recently tooted about my hatred of website hamburger menus which was met with a surprising amount of support from other users. It seems like most people don’t actually like hamburger menus. So why do we, as developers, keep using them in our products and designs? Is it our only option? Or is it...
Converting My X201 ThinkPad into a Slabtop 2023-05-01 I recently wrote about physically disabling the WiFi toggle switch on my X201 which was a fun “hack” to an annoying issue I was running into. Since then, the laptop has been running flawlessly. The only other minor issue I had was the poor display quality. The screen works perfectly fine but...
Applying Email-Based Git Patches in Evolution on Linux 2023-04-25 Users who work with git patches through email most likely use a terminal-based program such as aerc or mutt. CLI email clients tend to have built-in support for easily applying patches directly to their local repos. But what about people who prefer to use graphical email apps?...
Launching Sublime Text with dmenu on Alpine Linux 2023-04-13 Everyone seems to be running some version of VSCode as their main editor these days. But not me. I find VSCode to be too bloated for my needs - not to mention being built on top of electron instead of native code. I prefer running programs that don’t try to devour all of my machine’s...
HTML Dark Mode 2023-04-11 I wrote an article back in 2021 called The Lazy Developer’s Dark Mode where I explained how to implement a very basic “dark mode” by using the prefers-color-scheme CSS attribute. This stills works perfectly fine, and in fact there is a cleaner variation of this created by jacksonchen666: These 3 Lines of CSS Will Give...
Bypassing the WiFi Hardware Switch on the Lenovo X201 2023-04-02 I recently received a ThinkPad X201 to start using as my daily driver. I purchased the X201 to replace my existing X260. Although some might look at this as a “downgrade” in terms of specs and hardware, I would have to disagree. The X201 is an absolute masterpiece in laptop hardware...
Installing Ruby with RVM on Alpine Linux 2023-03-16 For some on-going projects I need to switch to different versions of ruby. Although there exist many step-by-step instructions on installing and configuring rvm for most Linux distros, there aren’t many focused on Alpine “daily drivers”. So this post is more or less a helpful document for my...
Stop Using Custom Web Fonts 2023-03-14 I recently read an excellent post by Manu Moreale titled A rant on web font licenses. I highly recommend you give it a read (it’s relatively short) since Manu makes a solid argument against existing font licenses. After reading, I found myself thinking about it throughout the rest of the day. I was trying to...
Replacing My Eero Mesh Network with Two Mangos 2023-03-09 It has been one week since I retired my Eero mesh network setup and replaced it with two Mango Mini Travel Routers (GL-MT300N-V2). There were some obvious reasons to make this switch but I was initially unsure how the overall performance on the Mangos would hold up compared to the “cutting...
Why I Stopped Using an External Monitor 2023-03-03 For the longest time I’ve been using a Samsung 27” UHD monitor as my main display. This monitor was connected to my ThinkPad X260 (in clamshell mode) through the official Lenovo dock. It wasn’t a bad setup, but I have since changed my ways. Instead, I now only use the X260’s panel as my main...
Dynamic Viewports with CSS 2023-02-08 I think it’s safe to assume most web designers and developers are familiar with the standard vh and vw parameters in CSS. These parameters are used for setting an element’s height and/or width, relative to the viewport (v) height (h) or width (w). For example: If I want my .box element to take up the entire...
My Coffee Maker Just Makes Coffee 2023-01-09 I had to replace my dual Keurig coffee maker twice over a period of five months. This occurred a year ago and these are my findings. Built to Fail? I followed the manufactor’s suggested cleaning schedule and took care of the appliances. My initial conclusion was that the product’s design wasn’t...
I Want to Suckless and You Can Too 2022-12-23 The Desire to Suckless While I have been happy with my previous desktop setup using Wayland on Alpine Linux, I just couldn’t shake the urge to fully embrace the suckless ecosystem. Although, this meant ditching Wayland and returning to X11, which is apparently the new “cool thing to hate” in Linux...
Adventures in Creating a Minimal Alpine Linux Installer 2022-12-08 Introduction I’ve made the switch to Alpine Linux as my main laptop/desktop hybrid workstation and I love it - warts and all. This post will follow my process building my Alpine Linux “installer” I used for this workstation, along with covering some bugs I found during my...
Building openring with Jekyll Build 2022-12-02 I think it’s great when bloggers post their own personal “reading list” of blogs they themselves follow. Whether this is a customized Blogroll page or footnotes in their individual articles, I find it really helpful to find more interesting content on the “indie” web. This isn’t a new concept by any...
Do You Have an Extra $10? 2022-11-23 As software designers and developers, think of all the little things that we spend $10 on. Maybe it’s a couple coffees over the course of a week. Maybe it’s a TV streaming subscription. Maybe it’s an impulse buy while we’re out shopping for groceries. Maybe it goes into a mason jar on top of the fridge, stored...
Embracing Slow Tech 2022-11-22 I’m writing this post on my “new” X260 ThinkPad running Garuda Linux through Wayland/Sway and it is going well so far. Setting things up was much easier than I initially expected. There were only a few minor tweaks I had to make, such as setting vim as the default EDITOR and installing a small collection of...
Migrating from GitHub to sourcehut 2022-11-14 It has taken a little bit longer than I anticipated, but I have finally started to port over all my personal open-source projects to sourcehut.org. I’ll get into the why and how momentarily, but first let’s take a look at all the impacted projects: Ported Projects Vanilla CSS The 1MB Club ...
Never Do Spec Work for Free 2022-11-07 Your time is valuable and shouldn’t be taken for granted. Let me say that again for the people in the back: your time is valuable and shouldn’t be taken for granted. Time is the most precious commodity we have as human beings, so never waste that time on free “spec” work. It’s never worth it. Ever. I’ve had...
Setting Up AdGuard Home with Eero 2022-11-04 Eariler this year I posted detailed instructions on setting up Pi-Hole with Eero and it seemed to help out a few people having troubles. With AdGuard Home recently popping up on the frontpage of HackerNews, I thought now would be a great time to post instructions of setting up that service alongside...
Avoiding Featurism 2022-10-14 I rather enjoy the term “featurism”. I came across this term while reading the wonderful article Why I don’t use Netscape, which the author credits to Bernd Paysan. Although it sums up the current “digital product” industry quite well the more specific terminology, creeping featurism, works better: creeping...
Simplifying the Craigslist Gallery 2022-10-03 This article was updated on October 11, 2022 I’m a big fan of craigslist.org and the overall UX used throughout their application. My own website is an ever-changing example of “brutalist” or minimalist design, so I’m always inspired by existing web apps out in the wild using the same principles. One...
RE: Creating a Simple HTML/CSS Notice Box 2022-09-22 I recently read Kev Quirk’s post, How to Create a Simple HTML/CSS Notice Box and loved the simplicity of it. I’m a sucker for using pseudo elements in creative ways but still managing to make them useful. Of course, this got me thinking as to whether or not the same style of box could be...
Installing Custom Fonts on Linux from the Command Line 2022-09-20 Installing custom fonts is a fairly streamlined feature on operating systems like MacOS and Windows. Linux, on the other hand, struggles to make this workflow easy for everyday users. Many newcomers tend to get frustrated with using the default “Fonts” application managers shipped...
Setup Jekyll from Scratch on a New Linux System 2022-09-19 Special Note: Credit needs to be given to user Achraf JEDAY for putting these instructions together on Stack Overflow (although his comments were targeting an older version of Ruby). This post is more for my own personal notes than anything else. I find myself constantly running into...
Don’t Make a Blog, Make a Brain Dump 2022-09-10 Not enough people have personal blogs. This is a point brought up by many of those passionate about the “golden age” in the timeline of the modern internet. A time when websites were more like a small collection of winding side-streets and flea markets. Today, it’s all shopping malls, hostile...
A Warning for New Designers: Avoid Dribbble 2022-09-08 Everyday a new designer begins their journey into the world of insert design industry here and it is magical! Having a fresh pair of eyes untainted from the current trends of the time can help improve design as a whole. Newbies can even teach new things to older, grumpier luddites (like yours...
Setting Up Jekyll on Windows 2022-09-02 I’ve recently been playing around with using Windows 10 as my daily operating system. So far, it has been going fairly well. Nothing will probably ever feel as “optimized” as running a Linux-based system but it works well for my current needs. Getting a Jekyll development environment setup was a different...
Looping Through Jekyll Collections 2022-08-12 I recently needed to add a couple new items to my wife’s personal recipe website (cookingwith.casa) which I hadn’t touched in quite a while. The Jekyll build still worked fine, but I realized I was statically adding each collection by hand on the main homepage1. Not so good. Of course, this wasn’t...
Making a Website Under 1kB 2022-08-02 I recently launched (another) website club called the 1kB Club. Unlike the 1MB Club, it isn’t as accessible for most modern websites to become official members. Building a website that actually serves useful content while squeezing its page size under 1,024 bytes is no easy feat. But it is possible. And I did...
Hosting with Codeberg Pages 2022-07-29 I recently switched the pblog project repo over from Sourcehut to Codeberg (mostly for UX reasons) and it got me looking into Codeberg Pages. It seemed like a cleaner approach to host my personal blog on the same platform I planned to also share the source code. I decided to share the setup process here...
The Linux Desktop is Hard to Love 2022-07-14 I want to love the “Linux Desktop”. I really do. But I’ve come to the realization that what I love is the idea of the Linux Desktop. The community. The security and core focus on open source. The customizable environments. Tweaking as much or as little of the operating system as I please! I just can’t...
Yet Another Static Site Generator Switch 2022-07-06 If you’re an RSS subscriber, I’ve probably blown up your feed reader (again). This seems to be an on-going theme with this blog. I can’t help it. This website now uses my new Pandoc-based static blog generator: pblog. I won’t go into great detail about it’s features (or lack thereof) - if you’re...
Happily Paying For macOS Apps 2022-06-29 It’s no secret that I am a huge advocate for open source software. A solid chunk of my day-to-day workload is done so via FOSS1 systems. I also manage a handful of fun side projects that are normally shipped under either MIT or GPL licensing. But that doesn’t mean I still don’t enjoy some non-free,...
Clickable Links Inside XML 2022-06-20 With the recent patch1 to the Shinobi Website project, I thought it would be best to share my experience implementing clickable links inside a rendered XML RSS file directly through a browser. This is made possible thanks to the awesome power of XSL formatting. Before we begin, it should be noted that both...
Schools Should Be Using Open Source Software 2022-05-30 I firmly believe that proprietary software has no business in any school environment. Educational institutions lean heavily on Windows systems in the name of “security” or “easier platform management”. This approach forces students into using locked-down, closed sourced software...
RSS Hacks With XSLT 2022-05-23 In my spare time I’ve been further tinkering (hopefully for the better) with my humble Shinobi Website1 script. The most recent update in patch-1 came with a solid amount of QoL improvements. If you’re interested, I wrote about it on the official Shinobi blog2. The next feature I wanted to tackle was designing a...
Two Weeks with the DuckDuckGo Browser 2022-05-17 After using the beta apps for the new DuckDuckGo browser for both macOS and iOS, I have returned to Safari. This switch back doesn’t mean that these browsers are bad by any means. Both browsers are decently fine for casual users. Unfortunately, they aren’t ready for prime time “power” users. I’m...
This Site is Now a Shinobi Website 2022-05-13 Update 2024: this website is now built with wruby My personal website is now an RSS-focused blog, generated from a collection of plain text files. But before we get into greater details about the switch, let me first introduce the concept of a “shinobi website”. The Shinobi Website Project Instead of...
Dear Apple, Please Fix Safari’s Default Dark Mode Link Color 2022-04-18 Supporting dark mode on the modern web falls under the realm of accessibility and should not be ignored. It is important and helps keep the visual flow of your content to match that of your users’ operating system UI. Not to mention, it’s easy to implement and keep consistent...
My Static Blog Publishing Setup and an Apology to RSS Subscribers 2022-03-21 In case you missed it, this website is now generated with pure HTML & CSS. Although, generated isn’t the proper way to describe it anymore. Written is a better description. No more Markdown files. No more build scripts. No more Jekyll. Clean, simple, static HTML & CSS is...
Setting Up a Pi-hole Server with Eero 2022-03-14 For the past few years, I’ve been using a set of Eero routers as my home mesh network. It’s worked fairly great in that time and even seamlessly transitioned without any hiccups when my family moved house. During the initial setup, I installed Pi-hole on a Raspberry Pi Zero WH because...
Transferring Media from macOS to a Jellyfin Server (Raspberry Pi 4) 2022-03-12 I run a personal media server using Jellyfin on a Raspberry Pi 4 in my home. It’s pretty great and works well across most devices - Google TV, iOS and Android devices, Chromebooks, etc. The only small headache is adding content (ie. audio, videos) to the existing hard...
February 2022 Update 2022-02-23 It’s been a little quiet around here lately and for good reason: my wife gave birth to our third child last Thursday. Her name is Harmony and she was born in the late afternoon weighing in at 7 pounds 8 ounces. Besides the lack of sleep, everything has been going very well and our boys are happy to finally have...
My Cheapskate Commenting System 2022-02-03 My blog now has comments! Well, kind of… I went down a two day long rabbit-hole trying to find the best solution for implementing comments on my static website (generated via Jekyll FYI). There are a ton of options out there and many open source models that allow you to spin up your own instance with...
Convert Files to HTML with macOS Automator Quick Actions 2022-01-28 Since a few people have reached out and thanked me for my previous post Batch Converting Images to webp with macOS Automator, I thought I would continue to share more of my own custom Automator Quick Actions. Today’s post will cover the ability to convert any text-based document...
Chrome OS Could Become the Future Leader of Computing 2022-01-06 FOSS Enthusiasts: This article discusses the use of proprietary software and places it in a positive light. You have been warned. No angry emails please… Google has created one of the best operating systems designed with the everyday user1 in mind: Chrome OS. It is undeniably...
Icons Should be Complementary - Text is Always Better 2021-12-17 Designing1 software is a complex thing. A great deal of real-world testing and user feedback is needed to create the best solution to the problem you are trying to fix. Obvious requirements are to keep things simple, make it easy to understand by looking at it, and build it to be...
Hosting a Jekyll Site on Sourcehut 2021-12-06 I recently decided to switch my personal, static site’s hosting from Netlify to sourcehut pages. The process went fairly smoothly with only a couple minor hiccups; nothing rage-inducing. After everything was up and running smoothly, I figured writing out a step-by-step tutorial might help others who...
Using Netlify for Dynamic URL Redirects 2021-12-03 With the recent domain switch that took place on this website, I needed to have a dependable setup to forward my old domain URLs to the new one. While using something like “URL forwarding” through your domain provider could work, it doesn’t natively support dynamic linking. Let me explain using a...
Using a New Domain and Switching Static Hosts 2021-11-25 As you can most likely tell by looking at your browser’s URL - I’ve swapped over to a new domain for my personal website: tdarb.org. I’m a fickle person and this is a random change - but it is one I’ve been planning to do for some time. Let me give some minor background information and then...
Modern Improvements for Default Browser Styles 2021-11-09 This website almost exclusively uses the browser’s (whichever one that might be) default styling to render it’s HTML. I firmly believe, and have stated in a previous post, that the default HTML styling across all browsers is a thing of beauty. “Consistent and boring” is how I tend to refer...
A Reality Where CSS and JavaScript Don’t Exist 2021-11-03 This is my personal opinion. Please leave your pitchforks at the door… I love CSS. I can spend hours deep diving into a website’s CSS system and never find myself getting bored. It’s pretty amazing to see the problems other designers are able to solve with just a little bit of custom...
Setting Up 1.1.1.1 for Families on a Pi-Hole 2021-10-28 After seeing Cloudflare’s 1.1.1.1 for Families mentioned on the front page of HackerNews, I thought it might be helpful to show those currently using a pi-hole device how to include 1.1.1.1 alongside it. Keeping Things Updated It should go without saying that you should be running the latest...
Batch Converting Images to webp with macOS Automator 2021-10-15 A great deal of my time working as a web/UI designer is spent exporting and/or converting images for software products and websites. Although a lot of modern applications can render image conversions at build time, a custom conversion is sometimes requested for an image to be set as...
Enabling Safari Extensions with the macOS Catalina Patcher 2021-09-23 I have an old 2011 MacBook Air that is running the latest version of macOS Catalina thanks to the very wonderful Catalina Patcher by dosdude1. This project has made it possible for me to run and test some of the latest software from Apple - namely Safari 15. I ran into a small...
Create a Performance-Focused WordPress Blog 2021-09-08 With my recent switch back to WordPress, and having read Kev Quirk’s latest post about Core Web Vitals, I wanted to make sure my blog still prioritized speed and performance above all else. I’m happy to say that I have closely replicated the same speed of my original static Jekyll-based...
Stuffing an SSD Inside the Raspberry Pi 400 2021-08-13 I have successfully jammed an mSATA SSD into the main shell of my Raspberry Pi 400. It wasn’t as straightforward as I thought it would be - in fact, most real hardware tinkerers will probably vomit in their mouths once they see how I achieved this… But I’m happy with my build. Those with...
Sharing The Things We Use 2021-07-24 I always love stumbling across personal websites that include some form of a “uses” page. A place where the author lists out all the tools they use on a regular basis - whether it be hardware, software or something else entirely. It allows readers to get a slightly more personal peek into the daily work-life...
PS4 Download UI with Pure CSS 2021-06-20 Overall, I’m fairly impressed with the user interface design of Sony’s PS4 system OS. It’s minimal and keeps the content front and center. Even with it’s sometimes spotty performance hiccups, I’ve come to enjoy interacting with it. One of the key UI items I’ve always been a fan of is the download progress...
CSS Slope Graphs 2021-06-07 I am a huge sucker for simplistic and beautifully designed visual data on the web. Most data tends to be graphed via line or bar systems - which is fine - but I think slope graphs are highly underrated. Let’s change that, shall we? The Demo I’m basing this demo off the design patterns found in Edward Tufte’s...
SOMA Inspired Terminal Display with CSS 2021-05-29 A few years back I played (and loved) SOMA, a first-person sci-fi horror-adventure game. The story was intriguing and the developers nailed the overall atmosphere of Pathos-II. Though both those aspects were great, what I found the most enjoyable were the interactive computers and displays found...
My Changing Opinion on Personal Website Design 2021-05-19 Hey would you look at that - my personal blog has been redesigned again! Although I am still using good ol’ Jekyll for the backend, I have now added a more fleshed-out CSS design which also includes a set of open source custom typefaces. Gasp! “How could you?!” I hear you ask. Let me...
Shiny, Animated CSS Buttons 2021-04-27 Everyone can appreciate fancy, animated buttons - but often times they come with a performance cost: JavaScript. Luckily for us, we can create our very own shiny, animated buttons with pure CSS. The Demo Live CodePen Example The HTML Nothing fancy going on here, just a set of ahref elements with specific...
89 Blog Posts in a Single HTML File 2021-04-22 This is no longer the current setup of my blog. I have switched back to Jekyll for performance reasons. I’ll be leaving this post up as a point of reference though :) This is my personal blog (if that wasn’t already obvious). I currently have 89 blog posts living here. But I have done something...
Create a Mac App Icon with Pure HTML and CSS 2021-04-13 I have always been a huge fan of Bogdan’s work on Dribbble and was recently inspired to see if I could replicate one of his awesome icon designs with only HTML & CSS. What was the outcome? I think it’s a half-way decent copy - of course the original will always look significantly better....
The Lazy Developer’s Dark Mode 2021-04-12 After recently jumping back to Jekyll for my personal blog, I decided to take a closer look at how I was supporting dark mode for my visitors. I was using the proper CSS query to target those who had system-wide dark mode enabled, but I found that the code had far too many caveats and targeted too many...
Click to Load Website Images 2021-03-25 In my previous post about switching my Jekyll blog over to PHPetite, I briefly mentioned how I only loaded in article images if the user clicked or tapped the empty file element. In this post, I’m going to quickly breakdown the update I’ve done to my blog’s images since then and how you can easily implement...
Introducing PageRoast 2021-03-11 Following up with my concept of releasing small side projects weekly, I have officially launched PageRoast. What is PageRoast I hear you ask? Receive a detailed report analyzing your landing page with actionable items to improve your conversion rate. In simple terms that just means I will roast your landing...
ThriftyName: $5 Brand Names 2021-02-25 It’s been a while since I’ve written anything on this blog, but for good reason - I’ve been working on a handful of side projects. I plan to drip-feed release these projects over time, but for today I’m announcing ThriftyName. What is ThriftyName? In case this post title wasn’t clear enough (or you avoided...
Self-Hosting Fathom Analytics with DigitalOcean 2021-02-02 Since my previous post walked through the process of setting up Fathom PRO on Netlify, I figured it made sense to create a similar tutorial for the “Lite” variation, self-hosted on DigitalOcean. Please note that while I think the PRO version of Fathom Analytics is truly great, for my...
Setting Up Fathom Analytics with Netlify 2021-01-19 It’s no secret that I’m passionate about open source software, but I’m also extremely adamant about protecting the privacy of all users across the web. So when I decided to implement analytics on my own personal website, I ended up choosing Fathom (get a $10 credit using that link!). You should...
Introducing Notez 2021-01-13 I have always been a fan of simple note taking applications, since I tend to take a lot of random notes throughout the work day. Sometimes I reach for simple pen and paper, but other times it’s nice to stay focused jotting down notes on the same device I’m working on. Previously, I just created quick notes.txt files...
Animated Radio Tab Toggles 2021-01-05 In this demo tutorial, we are making the assumption that we need to create a radio slide toggle for our made-up payment options. For this we want to display 3 simple payment choices to the user: One-time payment Recurring payment Free tier payment The Final Demo Live CodePen Let’s get started with the...
Disabling Comments in WordPress 2020-12-28 I seem to come across a decent amount of clients and users online that have a difficult time knowing how to disable comments for both future and previous blog posts. It isn’t the easiest for both use cases, so let’s break it down. Back to the future Disabling comments on all future blog posts is fairly...
Pure CSS Bar Graphs with Graceful Mobile Fallbacks 2020-12-08 I recently published a new open source project, Flexbox Bar Graphs, and wanted to share a simple breakdown of how it was built. It isn’t anything mind-blowing, but I like the idea of placing bar graphs in a web page with zero Javascript. So in the end, this is what our bar graphs will...
Obvious Javascript ‘Injection’ Fallback 2020-12-04 Sometimes websites and web apps might require content to be “injected” via Javascript. I should mention that I am strongly against this practice - but often this kind of thing is out of one’s hands. So, the least I can do is setup these “injections” to have proper fallbacks for users who disable...
Bidirectional Scrolling: Why Not Both? 2020-11-09 I recently came across Adam Silver’s post about the merits and pitfalls of bidirectional scrolling and found myself conflicted with the design arguments put forth in the article. It’s a very good article overall, and I suggest giving it a read before digging deeper into my post here. The Premise...
Menu Toggle with Pure CSS 2020-10-19 When thinking through navigation designs for mobile devices sometimes the best option is to store away the content behind a toggle button. This button would then display the menu items upon interaction. Let me show you how to create such an element with only CSS - no need for JavaScript today! Before we begin...
Poor Man’s CSS Full-Bleed Layout 2020-10-07 I recently came across the very well written and interesting article, Full-Bleed Layout Using CSS Grid, while browsing my daily designer feeds. I won’t go into the post’s specifics here (I recommend you read the article for yourself) but it details how to render full-bleed element effects utilizing the...
Simple Navigation Setup in Jekyll 3.9.0 2020-09-29 I have found that there is a lot of information on the internet in regards to setting up “dynamic” navigation in Jekyll. The problem I’ve noticed is that a good amount of these implementations are overly complex. Here is the simplest way that I tend to use when building out nav elements in Jekyll...
Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal 2020-09-16 I recently came across the incredibly cool design for an “ultimate Raspberry Pi computer” by NODE and was inspired to create my own “portable” Pi device. Although, with my concept, I decided to set a few restrictions on the build: I wanted to keep the total cost as low as...
Over-Engineering an Oil Tank Gauge 2020-09-09 I almost went down the path of investing a huge amount of time and effort into fixing a stuck oil fuel tank float-gauge in my house. Recently, the float mechanism became stuck and permanently displayed empty regardless of how much fuel was in the tank - not ideal. It’s a 20 year-old tank, so I wasn’t...
My Raspberry Pi Desktop 2020-09-02 I use a Raspberry Pi 4 as my personal daily driver and it’s pretty great. I know these types of devices tend to be used for smaller pet-projects or fun experiments, but I thought I would share my experience using one as my main computer. Hopefully this can be a solid guide to help others who might be interested...
Linux Mint MacBook Air Setup 2020-08-16 I don’t like the idea of throwing away old or outdated tech (within reason), so I try to find a new purpose for some of my “retired” devices. This article will cover how to switch over a mid-2011 model MacBook Air to utilize Linux Mint. Important: This setup will completely wipe your existing disk and...
Goodbye WordPress, Hello Jekyll (Again) 2020-08-13 For the past four months this blog has been running on WordPress - but that ended today. I’ve officially switched back over to Jekyll. I’m not going to spend too much time delving into why I made the transition back, but I’ll leave some cliff-notes for any interested parties. The big issues with...
Improving Github’s New Design 2020-07-07 Like many other Github users, I am not a big fan of their recent repository page redesign. In my mind it seems like a change just for the sake of change - the original UI worked perfectly fine. Sigh. I was planning on recreating the original Github layout with custom CSS but decided against it. Tackling...
Keynote Slides with Pure CSS 2020-06-22 There are a great deal of options available on the web and built into most operating systems when you need to create presentation / keynote slides. You could use native software like LibremOffice Impress, Powerpoint, Apple’s Keynote, etc. You could also decide to use preexisting web-based apps like Google...
Audio Hotkeys on Linux Mint 2020-06-14 I recently switched out the OS on my old 2011 MacBook Air with Linux Mint. It’s a distro I’ve used a few times in the past, but never set it as one of my main daily drivers until now. Setting up all my go-to applications (Sublime, LocalWP, Riot, Evolution, etc) was a breeze. The only snag I ran into was...
Quick and Dirty Theme Switcher 2020-06-04 Update: This article is no longer relevant since my blog design has changed. I’m keeping this post up since it will still be useful for those wanting to implement a theme switcher on their own site. I recently added a fairly straightforward color scheme (theme) switcher to my personal website. You can...
Mini Interactive Keyboard with Pure CSS 2020-05-13 Lately, I’ve become obsessed with trying to see what I can create using only HTML and CSS (besides websites of course). Since playing with the concept of faking 3D elements, I wanted to circle back around to an older CodePen I created: a mini, interactive undo keyboard. See it in action Below you...
Fixing LocalWP on Fedora 32 2020-05-06 I recently upgraded from Fedora 31 to 32 and everything went very smoothly - except for one application: LocalWP. After the upgrade, all local WordPress builds would fail and complain about two missing packages: libnettle6 libhogweed4 After wasting far too much time rolling back to older LocalWP versions...
WP Enqueue for Beginners 2020-05-05 Throughout my career designing, developing and auditing WordPress themes, I’ve come across many that include their custom styles / scripts as static HTML elements inside their respective header and footer templates. This is perfectly fine, but there is a cleaner way to include these files. This post is...
Faking 3D Elements with CSS 2020-04-29 Although not always practical, creating the illusion that some of your web elements are 3D can be a fun experiment. I set out to see if I was able to create such an illusion with only 2 HTML elements and as little CSS as possible. This is what I ended up creating: Live CodePen Example The HTML Prepare for...
Stripe Menu Dropdowns (CSS) 2020-03-31 In a previous article I wrote, Minimal CSS: Dropdown Menus, I showed how you could create a basic menu dropdown with only 121 bytes of CSS. While this demo is great for simple text-based menu dropdowns, it doesn’t show just how complex (in a good way) you can make CSS-only menus. So, let’s do just that. What...
Base64 All The Things! (Sometimes) 2020-03-18 An extremely overlooked process for displaying fonts, images, documents, spreadsheets, etc. on the web is the use of base64 encoding. Although it may not be the most efficient (or easy) way to display and include these elements it can be a lifesaver in certain situations. What is base64 encoding? It...
How to “FLOSS” as a Web Designer 2020-02-07 I have a profound respect for the open source community. I most likely wouldn’t have the skills or knowledge I do today with it. Unfortunately, when I was just starting out in “web dev” some 10 years ago, proprietary software was the main go-to for a newbie designer. Dreamweaver. Fireworks (those were...
Web Development on a $200 Chromebook 2020-01-07 This blog post was written, edited and tested locally on a cheap $200 Chromebook. The article draft was composed in Sublime Text. Jekyll (the SSG this website uses) was generated via the Linux Beta Terminal running alongside Chrome OS. It was then pushed to the Github repo from the same Terminal and...
Billing for One CSS Change 2019-11-29 Every second you spend working as a designer should be billed back to the client. A simple button color change? Bill them. Additional links added to an existing menu? Send that invoice over. Some basic typeface changes? Don’t do it for free. You need to be charging for all design work, regardless of...
Very Basic Form Styling 2019-11-13 Web forms can be great - I’m borderline obsessed with them. I love tinkering with pre-existing logins / sign up pages and I’ve also open sourced a minimal CSS form-styling plugin: Normform. While simple CSS plugins like these can be helpful, I often feel like we are over-engineering our web forms. I’m certainly...
Improving Tufte CSS for Jekyll 2019-11-01 After creating the ET-Jekyll theme almost two years ago, I finally got around to revamping the structure and improving a lot of minor performance issues. Items that have been surely needing of updates for the last couple of years. Introductions I’ve always been a sucker for Edward Tufte’s incredibly...
Stop Using Sticky Navigation on Mobile 2019-10-06 Stop styling your web elements to be “sticky” on mobile. This creates a horrible experience for your users and also looks like trash from a UI perspective. Don’t style your navigation (or any components for that matter) to be “sticky” on mobile. They create poor experiences for your users and take...
Being More Efficient as a Designer and Developer 2019-09-28 I recently began working on a small side project (a marketing site / blog for an upcoming UX book I’m writing, but I have nothing to promote yet - sorry) and found myself circling around different static site generators (SSG) in the initial design concepts. The thought of learning an...
Plain Text Emails, Please 2019-09-09 When it comes to website / product design and development most devs should try to keep things simple. By only using as much code as absolutely necessary, projects avoid growing out of scope or becoming bloated. So, why isn’t this same approach taken for email? A brief history of email Email has been possible...
Dynamic Checkboxes 2019-07-30 Checkboxes are used quite frequently on forms across the web. Whether you’re selecting a pricing plan during a site’s sign-up process or just simply selecting to opt-out from a newsletter, you have most likely interacted with some form of checkbox element. What if we could make everyday checkboxes more beautiful and...
Styling Empty Table Cells 2019-07-17 Often when designing tables on the web you’re bound to come across empty pockets of data. These will be rendered as “blank” table cells, which isn’t always the intended outcome. Let’s take a quick look at how to target and style empty table cells. The easy :empty way The most popular way to target any empty...
Using HTML Validator Badges Again 2019-07-05 There was a time on the Internet when websites wore badges of honor, declaring that their code was semantic and followed the W3C guidelines. The validators we used weren’t great (and still aren’t perfect) but they represented a community that took pride in caring about the quality of their work. I...
They Won’t Wait: A Warning for Slow Websites 2019-06-25 Your website is probably slow. I’m not trying to make you feel bad or dismiss all the hard work you’ve put into your project. Heck, performance might have been a core value of the design. But websites can always be faster. People have become increasingly more impatient over the last decade...
Publishing Simple Books With Jekyll 2019-06-20 When thinking about writing, designing and ultimately publishing an ebook, most people don’t think of using a static site generator. Having products like Amazon Publishing, LaTeX or even Microsoft Word available, why should you use Jekyll? Two reasons: extremely easy to use total customization I...
Using Hamburger Menus? Try Sausage Links 2019-06-14 When designing medium to large sized menu navigations on the mobile web the default go-to, for some time now, has been hamburger menus. This isn’t necessarily a bad thing, but there is a simpler alternative for certain use cases. Before we get into the nitty-gritty details (and a simple demo) of...
Making Tables Responsive With Minimal CSS 2019-06-11 Update (Oct 2019): @aardrian wrote a previous post about how changing the display properties on tables can impact screen readers. I highly recommend his excellent article Tables, CSS Display Properties, and ARIA I find that the need to create responsive table layouts pops up far more often than...
Write HTML Like It’s 1999 2019-06-06 I am sure it’s safe to say that most developers love to use the latest and greatest web tools available. Helpful resources such as preprocessors, template engines, syntax formatters - you name it - can all make a developer’s life easier. Unfortunately, this sometimes comes at a cost: the HTML structure. This...
Using User-Select 2019-06-04 Highlighting text in order to copy, cut or paste content is a staple action across the web. Now, what if I told you the ability to control what a user can select is configurable with a single CSS property? Introducing the CSS property Simply put, the user-select property is defined as follows: user-select controls...
News Websites Are Dumpster Fires 2019-05-29 Online news outlets are a dying breed and many users have decided to consume information elsewhere. Why? Because the news industry has become a cesspool of anti-consumer and blackhat practices that has eroded trust for the sake of money. What news sites get wrong I could write up an entire essay about...
Text Align: Justify 2019-05-22 The text-align property is fairly well known in the world of CSS, even among those just starting out with the language. Values such as center, left and right are used often with this property, but a more forgotten option is justify. What does justify do? The MDN web docs define the justify value for text-align as...
Improving Receipt UX 2019-05-15 There was a pretty interesting article posted a couple days ago about rethinking the standard receipt design that I found quite compelling. Although, as good as the concept is, I think it can be improved (simplified) even further. What was the redesign exaclty? Overall Susie Lu did a wonderful job tackling such an...
Cut Your Forms in Half 2019-05-09 Building web forms can sometimes feel like a boring or daunting task. Don’t pass this dread on to your users - rip out as many of your form fields as possible. Web forms tend to get a bad rep, mainly because so many horrible design choices are made without the user experience set at the forefront. Often times...
First Letter Pseudo Element 2019-05-03 In today’s TypeTip we will be taking a look at the often overlooked :first-letter CSS pseudo element. Though you might only use this for specific article-format web pages, it’s still a nice-to-have in your web dev toolset. The HTML Like most pseudo elements, nothing has to change with your pre-existing HTML...
Minimal CSS: Dropdown Menu 2019-04-26 I love the idea of stripping away as much CSS as possible, while still maintaining the original UI concept. Let’s build out a demo example with a simple menu dropdown element. Interesting facts about our final CSS menu: Total weight 121 bytes minified! (not including any resets etc.) No complex HTML...
CSS Character Unit 2019-04-23 When it comes to proper readability with large portions of text, the golden standard is to have no more than 75 characters per line. This is easy to achieve in the world of print but on the responsive, ever-changing web - statically defined typography becomes a little more difficult. You could go through the long...
Browser History Sucks 2019-04-20 Have you ever needed to step back through your browser history to find a particular site or product? Do you remember that experience being good? Most likely not. Much like printers, the design of browser history interfaces hasn’t changed in years. This would be fine if these UIs had been well thought out and...
Yes, I Still Use jQuery 2019-04-15 I have seen a handful of condescending comments from front-end developers since the newest build of (jQuery 3.4.0) released a couple of days ago. While I understand not all developers share the same work-style or are using the same tech-stack, dismissive comments towards any useful library comes off as entitled...
CSS Value: currentColor 2019-04-13 There are a large number of nuanced and mostly unheard of CSS value types, but today we are going to focus on currentColor. So what is the currentColor value type anyway? The currentColor value type will apply the existing color value to other properties like background-color, etc. See it in action Let’s...
CSS: Indenting Text 2019-04-05 A lot of developers tend to do the bare minimum when it comes to implementing proper website typography. This isn’t an insult - I’m happy that typography is given any thought at all during development, I just believe more can always be done to improve upon it. In today’s TypeTip we’re going to play around with the...
Simple Does Not Mean Ugly 2019-03-26 I see new blog posts popping up now and again advocating for designers to keep their products as simple as possible - and I couldn’t agree more. A lot of designers tend to think they need to reinvent the wheel when it comes to UI concepts that are standard defaults and expected by most users. Not only does...
Skip to Content Button 2019-03-25 One of the golden rules for testing your website’s accessibility is the “keyboard-only” audit. This is where you test navigating through your entire site without the use of a mouse, but instead rely solely on tabbing through your content. Unfortunately, one item is normally overlooked during this audit - a “skip...
Prescription Form UI Improvements 2019-03-13 I was browsing the Clearly website a few days ago and ended up using their prescription form to update my worsening eyesight. The design of this form wasn’t bad per se, but it could certainly be improved. Current design of the prescription view As I stated, this design isn’t horrible by any means, but...
Animated Card Tiles 2019-02-27 The design trend of using “cards” or “tiles” to display interactive sections/article headings in an app or website remains a popular choice among designers. So, let’s build a set of animated cards with only HTML & CSS. What we will be building (live demo) This is the set of animated card tiles we will be creating:...
Easy Toggle Switches 2019-02-18 Sometimes there is a need to use toggle elements in-place of the default checkbox inputs. The problem is, I tend to see a lot of developers reaching for plugins or JavaScript components in order to implement these toggles. This is overkill. You can create your own custom input elements to mimic toggles perfectly...
Super Mario Blocks in CSS 2019-02-15 Just because we can, let’s make a quick demo on how to build interactive elements based off the original Mario punch blocks. What our final product will look like: Live CodePen Example The HTML The set of Mario blocks doesn’t require a huge amount of effort for it’s html structure, we only need: Parent div...
Proper UI Hierarchy 2019-02-05 I often feel like an old man when I complain about flat design and how designers these days have lost (or willfully forgotten) the skill to create accessible UIs with proper visual hierarchy. A skill which at it’s core seems so simple - yet is overlooked in almost every current modern interface. I’m unable to...
Tabbed Content Without JavaScript 2019-01-28 Creating tabs is a fairly trivial and common practice in web design, but many times it requires JavaScript to properly implement. Fortunately it is possible to create tabbed content with only using CSS. Live CodePen Example Sidenote: While this method is semantic and accessible, you might consider...
Easy Custom Radio Inputs 2019-01-21 Default radio inputs are notoriously horrible looking and are something designers tend to over-think when trying to customize them. Let’s walk through how to create custom radio buttons with pure CSS, while still preserving performance and accessibility. The Final Product This is what we will be designing: Live...
Basic Gulp Build for Sass 2019-01-15 Some designers might shy away from build tools when first starting out and I can understand the reasoning - task runners like gulp and grunt can seem daunting at first. So, I’ve decided to showcase my go-to setup for gulp and explain what the heck it does step-by-step. Here is the final gulp.js file in all...
Better Box Shadows 2019-01-08 .message { position: relative; z-index: 1; } .box-container, .box-container-depth { background: white; box-shadow: 0 4px 8px rgba(0,0,0,0.3); border: 1px solid #eee; border-radius: 10px; margin: 2rem auto; padding: 10px; position: relative; height: 200px; width:...
Over-Nesting 2019-01-06 I think since our design industry moves so quickly and exciting new technologies get released almost daily, that we often forget some of the basics when writing CSS. I bring this up because I’ve recently worked on a few projects that show a slight disregard for proper class/selector nesting. Now it’s completely...
Using Parent Selectors in CSS 2018-12-19 I recently saw a Twitter thread posted by Tommy Hodgins on implementing highly requested styling features in CSS with only a minimal amount of JavaScript. Many of his examples are great, but the parent selector instantly peaked my interest. Being able to target an element’s parent always becomes a minor...
Width or Flex-Basis? 2018-11-28 Creating rows and columns of elements that adapt dynamically can be a little tricky depending on the desired outcome. Let’s breakdown how to solve this issue using both inline-block paired with width and flex-basis. Width Setting the width of the inner children to a divisible value and setting their display to...
Adaptable Flexbox Grid 2018-11-22 You can use flexbox for many tricky layout “hacks” and implementing a grid layout is no different. Check out the CodePen below to see how you can implement a flexbox grid system that adapts automatically based on how many items you insert per row (maximum 6 children in this example). Live CodePen Example
What Happened to Self-Hosted Blogs? 2018-10-18 I remember a time on the internet1 when everyone and their grandmother was running a personal blog. And I mean personal - not hosted on some side platform or a tacked-on addition to the rest of their website. Nowadays companies and individuals alike use platforms like Medium to host and promote all...
Using Multiple CSS Background Images 2018-09-28 It isn’t something developers have a need to do very often, but you can set multiple background images on a single element. Example: .element { background: url('image_path') center repeat, linear-gradient(transparent 0%, #000 100%) no-repeat; } What can you do with this? It’s only limited by...
Pure CSS Simple Dropdown Plugin 2018-09-20 I find myself blowing away default browser select styling and implementing my own custom dropdowns far more often than I’d like. So, I recently created a very simple and clean component using just pure CSS. Check out the CodePen below and feel free to morph it as you see fit for your own projects! Live...
Simple Accessibility 2018-09-07 Implementing proper accessibility practices can seem a little daunting at first, but there are a few basic standards you can introduce into your project work-flow that are fairly straightforward: Basic design Test that your project has the proper contrast color settings between type, backgrounds, icons etc. ...
Setting Up a Free SSL 2018-08-07 I never had to worry about SSL certificates when I originally hosted my blog through Github Pages, but since switching over to Surge.sh I lost my ability to utilize https protocol. Luckily, Cloudflare offers a very simple way to implement SSL on your website - and it’s free! SSL in 3 easy steps You will need to...
CSS Video Backgrounds 2018-04-16 With the release of Safari 11.1 on macOS and Safari on iOS 11.3, developers now have the ability to support background videos (mp4 support only - at the time of this article) with pure CSS. Example: .video-background { background-image: url('path-to-video.mp4); } See it in action Check out the very basic CodePen...
CSS Variables 2018-03-24 The CSS language is becoming even more awesome and powerful everyday. In this quick article I’d like to focus specifically on the “new” CSS variable function that you can start using in your projects right now. Getting started is easy Let’s just jump right in - this is how you create variables in vanilla CSS: :root { ...
Stay Hungry 2018-02-12 It can feel daunting in this developer / designer landscape to keep yourself up-to-date with the latest and greatest technologies available. Which new framework should I invest the most time into? Will it even be maintained a couple years down the road? Is it just a fad? What about programming languages? Should I learn as...
Open Source Typeface Pairings 2018-01-25 I always love finding new typeface pairings to use across my personal and client projects, but I find many suggested pairings come with a hefty price tag (rightly so - premium typefaces are normally always worth their cost). So, I’ve curated this personal list of 5 exceptionally beautiful typeface pairings...
ET-Jekyll Theme 2018-01-14 ET-Jekyll theme is based off of Dave Liepmann’s awesome Tufte CSS - which takes it’s style and inspiration from the wonderful book and handout designs of Edward Tufte. The differences are subtle when comparing my variation to Tufte CSS, but these changes were made out of personal preference and are not in any way...
Chasing Performance 2017-11-20 Update This post is no longer relevant since this blog has been redesigned since. I’m keeping this article up as a point of reference. So I decided to participate in Smashing Mag’s Front End Performance Challenge, not only for the potential of winning the prize but to further experiment with optimizing my site. (Web...
The Death of Personality 2017-11-01 On September 18, 2013 truly original product design (everything from icon and app design to UI and experience interactions) began it’s fast decline into the abyss with the release of Apple’s iOS 7 update. It was called revolutionary. It was seen as a ‘new age’ of design. I think it was a big mistake. Stepping...
Unsolicited Design Review - Dropbox 2017-10-10 Earlier last week the design team at Dropbox unveiled their new branding / design system for the company as a whole. If you haven’t seen the updated design yet, you can do so here: dropbox.design (Take your time, I can wait). I won’t mince words when I say I believe this is a huge step backwards for...
Goodbye CSS Preprocessors 2017-09-07 I have been using preprocessors across all my side projects since they first popped onto the scene. Sass, Stylus, LESS — you name the CSS preprocessor and I’ve most likely used it because CSS preprocessors are awesome. But that all changes moving forward. I’m going back to basics with CSS. Straight vanilla,...
Designers Need Thicker Skin 2017-07-10 I’m not normally one to comment or even really care about “drama” within our design industry. Opinions are just that and should just be consumed at face value. But this week I was moderately annoyed with a subset of designers in design-land. Critique the critics Designer/design critic Eli Schiff tweeted his...
The Wonders of Text Ellipsis 2016-11-15 A common issue when working with constrained UI elements is text overflowing outside of it’s parent or breaking into addition lines (thus breaking the layout). This is most commonly seen with the direct and placeholder values for input fields on form elements. For example, the following input placeholder...
Aqua UI CSS Buttons 2016-06-28 Though it may feel like nostalgia, the old OS design for Mac was arguably better than the current iteration (as of this writing - High Sierra). I recently designed a quick Dribbble shot showcasing how the older operating system used to have so much more character and depth. My initial Dribbble shot, which can be...