Geoff Grahamhttp://geoffgraham.me
Web Designer & Developer in Long Beach, CAFri, 05 Jul 2019 18:51:30 +0000en-US
hourly
1 163428167Year Sixhttp://geoffgraham.me/year-six/
http://geoffgraham.me/year-six/#respondThu, 04 Jul 2019 15:44:53 +0000http://geoffgraham.me/?p=2422Continue]]>I still find it hard to believe that I get to do what I do and that I’ve now been at it for six years. I still get to call myself a web designer. I still get to say I work for myself. I still have zero commute and never have to walk into an office other than my own. I still have clients that have been with me since day one. I still really love the craft of building delightful user experiences for the web.

In short, all is good in the hood.

That’s despite the fact that I haven’t published a single post on this blog since the last time I celebrated by freelance-iversary. I feel silly even linking it up because it’s literally the very next post in the loop. But, hey, that’s just how the cookie crumbled this past year.

I wish I would have been blogging because this has been an active year! Even as I write this post, I’m sitting in a chair in the living room of the house we moved into last month. We gave up suburban life in downtown Long Beach and decided to rent our condo out so we could head up to the East Side neighborhood of Los Altos. Marcia had been keeping her eye out for possible homes and stumbled on this one the day it hit the market. I’m glad she pounced because there was pretty fierce competition to get in. I didn’t even see the place before signing paperwork to move in but I couldn’t be happier with it, especially now that we’ve settled in.

Speaking of settling in, that was up to me since Marcia was out of town on a work trip. I like joking with her that she timed the move so perfectly, but again, that’s just the way the cookie crumbled. I had a lot of help, thanks to my mom who was outstanding with the kids and unpacking boxes as they came in.

It might seem like this year has been all about personal changes, and for the most part, I guess that’s sort of true. I mean, those are the changes that are typically top of mind when I reflect.

But this has been a significant year for work as well. On the business-y side of things, I’m doing better than ever. I was fortunate to pick up a new client and that allows me to work with one of my best friends, someone I met at my very first job following my move to Southern California. It’s among my favorite work because it puts me next to smart people who are trying to solve interesting problems. It’s a little bit of design. It’s a little bit of strategy. It’s a little bit of development. It’s completely up my alley.

CSS-Tricks had a significant redesign. Although I wasn’t involved with it, the site itself is so fun to work on now; not that it wasn’t before, but it’s gotten even better. We’ve published (by my rough count) 642 posts since this day last year. That’s 1.75 posts per day… including weekends! Man, that’s awesome. The team over there is amazing and the work I do there as lead editor is still my most fulfilling. I’ve heard that you never have to work another day in your life if you love what you do — well, let’s say I never feel like I’m working when I’m spending time here.

I saw three products I worked on launch in the past year: (1) Loxi, an online calendar that can be embedded anywhere; (2) Promoter, a service that automates marketing and communications for calendar events; and (3) BigCommerce for WordPress, a plugin that syncs a BigCommerce store account with WordPress to make for a headless e-commerce platform.

Those were all projects I did with Modern Tribe. I continue to love being a part of that team and this next year should be an adventure in and of itself as I shift into the marketing team. We’re currently doing discovery for a complete overhaul of The Events Calendar brand.

Reflecting back on work makes me wonder just how much I’ve worked in the past year. Looking at Harvest, I’ve notched 1,842 hours since last year’s anniversary. That number was 1,743 for the same period last year. Numbers are kind of meaningless when they’re blurted out like that. I honestly don’t know if that means I’m actually working more or working less efficiently or whatever, but I’ve clearly deposited those 99 hours somewhere.

And while we’re talking about clocking time, I plan to do a little less of that through the rest of the year. I use a spreadsheet to help encourage me to take vacation and, well, I’ve been ignoring it to the extent that I discovered I accumulated 25 weeks of vacation. Whoops! I sat myself down this past week and scheduled time off between now and January to make sure I actually use some of it. I can’t use all of that, obviously. Or could I?

Well, that’s a little peek into my personal and professional life between Independence Days. I’m happy to say that freelancing is now the longest-running job I’ve ever had and still ranks as my favorite of the entire bunch. Thanks to all the wonderful clients who make this possible, my friends for sticking with me through highs and lows, and of course, Marcia for encouraging me to go this route and being my biggest advocate all the while. This is the greatest ride.

]]>http://geoffgraham.me/year-six/feed/02422Year Fivehttp://geoffgraham.me/year-five/
http://geoffgraham.me/year-five/#respondWed, 04 Jul 2018 19:52:09 +0000http://geoffgraham.me/?p=2404Continue]]>Well, hey look what we have here! It’s the Fourth of July — a day we Americans celebrate our independence from imperial rule and revel in our continued journey towards the aspirational goals of liberty and justice for all.

I find it more than convenient that this day also marks my fifth anniversary working as an independent contractor. The significance of July 4th is great enough on its own, but it feels oh so much sweeter to me because of the freedom I’ve been so lucky to have running my own business. Seriously, it’s the best gig I’ve ever had and now the longest one at that.

Patting my own back is not something I like to do. I don’t say that to feign humbleness. It’s literally something I’m incapable of doing. At the same time, I’m trying to give myself a silent internal high five. Five years of finding and keeping clients, working on projects that push and challenge me to be my best, and finding consistency and sustainability as a sole proprietor feels like something to be proud of and I’m doing my gosh darned best to bask in it.

I remember my first day on the job really well. There’s a room in our building called the clubhouse. I pulled out a chair and sat nervously behind my laptop before typing my first lines of code for a client project. I also proceeded to build this very website — something that admittedly has not been updated since that first year but that I continue to love for all it’s warts and imperfections. This site still feels like me though it does deserve some love after sitting this long.

A lot has happened since that first day on the job. I’m still trying to get along with the boss, but here are some interesting numbers I dug up:

8,081: The number of hours I’ve clocked. That’s an average of 31 hours per week. That’s not taking vacation, sick time or other administrative things into account, so I consider that to be not only good, but maybe even on the higher side of where it should be. By the way, thanks to Harvest for helping me keep a record of this since the beginning. I signed up for it on that first day and I’ve been tracking time ever since.

228: The number of blog posts I’ve written between here and CSS-Tricks. I would love to commit more time writing for this site but I honestly find it very hard to decide whether to post something here or to CSS-Tricks when an idea comes up. I should probably make time and space for both but, again, I find it tough to balance because I tend to dedicate ample time to family. Excuses, excuses.

19: The number of clients I’ve gotten to work with so far. I can’t recall ever having a bad client, though I’ve heard plenty of stories from other freelancers. I can’t say that every project has been successful but I can say that they have all yielded rewards and established great partnerships. I know many people say the same thing, but I truly believe I have the best clients and it’s because of them that I have this job. My sincere thanks to all of them, including Modern Tribe, CSS-Tricks and The Foursquare Church as my longest running clients. Y’all make make it worth waking up in the morning and I’m stoked I get to work with such smart folks who keep me on top of my game.

2: The number of kids I have. Harper was just over a year old when I started and now is a feisty five years old, coming up on six. Now we have Alice, clocking in at 21 months, and our family of four feels complete. Fatherhood has taught me more about life (and myself) than anything else I’ve ever done and is an ongoing journey all its own.

Trying to condense five years worth of work, memories and accomplishments into a single blog post is impossible. Or at least unreadable. Regardless, this is truly the best job in the world and I still pinch myself most mornings because it all seems too good to be true. Here’s to the next five!

]]>http://geoffgraham.me/year-five/feed/024042017.http://geoffgraham.me/the-year-in-review-2017/
http://geoffgraham.me/the-year-in-review-2017/#respondThu, 04 Jan 2018 00:10:09 +0000http://geoffgraham.me/?p=2376Continue]]>Unfortunately, the last time I did that out loud was in 2014. I’ve been pretty quiet about my goals and general life updates since then and it’s certainly not for lack of things to write about.

So, I’m giving this whole reflection thing the ol’ college go once again.

I’m Publishing Reading Lists

One of the more underwhelming but personally significant things I’ve done in the past year is compile monthly lists of the most interesting things things I’ve read on the internet. These reading lists may or may not be helpful to anyone outside of myself, though it would be great if even one other person discovers just one interesting link from the batch.

