From 26913120672ed9a11104a65367e09d35ca71bc80 Mon Sep 17 00:00:00 2001 From: Boris Kaiser Date: Fri, 19 Aug 2011 13:27:00 +0200 Subject: [PATCH 01/15] update PIE.htc to Version 1.0beta4 --- frameworks/compass/templates/pie/PIE.htc | 132 ++++++++++++----------- 1 file changed, 68 insertions(+), 64 deletions(-) diff --git a/frameworks/compass/templates/pie/PIE.htc b/frameworks/compass/templates/pie/PIE.htc index cfcfd79d..b39af01a 100644 --- a/frameworks/compass/templates/pie/PIE.htc +++ b/frameworks/compass/templates/pie/PIE.htc @@ -1,6 +1,6 @@ @@ -10,68 +10,72 @@ Dual-licensed for use under the Apache License Version 2.0 or the General Public From 7fabdf1ffecdf83bdba925a2dd7fc659d8db7bab Mon Sep 17 00:00:00 2001 From: Leon Guan Date: Wed, 7 Sep 2011 01:06:25 +0800 Subject: [PATCH 02/15] Fixed the issues on compiling examples Getting errors when running "rake examples", making following updates: * Use https instead http for github access * Set use SSL flag for http client * Fix the link for compass-960-plugin --- examples/downloader.rb | 5 +++-- examples/ninesixty/bootstrap.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/downloader.rb b/examples/downloader.rb index c8e841dc..8921dd23 100644 --- a/examples/downloader.rb +++ b/examples/downloader.rb @@ -9,8 +9,9 @@ def fetch(uri_str, limit = 10) url = URI.parse(uri_str) http = Net::HTTP.new(url.host, url.port) - http.open_timeout = 2 + http.open_timeout = 10 http.read_timeout = 30 + http.use_ssl = true response = http.start do |http| puts "getting #{url.path}" http.request_get(url.path) @@ -25,7 +26,7 @@ def fetch(uri_str, limit = 10) end def install_from_github(user, project, ext_name, branch = "master", working_directory = Dir.pwd) - download_link = "http://github.com/#{user}/#{project}/zipball/#{branch}" + download_link = "https://github.com/#{user}/#{project}/zipball/#{branch}" extdir = File.join(working_directory,'extensions') if !File.exists?("#{extdir}/#{ext_name}") diff --git a/examples/ninesixty/bootstrap.rb b/examples/ninesixty/bootstrap.rb index b2b52d70..0a976dfe 100644 --- a/examples/ninesixty/bootstrap.rb +++ b/examples/ninesixty/bootstrap.rb @@ -1,4 +1,4 @@ require File.join(File.dirname(__FILE__), '..', 'downloader') -install_from_github('chriseppstein', 'compass-960-plugin', 'ninesixty') +install_from_github('nextmat', 'compass-960-plugin', 'ninesixty') From bced2770497356fdcff2a26eb657fd1b8ba1dec9 Mon Sep 17 00:00:00 2001 From: Micah Geisel Date: Tue, 6 Sep 2011 14:57:34 -0700 Subject: [PATCH 03/15] Inline fonts weren't being base64 encoded. --- lib/compass/sass_extensions/functions/inline_image.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/compass/sass_extensions/functions/inline_image.rb b/lib/compass/sass_extensions/functions/inline_image.rb index 2c59f765..c0e732f1 100644 --- a/lib/compass/sass_extensions/functions/inline_image.rb +++ b/lib/compass/sass_extensions/functions/inline_image.rb @@ -12,7 +12,7 @@ module Compass::SassExtensions::Functions::InlineImage while args.size > 0 path = args.shift.value real_path = File.join(Compass.configuration.fonts_path, path) - url = "url('data:#{compute_mime_type(path)};base64,#{data(real_path)}')" + url = inline_image_string(data(real_path), compute_mime_type(path)) files << "#{url} format('#{args.shift}')" end Sass::Script::String.new(files.join(", ")) From d644e54a38753973d8e8a73ad993d13e5f5c8af5 Mon Sep 17 00:00:00 2001 From: Micah Geisel Date: Wed, 7 Sep 2011 13:06:01 -0700 Subject: [PATCH 04/15] add test for inline_font_files() --- test/fixtures/fonts/bgrove.base64.txt | 1 + test/fixtures/fonts/bgrove.ttf | Bin 0 -> 18744 bytes test/units/sass_extensions_test.rb | 6 ++++++ 3 files changed, 7 insertions(+) create mode 100644 test/fixtures/fonts/bgrove.base64.txt create mode 100755 test/fixtures/fonts/bgrove.ttf diff --git a/test/fixtures/fonts/bgrove.base64.txt b/test/fixtures/fonts/bgrove.base64.txt new file mode 100644 index 00000000..35faae38 --- /dev/null +++ b/test/fixtures/fonts/bgrove.base64.txt @@ -0,0 +1 @@ +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 diff --git a/test/fixtures/fonts/bgrove.ttf b/test/fixtures/fonts/bgrove.ttf new file mode 100755 index 0000000000000000000000000000000000000000..9f2d056f1e9c1dce72665d55fe271e20a92ce6a1 GIT binary patch literal 18744 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 H>~sGI4xoe0 literal 0 HcmV?d00001 diff --git a/test/units/sass_extensions_test.rb b/test/units/sass_extensions_test.rb index 372d54e6..adcf746b 100644 --- a/test/units/sass_extensions_test.rb +++ b/test/units/sass_extensions_test.rb @@ -112,6 +112,12 @@ class SassExtensionsTest < Test::Unit::TestCase } end + def test_inline_font_files + Compass.configuration.fonts_path = File.expand_path "../fixtures/fonts", File.dirname(__FILE__) + base64_string = File.read(File.join(Compass.configuration.fonts_path, "bgrove.base64.txt")).chomp + assert_equal "url('data:font/truetype;base64,#{base64_string}') format('truetype')", evaluate("inline_font_files('bgrove.ttf', truetype)") + end + protected def evaluate(value) Sass::Script::Parser.parse(value, 0, 0).perform(Sass::Environment.new).to_s From 8a2da92c9119bd79250f2e1dcaa88bbd7d6d8388 Mon Sep 17 00:00:00 2001 From: Raving Genius Date: Thu, 8 Sep 2011 20:59:03 -0400 Subject: [PATCH 05/15] Added test coverage for font_files (issue #543) --- test/units/sass_extensions_test.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/units/sass_extensions_test.rb b/test/units/sass_extensions_test.rb index 372d54e6..5ee96b7d 100644 --- a/test/units/sass_extensions_test.rb +++ b/test/units/sass_extensions_test.rb @@ -98,6 +98,14 @@ class SassExtensionsTest < Test::Unit::TestCase assert_equal "true", evaluate("prefixed(-css2, css2-fallback(css3, css2))") end + def test_font_files + assert_equal '', evaluate('font_files()') + assert_equal "url(/font/name.woff) format('woff'), url(/fonts/name.ttf) format('truetype'), url(/fonts/name.svg#fontpath) format('svg')", evaluate("font-files('/font/name.woff', woff, '/fonts/name.ttf', truetype, '/fonts/name.svg#fontpath', svg)") + assert_raises Sass::SyntaxError do + evaluate("font-files('/font/name.woff')") + end + end + %w(stylesheet_url font_url image_url generated_image_url).each do |helper| class_eval %Q{ def test_#{helper}_helper_defers_to_existing_helper From 3514898ea1f69cc7260a7513801ad7c483fb30f0 Mon Sep 17 00:00:00 2001 From: Raving Genius Date: Thu, 8 Sep 2011 23:12:11 -0400 Subject: [PATCH 06/15] Stop requiring font type when type can be guessed from URL (issue #544) --- .../sass_extensions/functions/font_files.rb | 35 +++++++++++++++++-- test/units/sass_extensions_test.rb | 19 +++++++++- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/lib/compass/sass_extensions/functions/font_files.rb b/lib/compass/sass_extensions/functions/font_files.rb index c18ce05a..f7f72d27 100644 --- a/lib/compass/sass_extensions/functions/font_files.rb +++ b/lib/compass/sass_extensions/functions/font_files.rb @@ -1,10 +1,39 @@ module Compass::SassExtensions::Functions::FontFiles + FONT_TYPES = { + :woff => 'woff', + :otf => 'opentype', + :opentype => 'opentype', + :ttf => 'truetype', + :truetype => 'truetype', + :svg => 'svg' + } + def font_files(*args) - raise Sass::SyntaxError, "An even number of arguments must be passed to font_files()" unless args.size % 2 == 0 files = [] - while args.size > 0 - files << "#{font_url(args.shift)} format('#{args.shift}')" + args_length = args.length + skip_next = false + + args.each_with_index do |arg, index| + if skip_next + skip_next = false + next + end + + type = (args_length > (index + 1)) ? args[index + 1].value.to_sym : :wrong + + if FONT_TYPES.key? type + skip_next = true + else + type = arg.to_s.split('.').last.gsub('"', '').to_sym + end + + if FONT_TYPES.key? type + files << "#{font_url(arg)} format('#{FONT_TYPES[type]}')" + else + raise Sass::SyntaxError, "Could not determine font type for #{arg}" + end end + Sass::Script::String.new(files.join(", ")) end end diff --git a/test/units/sass_extensions_test.rb b/test/units/sass_extensions_test.rb index 5ee96b7d..d965dcc9 100644 --- a/test/units/sass_extensions_test.rb +++ b/test/units/sass_extensions_test.rb @@ -101,9 +101,26 @@ class SassExtensionsTest < Test::Unit::TestCase def test_font_files assert_equal '', evaluate('font_files()') assert_equal "url(/font/name.woff) format('woff'), url(/fonts/name.ttf) format('truetype'), url(/fonts/name.svg#fontpath) format('svg')", evaluate("font-files('/font/name.woff', woff, '/fonts/name.ttf', truetype, '/fonts/name.svg#fontpath', svg)") - assert_raises Sass::SyntaxError do + + assert_equal "url(/font/with/right_ext.woff) format('woff')", evaluate("font_files('/font/with/right_ext.woff')") + assert_equal "url(/font/with/wrong_ext.woff) format('svg')", evaluate("font_files('/font/with/wrong_ext.woff', 'svg')") + assert_equal "url(/font/with/no_ext) format('opentype')", evaluate("font_files('/font/with/no_ext', 'otf')") + assert_equal "url(/font/with/weird.ext) format('truetype')", evaluate("font_files('/font/with/weird.ext', 'ttf')") + + assert_equal "url(/font/with/right_ext.woff) format('woff'), url(/font/with/right_ext_also.otf) format('opentype')", evaluate("font_files('/font/with/right_ext.woff', '/font/with/right_ext_also.otf')") + assert_equal "url(/font/with/wrong_ext.woff) format('truetype'), url(/font/with/right_ext.otf) format('opentype')", evaluate("font_files('/font/with/wrong_ext.woff', 'ttf', '/font/with/right_ext.otf')") + + assert_nothing_raised Sass::SyntaxError do evaluate("font-files('/font/name.woff')") end + + assert_raises Sass::SyntaxError do + evaluate("font-files('/font/name.ext')") + end + + assert_raises Sass::SyntaxError do + evaluate("font-files('/font/name.ext', 'nonsense')") + end end %w(stylesheet_url font_url image_url generated_image_url).each do |helper| From 6dbce65e3280377c4007d40dcfb35d88f0051aa8 Mon Sep 17 00:00:00 2001 From: Boris Kaiser Date: Sun, 11 Sep 2011 09:23:39 +0200 Subject: [PATCH 07/15] update PIE.htc to Version 1.0beta5 --- frameworks/compass/templates/pie/PIE.htc | 151 +++++++++++++---------- 1 file changed, 83 insertions(+), 68 deletions(-) diff --git a/frameworks/compass/templates/pie/PIE.htc b/frameworks/compass/templates/pie/PIE.htc index b39af01a..00b63838 100644 --- a/frameworks/compass/templates/pie/PIE.htc +++ b/frameworks/compass/templates/pie/PIE.htc @@ -1,81 +1,96 @@ + From 7fced9373e2e4047f53cd49c4fc21eb49109a7a8 Mon Sep 17 00:00:00 2001 From: Eric Meyer Date: Mon, 12 Sep 2011 14:36:40 -0600 Subject: [PATCH 08/15] added detail to rhythm-border documentation. --- .../stylesheets/compass/typography/_vertical_rhythm.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss b/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss index ba733b26..79c15ec8 100644 --- a/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +++ b/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss @@ -149,7 +149,8 @@ $base-half-leader: $base-leader / 2; @include trailer($trailer, $font-size); } -// Apply a border width to any side without destroying the vertical rhythm +// Apply a border width to any side without destroying the vertical rhythm. +// The available space ($lines) must be greater than the width of your border. @mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) { @if not $relative-font-sizing and $font-size != $base-font-size { @warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border"; From 9d48b2539ce191fe2f112ebe0864d0a81691a447 Mon Sep 17 00:00:00 2001 From: Beau Smith Date: Fri, 13 May 2011 12:46:19 -0700 Subject: [PATCH 09/15] Fixing funny typo, abiding by the rules of using Compass. --- doc-src/content/help/tutorials/contributing.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc-src/content/help/tutorials/contributing.markdown b/doc-src/content/help/tutorials/contributing.markdown index 0a4f1696..05cb1e4a 100644 --- a/doc-src/content/help/tutorials/contributing.markdown +++ b/doc-src/content/help/tutorials/contributing.markdown @@ -13,7 +13,7 @@ as we can for you to contribute changes to compass -- So if there's something he seems harder than it aught to be, please let us know. If you find a bug **in this document**, you are bound to contribute a fix. Stop reading now -if you do not wish to abide by this rool. +if you do not wish to abide by this rule. **Step 1**: If you do not have a github account, create one. From 9d1e2c9beaab97400d8a0f13814d6a9f649d13c3 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Fri, 16 Sep 2011 15:19:57 -0700 Subject: [PATCH 10/15] Update changelog --- doc-src/content/CHANGELOG.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc-src/content/CHANGELOG.markdown b/doc-src/content/CHANGELOG.markdown index de64e3d6..be157ac4 100644 --- a/doc-src/content/CHANGELOG.markdown +++ b/doc-src/content/CHANGELOG.markdown @@ -14,8 +14,14 @@ The Documentation for the [latest stable release](http://compass-style.org/docs/ The Documentation for the [latest preview release](http://beta.compass-style.org/) +0.12.alpha.1 (UNRELEASED) +------------------------- + +* font-files helper: Stop requiring font type when the type can be guessed from URL + + 0.12.alpha.0 (8/30/2011) --------------------------- +------------------------ * Support for the rails 3.1 asset pipeline * Added support for diagonal, horizontal, and smart sprite layout * Fixed a bug with spacing in horizontal layout From 1dd2563484a89e8102ff2e43baeb66afadd68601 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Mon, 12 Sep 2011 14:56:05 -0700 Subject: [PATCH 11/15] Use the default compass images directory in the spriting tutorial --- doc-src/content/help/tutorials/spriting.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc-src/content/help/tutorials/spriting.markdown b/doc-src/content/help/tutorials/spriting.markdown index 82874aef..5d5b7c1e 100644 --- a/doc-src/content/help/tutorials/spriting.markdown +++ b/doc-src/content/help/tutorials/spriting.markdown @@ -15,10 +15,10 @@ of several convenient ways. For this tutorial, let's imagine that in your project's image folder there are four icons: -* `public/images/icon/new.png` -* `public/images/icon/edit.png` -* `public/images/icon/save.png` -* `public/images/icon/delete.png` +* `images/icon/new.png` +* `images/icon/edit.png` +* `images/icon/save.png` +* `images/icon/delete.png` Each is an icon that is 32px square. @@ -89,7 +89,7 @@ magic, some people are scared by it, and others are curious about how the magic you would like to avoid the magic, you can use compass to generate an import for you. On the command line: - compass sprite "public/images/icon/*.png" + compass sprite "images/icon/*.png" This will create file using your project's preferred syntax, or you can specify the output filename using the `-f` option and the syntax will be inferred from the extension. From 493f01c2c2f119ad5e5e01eeb60786d2235a95c0 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Fri, 16 Sep 2011 16:02:02 -0700 Subject: [PATCH 12/15] Update changelog --- doc-src/content/CHANGELOG.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc-src/content/CHANGELOG.markdown b/doc-src/content/CHANGELOG.markdown index be157ac4..92b80b26 100644 --- a/doc-src/content/CHANGELOG.markdown +++ b/doc-src/content/CHANGELOG.markdown @@ -18,6 +18,8 @@ The Documentation for the [latest preview release](http://beta.compass-style.org ------------------------- * font-files helper: Stop requiring font type when the type can be guessed from URL +* inline-font-files: actually works now +* Upgrade CSS3 Pie to 1.0beta5 0.12.alpha.0 (8/30/2011) From 77321fdb8059e4710939a639cbc471daa4eb1efc Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Fri, 16 Sep 2011 17:47:08 -0700 Subject: [PATCH 13/15] Revert "Revert "removed useless unit"" This reverts commit f0f4ac9700d1025e60f009e244c40a7729ad985e. --- .../compass/stylesheets/compass/typography/lists/_bullets.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss b/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss index aabe802a..958eefc0 100644 --- a/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss +++ b/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss @@ -2,7 +2,7 @@ @mixin no-bullet { list-style-image : none; list-style-type : none; - margin-left : 0px; + margin-left : 0; } // turns off the bullets for an entire list From 87377ad7ff9a3214764b01fa37467a986d46773a Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Fri, 16 Sep 2011 17:59:11 -0700 Subject: [PATCH 14/15] slightly better error message --- test/integrations/compass_test.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/integrations/compass_test.rb b/test/integrations/compass_test.rb index b505debb..61ad91c2 100644 --- a/test/integrations/compass_test.rb +++ b/test/integrations/compass_test.rb @@ -125,11 +125,10 @@ private expected_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset] expected_lines = expected_lines.split("\n").reject{|l| l=~/\A\Z/} expected_lines.zip(actual_lines).each_with_index do |pair, line| - message = "template: #{name}\nline: #{line + 1}" if pair.first == pair.last assert(true) else - assert false, diff_as_string(pair.first.inspect, pair.last.inspect) + assert false, "Error in #{result_path(@current_project)}/#{name}.css:#{line + 1}\n"+diff_as_string(pair.first.inspect, pair.last.inspect) end end if expected_lines.size < actual_lines.size From d7a579ce58875a08d07c1cf0cb3bc337ede9e094 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Fri, 16 Sep 2011 18:00:00 -0700 Subject: [PATCH 15/15] Fix broken tests. --- test/fixtures/stylesheets/compass/css/lists.css | 14 +++++++------- test/fixtures/stylesheets/compass/css/reset.css | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/test/fixtures/stylesheets/compass/css/lists.css b/test/fixtures/stylesheets/compass/css/lists.css index 8e7b1a58..130d3041 100644 --- a/test/fixtures/stylesheets/compass/css/lists.css +++ b/test/fixtures/stylesheets/compass/css/lists.css @@ -7,7 +7,7 @@ ul.horizontal { ul.horizontal li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; white-space: nowrap; display: inline; float: left; @@ -29,7 +29,7 @@ ul.wide-horizontal { ul.wide-horizontal li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; white-space: nowrap; display: inline; float: left; @@ -51,7 +51,7 @@ ul.right-horizontal { ul.right-horizontal li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; white-space: nowrap; display: inline; float: right; @@ -73,7 +73,7 @@ ul.no-padding { ul.no-padding li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; white-space: nowrap; display: inline; float: left; } @@ -87,7 +87,7 @@ ul.inline-block { ul.inline-block li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; @@ -106,7 +106,7 @@ ul.wide-inline-block { ul.wide-inline-block li { list-style-image: none; list-style-type: none; - margin-left: 0px; + margin-left: 0; display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; @@ -143,7 +143,7 @@ ul.no-bullets { ul.no-bullets li { list-style-image: none; list-style-type: none; - margin-left: 0px; } + margin-left: 0; } ul.pretty { margin-left: 0; } diff --git a/test/fixtures/stylesheets/compass/css/reset.css b/test/fixtures/stylesheets/compass/css/reset.css index dd912b3e..388217c4 100644 --- a/test/fixtures/stylesheets/compass/css/reset.css +++ b/test/fixtures/stylesheets/compass/css/reset.css @@ -50,7 +50,6 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, body.registered a.registered-only, body.registered abbr.registered-only, body.registered acronym.registered-only, body.registered audio.registered-only, body.registered b.registered-only, body.registered basefont.registered-only, body.registered bdo.registered-only, body.registered big.registered-only, body.registered br.registered-only, body.registered canvas.registered-only, body.registered cite.registered-only, body.registered code.registered-only, body.registered command.registered-only, body.registered datalist.registered-only, body.registered dfn.registered-only, body.registered em.registered-only, body.registered embed.registered-only, body.registered font.registered-only, body.registered i.registered-only, body.registered img.registered-only, body.registered input.registered-only, body.registered keygen.registered-only, body.registered kbd.registered-only, body.registered label.registered-only, body.registered mark.registered-only, body.registered meter.registered-only, body.registered output.registered-only, body.registered progress.registered-only, body.registered q.registered-only, body.registered rp.registered-only, body.registered rt.registered-only, body.registered ruby.registered-only, body.registered s.registered-only, body.registered samp.registered-only, body.registered select.registered-only, body.registered small.registered-only, body.registered span.registered-only, body.registered strike.registered-only, body.registered strong.registered-only, body.registered sub.registered-only, body.registered sup.registered-only, body.registered textarea.registered-only, body.registered time.registered-only, body.registered tt.registered-only, body.registered u.registered-only, body.registered var.registered-only, body.registered video.registered-only, body.registered wbr.registered-only { display: inline; } - body.registered address.registered-only, body.registered article.registered-only, body.registered aside.registered-only, body.registered blockquote.registered-only, body.registered center.registered-only, body.registered dir.registered-only, body.registered div.registered-only, body.registered dd.registered-only, body.registered details.registered-only, body.registered dl.registered-only, body.registered dt.registered-only, body.registered fieldset.registered-only, body.registered figcaption.registered-only, body.registered figure.registered-only, body.registered form.registered-only, body.registered footer.registered-only, body.registered frameset.registered-only, body.registered h1.registered-only, body.registered h2.registered-only, body.registered h3.registered-only, body.registered h4.registered-only, body.registered h5.registered-only, body.registered h6.registered-only, body.registered hr.registered-only, body.registered header.registered-only, body.registered hgroup.registered-only, body.registered isindex.registered-only, body.registered menu.registered-only, body.registered nav.registered-only, body.registered noframes.registered-only, body.registered noscript.registered-only, body.registered ol.registered-only, body.registered p.registered-only, body.registered pre.registered-only, body.registered section.registered-only, body.registered summary.registered-only, body.registered ul.registered-only { display: block; }