<?xml version="1.0"?>
<News hasArchived="true" page="8887" pageCount="10801" pageSize="10" timestamp="Wed, 09 Sep 2026 17:16:37 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8887&amp;range=30">
<NewsItem contentIssues="true" id="28283" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28283">
<Title>CSS3 Transitions: Thank God We Have A Specification!</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>This article is packed with a number of quirks and issues you should be aware of when working with CSS3 transitions. Please note that I’m not showing any workarounds or giving advice on how to circumvent the issues discussed. Alex MacCaw has already written a very insightful and thorough article on “<a href="http://blog.alexmaccaw.com/css-transitions" rel="nofollow external" class="bo">All You Need to Know About CSS Transitions</a>.”</p>
    <p>Whereas Alex wrote about achieving particular effects, I’m going to talk about the technical background, especially the JavaScript-facing side. Pitfalls — <strong>this article is all about pitfalls</strong>.</p>
    <h3>Table of Contents</h3>
    <ul>
    <li><a href="#specifying-a-transition" rel="nofollow external" class="bo">Specifying a transition</a></li>
    <li><a href="#when-a-transition-is-complete" rel="nofollow external" class="bo">When a transition is complete</a></li>
    <li><a href="#transitionable-properties" rel="nofollow external" class="bo">Transitionable properties</a></li>
    <li><a href="#transition-property-priority" rel="nofollow external" class="bo">Transition property priority</a></li>
    <li><a href="#transitioning-from-and-to-auto" rel="nofollow external" class="bo">Transitioning from and to <code>auto</code></a></li>
    <li><a href="#implicit-transitions" rel="nofollow external" class="bo">Implicit transitions</a></li>
    <li><a href="#transitions-and-pseudo-elements" rel="nofollow external" class="bo">Transitions and pseudo-elements</a></li>
    <li><a href="#background-tabs" rel="nofollow external" class="bo">Background tabs</a></li>
    <li><a href="#invisible-elements" rel="nofollow external" class="bo">Invisible elements</a></li>
    <li><a href="#transitioning-before-the-dom-is-ready" rel="nofollow external" class="bo">Transitioning before the DOM is ready</a></li>
    <li><a href="#rendering-quirks" rel="nofollow external" class="bo">Rendering quirks</a></li>
    <li><a href="#specification-recommendations" rel="nofollow external" class="bo">Specification recommendations</a></li>
    <li><a href="#use-the-delay-luke" rel="nofollow external" class="bo">Use the <code>delay</code>, Luke</a></li>
    <li><a href="#conclusion" rel="nofollow external" class="bo">Conclusion</a></li>
    </ul>
    <p>Separation of concerns is nothing new — we’ve been using template engines for years to accomplish exactly that, separating our HTML from whatever scripting language we were using. <strong>A website has three major concerns:</strong> structure (HTML), layout and style (CSS), and behavior (JavaScript). CSS crossed the line and became behavioral quite a while ago, but that’s a whole different discussion.</p>
    <p>A couple of weeks ago, I was tasked with developing a JavaScript module that would allow for the use of CSS transitions in a way that the JavaScript side would know nothing about the transitions taking place. <strong>The actual problem is the asynchronousity of transitions.</strong> After writing a bunch of tests, I gave up on the task. It cannot be done with a reasonable amount of code and initialization time. My test results are what this article is all about.</p>
    <p>Before getting started with transitions, we have to talk about a little, frequently used, helper function. <a href="https://developer.mozilla.org/en-US/docs/DOM/window.getComputedStyle" rel="nofollow external" class="bo"><code>getComputedStyle()</code></a> is a JavaScript method that returns a CSS property’s value as the browser interprets it. This API goes back to “<a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSview-getComputedStyle" rel="nofollow external" class="bo">DOM Level 2: getComputedStyle()</a>” and “<a href="http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#computed-value" rel="nofollow external" class="bo">CSS Level 2: Computed Values</a>” — which basically specify that a computed style is an absolute value.</p>
    <p>This is fine for properties such as <a href="https://developer.mozilla.org/en-US/docs/CSS/font-size" rel="nofollow external" class="bo"><code>font-size</code></a>, which take only one argument and are reliably converted to pixel values. However, it doesn’t cover how browsers should handle shorthand properties, such as <a href="https://developer.mozilla.org/en-US/docs/CSS/margin" rel="nofollow external" class="bo"><code>margin</code></a> — some browsers return nothing, others something semi-useful. Then there are properties with different but equivalent values to consider, such as <a href="https://developer.mozilla.org/en-US/docs/CSS/font-weight" rel="nofollow external" class="bo"><code>font-weight</code></a>’s <code>bold</code> and <code>700</code>. WebKit also has <a href="https://bugs.webkit.org/show_bug.cgi?id=106535" rel="nofollow external" class="bo">a bug</a> that extracts the computed value of properties from pseudo-elements.</p>
    <p><em>The quirks described here were identified in January 2013 using Firefox 18 (Gecko), Opera 12.12 (Presto), Internet Explorer 10 (Trident), Safari 6.0.2 (WebKit), Chrome 23 (WebKit), as well as Gecko’s and WebKit’s nightly build channels.</em></p>
    <p>Without further ado, <strong>let’s dive into the specifications and implementations</strong>, a world riddled with misconceptions. Please note that in order to be concise, I’ve omitted vendor prefixes from the examples.</p>
    <blockquote>
    <p>Not knowing is difficult to handle. It’s easier to assume.</p>
    <p>– Dr. Axel Rauschmayer</p>
    </blockquote>
    <p>… But assumptions are often wrong. I discovered the information in this article by creating a <a href="http://test.csswg.org/shepherd/search/spec/CSS3-TRANSITIONS/" rel="nofollow external" class="bo">CSS3 Transitions Test Suite</a>.</p>
    <h3>Specifying A Transition</h3>
    <p>Besides the shorthand <a href="http://www.w3.org/TR/css3-transitions/#transition-property-property" rel="nofollow external" class="bo"><code>transition</code> property</a>, the CSS3 transition specification defines the following four CSS properties for specifying an animated change of state:</p>
    <ul>
    <li>
    <code>transition-property</code>,</li>
    <li>
    <code>transition-duration</code>,</li>
    <li>
    <code>transition-delay</code>,</li>
    <li>
    <code>transition-timing-function</code>.</li>
    </ul>
    <h4>CSS Properties to Transition</h4>
    <p>The <a href="http://www.w3.org/TR/css3-transitions/#transition-property-property" rel="nofollow external" class="bo"><code>transition-property</code> property</a> defines the <strong>property (or properties) to animate</strong>. The default is <code>all</code>, meaning that all properties a browser can transition will be animated on change (if there’s a <code>transition-duration</code> greater than <code>0s</code>). The property accepts one value or a list of comma-separated values (like all other <code>transition-*</code> properties).</p>
    <p>The specification states that a browser should accept and preserve any property it doesn’t recognize. So, the following example would still run a transition on <code>padding</code> lasting 2 seconds:</p>
    <pre><code>&#x000A;    transition-property: foobar, padding; &#x000A;    transition-duration: 1s, 2s;&#x000A;    </code></pre>
    <p>Contrary to the specification, WebKit parses the above to <code>transition-property: all</code>. Firefox and Opera parse it to <code>transition-property: all, padding</code>.</p>
    <h4>Duration of a Transition</h4>
    <p>The <a href="http://www.w3.org/TR/css3-transitions/#transition-duration-property" rel="nofollow external" class="bo"><code>transition-duration</code> property</a> defines the <strong>amount of time</strong> a transition should take to get from the initial state to the target state. It accepts a <a href="http://www.w3.org/TR/css3-values/#time" rel="nofollow external" class="bo"><code>&lt;time&gt;</code></a> value in seconds or milliseconds (for example, <code>2.3s</code> and <code>2300ms</code> both specify 2.3 seconds).</p>
    <p>While the specification makes it clear that values must be a positive number, Opera also accepts <code>-5s</code> — at least for <code>getComputedStyle()</code>. Opera and Internet Explorer (IE) do not accept values lower than <code>10ms</code>, although the specification mentions no such limitation. In all fairness, you wouldn’t notice a transition lasting 9 milliseconds anyways. WebKit (except for the current WebKit nightly) has a bug in its <code>getComputedStyle()</code> implementation, returning values such as <code>0.009999999776482582s</code> instead of <code>0.01s</code>. At least all browsers agree on returning second-based values.</p>
    <h4>Delay of a Transition</h4>
    <p>The <a href="http://www.w3.org/TR/css3-transitions/#transition-delay-property" rel="nofollow external" class="bo"><code>transition-delay</code> property</a> defines the <strong>time to wait</strong> before executing a transition, also using <code>&lt;time&gt;</code> values. The <code>delay</code> may be a negative value, which will start the transition immediately and make it appear as though the transition had started at the given offset in time — essentially starting with a jump.</p>
    <p>As with <code>transition-duration</code>, IE and Opera don’t accept values between <code>-10ms</code> and <code>10ms</code>. WebKit’s floating point issues appear here, too.</p>
    <h4>Timing Functions</h4>
    <p>The <a href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property" rel="nofollow external" class="bo"><code>transition-timing-function</code> property</a> defines the <strong>mathematical function used to calculate a property’s value</strong> at time <code>t</code>. There are three basic types: <code>cubic-bezier(x1, y1, x2, y2)</code>, <code>step(&lt;number&gt;, start|end)</code>, and keywords that map to predefined cubic bezier curves. Most likely, you already know the keywords <code>linear</code>, <code>ease</code>, <code>ease-in</code>, <code>ease-out</code> and <code>ease-in-out</code>. The math behind cubic beziers gets ridiculously unimportant when using <a href="https://twitter.com/LeaVerou" rel="nofollow external" class="bo">Lea Verou</a>’s charming little <a href="http://cubic-bezier.com/#.17,.67,.83,.67" rel="nofollow external" class="bo">Cubic Bezier Editor</a>. While cubic bezier curves make smooth transitions, the <code>step()</code> functions don’t. They instead jump to the next value (i.e. the next step) at a regular interval. This allows for frame-by-frame animations; see “<a href="http://lea.verou.me/2011/09/pure-css3-typing-animation-with-steps/" rel="nofollow external" class="bo">Pure CSS3 Typing Animation With steps()</a>” for an example.</p>
    <p>The computed value of <code>linear</code> is usually represented as <code>cubic-bezier(0, 0, 1, 1)</code> — except for WebKit, which actually returns <code>linear</code>. But not to worry: WebKit will still return <code>cubic-bezier(0.25, 0.1, 0.25, 1)</code> instead of <code>ease</code>. The current WebKit nightly returns the keyword for all defined keywords, though. Looking on the bright side, in a couple of months WebKit won’t be inconsistent with itself — only with the rest of the browser world.</p>
    <p>The specification stipulates that the <code>x</code> values must be between <code>0</code> and <code>1</code>, while the <code>y</code> values may exceed that range. Contrary to the specification, WebKit allows <code>x</code> to exceed the bounds, at least computationally. At the time of writing, the Android browser (version 4.0) mixes up ranges for <code>x</code> and <code>y</code>, essentially disallowing “bounce” effects.</p>
    <h3>When A Transition Is Complete</h3>
    <p>I already mentioned that CSS transitions run asynchronously. The specification provides the <code>TransitionEnd</code> event to allow JavaScript to synchronize with the end of a transition. Sadly, the specification isn’t very specific about this event. In fact, it simply states that an event is to be fired for every property that has undergone a transition. If you need a single word to describe the situation, “nightmare” isn’t far off.</p>
    <p>While the specification says that shorthand properties (such as <code>padding</code>) should run transitions for all properties that it covers (<code>padding-top</code>, <code>padding-right</code>, etc.), it doesn’t say which property should be named in a <code>TransitionEnd</code> event. While Gecko, Trident and Presto agree on triggering events for the longhand sub-properties (such as <code>padding-top</code>), even if a transition was defined for a shorthand property (such as <code>padding</code>), <strong>WebKit would take the opportunity to screw things up.</strong> WebKit would trigger an event for <code>padding</code> if (and only if) you specified <code>transition-property: padding</code>, but <code>transition-property: all</code> would trigger the event for <code>padding-left</code> et al. For some reason, iPhone 6.0.1’s Safari browser <em>might</em> also triggers events for <code>font-size</code> and <code>line-height</code> when <code>padding</code> is being transitioned. Confused yet?</p>
    <pre><code>&#x000A;    .example {&#x000A;      padding: 1px;&#x000A;      transition-property: padding;&#x000A;      transition-duration: 1s;&#x000A;    }&#x000A;    &#x000A;    .example:hover {&#x000A;      padding: 10px;&#x000A;    }&#x000A;    </code></pre>
    <p>The above CSS will trigger different <code>TransitionEnd</code> events across browsers:</p>
    <dl>
    <dt>Gecko, Trident, Presto</dt>
    <dd>
    <code>padding-top</code>, <code>padding-right</code>, <code>padding-bottom</code>, <code>padding-left</code>
    </dd>
    <dt>WebKit</dt>
    <dd><code>padding</code></dd>
    </dl>
    <pre><code>&#x000A;    .example {&#x000A;      padding: 1px;&#x000A;      transition-property: all, padding;&#x000A;      transition-duration: 1s;&#x000A;    }&#x000A;    &#x000A;    .example:hover {&#x000A;      padding: 10px;&#x000A;    }&#x000A;    </code></pre>
    <p>The CSS above will trigger different <code>TransitionEnd</code> events across browsers:</p>
    <dl>
    <dt>Gecko, Trident, Presto, WebKit</dt>
    <dd>
    <code>padding-top</code>, <code>padding-right</code>, <code>padding-bottom</code>, <code>padding-left</code>
    </dd>
    <dt>Safari 6.0.1 on iPhone (not iPad, mind you!)</dt>
    <dd>
    <code>padding-top</code>, <code>padding-right</code>, <code>padding-bottom</code>, <code>padding-left</code>, <code>font-size</code>, <code>line-height</code>
    </dd>
    </dl>
    <p>I said that you could specify a negative <code>transition-delay</code> to “jumpstart” your transition. But what happens for <code>transition-duration: 1s; transition-delay: -1s;</code>? Gecko and WebKit immediately jump to the target value and trigger an event. Trident and Presto won’t trigger any events.</p>
    <p><strong>That floating point issue that WebKit experiences</strong> in <code>getComputedStyle()</code> is also present in <code>TransitionEnd.elapsedTime</code> — consistently in all browsers. <code>Math.round(event.elapsedTime * 1000) / 1000</code> will “fix” that for you.</p>
    <p>WebKit and IE have implemented an <a href="http://snook.ca/archives/html_and_css/background-position-x-y" rel="nofollow external" class="bo">unspecified extension to <code>background-position</code></a> that causes them to trigger <code>TransitionEnd</code> events for <code>background-position-x</code> and <code>background-position-y</code>, instead of <code>background-position</code>.</p>
    <p>So, even if you <em>knew</em> that a transition was taking place, you wouldn’t be able to rely on the <code>TransitionEnd.propertyName</code> that you’re given. While you <em>could</em> write loads of JavaScript to equalize the behavior, you wouldn’t be able to do this in a future-proof way without doing proper feature detection for every single property. And this could include properties you might not even know are animatable.</p>
    <h3>Transitionable Properties</h3>
    <p>The specification <a href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="nofollow external" class="bo">lists a number of CSS properties</a> that a browser is supposed to support animated transition for. This list contains properties of CSS2.1. Any of the newer properties will be marked as animatable in their respective specifications — as <a href="http://www.w3.org/TR/css3-flexbox/#order-property" rel="nofollow external" class="bo"><code>order</code> of the Flexible Box Layout</a> shows.</p>
    <p>The property’s value type is an important factor. The property <code>margin-top</code> accepts <code>&lt;length&gt;</code> and <code>&lt;percentage&gt;</code> values, but according to the list of transitionable CSS properties, only <code>&lt;length&gt;</code> is to be animated. But that didn’t keep browser vendors from implementing transitions for <code>&lt;percentage&gt;</code> values anyway. The <code>word-spacing</code> property is a different story, though. The specification includes <code>&lt;percentage&gt;</code> values, but at the time of writing, no browser is able to animate that.</p>
    <p>Ignoring the (inherently unreliable) <code>TransitionEnd</code> events, a property is transitioned from value A to value B if its <code>getComputedStyle()</code> value is different from A and B at a given time during the transition. Because there is no such thing as a “CSS property value changed” event, <strong>you’re left with polling the DOM</strong>. <a href="https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout" rel="nofollow external" class="bo"><code>setTimeout()</code></a>’s resolution is not good enough to do this for fast transitions (a duration of less than a few hundred milliseconds). <a href="https://developer.mozilla.org/en-US/docs/DOM/window.requestAnimationFrame" rel="nofollow external" class="bo"><code>requestAnimationFrame()</code></a> is your friend for this. The browser will call you before it repaints to screen, allowing you to grab a couple of intermediate values during transitions. Except for Opera, all engines have this feature already.</p>
    <p>Instead of bloating this article with a full compatibility table, I’ve sent my results to Oli Studholme (<a href="http://twitter.com/boblet" rel="nofollow external" class="bo">@boblet</a>), who has updated his list of “<a href="http://oli.jp/2010/css-animatable-properties/" rel="nofollow external" class="bo">CSS Animatable Properties</a>” accordingly.</p>
    <h3>Priority of Transition Properties</h3>
    <p>The specification on the <a href="http://www.w3.org/TR/css3-transitions/#transition-property-property" rel="nofollow external" class="bo"><code>transition-property</code> property</a> states that we’re allowed to define a property multiple times:</p>
    <blockquote>
    <p>If a property is specified multiple times in the value of ‘transition-property’ (either on its own, via a shorthand that contains it, or via the ‘all’ value), then the transition that starts uses the duration, delay, and timing function at the index corresponding to the last item in the value of ‘transition-property’ that calls for animating that property.</p>
    </blockquote>
    <p>So, we can make <code>padding</code> transition for 1 second, while making <code>padding-left</code> take 2 seconds; or define a default transition style using <code>transition-property: all</code> and overwrite that for particular properties.</p>
    <p>In Firefox and IE, this works fine. Opera mixes up the priority order, though. Instead of simply using the <em>last</em> applicable property in the list, it treats <code>padding-left</code> as more specific than <code>padding</code> and <code>all</code>.</p>
    <p>The real problem is WebKit. It’s somehow managed to execute a transition multiple times if a property is specified multiple times. To really freak out WebKit, try running a transition for <code>transition-property: padding, padding-left</code> with the very small <code>transition-duration: 0.1s</code> (warning: this is not a good idea for epileptics). WebKit will <em>render</em> the transition at least twice. But the real beauty is the <code>TransitionEnd</code> events, of which you could receive up to <em>hundreds</em> for a single transition.</p>
    <h3>Transitioning From And To <code>auto</code>
    </h3>
    <p>The CSS property value <code>auto</code> translates to “Dear browser, please calculate some reasonable value for this.” Paragraphs (<code>&lt;p&gt;</code>) and any block-level elements will be as wide as their parent if they have <code>width: auto</code>. There are times when you’ll change from <code>width: auto</code> to a specific width — and want to transition that change. The specification neither enforces nor denies the use of <code>auto</code> values for transitionable properties.</p>
    <p>Firefox, IE and Opera cannot transition from or to <code>auto</code> values. IE makes a little exception for <code>z-index</code>, but that’s it. WebKit, on the other hand, is capable of transitioning from and to pretty much any CSS property that accepts the <code>auto</code> value. WebKit doesn’t like <code>clip</code> too much; for that property, it will only trigger a <code>TransitionEnd</code> event, without generating or showing any intermediate values or states during the transition.</p>
    <p>For the other properties, such as <code>width</code> and <code>height</code>, WebKit’s behavior is not quite what you’d expect. If <code>width: auto</code> translated to a calculated width of <code>300px</code> and you transitioned that to <code>100px</code>, then your transition would not shrink from 300 to 100 pixels. Instead, it would grow from 0 to 100 pixels.</p>
    <p>For a full compatibility table, have a look at “<a href="http://oli.jp/2010/css-animatable-properties/" rel="nofollow external" class="bo">CSS Animatable Properties</a>.”</p>
    <h3>Implicit Transitions</h3>
    <p>An “implicit transition” happens when a change to one property causes another property to be transitioned — or if you change a property on a parent element and cause a child to transition either the inherited property or a dependent property. Confused? Consider <code>font-size: 18px; padding: 2em;</code> — the padding is calculated as <code>2 × font-size</code>, because that’s what em does, giving us 36 pixels.</p>
    <p>There are various <strong>relative value types</strong>: <code>&lt;percentage&gt;</code>, <code>&lt;length&gt;</code>, <code>em</code>, <code>rem</code>, <code>vh</code>, <code>vw</code>, etc. Using a relative value, such as <code>padding: 2em</code>, makes the browser recalculate the property’s <code>getComputedValue()</code> every time its depending value (such as <code>font-size</code>) changes. That in turn triggers a transition for <code>padding</code> because the computed style has changed. This transition is considered to be “implicit” because the <code>padding</code> property was not modified explicitly.</p>
    <p>Most browsers run these implicit transitions. The exception is IE 10, which runs them only for the <code>line-height</code> property. WebKit runs implicit transitions for all applicable properties except <code>vertical-align</code>. Besides font-relative property values, there are width-relative property values (usually <code>&lt;percentage&gt;</code>), viewport-relative property values (such as <code>vh</code> and <code>vw</code>), default initial values (such as <code>column-gap: 1em</code> in Opera), and then <a href="https://developer.mozilla.org/en-US/docs/CSS/color_value#currentColor_keyword" rel="nofollow external" class="bo"><code>currentColor</code></a>. All of these might — or might not — trigger implicit transitions.</p>
    <p>In Firefox, these implicit transitions get particularly interesting when both the depending and the dependent properties are transitioned but their <code>transition-duration</code> or <code>transition-delay</code> do not match. While WebKit and Opera produce transitions that make sense visually, Firefox garbles things a bit. In IE, this is a non-issue because it doesn’t do implicit transitions.</p>
    <p>Don’t forget about inheritance within the cascade. A <code>font-size</code> on a DOM element will be inherited by its children, as long as it’s not overwritten, potentially causing implicit transitions.</p>
    <h3>Transitions And Pseudo-Elements</h3>
    <p>Pseudo-elements (<code>:before</code> and <code>:after</code>) were introduced with <a href="http://www.w3.org/TR/CSS2/generate.html" rel="nofollow external" class="bo">CSS2 generated content</a>. Read “<a href="http://coding.smashingmagazine.com/2011/07/13/learning-to-use-the-before-and-after-pseudo-elements-in-css/" rel="nofollow external" class="bo">Learning to Use the :before and :after Pseudo-Elements in CSS</a>” if you’re not yet familiar with generated content. While <a href="http://www.w3.org/TR/css3-content/" rel="nofollow external" class="bo">CSS3 content</a> defines additional pseudo-elements (<code>::alternate</code>, <code>::outside</code>), they are not (yet) supported. All animatable CSS properties should also be animatable for pseudo-elements.</p>
    <p>Firefox and IE 10 will transition properties on pseudo-elements. Opera, Chrome and Safari will not. WebKit added support in January 2013 — which you can already check out in <a href="http://nightly.webkit.org/" rel="nofollow external" class="bo">WebKit nightly</a> and <a href="https://www.google.com/intl/en/chrome/browser/canary.html" rel="nofollow external" class="bo">Chrome Canary</a>.</p>
    <p>Transitions of generated content bring their own set of funky issues. <code>TransitionEnd</code> events aren’t fired at all. At some point in the future, they’re supposed to be triggered on the owner element and provide their pseudo-element through <code>TransitionEnd.pseudoElement</code>. But even the “<a href="http://dev.w3.org/csswg/css3-transitions/#transition-events" rel="nofollow external" class="bo">Transition Events</a>” section of the “CSS Transitions” editor’s draft doesn’t specify that properly yet.</p>
    <p>There was a time when we would change the value of the <code>content</code> property so that IE 8 would re-render that element in certain circumstances (like when entering a <code>:hover</code> state). It turns out that this fix for old IE interferes with this ability for all other browsers. So, when trying to transition a property on a pseudo-element, make sure the <code>content</code> is not changed.</p>
    <p>IE 10 will not run a transition for a pseudo-element’s <code>:hover</code> state if the owner element doesn’t have a <code>:hover</code> state as well:</p>
    <pre><code>&#x000A;    .some-selector:before {&#x000A;      content: "hello";&#x000A;      color: red;&#x000A;      transition: all 1s linear 0s;&#x000A;    }&#x000A;    &#x000A;    .some-selector:hover:before {&#x000A;      color: green;&#x000A;    }&#x000A;    /* This next rule is necessary for IE 10 to transition :before on hover */&#x000A;    .some-selector:hover {}&#x000A;    </code></pre>
    <p>The weird thing about this issue isn’t that you need a (possibly empty) <code>:hover</code> state on the owner element. It’s that if you don’t have one, IE 10 will interpret the <code>:hover</code> as <code>:active</code> (i.e. active when you mousedown on the element). The even weirder part is that the <code>:active</code> state persists even after <code>mouseup</code> and is removed only by another click on the document.</p>
    <h3>Background Tabs</h3>
    <p>At the time of writing, IE 10 is the only browser that responds to a tab being in the background or foreground. While it will finish a running transition if the tab is pushed to the background, it won’t start any new transitions there. IE 10 will wait until the tab is pulled into the foreground before starting any new transitions. Fortunately, IE 10 already supports the <a href="http://www.w3.org/TR/page-visibility/" rel="nofollow external" class="bo">Page Visibility API</a>, allowing developers to respond to this behavior.</p>
    <p>We can expect similar things to happen with other browsers as they continue putting background tabs to sleep.</p>
    <h3>“Invisible” Elements</h3>
    <p>So, are transitions executed for DOM elements that are not attached to the DOM? Nope, not a single browser does that — why should they? Well, then, what about hidden elements? Most browsers have figured out that there’s no need to run a transition on an invisible (i.e. not painted) element. Opera thinks differently about this — it’ll run a transition regardless of whether it is painted or not.</p>
    <h3>Transitioning Before The DOM Is Ready?</h3>
    <p>The <code>DOMContentLoaded</code> event is triggered when the document leaves parsing mode. If you’re into jQuery, we’re talking about <a href="http://api.jquery.com/ready/" rel="nofollow external" class="bo"><code>jQuery.ready()</code></a> right now. Transitions can be run <em>before</em> this event happens.</p>
    <h3>Rendering Quirks</h3>
    <p>The issues I’ve described up to this point were found by testing against the specification. The tests were run automatically. But as it turns out, quite a few more problems are visible to the eye. The following quirks have been found by various other developers and could affect your meddling with transitions just as much.</p>
    <p>At this time, transitioning a background from gradient to gradient is not possible. Transitioning from gradient to solid color is possible — with a big caveat. If a gradient is in play, then the color transition will happen from white to the target color, appearing to quickly flash white at the beginning of the transition. This can be <a href="http://jsbin.com/oyuciz/1/" rel="nofollow external" class="bo">observed</a> in all current browsers.</p>
    <p>Firefox seems to be using a different algorithm for rendering (or smoothing) images as they’re being animated (<a href="http://jsfiddle.net/fSjUb/3/" rel="nofollow external" class="bo">see an example</a>). Apparently, Gecko sacrifies quality for performance during animation. Note that this occurs if a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=860261" rel="nofollow external" class="bo">low enough <code>transform: scale()</code> is in play</a>.</p>
    <p>Firefox won’t properly animate from <code>a:visited</code> to <code>a:hover</code> or vice versa. Instead, it will jump from <code>a:visited</code> to <code>a:link</code> and then transition to <code>a:hover</code>, as you can see <a href="http://jsbin.com/avabaw/1" rel="nofollow external" class="bo">in this example</a>. This is mentioned somewhat in “<a href="https://developer.mozilla.org/en-US/docs/CSS/Privacy_and_the_:visited_selector" rel="nofollow external" class="bo">Privacy and the :visited Selector</a>” on the Mozilla Developer Network. While IE 10 agrees with Chrome, Safari and Opera on the proper transition, it also runs the transition from <code>a:link</code> to <code>a:visited</code> on page load.</p>
    <p>Transitioning multiple properties is not synchronized in Firefox and Webkit. You can <a href="http://jsbin.com/uxenaz/1" rel="nofollow external" class="bo">see in this example</a> how making the <code>border</code> smaller by the same amount that the <code>padding</code> increases (and vice versa) causes the following content to shake a bit. IE 10 and Opera get this right.</p>
    <p>Firefox won’t animate an element’s properties if one of its parent’s <code>position</code> is changed, <a href="http://jsbin.com/azipul/1" rel="nofollow external" class="bo">as you can see</a>. Webkit, Opera and IE 10 behave correctly.</p>
    <h3>Recommendations For The Specification</h3>
    <p>Having read the specification from top to bottom and actually tested all of the features, I think a few changes would help:</p>
    <ul>
    <li>Introduce a <code>TransitionsEnd</code> (notice the plural), triggered once <em>all</em> transitions for an element have completed. It could provide a list of properties that have been animated — but I don’t see the use case for knowing <em>what</em> has transitioned, as long as I’m informed <em>when</em> all animations are done.</li>
    <li>Introduce a <code>TransitionStart</code> event, triggered for every property about to be transitioned. Because DOM events don’t come cheap and the JavaScript event loop and the rendering thread are not necessarily blocking each other, a single event <code>TransitionsStart</code> (there is that plural again) might be the better solution. I don’t see why I should be able to <code>cancel</code> the event, so this would be a “fire and forget” kind of thing.</li>
    <li>Make it clear what <code>TransitionEnd</code> is supposed to be triggered for. That <code>padding</code> versus <code>padding-left</code> issue in WebKit is rather annoying.</li>
    <li>Clearly specify how “implicit transitions,” such as <code>line-height: 1em</code> for <code>transition-property: font-size</code>, are to be handled.</li>
    <li>Add a <code>::transitioning</code> pseudo-class that allows you to define <code>pointer-events: none</code> to prevent accidental hover states (among other things). The trick here is to prevent the application of styles that themselves would trigger a new transition or that would alter an already running transition.</li>
    </ul>
    <p>In addition to these suggestions, we should be able to accomplish a number of common (simple) things without having to throw a lot of JavaScript at the problem:</p>
    <ul>
    <li>Every once in a while, you’ll want to completely mute all transitions — for example, because you’re changing the layout and need to calculate dimensions and positions before unleashing your beautiful transitions upon the visitor.</li>
    <li>Sometimes you’ll want to remove an object from the DOM and want that to be animated. Right now, you’d add a class, wait for the <code>TransitionEnd</code> event and then remove the element.</li>
    <li>Just as with removing things, you’ll want to add a new element and animate its appearance. Right now, you have to insert the element, set some “invisible style,” force a repaint and then revert to the new element’s actual style.</li>
    <li>Reordering, hiding and showing elements are common for any Web application. Giving that task a little style currently requires us to run utilities such as <a href="http://isotope.metafizzy.co/" rel="nofollow external" class="bo">Isotope</a>. A vanilla CSS solution could shave off some bytes.</li>
    </ul>
    <h3>Use The <code>delay</code>, Luke!</h3>
    <p>Imagine a number of elements packed together tightly. Imagine that the styles of those elements change on hover. Imagine moving your cursor (moderately quickly) over that group. What happens? Exactly: you’ll see the <a href="http://jsbin.com/irazox/1" rel="nofollow external" class="bo">styles of those elements flash</a>.</p>
    <p>By adding a relatively short delay to your transitions, you can <a href="http://jsbin.com/egeniz/1/" rel="nofollow external" class="bo">mitigate that effect</a>; 20 milliseconds is undetectable to the human eye, but it’s enough for the mouse cursor to pass over small elements. The transitions won’t appear to lag because of this, and the visual distraction you might have caused just disappears. Simple trick, I know.</p>
    <h3>Conclusion</h3>
    <ul>
    <li>Be very careful when using <code>transition-property: all</code>. You <em>will</em> get <code>TransitionEnd</code> events for properties that you didn’t expect to ever transition.</li>
    <li>Be careful when using shorthand properties, because the number of triggered events varies between browsers.</li>
    <li>Opera and IE don’t trigger events when a negative delay cancels out the duration.</li>
    <li>WebKit has real issues with the priority of properties such as <code>transition-property: margin, margin-left</code>. Avoid this for now.</li>
    <li>IE doesn’t support implicit transitions — for example, triggered for <code>padding: 2em</code> when <code>font-size</code> changes.</li>
    <li>Firefox and Opera cannot parse <code>transition-property: all, width</code>.</li>
    <li>Opera mixes up the priority of properties.</li>
    <li>Transitions on pseudo-elements do not trigger <code>TransitionEnd</code> events.</li>
    <li>IE 10 has a weird <code>:hover</code> bug when transitioning pseudo-elements.</li>
    <li>The specification leaves a lot of room for improvement.</li>
    </ul>
    <h4>Related Content</h4>
    <p>If you’re interested in transitions and animations — and how to use them wisely — have a look at these fantastic resources:</p>
    <ul>
    <li>“<a href="http://docs.webplatform.org/wiki/tutorials/css_transitions" rel="nofollow external" class="bo">Dynamic Visual Effects With CSS3 Transitions</a>,” Mike Sierra, Web Platform Docs</li>
    <li>“<a href="http://blog.alexmaccaw.com/css-transitions" rel="nofollow external" class="bo">All You Need to Know About CSS Transitions</a>,” Alex MacCaw</li>
    <li><a href="http://www.ui-transitions.com/" rel="nofollow external" class="bo">Meaningful Transitions</a></li>
    <li>“<a href="https://medium.com/design-ux/926eb80d64e3" rel="nofollow external" class="bo">Transitionable Interfaces</a>,” Pasquale D’Silva, Medium</li>
    <li>
    <a href="http://leaverou.github.com/animatable/" rel="nofollow external" class="bo">Animatable</a> (showcase of transitions), Lea Verou</li>
    <li>“<a href="http://oli.jp/2010/css-animatable-properties/" rel="nofollow external" class="bo">CSS Animatable Properties</a>,” Oli Studholme</li>
    </ul>
    <p><em>Thanks go to <a href="http://oli.jp/" rel="nofollow external" class="bo">Oli Studholme</a> for taking the time to review this article, and <a href="https://blog.linss.com/" rel="nofollow external" class="bo">Peter Linss</a> for walking me through the CSS Working Group’s testing infrastructure.</em></p>
    <p><em>(al)</em></p>
    <hr>
    <p><small>© Rodney Rehm for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        This article is packed with a number of quirks and issues you should be aware of when working with CSS3 transitions. Please note that I’m not showing any workarounds or giving advice on...</Summary>
