I consider it a "nice to have" for the 3.0 release. But it is definitely on the roadmap.
chris On Thu, Mar 18, 2010 at 4:45 PM, Tim Underwood <[email protected]>wrote: > Hi All, > > Just wondering if this feature (the nested imports) is still on the > roadmap. It doesn't looks like it has been re-introduced yet. > > -Tim > > > On Wed, Dec 16, 2009 at 3:32 PM, Chris Eppstein <[email protected]> > wrote: > > Nathan and I did chat and agreed to re-introduce the nested import > > functionality. Such files will need to be 100% valid on their own, even > if > > they are only ever imported. This change has to be done right, with > proper > > variable and mixin scopes, etc. Also, new test cases need to be written. > > The reason I became sold about this feature was actually for a whole > > different reason than was mentioned: It becomes an effective way for > users > > to manage the otherwise global namespace of mixins. > > > > If the changeset for this is relatively straightforward, then I think > this > > will be a candidate for a 2.2 patch release, otherwise it'll need to wait > > for 2.4. > > chris > > > > On Mon, Dec 14, 2009 at 3:08 PM, Chris Eppstein <[email protected]> > wrote: > >> > >> Thanks, I understand your use case. It looks like Nathan and I need to > >> chat a little. > >> Chris > >> > >> On Mon, Dec 14, 2009 at 2:35 PM, Tim Underwood <[email protected]> > >> wrote: > >>> > >>> Each site has a styles.sass that contains any customizations and then > >>> includes the shared styles (usually just a whitelabel.sass that is > >>> similar to the example below). I have about 2 dozen Sass variables > >>> that can be overridden to control various colors (link colors, > >>> backgrounds, borders, etc...) and about a dozen Sass mixins that can > >>> be re-defined to control link behavior (color, text-decoration, hover, > >>> etc...). The variables and mixins are the bulk of the customizations > >>> but a few of the sites have additional styles that aren't configurable > >>> via variables or mixins. > >>> > >>> -Tim > >>> > >>> On Dec 14, 2:05 pm, Chris Eppstein <[email protected]> wrote: > >>> > Tim, > >>> > > >>> > That's quite a setup. Is there any per-site styling or are you > >>> > basically > >>> > just generating two sets of CSS, one for white-labels and one for > your > >>> > own > >>> > site? > >>> > > >>> > chris > >>> > > >>> > On Mon, Dec 14, 2009 at 1:43 PM, Tim Underwood > >>> > <[email protected]>wrote: > >>> > > >>> > > >>> > > >>> > > Fair enough. First off let me say that I love Sass. Without it my > >>> > > whole setup wouldn't work and would just be a big mess. So a big > >>> > > THANKS to the developers! > >>> > > >>> > > My use case is probably somewhat unique. I run FrugalMechanic.com > >>> > > where we power ~100 whitelabel versions of our website for partners > >>> > > (e.g. autoparts.allaboutprius.com, autoparts.mustangblog.com, > >>> > > autoparts.carzi.com). The easiest way to build the whitelabels is > to > >>> > > embed our content into their stock html/css. For this to work I > make > >>> > > extensive use of the nested @import's to avoid css selector > conflicts > >>> > > with their stock css by making sure all of my css selectors are > more > >>> > > specific than theirs. > >>> > > >>> > > I currently have 126 sass files with 265 @import statements (some > >>> > > nested, some not). The sass files that are used for the @imports > >>> > > (both nested and non-nested) are all used as partials and kept in a > >>> > > separate directory to avoid confusion with the sass files that are > >>> > > actually used to generate the final css used by the browser. > >>> > > >>> > > I *personally* think the nested @import approach is cleaner because > >>> > > it's more concise and less error prone (for me at least). > >>> > > >>> > > As a very simplified example, for frugalmechanic I have something > >>> > > like > >>> > > this at the top level: > >>> > > >>> > > @import yui-resets.sass > >>> > > @import base.sass > >>> > > @import styles.sass > >>> > > >>> > > For the whitelabels (where I nest all the rules) it looks something > >>> > > more like: > >>> > > >>> > > #frugalmechanic > >>> > > @import yui-resets.sass > >>> > > @import base.sass > >>> > > @styles.sass > >>> > > >>> > > Going the mixin route would mean changing the first one > >>> > > (frugalmechanic) to: > >>> > > >>> > > @import yui-resets.sass > >>> > > @import base.sass > >>> > > @import styles.sass > >>> > > >>> > > +base > >>> > > +yui_resets > >>> > > +styles > >>> > > >>> > > And a whitelabel would look like: > >>> > > >>> > > @import yui-resets.sass > >>> > > @import base.sass > >>> > > @import styles.sass > >>> > > >>> > > #frugalmechanic > >>> > > +yui_resets > >>> > > +base > >>> > > +styles > >>> > > >>> > > So for frugalmechanic I've gone from 3 lines of code to 6 and the > >>> > > whitelabels have gone from 4 to 7 for this simplified example. > >>> > > Multiply that by my 265 @import statements and that adds quite a > bit > >>> > > of code that IMHO doesn't add any value. > >>> > > >>> > > However, I think the change I'm more concerned about is needing to > >>> > > add > >>> > > the mixin definition to the top of all my @import'ed sass files and > >>> > > indenting the entires contents of the file by 2 spaces. The 2 > space > >>> > > indenting makes those files less readable and more error prone > since > >>> > > if I mess up the indent I'll have styles escaping my nested rules > >>> > > (which can be hard to debug). > >>> > > >>> > > -Tim > >>> > > >>> > > On Dec 14, 11:13 am, Chris Eppstein <[email protected]> wrote: > >>> > > > It was intentionally taken away because, as I understand it, it > was > >>> > > > never > >>> > > > intended to work. > >>> > > >>> > > > I respect that you think this is a cleaner implementation, but I > >>> > > disagree. I > >>> > > > think it's very confusing. Mixins are how you indicate that a > >>> > > > particular > >>> > > > block of styles are going to be nested into other selectors. Why > do > >>> > > > we > >>> > > need > >>> > > > two mechanisms for mixing? If I open up > >>> > > > index_page_nested_rules.sass > >>> > > there's > >>> > > > nothing about that file that tells me how it's going to be used > >>> > > > except, > >>> > > > maybe, a comment if you thought to add one. If I see one or more > >>> > > > mixins > >>> > > > defined there, I understand, I have to go looking for where they > >>> > > > are > >>> > > used. > >>> > > >>> > > > Perhaps there is some use case I haven't considered, so I'll > >>> > > > welcome you > >>> > > to > >>> > > > state your case for why you think this approach is better than > >>> > > > @import + > >>> > > > mixins. > >>> > > >>> > > > Chris > >>> > > >>> > > > On Mon, Dec 14, 2009 at 10:17 AM, Tim Underwood > >>> > > > <[email protected] > >>> > > >wrote: > >>> > > >>> > > > > In Haml/Sass 2.0.9 I'm able to do something like this: > >>> > > >>> > > > > .index_page > >>> > > > > @import index_page_nested_rules.sass > >>> > > >>> > > > > .results_page > >>> > > > > @import results_page_nested_rules.sass > >>> > > >>> > > > > And then everything in index_page_nested_rules.sass was nested > >>> > > > > within > >>> > > > > my index_page class. But in Haml/Sass 2.2.15 I get this error: > >>> > > >>> > > > > "Sass::SyntaxError: Import directives may only be used at the > >>> > > > > root of > >>> > > > > a document." > >>> > > >>> > > > > Was support for this intentionally taken away? Is there > another > >>> > > > > way > >>> > > > > to accomplish the same thing? Mixins kind of work but aren't > as > >>> > > > > clean > >>> > > > > as the nested @import's. > >>> > > >>> > > > > Thanks, > >>> > > >>> > > > > -Tim > >>> > > >>> > > > > -- > >>> > > >>> > > > > You received this message because you are subscribed to the > >>> > > > > Google > >>> > > Groups > >>> > > > > "Haml" group. > >>> > > > > To post to this group, send email to [email protected]. > >>> > > > > To unsubscribe from this group, send email to > >>> > > > > > >>> > > > > [email protected]<haml%[email protected]> > <haml%[email protected]<haml%[email protected]> > >< > >>> > > > >>> > > haml%[email protected]<haml%[email protected]> > <haml%[email protected]<haml%[email protected]> > > > >>> > > >. > >>> > > > > For more options, visit this group at > >>> > > > >http://groups.google.com/group/haml?hl=en. > >>> > > >>> > > -- > >>> > > >>> > > You received this message because you are subscribed to the Google > >>> > > Groups > >>> > > "Haml" group. > >>> > > To post to this group, send email to [email protected]. > >>> > > To unsubscribe from this group, send email to > >>> > > [email protected]<haml%[email protected]> > >>> > > <haml%[email protected]<haml%[email protected]> > >. > >>> > > For more options, visit this group at > >>> > >http://groups.google.com/group/haml?hl=en. > >>> > >>> -- > >>> > >>> You received this message because you are subscribed to the Google > Groups > >>> "Haml" group. > >>> To post to this group, send email to [email protected]. > >>> To unsubscribe from this group, send email to > >>> [email protected]<haml%[email protected]> > . > >>> For more options, visit this group at > >>> http://groups.google.com/group/haml?hl=en. > >>> > >>> > >> > > > > -- > > > > You received this message because you are subscribed to the Google Groups > > "Haml" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected] <haml%[email protected]>. > > For more options, visit this group at > > http://groups.google.com/group/haml?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Haml" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected] <haml%[email protected]>. > For more options, visit this group at > http://groups.google.com/group/haml?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Haml" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/haml?hl=en.
