mixins.scss 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //BEM
  2. $fi-namespace: 'lemon';
  3. @mixin b($block) {
  4. $selector: $fi-namespace + '-' + $block;
  5. .#{$selector} {
  6. @content;
  7. }
  8. }
  9. @mixin e($element) {
  10. $selector: '__' + $element;
  11. &#{$selector} {
  12. @content;
  13. }
  14. }
  15. @mixin m($modifier) {
  16. $selector: '--' + $modifier;
  17. &#{$selector} {
  18. @content;
  19. }
  20. }
  21. @mixin bem($block, $element: false, $modifier: false) {
  22. $selector: '.';
  23. @if $block {
  24. $selector: $fi-namespace + '-' + $block;
  25. }
  26. @if $element {
  27. $selector: $selector + '__' + $element;
  28. }
  29. @if $modifier {
  30. $selector: $selector + '--' + $modifier;
  31. }
  32. & .#{$selector} {
  33. @content;
  34. }
  35. }
  36. @mixin user-select($value) {
  37. -moz-user-select: $value;
  38. -webkit-user-select: $value;
  39. -ms-user-select: $value;
  40. }
  41. @mixin scrollbar-theme($color: #1f252d, $background: #6d6d6d) {
  42. &::-webkit-scrollbar {
  43. width: 5px;
  44. height: 5px;
  45. }
  46. &::-webkit-scrollbar-track-piece {
  47. background-color: $background;
  48. }
  49. &::-webkit-scrollbar-thumb:vertical {
  50. height: 5px;
  51. background-color: $color;
  52. }
  53. &::-webkit-scrollbar-thumb:horizontal {
  54. width: 5px;
  55. background-color: $background;
  56. }
  57. }
  58. @mixin scrollbar-dark() {
  59. @include scrollbar-theme();
  60. }
  61. @mixin scrollbar-light() {
  62. @include scrollbar-theme(#aaa, #fff);
  63. }
  64. @mixin vertical-center {
  65. $selector: &;
  66. @at-root {
  67. #{$selector}::after {
  68. display: inline-block;
  69. content: '';
  70. height: 100%;
  71. vertical-align: middle;
  72. }
  73. }
  74. }
  75. @mixin position-center($type: fixed) {
  76. position: $type;
  77. top: 50%;
  78. left: 50%;
  79. transform: translate(-50%, -50%);
  80. }
  81. @mixin ellipsis {
  82. overflow: hidden;
  83. text-overflow: ellipsis;
  84. white-space: nowrap;
  85. }
  86. @mixin arrow {
  87. }