What I get from doing these is motivation to read, stay updated on my craft, and keep this blog at least a little active.

I Took a New Role at Modern Tribe

The year kicked off with a significant role change at Modern Tribe, a client I’ve contracted with since 2014. I had been managing the support team for The Events Calendar. While that was a rad challenge and extremely rewarding, I’ve always hoped to put my design and development skillset to use for the team.

That opportunity came and I formally accepted a contract position to lead the launch of a new SaaS product that we’re hoping to release early 2018. But more on that in just a bit.

Being a product manager doesn’t mean that I’m designing or developing, but it does mean that I get to use those skills in a strategic way. I’m wireframing, prototyping, writing functional requirements, planning releases and generally being a product manager. Funny enough, it feels a lot more like what I’ve traditionally done with clients outside of Modern Tribe, but without being as deep in the weeds. I’ve been enjoying this new role and am so thankful that Modern Tribe decided to stick with me and double-down on our relationship when it would have been just as easy to cast me off.

I’m Leading a Product Launch

The big new project I’m working on for Modern Tribe is a new calendar app that we plan to roll out on a paid subscription. Modern Tribe’s bread and butter (aside from its agency work on super mega web projects) has been The Events Calendar, which is a popular WordPress plugin that does exactly what you might think: add a calendar to a WordPress site that can publish events.

Customers have long asked for a way to make The Events Calendar compatible with other content managements systems besides WordPress and that’s the project I’m leading.

We’re building a hosted platform that allows users to publish events to an online calendar and embed the calendar on just about any website, whether that’s Squarespace, Wix, Weebly, Drupal, Joomla…you get the idea.

I’m extremely proud of the work we’ve done so far in such a short amount of time and I can’t wait to get it out to the public. It’s by far the most ambitious project I’ve worked on since becoming a freelancer. It’s been challenging, frustrating, rewarding and fun all at once and I’m becoming a better designer, developer and manager because of it.

I’m Editing for CSS-Tricks

Starting in January, I’ll be an editor for CSS-Tricks. I’ve been a staff writer there since 2015 and this new role doesn’t change things a whole lot. The biggest difference is that I’ll be reading every article we put out and own the finger that presses the scary Publish button. We’ve become a lot more intentional with a publishing schedule in the past year and, even though I can only see a couple weeks out at a time right now, I can say that there’s great content in the works and I’m stoked to be a part of it. I’ve been reading CSS-Tricks since 2007 and I still constantly have to pinch myself that I get to contribute to it.

I Opened Up About My Depression

Getting to the more personal side of things, I decided to come clean about my long-running battle with chronic depression. I’ve been hiding it as a highly functional and often smiling person for many, many years and finally decided it was too exhausting to keep up the act. You can read the post to get the gory details, but suffice to say that 2017 was a deeply challenging year for me emotionally and I’m doing everything I can to beat the hell out of this thing.

I Ran 543 Miles

My previous record was set in 2011 when I ran 402 miles. I never thought I would top that, but then came 2017 which blew that right out of the water. Running has become a key part of my emotional therapy (see previous section) and something I’ve grown to love.

While that’s all great and dandy, I need to learn how to properly diet as an avid runner. I’ve never owned a stocky figure and yet I still somehow managed to lose 15 pounds in the past year. I’m not sure where it came from or whether it’s all that healthy, so I’ve got to keep an eye on that.

I Watched My Kids Grow

I saved the best reflection for last. My two girls are literally the greatest joy of my life. Watching them grow up physically, emotionally and creatively has never made me feel prouder—and older. Harper is now a thriving five year-old whom I’ve had to accept is no longer a baby girl. She’s wildly intelligent, deviantly crafty, and a deeply sensitive soul who loves with all her heart.

Alice started walking a mere two month ago and took to it like fire to dry grass. Her personality is still coming out in small spurts, but it’s becoming apparent that she is much more opinionated and independent than Harper was at this age. At the same time, she adores her sister to the extent that she clearly seeks out her attention and craves her approval. She has been learning sign language, is now sleeping in the same room as Harper, and greets me when I walk in the door with as big a hug as a 15 month-old can possibly muster.

My favorite moments are watching the two of them together. Sure, they have a tough time sharing toys from time-to-time, but they love playing together. I think I’m witnessing the early foundation of a life-long bond between two sisters and it’s incredibly awesome.

Well, that’s probably more than you wanted to know from one guy summarizing stuff that’s already happened. I sincerely hope anyone and everyone reading this can look forward to a happy and healthy year ahead. Peace to you, friends.

]]>http://geoffgraham.me/the-year-in-review-2017/feed/02376Reading List, December 2017http://geoffgraham.me/reading-list-december-2017/
http://geoffgraham.me/reading-list-december-2017/#respondSun, 31 Dec 2017 22:49:14 +0000http://geoffgraham.me/?p=2372Continue]]>It could have been because of the typical end-of-the-year rush to get things done. It could have been that I took a vacation. It may have been sheer laziness, but I guess that sort of goes hand-in-hand with the vacation.

In any case, I did put together a list of my favorite front-end development resources and posts from the past year in CSS-Tricks 2017 staff favorites. So, I’m going to link there instead and call it this month’s reading list.

But the core principles and mechanisms are no more complicated than they were a decade or even two decades ago. If anything, they’re easier to grasp now, because we don’t have to clutter our minds with float behaviors or inline layout just to try to lay out a page. Flexbox and Grid (chapters 12 and 13, by the way) make layout so much simpler than ever before, while simultaneously providing far more capability than ever before.

This is something I really needed to read and need to continue to let sink into my brain. I’ve been feeling burned out by front-end development this past year, thanks to a slew of new frameworks, build tools, CSS features and yada, yada, yada. All the new things that we’ve seen released in just the last year alone feels super overwhelming to me and has made me questions whether I’m able to keep up and ultimately how sustainable my career in this field can be. Eric’s post reminds me that new doesn’t necessarily mean complicated. In fact, CSS has been releasing all these new features to help make my life easier. I already love CSS Grid and, now that that we have CSS Custom Variables, I’m seeing myself write more vanilla CSS than I have in years.

I had the honor of editing this post and I couldn’t have enjoyed reading it more. Lara has rekindled my consideration for making designs and code more accessible and does so in ways that are so practical, that it’s hard to find excuses for not doing it. I often think of accessibility as a tough code that needs to be cracked with complicated ARIA roles and long, awkward testing with screen readers, but Lara reminds us that color, contrast and visibility are low-hanging fruits that we can all work into our normal workflow without pain, but all while making the end user experience so much better. Thanks, Lara!

I cam across this gem by Rachel Andrew while I was researching the place-items CSS property. The property is shorthand that combines align-items and justify-items which both accept a bunch of alignment values. I’m such a visual learner and having this clearly outlined, one-stop resource that compares all of the values made it so much easier for me to understand the differences between something like start and baseline.

Where Tufte talks about graphics he includes charts, diagrams and tables, and where he uses ‘ink’ we can think of pixels. In terms of tables, he’s saying that we should remove almost everything in the design which is not data or white space. Minimise furniture, maximise information. This is an ideal first principle to bear in mind when considering the typographic design of a table.

Boy, was this a wake-up call for me. I’m all about borders, backgrounds and special typographic treatments in my table designs and this post made me realize that’s all fluff and vain because this flourishes do nothing to help viewers read the data contained in the table. I like to think of myself as having a minimalist design aesthetic but this post showed me how I totally over design tables.

Richard suggests starting with no borders or fills and instead using whitespace and font variations to make data more scannable and legible. Then (and only then) should we start to consider flourishes insofar as they add to the reading experience.

]]>http://geoffgraham.me/reading-list-november-2017/feed/02364Depression.http://geoffgraham.me/depression/
http://geoffgraham.me/depression/#commentsThu, 09 Nov 2017 20:24:52 +0000http://geoffgraham.me/?p=2316Continue]]>Writing about this is not easy for me. It’s easier to keep it under wraps and where people see me as a normal, functional person.

Well, quirky, but still well within the Normal Zone.

