<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: user-stylesheets</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/user-stylesheets.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-12-03T09:08:02+00:00</updated><author><name>Simon Willison</name></author><entry><title>24 ways: User Styling</title><link href="https://simonwillison.net/2008/Dec/3/ways/" rel="alternate"/><published>2008-12-03T09:08:02+00:00</published><updated>2008-12-03T09:08:02+00:00</updated><id>https://simonwillison.net/2008/Dec/3/ways/</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://24ways.org/2008/user-styling#content"&gt;24 ways: User Styling&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The web geek advent calendar is up and running again this year, with a striking new design.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/24-ways"&gt;24-ways&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jon-hicks"&gt;jon-hicks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/user-stylesheets"&gt;user-stylesheets&lt;/a&gt;&lt;/p&gt;



</summary><category term="24-ways"/><category term="css"/><category term="design"/><category term="jon-hicks"/><category term="user-stylesheets"/></entry><entry><title>Google Reader Theme</title><link href="https://simonwillison.net/2007/Apr/16/google/" rel="alternate"/><published>2007-04-16T22:03:32+00:00</published><updated>2007-04-16T22:03:32+00:00</updated><id>https://simonwillison.net/2007/Apr/16/google/</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.hicksdesign.co.uk/journal/google-reader-theme"&gt;Google Reader Theme&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jon Hicks’ beautiful alternative skin for Google Reader, installable as a user stylesheet for various browsers.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google-reader"&gt;google-reader&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jon-hicks"&gt;jon-hicks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/skin"&gt;skin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/user-stylesheets"&gt;user-stylesheets&lt;/a&gt;&lt;/p&gt;



</summary><category term="google"/><category term="google-reader"/><category term="jon-hicks"/><category term="skin"/><category term="user-stylesheets"/></entry><entry><title>Site-specific extensions</title><link href="https://simonwillison.net/2004/Jul/20/innovate/" rel="alternate"/><published>2004-07-20T05:46:23+00:00</published><updated>2004-07-20T05:46:23+00:00</updated><id>https://simonwillison.net/2004/Jul/20/innovate/</id><summary type="html">
    &lt;p id="p-0"&gt;I've been thinking about per-site user stylesheets &lt;a href="/2004/Jul/15/persite/" title="Per-site user stylesheets"&gt;for a while now&lt;/a&gt;, but my colleague Adrian has gone one better: his &lt;a href="http://www.holovaty.com/blog/archive/2004/07/19/2210"&gt;All Music Guide Corrector&lt;/a&gt; extension for Firefox fixes their horrible JavaScript links, hides the useless Flash navigation and improves their unpopular "read more" links, causing them to load content on the current page rather than navigating to a new page entirely.&lt;/p&gt;

&lt;p id="p-1"&gt;I believe that extensions like this have a significant role to play. Bugzilla's &lt;a href="http://bugzilla.mozilla.org/buglist.cgi?product=Tech+Evangelism"&gt;Tech Evangelism&lt;/a&gt; project is overflowing with badly designed sites that through ignorance or choice refuse to work with standards compliant browsers, many of which have &lt;a href="http://bugzilla.mozilla.org/show_bug.cgi?id=80479#c15" title="Odeon&amp;apos;s bad JavaScript was patched two years ago"&gt;available patches&lt;/a&gt; just waiting to be implemented. Per-site extensions at least allow users to choose to fix the problem locally and route around the damage - and their use should send a powerful message to the sites in question.&lt;/p&gt;

&lt;p id="p-2"&gt;This kind of extension also introduces some interesting questions. How will site owners react to their users tweaking their websites in this way? Is it ethical to modify a site without the user's permission to improve functionality? What about to block irritating ads?&lt;/p&gt;

&lt;p id="p-3"&gt;Pop-up blockers have only scratched the surface. Let's see some innovation.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/user-stylesheets"&gt;user-stylesheets&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="javascript"/><category term="user-stylesheets"/></entry><entry><title>Per-site user stylesheets</title><link href="https://simonwillison.net/2004/Jul/15/persite/" rel="alternate"/><published>2004-07-15T00:57:18+00:00</published><updated>2004-07-15T00:57:18+00:00</updated><id>https://simonwillison.net/2004/Jul/15/persite/</id><summary type="html">
    &lt;p id="p-0"&gt;I've been thinking a lot about per-site user stylsheets recently. Eric Meyer's &lt;a href="http://archivist.incutio.com/viewlist/css-discuss/13291"&gt;CSS signatures&lt;/a&gt; are great for sites that support them (as this site does), but the sites that really need altering are highly unlikely to carry them. I posted a comment to that effect on photomatt.net &lt;a href="http://photomatt.net/2004/06/19/css-nomenclature/#comment-5164" title="CSS Nomenclature"&gt;a while ago&lt;/a&gt;, and thankfully it was spotted by Ryan Tomayko who has published a &lt;a href="http://naeblis.cx/weblog/PerSiteUserStyles"&gt;simple brilliant hack&lt;/a&gt; that uses &lt;acronym title="Extensible Binding Language"&gt;XBL&lt;/acronym&gt; in Mozilla's user stylesheet to execute JavaScript which adds a &lt;acronym title="Cascading Style Sheets"&gt;CSS&lt;/acronym&gt; signature to every site you visit.&lt;/p&gt;

&lt;p id="p-1"&gt;I suggest making a couple of minor modifications to Ryan's code. Firstly, it over-writes any existing body tag IDs which could cause problems on the few sites that use a body ID as a hook for per-page styling. I would recommend not over-writing the ID if it already exists, or adding an additional class to the body element instead. More importantly, Ryan's technique couples your browser's user stylesheet to an &lt;acronym title="Extensible Binding Language"&gt;XBL&lt;/acronym&gt; file hosted on his server. Not only is this a performance menace (for both his server and potentially your browser) but it opens a cross-site scripting vulnerability in that you are executing code from outside your control every time you visit a web page. I recommend hosting the XBL file locally instead, although the best solution would be to upgrade Ryan's hack to a fully self-contained FireFox extension.&lt;/p&gt;

&lt;p id="p-2"&gt;Quibbles aside, it's a brilliant workaround. Be sure to check out the &lt;a href="http://photomatt.net/2004/07/14/per-site-user-stylesheets/#comment-5737"&gt;comment from michael&lt;/a&gt; on photomatt.net as well.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-meyer"&gt;eric-meyer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/user-stylesheets"&gt;user-stylesheets&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="eric-meyer"/><category term="user-stylesheets"/></entry><entry><title>integrating javascript into stylesheets</title><link href="https://simonwillison.net/2004/Jan/22/integrating/" rel="alternate"/><published>2004-01-22T05:13:02+00:00</published><updated>2004-01-22T05:13:02+00:00</updated><id>https://simonwillison.net/2004/Jan/22/integrating/</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://milov.nl/2389"&gt;integrating javascript into stylesheets&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
It’s a shame this trick doesn’t appear to work in user stylesheets

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.alpha-geek.com/2004/01/12/bring_me_your_regexs_i_will_create_html_to_break_them.html"&gt;Bring Me Your Regexs! I Will Create HTML To Break Them!&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/user-stylesheets"&gt;user-stylesheets&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="javascript"/><category term="user-stylesheets"/></entry></feed>