<Website>http://www.smashingmagazine.com/2013/04/26/thank-god-we-have-a-specification/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28283/guest@my.umbc.edu/22e60b0d1dba8f1394a6ad0e31f4c9cb/api/pixel</TrackingUrl>
<Tag>coding</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 05:03:37 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="30038" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30038">
<Title>Overview of Electronic Mail Protection Systems</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>Everyone who uses e-mail sometimes wonders how well the transmitted information is protected from prying eyes. Indeed, a message to be transferred travels a long way between different computers and mobile devices before it reaches a recipient; the intentions of these devices’ owners are unknown. Besides, each device in the chain can run malware that stores transmitted messages. Another problem is that a mail recipient may not always use the information received in the way it is meant to be used.</p></div>
]]>
</Body>
<Summary>Everyone who uses e-mail sometimes wonders how well the transmitted information is protected from prying eyes. Indeed, a message to be transferred travels a long way between different computers...</Summary>
<Website>http://www.technologyreview.com/view/513991/overview-of-electronic-mail-protection-systems/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30038/guest@my.umbc.edu/8f5570b027462fee27065ff4d8c2a522/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 02:33:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28306" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28306">
<Title>Baseball Visits the Empire State for the Second Straight Weekend with Series at Albany</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE � After a brief two-game mid-week home stand, the UMBC baseball team heads back to New York for the second straight weekend for a three-game series with America East rival Albany at Varsity Field.  The Retrievers and Great Danes will play a doubleheader on Saturday beginning at 12:00 p.m. and follow it with a single game on Sunday, also scheduled for noon.</div>
]]>
</Body>
<Summary>BALTIMORE � After a brief two-game mid-week home stand, the UMBC baseball team heads back to New York for the second straight weekend for a three-game series with America East rival Albany at...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7948</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28306/guest@my.umbc.edu/5ce5ca61b699752b6141de4bd930f778/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28290" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28290">
<Title>Men's Basketball Completes Class For Fall 2013</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE- UMBC head men's basketball coach Aki Thomas is pleased to announce that four additional prospective student-athletes have signed National Letters-of-Intent with the Retrievers' program for the fall of 2013. Coach Thomas and his staff have added guards Rodney Elliott, Jr. and Bryan Harris and posts Devarick Houston and David Kadiri to the roster. They will join fall 2012 signees Will Darley and Charles Taylor, Jr. and walk-on Ben Grace to give the Retrievers seven new faces for the 2013-14 season.</div>
]]>
</Body>
<Summary>BALTIMORE- UMBC head men's basketball coach Aki Thomas is pleased to announce that four additional prospective student-athletes have signed National Letters-of-Intent with the Retrievers' program...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7947</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28290/guest@my.umbc.edu/d95e2cd92190a1b1f34bf99be87c5c87/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28340" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28340">
<Title>Men's Tennis Bests Stony Brook, Will Face Top-Seeded Binghamton in America East Title Match Sunday Morning</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE- For the eighth time in the last nine years, the UMBC men's tennis team has advanced to the America East Championship match, as the second-seeded Retrievers knocked off No. 3 Stony Brook, 4-1, in the semifinals at the UMBC Tennis Complex. Sophomore Kamal Patel clinched the match for the Retrievers, winning at No. 5 singles, while classmate Daniel Gray won in both doubles and singles. UMBC (9-8) will meet No. 1 Binghamton (15-9) in the title match on Sunday at 10:00.</div>
]]>
</Body>
<Summary>BALTIMORE- For the eighth time in the last nine years, the UMBC men's tennis team has advanced to the America East Championship match, as the second-seeded Retrievers knocked off No. 3 Stony...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7952</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28340/guest@my.umbc.edu/5b8adf61dcaf44b8b3946557bb7ea9e5/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28335" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28335">
<Title>Softball Set to Take on Hartford in America East Finale</Title>
<Body>
<![CDATA[
    <div class="html-content">UMBC softball is set for its final America East series of the season, when it welcomes Hartford to the UMBC Softball Stadium for a three-game series over the weekend. The series opens with a doubleheader on Saturday, April 27, with first pitch set for 1 p.m. The Retrievers will celebrate Senior Day on Sunday afternoon, with a noon start.</div>
]]>
</Body>
<Summary>UMBC softball is set for its final America East series of the season, when it welcomes Hartford to the UMBC Softball Stadium for a three-game series over the weekend. The series opens with a...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7949</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28335/guest@my.umbc.edu/b210cd1416fa9acb71898e8b07188f5b/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28338" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28338">
<Title>Women's 4x200 Relay Squad Breaks School Record on Day Two of Penn Relays</Title>
<Body>
<![CDATA[
    <div class="html-content">PHILADELPHIA � The UMBC women's 4x200 relay team of junior Kirsten Jones, freshman D'Nique Phillip and sophomores Kalane' Abbey and Mercedes Jackson combined to set a new school record, Friday afternoon at the Penn Relays at Franklin Field.</div>
]]>
</Body>
<Summary>PHILADELPHIA � The UMBC women's 4x200 relay team of junior Kirsten Jones, freshman D'Nique Phillip and sophomores Kalane' Abbey and Mercedes Jackson combined to set a new school record, Friday...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7950</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28338/guest@my.umbc.edu/8a74c7000ac712cb74123d07071dba93/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="28339" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28339">
<Title>Women's 4x200 Relay Squad Breaks School Record on Day Two of Penn Relays</Title>
<Body>
<![CDATA[
    <div class="html-content">PHILADELPHIA � The UMBC women's 4x200 relay team of junior Kirsten Jones (Brentwood, Tenn./M.L.K Magnet), freshman D'Nique Phillip (Elkton, Md.) and sophomores Kalane' Abbey (Laurel, Md./Laurel), and Mercedes Jackson (Huntingtown, Md./Huntingtown) combined to set a new school record, Friday afternoon at the Penn Relays at Franklin Field.</div>
]]>
</Body>
<Summary>PHILADELPHIA � The UMBC women's 4x200 relay team of junior Kirsten Jones (Brentwood, Tenn./M.L.K Magnet), freshman D'Nique Phillip (Elkton, Md.) and sophomores Kalane' Abbey (Laurel, Md./Laurel),...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7951</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28339/guest@my.umbc.edu/2d7b8af330a9b5b2fdab861757d59f8f/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="30039" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30039">
<Title>Google Fiber&#8217;s Ripple Effect</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The threat of superfast Google Fiber is causing other Internet providers to crank up their own offerings.</p>
    <p>As Google plans to expand its ultrafast Internet service from a fledging effort in Kansas City to Austin, Texas, and Provo, Utah, evidence is emerging that the company has forced broadband competitors into offering dramatically better service.</p>
    </div>
]]>
</Body>
<Summary>The threat of superfast Google Fiber is causing other Internet providers to crank up their own offerings.  As Google plans to expand its ultrafast Internet service from a fledging effort in Kansas...</Summary>
<Website>http://www.technologyreview.com/news/514176/google-fibers-ripple-effect/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30039/guest@my.umbc.edu/c84292ee49efdefb91d1a11fc1d8f0d7/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 00:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="30040" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30040">
<Title>What Happened When One Man Pinged the Whole Internet</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>A home science experiment that probed billions of Internet devices reveals that thousands of industrial and business systems offer remote access to anyone.</p>
    <p>You probably haven’t heard of HD Moore, but up to a few weeks ago every Internet device in the world, perhaps including some in your own home, was contacted roughly three times a day by a stack of computers that sit overheating his spare room. “I have a lot of cooling equipment to make sure my house doesn’t catch on fire,” says Moore, who leads research at computer security company <a href="http://www.rapid7.com/" rel="nofollow external" class="bo">Rapid7</a>. In February last year he decided to carry out a personal census of every device on the Internet as a hobby. “This is not my day job; it’s what I do for fun,” he says.</p>
    </div>
]]>
</Body>
<Summary>A home science experiment that probed billions of Internet devices reveals that thousands of industrial and business systems offer remote access to anyone.  You probably haven’t heard of HD Moore,...</Summary>
<Website>http://www.technologyreview.com/news/514066/what-happened-when-one-man-pinged-the-whole-internet/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30040/guest@my.umbc.edu/18d7f41c1385727d280211f923b6333d/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 26 Apr 2013 00:00:00 -0400</PostedAt>
<EditAt>Fri, 26 Apr 2013 00:00:00 -0400</EditAt>
</NewsItem>

</News>