Admitting I have this illness breaks a wall and possibly even the way a lot of people look at me. It feels risky, but I’m no longer willing keep up the appearance. If I’m being honest, I’m actually no longer able to keep up the appearance. Resembling normalcy requires a lot of effort and I’m simply out of steam.

But I feel it’s necessary to come clean and let others know about it. I’m making my biggest attempt to overcome this and believe it’s time to bring it out of the dark and into the light of day where others can see it, empathize with it, relate to it, and hopefully understand it.

***

So, why am I sharing this now?

I already mentioned tthat I am finally done pretending like it is not there. I’ve spent a lifetime playing the role of Sisyphus repeatedly pushing the stone up the hill only to have it repeatedly roll back down and the effort is no longer worth it.

You win, depression. You’re stronger than me and I’m admitting it.

Another reason is that it has grown worse and sometimes unmanageable over the past two years. A year that seen two famous musicians take their own lives in ways that shocked and surprised even those closest to them has convicted me to not put the people in my life in that same position. I never want my friends and family to wish they could have done something for me had they only known about my condition and are now carrying a regret that I am responsible for and that outlives me. That easily outweighs any selfish concerns about how people might label me now that it’s public knowledge.

And yet one more reason is that I consider sharing to be part of what I hope is the healing process that leads me to either defeat this son of a bitch or to cope with it on a healthy level. In addition to attending counseling, taking medication, being good about exercise and, yes, even taking up meditation, I’m hoping that coming clean about my struggle helps me process my feelings and do so with a level of transparency that relieves me from having to carry it on my own. That’s right, I’m a medicated jazzercizing hippie who selfishly wants help mopping up this hot mess. It takes a village, or so I hear.

***

If you were to ask when my depression started, the answer is probably when I was a kid. I remember thinking at age 8 that I processed my feelings differently than my friends. I was shy and super sensitive. My skin was (and still is) thin to typical elementary school ribbing and I’d avoid hanging out in large groups in favor of a few close friends. Better yet, I’d spend lots of time in my room alone using my tape recorder to construct hypothetical conversations and mash them up into audio screenplays.

But my first real memories of depression begin around age 12. I would spend hours on the floor of my room fantasizing about what the world would look like without me. I didn’t believe in God or heaven back then, but could still imagine an afterlife that let me look in on people I knew and validate whether my absence made any difference. I didn’t have a word for my feelings and wild fascinations back then but I’m able to look at them now and recognize them as an extension of what I continue to struggle with today.

The source of this is something I’ve put a lot of thought into but no longer care to figure out because it simply feels like a part of who I’ve always been. There’s no inciting incident that left me this way. My family history is laced with depression (and suicide) but nothing that has an established pattern.

Call it a low level of maturity. Or a lack of self esteem. Or hereditary. Or whatever you want. The common thread is that I’ve never seen value in myself and am in a constant internal fight for relevance.

***

The funny thing (if there were such a thing) about my depression is that it totally flies under the radar and that’s because I look great on paper. I’m married to my best friend. I have two of the most beautiful toe-headed daughters you’ve ever seen. I’m my own boss at work, which I get to do from home. I’m the product of a privileged childhood where the only abuse was having to mow the lawn once a week with a severe grass allergy. I mean, come on parents!

My life is all unicorns and rainbows and I’m not ashamed to admit it. If the appearance of happiness was measured in tacos, then I’d be one heaping pile that would put all the world’s Taco Bells to shame. It’s unicorns, rainbows and crunchy shell chicken tacos over here.

And yet, I’m hurting and it’s likely no one can tell. I smile a lot. I’m extremely productive at work. I’m also pretty darn friendly, if I may say so myself. My inability to see value in myself is often regarded as humility and that often makes people like me more. It’s hard to fight something others are unable to see and allows me to look so good on the surface.

I say all of this with no intention to gloat or make light of an awfully real disease. I say it because it forms the crux of what makes depression the heavy, intolerable burden that looms over me at all times, even as I type this post. The paradox of having a good life that’s clouded by an innate inability to appreciate it only compounds the symptoms because my list of virtues becomes outweighed by more intense feelings of guilt and shame. My depression is an invisible, but tangible presence that comes with a heaviness not unlike being held down physically by a much stronger and bigger person.

***

