chriseppstein/sass — comment on commit 52c9084c1e1258473d00274fbf210d6c44ae14ad
File: doc-src/SASS_REFERENCE.md line 1475
By chriseppstein:

I did consider this syntax. In fact there are four syntaxes that were considered:

```
// optimizes silencing several classes
@silent { .foo { ... } }

// optimizes silencing classes not in the current file.
.foo { .. .}
@silent .foo;

// optimizes silencing the base class at definition time.
@silent .foo { ... }

// optimizes silencing the parent.
.foo { @silent; }
```

The reasoning I had that caused me to pick the form I did was the following:

1. Symmetry with `@extend` -- affects the parent.
2. My feeling was that the base class was fundamentally a class more than it's silent. A best practice of placing the `@silent` directive as the first child of the selector would help avoid "missing" it.
3. The syntax you've suggested would preclude the ability for a mixin to make it's parent silent. Though, I don't have a specific use case in my mind for this, it just felt right given the symmetry with @extend. I'll see if I can imagine a useful case for this.
4. Silencing a class retroactively has the awkward syntax of `@silent .foo {}`. This would generate an empty rule set when extended without special casing in the code.

I'm not opposed to supporting more than one of these and suspected that we might eventually. I was trying to start by implementing the lowest common denominator and most generally useful form.

Is the syntax I've implemented considered harmful in some way?