Efficient Interchange of CSS

EXI Working Group

Efficient Interchange of CSS

Brought to you by the EXI Working Group

Table of Contents

  1. Improve CSS Web Experience
  2. EXI History and Future
  3. Applying EXI techniques on CSS
  4. Illustration Example and Preliminary Results

Improve Web experience w.r.t. CSS

How to achieve that?

EXI Overview

Applying EXI techniques on CSS

Illustration Example (Proposal #1 based on XML)

CSS CSS Object Model (visualized in XML)
						body {
							color: rgb(255,10,0);
						}
					
						
						<cssStyleRule>
						    <selectorText>body</selectorText>
						    <style>
						        <property>color</property>
						        <cssValue>
						            <cssPrimitiveValue><cssRgbColor>
						                <r>255</r><g>10</g><b>0</b>
						            </cssRgbColor></cssPrimitiveValue>
						        </cssValue>
						    </style>
						</cssStyleRule>
						
					

Illustration Example (Proposal #2 based on Events)

				body {
					 color: rgb(255,10,0);
				}
			

CSS represented as EXI events

SE(cssStyleRule) → SE(selectorText) → CH("body") → EE → SE(style) → SE(property) → CH("color") → EE → SE(cssValue) → SE(cssPrimitiveValue) → SE(cssRgbColor) → SE(r) → CH(255) → EE → SE(g) → CH(10) → EE → SE(b) → CH(0) → EE → EE → EE → EE → EE

SE ... StartElement       EE ... EndElement       CH ... Character/Data

Preliminary compression results*

TestCase CSS [Bytes] CSS (minified) [% of CSS] CSS (exified) [% of CSS]
design.css 166 67% 69%
css3_1.css 521 63% 45%
rules.css 1259 65% 49%
module.css 2056 81% 39%
css2_1.css 2855 66% 49%
w3c.css 12714 95% 49%
capitalone.css 44676 83% 40%
yahoo_japan.css 52237 82% 39%
fujitsu.css 60085 87% 32%
wsj.css 96605 82% 36%
boa.css 120184 89% 29%
amazon.css 129740 83% 45%

*testdata can be found at https://github.com/EXIficient/exificient-for-css/tree/master/data

Outlook