DRY Mixins

// DRY (Don't Repeat Yourself)
// Helps mixins generate dynamic extensions.
$placeholders: () !default;
@mixin dry-do($key, $extend: true) {
  $placeholder:  map-get($placeholders, $key);

  @if $extend == true {
    @if $placeholder == null {
      $placeholder: unique-id();
      $placeholders: map-merge($placeholders, ($key: $placeholder)) !global;

      @at-root %#{$placeholder} {
        @include dry-do($key, false) {
          @content;
        }
      }
    }
    @extend %#{$placeholder} !optional;
  }
  @else {
    @content;
  }
}

@mixin dry($key, $context: null) {
  @include dry-do('#{$key}-#{$context}') {
    @content;
  }
}