Custom-designed <select> menus without a wrapper <div>

Most of the time I tell clients we can’t customize the appearance of <select> menus (a.k.a. “dropdowns”), along with checkboxes and radio buttons. I lay out a whole rationale on the part of OS and browser developers for why these elements can’t be customized, which is perhaps marginally factual. I do think these elements are, by intention, difficult to customize, in order to avoid confusing users. But designers want to design and, to be honest, the browser defaults for these elements are pretty freaking ugly.

Often there are complicating factors that really do make it effectively impossible to customize these elements. And so far I have not found any way to customize radio buttons and checkboxes that don’t involve “faking” them with images and hidden inputs. Solutions that may achieve the desired appearance but that are oh so ugly on the inside.

I’ll also admit that I am usually the developer on a project, not the designer. But at the moment I am working on a project where, OK, I’m still not the designer, but I have taken responsibility for extending the design, which affords/requires of me making some design decisions. And when I’m the one designing things, I care a lot more about finding a way to make them look exactly like what I’ve envisioned.

So, we come to <select> menus. While it’s not really possible to do much with radio buttons and checkboxes, there at least are some CSS properties that these menus will take. Unfortunately they vary a lot between browsers and don’t solve every problem.

Most solutions I’ve seen for modifying the appearance of <select> menus involve wrapping the menu in a container <div> or <span> tag, essentially removing all of the CSS properties from the menu element itself, and then styling the container as desired.

I hate this solution. I want to be able to style the <select> itself, and be done with it. And at last I have found a solution that mostly accomplishes this, with the caveat that it does not work in Internet Explorer before version 10. But I have a fallback for IE 9 and earlier that does almost everything. And I haven’t tested in Opera because… come on. (OK, I’ve heard Opera is popular in Europe, but to be honest all of my clients are in the United States and do not do business in Europe, so it doesn’t matter. No one I have dealt with has ever cared if their site worked in Opera. Or probably even known it exists.) I should also probably just note that my company no longer supports Internet Explorer 7 or earlier, so we’re only concerning ourselves here with making sure it at least looks OK in IE 8.

OK, so how does this work?

Pretty much every browser supports some basic customizations of the <select> menu with CSS, like changing the background color, font, text color, size, etc. But there’s extra browser “appearance” junk we need to get rid of. Mostly the little up/down arrow at the right end of the menu that is the visual cue to users that it is a menu. That’s an important thing… we need to still provide some visual cue that it’s a menu. But I want to make it look the way I want to make it look.

Let’s start by getting rid of the browser junk.

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;

That removes all of the standard browser styling from Mozilla (Firefox) and WebKit (Chrome and Safari). I’m not sure we really need appearance or if it actually does anything in any known browser, but I saw it in an example somewhere and I hate using vendor prefixes without also including the non-prefixed version of the same property, so there it is.

So that covers three of the four major browsers. But what about Internet Explorer? There’s a tidy solution that works in IE 10 and later:

select::-ms-expand {
  display: none;

Now we have a <select> menu with none of the standard browser junk, and we can apply our styles as needed. As for Internet Explorer 9 and earlier, you’ll just have to live with the arrow thing at the right end of the menu. I’ll explain in a bit the way to add separate styles just for those earlier versions of IE, using conditional comments, in case you’re not familiar.

I do recommend designing your own “arrow thingy” icon for the right side of the menu, so users can still tell it’s a menu. Here’s an example of how your full <select> CSS might look. (This is fairly close to what I am using in the site I’m actually working on, although the colors, fonts and padding differ slightly.)

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background: rgb(238,238,238) url('images/select.png') right 5px center no-repeat;
  background-size: 9px 15px;
  border: 1px solid rgb(221,221,221);
  border-radius: 0;
  color: rgb(34,34,34);
  font-family: ‘Proxima Nova’, sans-serif;
  font-size: 100%;
  height: 2em;
  line-height: 2em;
  min-width: 60%;
  padding: 0 25px 0 10px;
  width: auto;
select::-ms-expand {
  display: none;

Here’s what the results look like in different browsers.


So, there’s an issue with the text alignment in Internet Explorer. As of this writing I’m working on resolving that. There are also some more minor variations between browsers in size and alignment, but that’s the nature of this business. Firefox also antialiases differently than Chrome and Safari, and I (usually) don’t bother trying to compensate for that. (The significant size difference in the IE sample is due to scaling at different breakpoints in my responsive layout… just a side effect of how I took the screenshots.)

That just leaves IE 9 and earlier. As I said, there’s no equivalent to select::-ms-expand before IE 10, so while we can change many aspects of the appearance of the menu, we can’t get rid of the standard arrow button thing. Unfortunately, if we implement the code above, we end up with both our custom arrows and the default ones, side-by-side. The only solution here is to get rid of ours, and remove the extra padding we gave it. This is where conditional comments come in. They’re well named: conditionals within HTML comments, recognized only by Internet Explorer. You can even target specific versions of IE with them. In this case, we just need to target versions before 10.

One common convention for conditional comments has you wrap the <html> tag itself in them, applying a class (e.g. ie8 that can then be used throughout your HTML everywhere else to target that browser. That’s great, but I never use it myself because I’ve gotten to a point where I rarely need to write any IE-specific CSS. So I just use the conditionals to load a separate ie.css file when I need it.

Here’s an example of how this might look. It should go in your <head> section, after you’ve included the main CSS file:

<!–[if lt IE 10]>
  <link rel="stylesheet" type="text/css" href="css/ie.css" />

And then in your ie.css file, you’ll need to override the background and padding:

select {
  background-image: none;
  padding-right: 0;

…and this is what it looks like in IE9 (and, just for fun, IE8 as well):


Obviously my styles are extremely basic — not really that different from what older versions of IE show anyway — but this does the job. As a test, I made the background bright red to prove it worked across the board. It does. But the results made my eyeballs bleed, so I’ll spare you.

But here’s something fun… how it looks on an iPhone with high resolution.


The arrow graphic is replaced with a high-res version using CSS3 media queries.

@media only screen and (-moz-min-device-pixel-ratio: 1.5),
  only screen and (-o-min-device-pixel-ratio: 3/2),
  only screen and (-webkit-min-device-pixel-ratio: 1.5),
  only screen and (min-devicepixel-ratio: 1.5),
  only screen and (min-resolution: 1.5dppx)
  select { background-image: url('images/select_x2.png'); }

(Yes, there’s an Opera vendor prefix in there. Forget about what I said earlier. Or not. This is just a standard block of code I always use for high-res images in my media queries.)

Depending on the complexity of your design, this approach may not offer quite as much control as you need, compared to the <div> wrapper approach, but if you’re just trying to get something clean and simple, with customized colors and fonts and without the outdated 3D styles most browsers stick you with, this should do the trick.

WordPress challenge of the day: sorting by meta value, including posts WITHOUT that meta value set

I dug around quite a bit for a solution to this today, and eventually I found one, even though it’s a bit ugly.

The problem here is in setting up a WordPress query that sorts posts based on a meta value. I wanted to sort a list of pages by template, but I wanted to include all of the pages, even ones that don’t explicitly have a template set. But the default query was only showing the ones that did have the template value.

Several dead ends almost led me to give up, until I realized it was a JOIN issue. Specifically, the need to change an INNER JOIN to a LEFT JOIN. I just needed to figure out how to do that in the context of WP_Query.

Cut to the chase, here’s what I ended up with.

add_action('pre_get_posts', function($query) {
  if (!is_admin()) { return; }
  $orderby = $query->get('orderby');
  if ('_wp_page_template' == $orderby) {
    // Workaround to include items without this meta key
    // Based on:
    add_filter('get_meta_sql', function($clauses) {
      $clauses['join'] = str_replace('INNER JOIN','LEFT JOIN',$clauses['join']) . $clauses['where'];
      $clauses['where'] = '';
      return $clauses;

I don’t like doing a str_replace() on part of the pre-built query, but sometimes you gotta do what you gotta do. Also note that this is part of a larger function I am writing that is only for use in the admin side; you could remove that is_admin() check if you want this to work everywhere.

I haven’t had a chance to dig into the details of the query to figure out why the original source post included moving $clauses['where'] into $clauses['join'], but it’s essential. I tried skipping it, and it didn’t work.

Sorry I can’t provide any more context here… but I hope it’s helpful to anyone who finds themselves in a similar situation!

Some problems just never go away… especially where CSS3 multi-columns are concerned

I don’t use CSS3 multi-columns (based around the column-count and column-gap properties) very much, mainly because a) I don’t need columns in my layouts very often and b) usually when I do need columns, this method is inadequately flexible for what I’m trying to accomplish.

Today I have a good use case though. A simple (but long) list of links, that I want to display as 3 columns on wide screens, 2 columns on tablets and a single column on phones. Great, except when I got it working, I found that — in Chrome only, which is a bit odd — the top of the first column is higher than the rest. It looks fine in Safari and Firefox.

I googled, as always, for a solution, and found several suggestions that seemed like they should work, and people claimed they did work, but for me, they didn’t. Then I found this comment on a post on the topic, and decided to try the column-break-inside property, which is something I normally only use in print CSS.

It still didn’t work. But then, vendor prefix to the rescue! I needed the -webkit prefix, and it worked. This needs to be applied to the elements inside your column container, not the container itself. Here’s my full CSS block:

.columns {
  -moz-column-count: 3;
  -webkit-column-count: 3;
  column-count: 3;
  -moz-column-gap: 3em;
  -webkit-column-gap: 3em;
  column-gap: 3em;

/* Fix for unbalanced top alignment in Chrome */
.columns > * {
  -webkit-column-break-inside: avoid;
  column-break-inside: avoid;

You’ll also want to repeat the .columns section (or its equivalent for your class/element names) in your media queries, changing column-count appropriately where you want to collapse down to fewer columns.

Since other solutions worked for other people, I’m guessing my solution might not work for everyone either. But I hope it helps someone… maybe you!

Recipe: Scott’s not-so-famous guacamole

Here’s a recipe to celebrate the Fourth of July, or… anything. I love guacamole, and several years ago I figured out how to make it. OK, I used a recipe, but my own approach has evolved over time and I’m pretty sure it’s quite different from where it started. The important thing to know, though: there are no peas in this guacamole.



4 ripe avocados
4 tomatillos
3-4 green onions
1/4 to 1/2 cup fresh cilantro
2 fresh green jalapeños (or other hot peppers of your choice)
2 tbsp lime juice (fresh squeezed if possible)
salt and pepper

How do you know if an avocado is ripe? If it’s hard, it’s underripe. If it’s really squishy, it’s overripe. A perfectly ripe avocado will be slightly soft when squeezed, but still a bit firm.


1. Wash everything thoroughly. I’m a freak about this. Well, OK, don’t wash the salt and pepper.

2. Peel the papery leaves off the tomatillos, and rinse well to remove any sticky film. Place the tomatillos into a small saucepan and fill with water to cover. Place on high heat. Once the water boils, reduce heat a bit and simmer 8-10 minutes. (You really just want to blanch these, not cook them.)

3. While the tomatillos are blanching, finely chop the green onions, cilantro, and jalapeños. Optionally, remove the seeds from the jalapeños if you prefer less heat. Combine the chopped onions, cilantro and jalapeños in a medium-sized bowl. Add 1 tbsp of lime juice, and salt and pepper to taste. Set aside.

4. When tomatillos finish blanching, remove from heat, drain well, and cover with ice cubes. Fill with cold water and allow to cool. After a few minutes, drain the tomatillos again. Cut out the tough stem portion, pour out any water they’ve absorbed (but don’t squeeze them), and place in a blender. Puree until smooth.

5. Cut around the skin of the avocado lengthwise to separate into two sections. Remove the pit by jabbing your knife blade into it and giving a twist. Scoop the flesh of the avocados out into a large bowl (not the bowl the other ingredients are in). Add 1 tbsp of lime juice and some salt and pepper, if desired, and mash with a fork or potato masher until all lumps are removed.

6. Pour the pureed tomatillos into the avocado, and stir gently until well blended. Add in the remaining ingredients and stir to combine.

7. Chill for an hour or so if desired, or eat immediately. Eat within 24 hours, as surface may turn brown from oxidation. (If this happens, just scrape off the top layer and it will be bright green underneath!)

The Apple Watch review no one was waiting for

Now that I’ve ripped on Apple Music, let’s focus on another Apple product that I’ve recently begun interacting with. Yes, the Apple Watch.


That’s my orangutan arm, wearing my Apple Watch. It arrived last week. (The watch, that is. I’ve been stuck with the hairy arm all my life.) But let’s not get ahead of ourselves.

Well over a year ago, I joined much of the tech world in engaging in speculation over what we all were, at the time, calling the “iWatch”. (Yes, I correctly deduced that my conviction that Apple wasn’t working on a watch probably meant that they were.) And then, just 8 days shy of a year later, and half a year after Apple did announce their watch, I wrote up some thoughts on who I thought might be the target market for the ludicrously expensive Apple Watch Edition. Turns out I was wrong about where the Edition would be sold (it is, in fact, available at Apple Stores), but I still think I was pretty much on track with my theories about the Edition in general.

Of course, at that point I also mentioned that I wasn’t really in the market for the Apple Watch at all. Here’s what I said:

First off, I personally am not really in the market for an Apple Watch at all. I find it interesting, but a) I don’t really want to wear something on my wrist, and b) I’m not interested in this until the second or third iteration.

It’s true, I didn’t want to wear something on my wrist. I had worn a wristwatch on a daily basis for about 20 years, starting with a supremely geeky Casio calculator watch in the mid-1980s — which would seem to suggest I would be dying for an Apple Watch — but one day in the summer of 2002 I just decided, while heading to the beach on vacation, to take off my watch. I never put it back on.

I had grown accustomed to not wearing a watch, and I liked the feeling. Especially since I had already started carrying a cell phone around in my pocket everywhere I went, it seemed superfluous to strap something on my wrist just to tell the time.

As far as my second reason for not wanting an Apple Watch goes, I was convinced at the time that the first generation Apple Watch would be half-baked upon arrival. But as the reviews started coming in, I got the feeling that while I am sure it will get better over time, it’s actually pretty good already.

As the weeks went by post-release, the voice in the back of my mind started wearing me down, and eventually one day I just became convinced that I should go for it. (OK, honestly? It was a bit of an impulse purchase. Beer may have been involved.)

So it’s decided then… but which model to buy?

There was never any question for me that I would be getting the Apple Watch Sport. Aside from the fact that it is the least expensive model, and the only differences with the more expensive options are aesthetic, I actually like the brushed aluminum look best. As I said in my earlier post, I’m not into shiny metal. And I especially hate gold. (Honestly? I associate it with Donald Trump. In a bad way, if that needs to be said.) Not only that, but I actually like the look of the fluoroelastomer bands the best.

That left me with a couple of choices to consider: whether to buy the 38mm or 42mm size, and then which color band to get. I had the impression, not having worn one, that the larger size might be too big; after all, I don’t have exceptionally large arms or hands. But I checked Apple’s sizing guide and was quickly convinced that, yes, I did need the 42mm version, even though it’s $50 more.

OK. Simple. Color? Not so much. I didn’t really consider the pink or white bands, but the blue, green and black were all in the mix. I decided that I would probably want the black one, just because I don’t exactly want to scream to the world, LOOK AT THIS APPLE WATCH ON MY WRIST! And I felt like the blue or green one would do that.

Except… the model that ships with a black band has “space gray” anodized aluminum, and I just really didn’t like how it looked. My iPhone is “space gray” but I had seen the watches in the display case at an Apple Store, and the “space gray” on the watches is much darker. The one person I know who already owned an Apple Watch also confirmed that for me. I don’t like shiny, but I do like a brushed silver look, so I ended up going with the blue band, and then buying an extra black band. (Apple conveniently offers an option for a black band with the pin in silver instead of “space gray”, perfect for my watch.)

Tick tock, tick tock…

With my selection made and my order placed, it was time for the waiting game. The two items shipped separately, and the black band was actually in stock already, so it arrived almost two weeks before the watch itself. I took the band out of the box and held it up to my wrist, envisioning the watch that it would eventually be connected to.

Apple talks about how “soft” the fluoroelastomer is, and it’s true. I had encountered this kind of rubber before so I knew what to expect, but it really is nice. Considering that you’re paying almost 50 bucks for a couple of strips of rubber with a little bit of aluminum, it should be. And it is.

I checked Apple’s website several times a day for the next week or so, eagerly awaiting the progress of my order. And once it finally did ship, I switched over to the UPS website and watched its progress from Suzhou to Shanghai to Anchorage to Lexington and finally to Minneapolis. Yes! It’s coming!


I was on the phone with a client when the UPS delivery guy walked into the studio carrying a curiously shaped and startlingly heavy box. “You got an Apple Watch, huh?” he said. I suspect this was not the first one he had delivered, although I have yet to see anyone in person besides myself wearing one.

I don’t get into the whole “unboxing experience” the way some people do. The main thing for me is that it’s easy to open. Blister packs are the bane of my existence. Of course this is Apple so opening the Apple Watch box was an event. But it was easy and painless. No blister packs. I felt like the shiny white plastic case it came in was a bit unnecessary, but I can see why they did it. I wonder what the boxes for the stainless steel and Edition models are like. Maybe the box is gold too?

All right, already… do you love it?

You know… yeah, I do. The Apple Watch is a marvelous object. It’s meticulously crafted. It feels like something of quality. The user interface is extremely well designed, and it is serving my main objectives for owning it (which I will outline below) quite nicely. I am very happy to own it.

This device serves a much different purpose than Apple’s other products. It’s not intended to be the next in a line of high-tech toys that we stare at incessantly for hours. Try holding your wrist up and looking at it for more than a few moments and you’ll understand why Dick Tracy isn’t real.

The Apple Watch is… a watch. It’s the watch reimagined, extended. But it still, in spirit, is a watch.

I see the watch as serving three primary roles for me. First, the traditional role of a watch: telling the time, and the day/date while we’re at it, and, being the natural successor to the digital watches of my youth, also offering an alarm, a stopwatch, and a timer. It does all of these watch-like things stunningly well, with the kind of user interface that makes you cringe to think of strapping on a Casio and trying to make sense of those four side buttons. This is Apple doing what it does best: reimagining something we all use and making it better than anyone thought possible.

Second, and really this was the motivating factor for me to get the Apple Watch: fitness tracking. I’ve been running for four years now, and it’s become a big part of my life. I’ve gotten to the point where I generally prefer not to have music while I’m running — mostly because of the annoying tug of earbud cables. I also would really like to not have to carry my iPhone in my pocket, because its weight is another annoyance. (That said, I’ve been inclined to carry my phone with me whenever I run since one time last year — one of the few times I did not have my phone along — when I witnessed a biker crash on the trail in front of me, hard enough to be bloodied and knocked unconscious. Another passerby and I managed to flag down a car whose driver had a phone with him, and we got help for the biker, but if I’d had my phone along the ambulance could have arrived much sooner.)

The Apple Watch works great as a fitness tracker. Granted, I have not used a Fitbit or any other single-function fitness tracking device, but I hate single-function devices, so I love that this capability is built into such a multipurpose object as the Apple Watch. The Apple Watch automatically calibrates using the GPS in your iPhone, so you just need to run for at least 20 minutes with the iPhone initially to let it adjust to your running style. Yesterday I ran without my phone on a route I knew from past experience is exactly 5K (3.1 miles), and the Apple Watch was nearly perfect in measuring the distance.

In addition to workouts, the Apple Watch has configurable tracking that measures your daily activity by three factors: movement (calories burned), exercise (in minutes), and standing — making sure you stand up and move around for at least one minute every hour. It was this feature, and the impact it had on Apple blogger Jim Dalrymple, that really convinced me to check out the Apple Watch in the first place.

I’m already pretty fit from the running, but Activity is still a nice way to make sure I keep moving even on my “rest” days, and especially encouraging me to stand and move around more, because when I’m working I often fall into the habit of sitting at my desk for hours at a time without getting up. (I’ve switched to a standing desk, but I still have a stool that I often rely on when I’m feeling lazy.)

The third thing I was hoping to get from the Apple Watch, and it’s even something Apple promotes about it, is that I would spend less time with my face buried in my iPhone. How does the watch help with this? By providing quick, at-a-glance notifications. The kinds of things that, with a ding and a vibration, have over the past several years been my signal to pull my iPhone from my pocket to review an incoming email… and then check Twitter… and Instagram… and Facebook… and maybe — oh, hang on. My Apple Watch just tapped me on the wrist to remind me to stand up. Have I really been sitting here writing this for so long? BRB.

Ahh… feels good to stretch the legs. Now where was I?

Oh yeah… my iPhone, that constant digital companion, is probably my favorite thing I own, and it shows. Because I spend so much time looking at it. A week into owning my Apple Watch, although I haven’t quantified it, I’m pretty sure I take my iPhone out of my pocket a lot less often now. And I feel liberated from having to answer every incoming message the instant I see it.

So, five out of five stars, then?

I do think I love the Apple Watch. It has taken its place alongside the other Apple devices I use so often. And I pretty much own them all. Mac, iPhone, iPad, I even have an iPod nano that I still use from time to time. My iPhone is definitely my favorite. I’d put the Watch between the Mac and the iPad at this point.

IMG_5164That said, I don’t think it’s absolutely perfect I do wish there were a few more options for the watch face. I’ve tried several of them, and found, in most cases, that they don’t offer as many complications as I’d like, or that the complications are too limited in what they can display. I ended up settling on the “Modular” face, mostly because it is the one that offers the highest information density, and because YES I CAN READ AN ANALOG CLOCK FACE, THANK YOU (and I can still write in cursive too, if I have to) but at a quick glance I prefer a digital display of the time.

The options for complications are a little lacking. What is it with Apple and stocks, for example? iOS and now watchOS just can’t get enough of stocks. I actually am using the Stocks glance now though, since I recently started a Roth IRA. But so far it’s just been a depressing reminder that some money that I’m not going to be able to touch for 30 years is worth a little less now than it was last week. So, who really cares?

I’m also not an astronomer, so while I think the moon phase feature is mildly interesting, it’s not something I need to be able to see at a glance. I really wish you could have the option to make some of the type smaller, since the calendar complication can barely show three words in identifying your next upcoming event.

IMG_5154So my “Modular” face is loaded up with the day/date, weather (in the largest complication to show more info), the sunrise/sunset, activity status, and alarm. I really wish I could fit in one more complication, so I could see the battery level, but in practice that has ended up not being an issue for me at all. I think on my day of heaviest use, the watch still had 15% of its charge at bedtime, and most days it’s still over 30%.

I’m encouraged by the imminent release of watchOS 2.0, and the features it promises, most notably the ability for third-party apps to run directly on the watch. I’ve already decided I do not want to play games on it (I’ve tried a few), and I also am glad there’s no web browser (let’s hope it stays that way), but I do like the potential I see in some of the third-party apps like MLB At Bat, and I’d like to see what else they might be able to do once they’re not using the watch screen as essentially a “dumb terminal” getting data fed to it from the iPhone.

Is that all?

I’ve focused here on the things about the Apple Watch that matter to me. There are several things it can do that I haven’t used (World Clock) or can’t use, at least not yet (anything that involves Apple Watch-to-Apple Watch communication). I’ve sent text messages to my family using the watch, and I’m impressed. The dictation feature shows a marked improvement over the last time I tried to use Siri for that purpose with my iPhone. Even in a noisy environment it seems to work really well.

And I finally got to use Apple Pay with the watch, since my iPhone 5s doesn’t support it directly. I paid for some groceries at Cub Foods the other day, and it was flawless… just double-tapped the bottom button, held my watch up to the reader, and felt the “tap” on my wrist. Done! Well… not quite. Unfortunately, store policy, the cashier then asked to see my ID and credit card, which I had to dig out of my pocket. That pretty much defeats the purpose, but at least I know the technology works.

I also haven’t used any of the music-related functions on the watch. I don’t listen to music from my iPhone very often these days, so having the watch as a remote control for it is unnecessary, and I don’t own Bluetooth headphones, so I can’t test its onboard music player. I swear by my cheap earbuds, so I cringe at the thought of dropping $100 on a pair of Bluetooth earbuds that probably won’t stay in my ears anyway, or might get lost. Honestly, I do not understand why Apple doesn’t allow you to play music through the watch’s built-in speaker. From what I’ve heard so far, it doesn’t sound that much worse than the iPhone’s speaker, and it would be nice to have a little bit of music along with me when I run without needing headphones. (Actually… it just occurred to me that I could try that with my iPhone, but it’s too hard to hear in my shorts pocket while running outdoors. Plus I want to stop carrying my phone when I run anyway.)

So, I’m not using the Apple Watch for everything I could use it for. But for the things I am using it for: checking the time, weather, baseball scores, and shrinkage of my pathetic retirement account; along with tracking my running and other physical activity and just generally avoiding staring at my iPhone so damn much… it’s perfect. And I even like the color.