What makes severe and chronic depression unbearable is the angst that accompanies it. I recently walked to a nearby cafe to do some work and had an episode where I felt out of my own control. My heart was racing, but I was not visibly shaken. I walked forward but lost confidence that my direction wouldn’t veer into oncoming traffic. It was frightening to toe the line between having a perfectly healthy appearance and having no internal sense of what I might do to myself.

Chris Gethard pretty much nails this in his HBO Special, Career Suicide. His own story is an instance where he intentionally lets an avoidable traffic accident happen because dying in a car wreck would be easier to explain and accept than a suicide.

I’m not qualifying the rationale, but I’d be lying if I said I hadn’t considered the same thing nor personally relate to it.

That’s the difference between angst and anguish. I was in the midst of internal anxiety marked by an excruciating uncertainty about what might happen next; there was no pain except for the fear of what I might cause, even if I didn’t want to hurt myself.

Depression for me is similar to an earthquake in that sense. You know it can strike at any time and it will be immediate and without warning when it does.

***

I’m not totally sure how to end a post like this. It’s not like the point of it was clearly established in the first place, so finding a natural conclusion is almost as difficult as coming clean about this in a public post.

One thing I feel is worth punctuating is that I have been seeking help and this is not a cry for more. This past year has come with a lot of experimentation to find out how to deal with my symptoms. Writing this post is one sliver of a much bigger plan of attack to overcome this beast from many angles. I’m serious about making changes in my life and rethinking my boundaries in the process.

Maybe that’s the way it’s supposed to be. I don’t want this to be the end of the conversation; nor do I want it to be a one-way dialogue. This is a raw and unvarnished part of my life and it’s likely to be that way for a while. Might as well keep this open-ended and see where it goes.

]]>http://geoffgraham.me/depression/feed/12316Reading List, October 2017http://geoffgraham.me/reading-list-october-2017/
http://geoffgraham.me/reading-list-october-2017/#respondFri, 03 Nov 2017 15:26:13 +0000http://geoffgraham.me/?p=2307Continue]]>This post is going to be my feeble first attempt to share a few of the things I’ve read in the past month that resonate with me and feel worthy of passing along. My intent is to do this about once a month. Then again, I said the same thing when I attempted to start an email list also aimed at sharing post I’m reading. You can still subscribe to that list (bottom of this post) and be among the others who are still waiting for the first digest.

I cannot count the number of posts I’ve read about Imposter Syndrome over the past five or so years, but this one by Rachel Smith is the first I’ve read trying to distinguish it from symptoms of humility.

I kind of wish we could talk about how we all experience:

humility’s advantage

the beginner’s mindset

the motivation that comes from self doubt

They aren’t nearly as sexy sounding as imposter syndrome, but at least we wouldn’t be labelling normal and healthy feelings like they are some sort of psychological affliction!

Once you read Rachel’s post, you start to read all the others with a different perspective. Here’s another one that published a few days after Rachel’s that acts as a good companion because it further defines the diagnosis and ways to deal with the symptoms.

Any post the talks about CSS Grid is catching my eyes these days. I’m genuinely excited about the feature and it’s potential for removing frameworks as dependencies on web projects. This post by Mina Markham goes deep on how the Slack team integrated Grid into their marketing site, including super helpful tips on how they addressed fallbacks for older browsers using progressive enhancement using CSS @supports as a starting point.

The other key takeaway from this post is a swell mixin for fluid typesetting. Not only does the shared technique help address responsive font sizing, but it also acts as a one-stop shop for setting the context for the content, such as setting a link to be a button. As Mina describes it:

Typeset is a mixin that acts as single source of truth for all typography settings. For each type style, a new line is created inside the mixin that contains the name or purpose of the style, followed by a list of settings for each style.

Dang, that’s slick. While I don’t use LESS for CSS preprocessing, I’d be down to see a similar mixin for Sass.

This is Chris Coyer’s lifetime journey, starting with the family he was born into and how his accumulation of experiences led him into web design. As someone who works remotely and independently, I often miss opportunities to talk to and relate with others the same way that you might with co-workers in an office. This post reads a lot like a deeply personal conversation with a colleague over coffee and gave me something to relate to. Plus, I really dig the accompanying photos and the overall presentation. It’s a lot like a presentation turned into a post, which I guess it is.

