Skip to content

Instantly share code, notes, and snippets.

@vio
Last active August 29, 2015 14:21
Show Gist options
  • Save vio/f51420ecbd53e4409820 to your computer and use it in GitHub Desktop.
Save vio/f51420ecbd53e4409820 to your computer and use it in GitHub Desktop.
Workarounds for extending inside media queries
  1. Use @extend by default, copy inside the media queries

placeholder()
  color: red

$placeholder
  placeholder()

.element-a
  // use extend by default
  @extend $placeholder

.element-b
  @media (min-width: 769px)
    // copy the styles
    placeholder()
.element-a {
  color: #f00;
}
@media (min-width: 769px) {
  .element-b {
    color: #f00;
  }
}
  1. Duplicate placeholders for each breakpoint

placeholder()
  color: red

$placeholder
  placeholder()

$placeholder--tablet
  @media (min-width: 769px)
    placeholder()

.element-a
  @extend $placeholder

.element-b
  @media (min-width: 769px)
    @extend $placeholder--tablet
.element-a {
  color: #f00;
}
@media (min-width: 769px) {
  .element-b {
    color: #f00;
  }
}
  1. Avoid using exting when inside the breakpoint

Will work for elements that are not requiring conflicting styles before the breakpoint where we need to extend

$placeholder
  color: red

.element-a
  @extend $placeholder
  display: none

  @media (min-width: 769px)
    display: block
.element-a {
  color: #f00;
}
.element-a {
  display: none;
}
@media (min-width: 769px) {
  .element-a {
    display: block;
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment