[IPython-dev] nbconvert: trouble with the new style sheet

Jason Grout jason-sage at creativetrax.com
Fri Jul 5 02:58:43 EDT 2013

On 7/4/13 10:22 PM, Brian Granger wrote:
> The nesting will prevent ipython's styles from affecting your own.
> But it would still be possible for your own styles to affect ipython
> managed elements.  css has a notion of priority.  If you define
> styling for a cell class that has higher priority than our nested
> rules, it will win out.  The only way to avoid that is to use truly
> different names for css classes.

We have a fair amount of experience with these sorts of problems with 
the Sage cell server (which is designed to be embedded into other 
pages).  It's more than class names.  Things like default spacing, 
margins, padding, as well as styling on various form elements and things 
can mess up the sage cell.  We provide a sagecell_embed.css [1] file 
that basically has all of our css rules declared !important to try to 
minimize issues, but we still see problems from time to time.

I'm really looking forward to the web component stuff and shadow doms 
taking off in the near future:


They will allow us to have a web component that isn't affected by CSS 
cascading into the component.

We also specifically don't use bootstrap because it doesn't embed well 
into random webpages.  Instead, Ira Hanson wrote a small responsive 
layout system when we needed it.  I realize you guys have a different 
use case with the IPython notebook; just pointing out that embedding 
into random webpages has a lot of different requirements than designing 
your own web app, as I'm sure you could guess.


[1] http://sagecell.sagemath.org/static/sagecell_embed.css -- this is 
generated from our normal 
http://sagecell.sagemath.org/static/sagecell.css by appending !important 
to each rule.  Since we scope things inside the .sagecell class (or 
prepend class names with sagecell_), and wrap everything in a .sagecell 
div, we aren't messing with things outside of the sage cell.

More information about the IPython-dev mailing list