There is very little new information on typography in this post, but I really like (1) how it is presented and (2) that it is a one-stop shop that collects all the information on best practices. Plus, there are a few bonus tips on grammar, which is something near and dear to my heart, having come from a copywriting background.

I have to shamefully promote myself a little, right? This is a guide I put together for CSS-Tricks. It forced me to revisit the very basics of using the CSS gradients which was a healthy exercise because it showed me just how much I had forgotten or what I take for granted. It also forced me to learn about Conical Gradients, which are super interesting and in the current working draft of the spec.

CSS Grid has been written up a ton (some by myselfincluded) but rarely do we get a peek inside the making of such a significant web feature. This post is a true journalistic piece on the history of CSS Grid from it’s inception to the currently day workings into solving subgrid, complete with commentary by the very folks who were and are at the ground level of its implementation.

]]>http://geoffgraham.me/reading-list-october-2017/feed/02307:indeterminatehttp://geoffgraham.me/indeterminate/
http://geoffgraham.me/indeterminate/#respondSun, 08 Jan 2017 15:28:30 +0000http://geoffgraham.me/?p=2285Continue]]>I learned that it only applies to three HTML elements: checkboxes, radio buttons and progress. That makes sense because the point of the selector is to target the status of an element and determine whether or not it has a status at all.

For example, a checkbox can either be checked or unchecked. When using checkboxes in a form, we often default to one state or the other and, while that’s all good and dandy, it also assumes a state before the user has interacted with it. Adding a third undetermined state is where something like this helps.

The interesting thing about using checkboxes as an example is that HTML does not support an :indeterminate state right out of the box. It requires Javascript to render the state, though it is not required at all for radio buttons or progress. Go figure!

]]>http://geoffgraham.me/indeterminate/feed/02285System Font Stackhttp://geoffgraham.me/system-font-stack/
http://geoffgraham.me/system-font-stack/#respondSun, 08 Jan 2017 15:21:17 +0000http://geoffgraham.me/?p=2283Continue]]>Beautiful fonts come at a cost. There’s the weight of serving those fonts which comes at a price tag that slow down the overall performance of the site. There’s also FOUT which is one of those annoying things (although Typekit has fixed this in its own way) that only a web designer might notice but sucks anyway.

Maybe there’s something to not styling text at all and using what the operating system already has downloaded locally and has available for use:

Defaulting to the system font of a particular operating system can boost performance because the browser doesn’t have to download any font files, it’s using one it already had. That’s true of any “web safe” font, though. The beauty of “system” fonts is that it matches what the current OS uses, so it can be a comfortable look.

]]>http://geoffgraham.me/system-font-stack/feed/02283Methods for Overriding Styles in WordPresshttp://geoffgraham.me/methods-for-overriding-styles-in-wordpress/
http://geoffgraham.me/methods-for-overriding-styles-in-wordpress/#respondSun, 01 Jan 2017 16:23:39 +0000http://geoffgraham.me/?p=2275Continue]]>We’re all familiar with the oft-used axion that with great power comes great responsibility. That could be no truer than when it comes to owning a self-hosted website.

Yet the expectation is that those who contribute code to the WordPress ecosystem are the ones responsible for the success of the sites where that code is used. In my experience supporting a WordPress plugin, the single source of all frustration with those who use the plugin comes from an assumption that if the plugin does not work, it is because the plugin author wrote bad code.

That cannot be further from the truth in most cases. Instead, broken functionality is often the result of components whose code conflicts with one another. While it is certainly possible that one or both of those components (or themes, or plugins, or whatever) contains bad code, it’s just as plausible that both are written rather well and the conflict comes from two valid but differing uses of the same WordPress hook.

In some ways, the general assumption should be turned on its head: we should expect the great possibility that code written independent of one another will not fit together and then be pleasantly surprised when they do.

I wrote the following post on CSS-Tricks to help explain that tension in the specific case when styles conflict between two components. No one like dealing with these conflicts but WordPress does give website owners a handful of ways to overcome them with the help of good ol’ CSS.