_mixins.scss 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Button mixin- creates 3d-ish button effect with correct
  3. * highlights/shadows, based on a base color.
  4. */
  5. @mixin button( $button-color, $text-color: #fff ) {
  6. background: $button-color;
  7. border-color: darken( $button-color, 10% ) darken( $button-color, 15% ) darken( $button-color, 15% );
  8. color: $text-color;
  9. box-shadow: 0 1px 0 darken( $button-color, 15% );
  10. text-shadow: 0 -1px 1px darken( $button-color, 15% ),
  11. 1px 0 1px darken( $button-color, 15% ),
  12. 0 1px 1px darken( $button-color, 15% ),
  13. -1px 0 1px darken( $button-color, 15% );
  14. &:hover,
  15. &:focus {
  16. background: lighten( $button-color, 3% );
  17. border-color: darken( $button-color, 15% );
  18. color: $text-color;
  19. box-shadow: 0 1px 0 darken( $button-color, 15% );
  20. }
  21. &:focus {
  22. box-shadow: inset 0 1px 0 darken( $button-color, 10% ),
  23. 0 0 2px 1px #33b3db;
  24. }
  25. &:active,
  26. &.active,
  27. &.active:focus,
  28. &.active:hover {
  29. background: darken( $button-color, 10% );
  30. border-color: darken( $button-color, 15% );
  31. box-shadow: inset 0 2px 0 darken( $button-color, 15% );
  32. }
  33. &[disabled],
  34. &:disabled,
  35. &.button-primary-disabled,
  36. &.disabled {
  37. color: hsl( hue( $button-color ), 10%, 80% ) !important;
  38. background: darken( $button-color, 8% ) !important;
  39. border-color: darken( $button-color, 15% ) !important;
  40. text-shadow: none !important;
  41. }
  42. &.button-hero {
  43. box-shadow: 0 2px 0 darken( $button-color, 15% ) !important;
  44. &:active {
  45. box-shadow: inset 0 3px 0 darken( $button-color, 15% ) !important;
  46. }
  47. }
  48. }