<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CSSquirrel</title>
	<atom:link href="http://cssquirrel.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://cssquirrel.com/blog</link>
	<description>opinions and news on web design</description>
	<lastBuildDate>Fri, 05 Apr 2013 18:10:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Podcast #24: Weeping Angels</title>
		<link>http://cssquirrel.com/blog/2013/04/05/podcast-24-weeping-angels/</link>
		<comments>http://cssquirrel.com/blog/2013/04/05/podcast-24-weeping-angels/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 18:10:55 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[#squoose]]></category>
		<category><![CDATA[3rdaverad.io]]></category>
		<category><![CDATA[blink]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[dylan wilbanks]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[squirrel and moose]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1441</guid>
		<description><![CDATA[Dylan and I talked about Blink last night, as well as discussing our experiences at the Squeetup event we had that coincided with AEA&#8217;s opening night party. Here&#8217;s Dylan&#8217;s recap of the podcast: Kyle and Dylan talk through the implications of Google&#8217;s new Blink browser engine and what it means for the future of web [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://dylanwilbanks.com/">Dylan</a> and I talked about Blink last night, as well as discussing our experiences at the Squeetup event we had that coincided with AEA&#8217;s opening night party.</p>
<p>Here&#8217;s Dylan&#8217;s recap of the podcast:</p>
<blockquote><p>Kyle and Dylan talk through the implications of Google&#8217;s new Blink browser engine and what it means for the future of web standards. Also, a review of the Squeetup, a Joel Spolsky reference, and Dylan&#8217;s exhaustion causing a few too many pregnant pauses.</p></blockquote>
<p><a title="Squirrel and Moose #24: Weeping Angels" href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/weeping-angels/">You can go listen to it now at 3rdaverad.io</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2013/04/05/podcast-24-weeping-angels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squirrelcon: The First Ever Squoose Squeetup</title>
		<link>http://cssquirrel.com/blog/2013/03/29/first-squeetup/</link>
		<comments>http://cssquirrel.com/blog/2013/03/29/first-squeetup/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 21:18:01 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Tidbits]]></category>
		<category><![CDATA[#squoose]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[squeetup]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1436</guid>
		<description><![CDATA[If you&#8217;re in Seattle on April 1st, either as a local or an attendee at AEA: Seattle, then might I politely ask you to swing past Rob Roy sometime that evening to meet up with Dylan, myself, and several other web geeks? Neither of us could attend An Event Apart this year (which is bound [...]]]></description>
				<content:encoded><![CDATA[<div class="comic"><a href="http://www.facebook.com/events/139580552886522/"><img class="alignnone size-full wp-image-1437" title="Squirrelcon: The First Ever Squoose Squeetup" src="http://cssquirrel.com/blog/wp-content/uploads/2013/03/squeetup-1.png" alt="Squirrelcon: The First Ever Squoose Squeetup" width="851" height="315" /></a></div>
<p>If you&#8217;re in Seattle on April 1st, either as a local or an attendee at <a href="http://aneventapart.com/event/seattle-2013">AEA: Seattle</a>, then might I politely ask you to swing past <a href="http://www.robroyseattle.com/">Rob Roy</a> sometime that evening to meet up with <a href="http://dylanwilbanks.com/">Dylan</a>, myself, and several other web geeks? Neither of us could attend An Event Apart this year (which is bound to be an amazing if it&#8217;s anything like every other AEA has been), but we&#8217;ll be in the neighborhood, having some drinks, eats, and incredibly geeky conversations.</p>
<p>We&#8217;ll be there starting at 7pm. It&#8217;s right across the street from the AEA Opening Night Party, but <a href="http://binged.it/Xpwbd5">here&#8217;s directions just in case</a>.</p>
<p>Those of you on Facebook can let us know you&#8217;re coming and ask any event-related questions <a href="http://www.facebook.com/events/139580552886522/">over here at the event&#8217;s page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2013/03/29/first-squeetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast #23: We Know You Al</title>
		<link>http://cssquirrel.com/blog/2013/03/29/podcast-23-we-know-you-al/</link>
		<comments>http://cssquirrel.com/blog/2013/03/29/podcast-23-we-know-you-al/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 17:16:58 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[talk show]]></category>
		<category><![CDATA[#squoose]]></category>
		<category><![CDATA[anonymity]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[faruk ates]]></category>
		<category><![CDATA[squeetup]]></category>
		<category><![CDATA[squirrel and moose]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1431</guid>
		<description><![CDATA[Last night Dylan Wilbanks and I recorded a new Squirrel and Moose podcast. Here&#8217;s how Dylan described it: Dylan and Kyle delve into Faruk Ates’ idea of giving non-anonymous commenters priority in comment threads. Also, the forthcoming Squoose meetup, an in-passing X Files reference, Dylan and Kyle compare age of their oldest e-mail addresses, and [...]]]></description>
				<content:encoded><![CDATA[<p>Last night <a href="http://dylanwilbanks.com/">Dylan Wilbanks</a> and I recorded a new Squirrel and Moose podcast. Here&#8217;s how Dylan described it:</p>
<blockquote><p>Dylan and Kyle delve into Faruk Ates’ idea of giving non-anonymous commenters priority in comment threads. Also, the forthcoming Squoose meetup, an in-passing X Files reference, Dylan and Kyle compare age of their oldest e-mail addresses, and almost no web content.</p></blockquote>
<p>For those of you who will be in Seattle on Monday,  April 1st (including you AEA attendees), if you&#8217;re into hanging with Dylan, myself, and a few other web geeks for a quality evening, I suggest you attend the first Squeetup (Squirrelcon? Squoosecon? Who knows?!)</p>
<p>If you use Facebook, you could even <a href="http://www.facebook.com/events/139580552886522/">let us know you&#8217;re coming</a>, which we&#8217;d appreciate.</p>
<p><a href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/we-know-you-al/">Follow this link to listen to Episode #23</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2013/03/29/podcast-23-we-know-you-al/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast #22: Of Google And Men</title>
		<link>http://cssquirrel.com/blog/2013/03/22/podcast-22-of-google-and-men/</link>
		<comments>http://cssquirrel.com/blog/2013/03/22/podcast-22-of-google-and-men/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 16:25:56 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[#squoose]]></category>
		<category><![CDATA[3rdaverad.io]]></category>
		<category><![CDATA[Donglegate]]></category>
		<category><![CDATA[dylan wilbanks]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[PyCon]]></category>
		<category><![CDATA[sexism]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1422</guid>
		<description><![CDATA[Last night I performed my normal Thursday ritual, carefully keeping the seals that hold the ancient ones in their slumber in the deepest trenches of the sea&#8230; Er, I mean, joining co-host Dylan Wilbanks for another episode of Squirrel and Moose. I&#8217;d like to think we&#8217;re hitting our stride at this point. We discuss Donglegate [...]]]></description>
				<content:encoded><![CDATA[<p>Last night I performed my normal Thursday ritual, carefully keeping the seals that hold the ancient ones in their slumber in the deepest trenches of the sea&#8230;</p>
<p>Er, I mean, joining co-host <a href="http://dylanwilbanks.com/">Dylan Wilbanks</a> for another episode of <a title="Squirrel and Moose @ 3rd Avenue Radio" href="http://3rdaverad.io/shows/squirrel-and-moose/">Squirrel and Moose</a>.</p>
<p>I&#8217;d like to think we&#8217;re hitting our stride at this point. We discuss <a href="http://amandablumwords.wordpress.com/2013/03/21/3/">Donglegate</a> with an enforced 10-minute limit and what I think constitutes a fairly balanced, nuanced view. We then dive into a talk about Google Reader which nicely spins into a discussion about Google&#8217;s behaviors in general these days.</p>
<p>Here&#8217;s the synopsis, as cleverly put by Dylan:</p>
<blockquote><p>Kyle and Dylan delve yet again into Yet Another Sexist Incident that ended with (almost) every party looking terrible, and then a long, rambling talk about the end of Google Reader and the Twilight Of The Web. Also, why there will never be another Jeffrey Zeldman, TV stations owned by flour mills, making AR-15 parts with 3D printers, raising girls to be programmers in a brogrammer world, and their inability to properly close out the episode.</p></blockquote>
<p>Check it out: <a href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/of-google-and-men/">Squirrel and Moose: Episode 23 &#8211; Of Google And Men</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2013/03/22/podcast-22-of-google-and-men/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Venn diagram of my work week</title>
		<link>http://cssquirrel.com/blog/2013/03/21/venn-diagram-of-my-work-week/</link>
		<comments>http://cssquirrel.com/blog/2013/03/21/venn-diagram-of-my-work-week/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 01:58:25 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Comic]]></category>
		<category><![CDATA[venn diagram]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1418</guid>
		<description><![CDATA[It&#8217;s been a hell of a week. In addition to the Kobayashi Maru situation that has become &#8220;Donglegate&#8220;, and all the other random crap that&#8217;s existed in tech culture and the world at large this week, it&#8217;s been a pretty horrid work week for me personally as well. Today&#8217;s comic is a pair of Venn [...]]]></description>
				<content:encoded><![CDATA[<div class="comic"><img src="/images/comic/cs107.png" alt="CSSquirrel #107: Venn diagram of my work week" longdesc="http://cssquirrel.com/comicscripts/script107.htm" /></div>
<p>It&#8217;s been a hell of a week.</p>
<p>In addition to the Kobayashi Maru situation that has become &#8220;<a href="http://amandablumwords.wordpress.com/2013/03/21/3/">Donglegate</a>&#8220;, and all the other random crap that&#8217;s existed in tech culture and the world at large this week, it&#8217;s been a pretty horrid work week for me personally as well.</p>
<p>Today&#8217;s comic is a pair of Venn diagrams that illustrate this. Short version: I had a week scheduled out with pure, unadulterated awesome. The kind of project that excites me and makes me enjoy and love what I do. Instead, a number of typical work emergencies piled up and I was the one trapped with a number obnoxious debug tasks that were outside of my specialty and that resulted in a very long slog of poking sticks at a website in the hopes that somehow I&#8217;d be granted wisdom.</p>
<p>Oh, and I had a rather unexpected case of kidney stones cause me the 2nd most excruciating pain of my life on Sunday and Monday. (The greatest pain I&#8217;ve ever experienced was an abscessed tooth. You never, ever in your life want that. Trust me.)</p>
<p>So this week can go shoot itself in the face.</p>
<p>However, life goes on. And another week is around the corner (also, hey, it&#8217;s spring now in the Northern Hemisphere!)</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2013/03/21/venn-diagram-of-my-work-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bonerfart</title>
		<link>http://cssquirrel.com/blog/2012/11/16/bonerfart/</link>
		<comments>http://cssquirrel.com/blog/2012/11/16/bonerfart/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 20:16:12 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Comic]]></category>
		<category><![CDATA[andy rutledge]]></category>
		<category><![CDATA[big deal]]></category>
		<category><![CDATA[bonerfart]]></category>
		<category><![CDATA[industry]]></category>
		<category><![CDATA[kanye west]]></category>
		<category><![CDATA[racism]]></category>
		<category><![CDATA[sara wachter-boettcher]]></category>
		<category><![CDATA[sexism]]></category>
		<category><![CDATA[sir hammerlock]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1403</guid>
		<description><![CDATA[I&#8217;m about to say something I never thought I&#8217;d ever say: I&#8217;m going to let Kanye West speak for me. Let&#8217;s have a toast for the douchebags, Let&#8217;s have a toast for the assholes, Let&#8217;s have a toast for the scumbags, Every one of them that I know Or, in the immortal words of Sir [...]]]></description>
				<content:encoded><![CDATA[<div class="comic"><img src="/images/comic/cs106.png" alt="CSSquirrel #106: Bonerfart" longdesc="http://cssquirrel.com/comicscripts/script106.htm" /></div>
<p>I&#8217;m about to say something I never thought I&#8217;d ever say: I&#8217;m going to let <a href="http://www.youtube.com/watch?v=Bm5iA4Zupek">Kanye West</a> speak for me.</p>
<blockquote><p>Let&#8217;s have a toast for the douchebags,<br />
Let&#8217;s have a toast for the assholes,<br />
Let&#8217;s have a toast for the scumbags,<br />
Every one of them that I know</p></blockquote>
<p>Or, in the immortal words of <a href="http://www.ign.com/wikis/borderlands-2/Sir_Hammerlock">Sir Hammerlock</a>:</p>
<blockquote><p>Screw it, let&#8217;s just call them bonerfarts.</p></blockquote>
<p><a href="http://sarawb.com/">Sara Wachter-Boettcher</a>, the less farty of today&#8217;s two guest stars, wrote one of the most important articles ever posted on A List Apart, entitled <a href="http://www.alistapart.com/articles/universal-design-irl/">Universal Design IRL</a>. In it, she speaks to the value of inclusivity in our industry, in our conferences, and in our lives. It&#8217;s well thought and well-spoken, engaging without being confrontational. It&#8217;s a timely message that we need to hear. And it got the critical reaction it deserved, with a wide and respectable section of the web design community doing fist-bumps and congratulating Sara on her piece.</p>
<p>Oh, and <a href="http://andyrutledge.com/">Andy Rutledge</a> (today&#8217;s less erudite guest star) took the opportunity to show his colors as a troll by trying to roll back the march towards an inclusive culture with shameless, well-spoken but intellectually <a href="http://www.alistapart.com/comments/universal-design-irl//#5">empty flamebait</a>.</p>
<p>When the community collectively and decisively stepped up to counter his hollow rhetoric, the best he could manage was passive-aggressive counterattacks that amount to the following:</p>
<p>1. <a href="https://twitter.com/andyrutledge/status/269458487057186816">We&#8217;re the bigots by hating on white males. Not him.</a> (Note: I&#8217;m a white male, not a red squirrel)</p>
<p>2. <a href="https://twitter.com/andyrutledge/status/269211957444366337">Everyone is born equal, so what the hell are we whining for?</a></p>
<p>3. <a href="https://twitter.com/andyrutledge/status/269218725654327296">Racism and sexism have been fixed, so everything is peachy.</a></p>
<p>4. <a href="https://twitter.com/andyrutledge/status/269231174004658176">I&#8217;ve got a wife and a bi-racial son, so I&#8217;m cool.</a></p>
<p>As a quick note: Men who were trying to suppress universal suffrage had wives. They probably even loved them. That didn&#8217;t make their words and actions less sexist.</p>
<p>Before I continue, I want to publicly apologize for a grave error I made yesterday. While tweeting about Andy, I called him a &#8220;great designer&#8221; while still noting he&#8217;s a bigot. On further reflection, I realize that&#8217;s the &#8220;great designer&#8221; part isn&#8217;t remotely close to true. We can&#8217;t compartmentalize someone, where we say &#8220;Oh, he&#8217;s terribly racist, but not too bad a fellow&#8221;. Andy&#8217;s shown his colors enough times that we can safely say &#8220;great&#8221; doesn&#8217;t reflect what he is.</p>
<p>Several more experienced members of the community who have seen Andy&#8217;s tirades say he&#8217;s not worth engaging. They suggest that we shouldn&#8217;t feed trolls. They&#8217;re right in one thing: Andy is a lost cause. He&#8217;s a relic that represents a time and culture that promoted and sustained racism and sexism, that hid their policies of hate or race superiority under false claims that &#8220;Everything&#8217;s fine and if they&#8217;re suffering it&#8217;s their own fault for not trying harder.&#8221;</p>
<p>Screw them.</p>
<p>Despite that, we do need to speak out and publicly shame the trolls when they come out of their fetid, subterranean lairs. Here&#8217;s two concrete examples why:</p>
<p>#1: <a href="https://twitter.com/ryanrockets">A young white male developer</a>, in response to yesterday&#8217;s discussion of diversity in tech.</p>
<blockquote><p>I&#8217;m saying difft cultures &amp; genders favor different things. I don&#8217;t care for Pinterest or knitting. Are you upset by this?</p></blockquote>
<blockquote><p>I&#8217;m saying if white dudes like IT or CS and women don&#8217;t, people of color don&#8217;t, you are imagining barriers that don&#8217;t exist.</p></blockquote>
<p>#2: A young woman developer, in discussion about the same issues that she faces daily when dealing with &#8220;inclusion&#8221; in the community:</p>
<blockquote><p>I wish they&#8217;d get emails <a style="text-decoration: underline; color: blue;" href="http://programmersbeingdicks.tumblr.com/post/31358847674/consider-this-individual-makes-an-allusion-to">like this</a> in their inbox every day. &#8211; It&#8217;s a mental barrier that chips away at confidence.</p></blockquote>
<p>Andy is a lost cause. He&#8217;s just bad gas in the room. But this young man, and this young woman, represent two problems. The first feels emboldened to defend barriers in the workplace because unchallenged garbage from &#8220;established&#8221; designers like Andy supports his (observably, provably false) world view that there&#8217;s no problem. The latter feels intimidated to the point that she&#8217;s afraid to call people out when they objectify and imply rape for fear of retribution.</p>
<p>When you, or I, or anyone in the field takes the time to publicly call Andy a bonerfart, we help men realize that douchebaggery is just that, and we help young women realize they have allies and can speak out. We don&#8217;t need to treat bonerfarts with respect, we don&#8217;t need to take them seriously. But we need to seriously ensure that the conversations that happen aren&#8217;t being dominated by the same old, tired, ol&#8217; fashion bigots. So when others look at what&#8217;s going on, they see that there isn&#8217;t a consensus that is hostile to diversity in our culture.</p>
<p>At Mindfly, three of the five developers/designers are women. They&#8217;re good at their jobs, and can kick my ass at design any day of the week. They should never have to accept lower pay, glass ceilings, unwelcome advances or be demeaned because of their gender. Here at Mindfly they aren&#8217;t. I&#8217;m proud of that.</p>
<p>But I want to be proud of the whole industry. And the only way to do that is call out the bonerfarts when they happen, so everyone knows that it&#8217;s not the whole industry that stinks. It&#8217;s just the ostracized assholes.</p>
<p>(For more on this topic, you can check out Dylan Wilbanks and I dismantling Andy&#8217;s relevancy in our newest podcast <a href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/do-not-feed-the-trolls/">here</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2012/11/16/bonerfart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Hitbox Detection</title>
		<link>http://cssquirrel.com/blog/2012/10/24/css-hitbox-detection/</link>
		<comments>http://cssquirrel.com/blog/2012/10/24/css-hitbox-detection/#comments</comments>
		<pubDate>Wed, 24 Oct 2012 19:03:49 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css animations]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hitbox]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1385</guid>
		<description><![CDATA[Note: Read this to the end before you get too excited. This is an interesting CSS hack/exercise, but it faces a major hurdle that limits its applicability. File this under: cool tricks with CSS that might be a poor use of your time, or might be more awesome than two unicorns doing synchronized backflip space [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Note: Read this to the end before you get too excited. This is an interesting CSS hack/exercise, but it faces a major hurdle that limits its applicability.</strong></p>
<p>File this under: cool tricks with CSS that might be a poor use of your time, or might be more awesome than two unicorns doing synchronized backflip space diving.</p>
<p>Over the weekend while brushing up on CSS animations, I had an errant thought involving how the brains of certain types of flies operate.</p>
<p>Which I won&#8217;t go into for now. Let&#8217;s just say that nature is <em>weird</em>, providing very disparate solutions to the same problem. (In the case of the flies it was how they think.)</p>
<p>The relation to what I was doing at the time is that we&#8217;re in a situation where we can animate elements in a browser with the aid of Javascript, or we can now do it with just CSS. I was exploring the range of wacky things I could accomplish with pure CSS, sans Javascript. One of the interactions I wanted to see if I could accomplish was hitbox detection.</p>
<p>In video game programming, <a href="http://en.wikipedia.org/wiki/Hitbox">hitbox detection</a> is used to determine when one moving element (like Blinky the ghost&#8217;s ectoplasmic tendrils of love) touches another moving element (like Pac-Man&#8217;s glorious, circular body.) And once that event is detected, the game then causes something to happen. (In the family-safe industry of 80&#8242;s arcade games, this means that Pac-Man dies a horrible death, questioning the futility of his existence. In my fevered dreams it would instead result in an erotic love scene of the Pac-Man/Blinky slash variety. Which, I think we all agree, would make for an excellent arcade machine hack.)</p>
<p>We&#8217;ve established that CSS can animate objects. But detecting a collision between two of them? Impossible!</p>
<h3>Actually&#8230;</h3>
<p>CSS does possess some rudimentary event detection based around the mouse interacting with page elements. :focus, :checked, :hover, etc. Most of them require users to actively do a discrete event, which is less useful for actively polling for something like the collision between two objects in real time.</p>
<p><strong>:hover</strong>, however, provides us with a bit of a possibility. The mouse is just hanging out there on the page, doing its thing. It&#8217;s typically hovering over something. Can we make that work for us?</p>
<h3>Hover over what?</h3>
<p>The mouse hovers over one element at any given point in time, which triggers the <strong>:hover</strong> pseudo-class for CSS on that element and any of its parents, all the way up to the root.</p>
<p>Let&#8217;s assume a very simple problem situation which we&#8217;ll be turning into <a href="http://cssquirrel.com/testcases/hitbox-detection/">this demo</a>. We have a stationary &#8216;avatar&#8217;, which for the purposes of our demo is a green circle sitting in the middle of the page. We also have an animated &#8216;mob&#8217;, which we&#8217;ll render as a black square. The mob is animated to sweep horizontally back and and forth across the page underneath the circle.</p>
<p>What we want to do is detect when the mob passes under the avatar in a simplified, horizontal-only collision detection.</p>
<p>We&#8217;ll want this to happen regardless of where our mouse is, which presents a problem. We can&#8217;t be hovering the cursor over the avatar, so how will we know when the mob lines up with us?</p>
<h3>Sensors</h3>
<p>What we want is the ability to detect an overlap at any point in time, regardless of the mouse&#8217;s position. To do this, we&#8217;re going to create a grid of invisible elements that are aligned around both the avatar and the mob. In our demo, we&#8217;ll call the ones attached to the avatar <strong>.switch</strong>, and the ones attached to the mob <strong>.sensor</strong>. We&#8217;re going to create enough sensors on each side of the elements so that regardless of where they are on our page, the mouse can be hovering over a sensor for each of them. In our case we&#8217;re only detecting for a horizontal overlap, so our sensors are as tall as the page. In a situation where we&#8217;re worried about vertical overlap, we&#8217;d be creating a grid of squares, greatly increasing the amount of discrete sensors we&#8217;d be making.</p>
<p>The avatar is stationary, so its sensors can remain stationary with it. The mob is not, so its sensors will have to be animated as well to follow its movements.</p>
<h3>Double Hover Detection With Pointer-Events</h3>
<p>The reason we&#8217;ve made all these sensor elements is to help us detect the avatar and mob overlapping regardless of where the mouse is. Each sensor grid is aligned in space around their respective icon, so when the mouse lines up over both the avatar&#8217;s sensors and the mob&#8217;s sensors of the same corresponding position, we know that where the avatar and mob are, they too are overlapped. (So, for example, if the leftmost avatar sensor and the leftmost mob sensor are both under the mouse, we can know that the avatar and mob are also overlapped).</p>
<p>Of course, the problem is that CSS can&#8217;t detect if the mouse is hovering over more than one element. The first one it encounters interrupts detection on the others.</p>
<p><strong>Pointer-events</strong> is a CSS property that I don&#8217;t see discussed much, but that proves to be very convenient. It interacts with SVG in all sorts of strange ways, but with ordinary markup and CSS it still has two options. When set to &#8220;auto&#8221;, the element interacts with the mouse as desired. When set to &#8220;none&#8221;, the element no longer interacts with the mouse at all, becoming &#8216;transparent&#8217; to mouse events. Hovers, clicks, it completely disregards them, and the events pass under it to whatever element is beneath.</p>
<p>We can exploit this to provide a sort of double hover detection.</p>
<p>In our demo, we make sure that all our <strong>.switch</strong> elements for the avatar&#8217;s sensors are set to a low z-index, and that the <strong>.sensor</strong> elements of the mob&#8217;s sensors are set to a higher z-index, but that <strong>.sensor</strong> also has been set with <strong>pointer-events: none</strong>. We also make sure that our .switch elements come earlier in our markup than the sensors.</p>
<p><strong>.switch { z-index: 1; }</strong></p>
<p><strong>.sensor { z-index: 2; pointer-events; none; }</strong></p>
<p>We then give <strong>.switch</strong> a rule for when it&#8217;s hovered over that causes its corresponding <strong>.sensor</strong> to regain its pointer-events (and keep it as long as the mouse is over it). In my demo I&#8217;ve given each sensor/switch pair a specific class that corresponds with each other. So for the leftmost pair we&#8217;d see a rule like this:</p>
<p><strong>.switch.s1:hover ~ .sensor.s1 { pointer-events: auto; }</strong></p>
<p><strong>.sensor:hover { pointer-events: auto; }</strong></p>
<p>This then causes the <strong>.sensor</strong> in question to be able to interact with the mouse. Since it has a higher z-index than <strong>.switch</strong>, it will then catch the mouse&#8217;s attention.</p>
<p>If at any point in time <strong>.sensor</strong> is being hovered over by the mouse and has its <strong>pointer-events: auto</strong> catching it, this means that it is also overlapping with the corresponding <strong>.switch</strong>. At which point we can say that we know that the mob and avatar are overlapped. So all we need now is to create a rule that acts on the hover event for .sensor. In this case, we&#8217;ll be turning the avatar red to show the event.</p>
<p><strong>.sensor:hover ~ #avatar { background: red; }</strong></p>
<h3>Don&#8217;t Pop The Cork Yet</h3>
<p>Victory!</p>
<p>Well, sadly, no.</p>
<p>I made this demo while using Firefox. And current builds of Firefox are very distinct from Webkit and Opera in one very crucial fashion: Firefox actively polls the mouse to determine if hover events are occurring even when the mouse is holding still. So if an animated element (like the mob or its sensors) pass under the mouse, it triggers <strong>:hover</strong>.</p>
<p>However, in these other browsers, they only bother polling for :hover when the mouse is being used (moving it about, clicking, scroll-wheel, etc). Otherwise, it stops looking and any moving elements passing under it don&#8217;t catch the <strong>:hover</strong>.</p>
<p>So here&#8217;s my demo of <a href="http://cssquirrel.com/testcases/hitbox-detection/">CSS Hitbox Detection</a>. If you check it in a current Firefox build, you&#8217;ll see it working. If you check it in any other browser, you will have to keep wiggling the mouse about to make it work. It also appears that nightly builds of Firefox no longer support this, although I don&#8217;t know if that&#8217;s by intent or not.</p>
<p>I&#8217;ve used pretty big sensor boxes in the demo, as I&#8217;m only doing a proof-of-concept here. As such, there can be very significant overlap before the collision is detected. In normal circumstances you&#8217;d want your sensors to be as tiny as possible (and therefore have tons of them) to provide a much quicker detection.</p>
<p>As it stands, without the support of actively polling for hover, this isn&#8217;t useful for any scenario that requires real-time polling. But it may have other useful applications in an on-user demand. (It would be, for example, bad for a CSS-only Pac-Man game [which would be a nightmare in its own right], but might be usable in a situation where you click a button at a specific point to see if two elements are overlapped).</p>
<h3>Notes</h3>
<p><a href="http://cssquirrel.com/testcases/css-animation-hover/">Here&#8217;s a pared down test of the use case of how browsers handle hover</a> when the mouse is stationary when elements move under it.</p>
<p><a href="http://lists.w3.org/Archives/Public/www-style/2012Oct/0711.html">Here&#8217;s a message</a> by Eric Meyer on www-talk about the issue it brings up.</p>
<h3>Thoughts? Workarounds? Uses?</h3>
<p>So, CSS Hitbox Detection can exist. But due to how browsers support the <strong>:hover</strong> event, it may only have a narrow band of application. Obviously this is the sort of interaction that would be better handled by JS (which I knew all along, but was curious to see if a CSS alternative could be made to work).</p>
<p>That said, I&#8217;m just one guy with just one brain. I may have overlooked a workaround, or might be failing to see ways this would apply to something really cool despite it&#8217;s apparent limitations. Do any of you have thoughts? Ideas? Applications? Please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2012/10/24/css-hitbox-detection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goggles Are In</title>
		<link>http://cssquirrel.com/blog/2012/10/16/goggles-are-in/</link>
		<comments>http://cssquirrel.com/blog/2012/10/16/goggles-are-in/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 21:20:08 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[Comic]]></category>
		<category><![CDATA[ada lovelace day]]></category>
		<category><![CDATA[anna debenham]]></category>
		<category><![CDATA[gender issues]]></category>
		<category><![CDATA[janae cram]]></category>
		<category><![CDATA[lea verou]]></category>
		<category><![CDATA[naepalm]]></category>
		<category><![CDATA[women in web development]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1376</guid>
		<description><![CDATA[October 16th is Ada Lovelace Day, where we get to celebrate and support the presence of women in STEM (Science, Technology, Engineering and Math). I&#8217;m reliably informed that web development falls in there somewhere, so today&#8217;s comic features three STEM ladies: Brighton developer and console browser expert Anna Debenham, Greek CSS superstar Lea Verou, and [...]]]></description>
				<content:encoded><![CDATA[<div class="comic"><img src="/images/comic/cs105.png" alt="CSSquirrel #105: Goggles Are In" longdesc="http://cssquirrel.com/comicscripts/script105.htm" /></div>
<p>October 16th is <a href="http://findingada.com/">Ada Lovelace Day</a>, where we get to celebrate and support the presence of women in STEM (Science, Technology, Engineering and Math). I&#8217;m reliably informed that web development falls in there somewhere, so today&#8217;s comic features three STEM ladies: Brighton developer and console browser expert <a href="http://maban.co.uk/">Anna Debenham</a>, Greek CSS superstar <a href="http://lea.verou.me/">Lea Verou</a>, and Bellingham web designer (from my very own Mindfly Studio) <a href="https://twitter.com/naepalm/">Janae Cram</a> (in her chinchilla alter-ego, Naepalm. Because a CSSquirrel comic wouldn&#8217;t be right without a rodent somewhere).</p>
<p>The Countess of Lovelace is traditionally considered the world&#8217;s first computer programmer, having been credited with writing the first program for Charles Babbage&#8217;s incomplete Analytical Engine. Today, in her honor, people are encouraged to &#8220;create role models for girls and women in these male-dominated fields by raising the profile of other women in STEM.&#8221;</p>
<p>As anyone who&#8217;s been to a web dev conference can tell you, our field has a habit of being a sausage-fest. As someone working in a studio with a very heavy ratio of women to men (3 women to 2 men in our &#8220;production&#8221; team), I can tell you that this is a low down dirty shame. Women like Anna, Janae and Lea have a great deal to offer to our industry. It bothers me to know that a sizable (although hopefully shrinking) percentage of the men in our field don&#8217;t see the industry&#8217;s gender discrepancy as a problem, or believe measures made to make women more welcome is somehow an attack on men.</p>
<p>Sigh.</p>
<p>I doubt any readers of this blog are so backwards. If you are, feel free to just stop reading me, because I&#8217;m not interested in catering to dickwads. Sure, I could use traffic, but not <em>that</em> badly.</p>
<p>To those who do care, I&#8217;m sure you&#8217;ve seen much of this, but let&#8217;s point out how these three contribute.</p>
<p>Anna&#8217;s becoming the go-to expert on the impact of console browsers on your designs. She&#8217;s written a <a href="http://www.alistapart.com/articles/testing-websites-in-game-console-browsers/">well-received article in ALA on the topic</a>.</p>
<p>Janae is an integral part of the <a href="http://mindfly.com/">Mindfly</a> team, responsible for many of our designs and a surprising amount of our code (she&#8217;s far better than I am with databases despite my having a good five year head start on her with them). She&#8217;s also been involved in developing several web apps for our local gamer community.</p>
<p>Lea seems to have an annoying habit of producing <a href="http://lea.verou.me/projects/">awesome, useful tools for web designers</a> that she&#8217;s constantly putting online for everyone to benefit from. Just a couple days back she put out this nifty <a href="http://lea.verou.me/2012/10/easy-color-contrast-ratios/">contrast ratio tool</a>.</p>
<p>That&#8217;s just three women. There&#8217;s tons more in the field contributing to our industry every day, and millions more yet to enter the field who need to be inspired to join. Our species isn&#8217;t going to be getting any less involved with technology as we progress forward, each gender should have a strong role in what our future looks like.</p>
<p>Know any women in the field that inspire you? Please share their story. Tell me about them via one of the methods below, or tell people on your own website. And don&#8217;t wait for October 16th every year to bother telling people.</p>
<p>Oh, and Tesla coils? They rock. Miss Naepalm and I saw one in action last weekend.</p>
<p><a href="http://instagram.com/p/QyOQWuSPMz/"><img class="aligncenter size-full wp-image-1380" title="Tesla Coil" src="http://cssquirrel.com/blog/wp-content/uploads/2012/10/tesla-coil.jpg" alt="Tesla Coil" width="612" height="612" /></a></p>
<p>That sphere on the right? It&#8217;s a cage big enough for up to four people to stand in. Which gives you a clue how big that coil on the left was. It&#8217;s blasts weren&#8217;t quite as deafening as lightning&#8230; but it was pretty damn close.</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2012/10/16/goggles-are-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T-Shirts of the Week: Frankenpersona and Ugh</title>
		<link>http://cssquirrel.com/blog/2012/10/12/t-shirts-of-the-week-frankenpersona-and-ugh/</link>
		<comments>http://cssquirrel.com/blog/2012/10/12/t-shirts-of-the-week-frankenpersona-and-ugh/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 18:24:11 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[T-Shirt]]></category>
		<category><![CDATA[frankenpersona]]></category>
		<category><![CDATA[skreened]]></category>
		<category><![CDATA[spreadshirt]]></category>
		<category><![CDATA[store]]></category>
		<category><![CDATA[t-shirt]]></category>
		<category><![CDATA[t-shirts]]></category>
		<category><![CDATA[ugh]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1363</guid>
		<description><![CDATA[This week&#8217;s two designs are based on the last two comics. The first, &#8220;Frankenpersona&#8221; features the UX persona montrosity that was hunting down the squirrel in The Folly of Tool Obsession. The second design, &#8220;Ugh&#8221;, is based on the pizza-filled antics of the Squirrel in Gut Glut. You can buy the shirts either from cssquirrel.spreadshirt.com [...]]]></description>
				<content:encoded><![CDATA[<p>This week&#8217;s two designs are based on the last two comics.</p>
<p>The first, &#8220;Frankenpersona&#8221; features the UX persona montrosity that was hunting down the squirrel in <a href="http://squeee.org/1332">The Folly of Tool Obsession</a>.</p>
<p><img class="aligncenter size-full wp-image-1366" title="Frankenpersona" src="http://cssquirrel.com/blog/wp-content/uploads/2012/10/103-T-Shirt.png" alt="Frankenpersona" width="600" height="514" /></p>
<p>The second design, &#8220;Ugh&#8221;, is based on the pizza-filled antics of the Squirrel in <a href="http://squeee.org/1350">Gut Glut</a>.</p>
<p><img class="aligncenter size-full wp-image-1367" title="Ugh" src="http://cssquirrel.com/blog/wp-content/uploads/2012/10/104-T-Shirt.png" alt="Ugh" width="600" height="514" /></p>
<p>You can buy the shirts either from <a href="http://cssquirrel.spreadshirt.com/">cssquirrel.spreadshirt.com</a> for $13.99 (on Gildan standard-weight shirts) or $20.99 (on American Apparel), or go for the high-end screen-printing-like process, high durability shirts at <a href="http://skreened.com/cssquirrel">skreened.com/cssquirrel</a> for $29.99. Regardless of where you get the shirt, you&#8217;ll be supporting my work here at CSSquirrel and wearing a piece of Squirrel history.</p>
<p>Like the designs? Hate them? Have some t-shirt design advice for me? As always I crave feedback to learn from. Respond via any of the options below. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2012/10/12/t-shirts-of-the-week-frankenpersona-and-ugh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast #4: Requiem For A (Flash) Dream</title>
		<link>http://cssquirrel.com/blog/2012/10/12/podcast-4-requiem-for-a-flash-dream/</link>
		<comments>http://cssquirrel.com/blog/2012/10/12/podcast-4-requiem-for-a-flash-dream/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 17:29:51 +0000</pubDate>
		<dc:creator>Kyle Weems</dc:creator>
				<category><![CDATA[talk show]]></category>
		<category><![CDATA[#squoose]]></category>
		<category><![CDATA[3rdaverad.io]]></category>
		<category><![CDATA[argentina]]></category>
		<category><![CDATA[Australia]]></category>
		<category><![CDATA[beating a dead horse]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[ie10]]></category>
		<category><![CDATA[new zeland]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[sexy cold voice]]></category>
		<category><![CDATA[south africa]]></category>
		<category><![CDATA[squirrel and moose]]></category>

		<guid isPermaLink="false">http://cssquirrel.com/blog/?p=1358</guid>
		<description><![CDATA[Last night I joined the incomparable Dylan Wilbanks to record the fourth episode of our epic podcast Squirrel and Moose. In it we spend nearly thirty minutes beating up Flash for its lunch money, officially stating what everyone knew years ago: Flash is dead. So I guess we were beating up a corpse. Or maybe [...]]]></description>
				<content:encoded><![CDATA[<p>Last night I joined the incomparable <a href="http://dylanwilbanks.com/">Dylan Wilbanks</a> to record the <a href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/requiem-for-a-flash-dream/">fourth episode of our epic podcast</a> Squirrel and Moose.</p>
<p>In it we spend nearly thirty minutes beating up Flash for its lunch money, officially stating what everyone knew years ago: Flash is dead.</p>
<p>So I guess we were beating up a corpse. Or maybe a zombie. The former would make us deranged, the latter would make us heroes. So I&#8217;ll go with the latter. We&#8217;re god-damned heroes. We deserve medals. And like Chewbacca, we&#8217;ll go overlooked. It&#8217;s a cruel world.</p>
<p>Specifically we start by discussing the decisions involving <a href="http://www.geek.com/articles/news/internet-explorer-10-metro-will-not-support-flash-silverlight-20110915">IE10 not including Flash</a>, then <a href="http://www.geek.com/articles/news/ie10-in-windows-8-mode-strictly-limits-flash-just-like-microsoft-said-it-would-20121011/">begrudgingly including it but white-listing Flash sites</a>. Somewhere along the way we start making fun of most of the Southern Hemisphere. Because let&#8217;s be honest, your toilets flush backwards. Which is a sin against all mankind.</p>
<p>I think this ties in beautifully to <a href="http://squeee.org/1341">our last episode</a>, wherein we discussed tool obsession. Flash is a tool, and that tool&#8217;s days are drawing to an end. The sooner people jump ship to newer tools, the better off they&#8217;ll be. And hey, Adobe is there to help you. They already know Flash is dead and are building all sorts of <a href="http://html.adobe.com/edge/animate/">crazy new tools to replace it</a>.</p>
<p>All this and Dylan&#8217;s sexy post-cold voice. Available exclusively at <a href="http://3rdaverad.io/shows/squirrel-and-moose/episodes/requiem-for-a-flash-dream/">3rdaverad.io</a>. You can fill your earholes with the podcast there by listening directly at the site, via RSS, or through iTunes.</p>
<p>Flash. IE10. Got opinions? Of course you do. Share them. Respond via one of the methods below, or tweet <a href="http://twitter.com/dylanw">@dylanw</a> and <a href="http://twitter.com/cssquirrel">@cssquirrel</a> with the hashtag <strong>#squoose</strong> filled with your mind candy.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://cssquirrel.com/blog/2012/10/12/podcast-4-requiem-for-a-flash-dream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
