mixins-pattern.less 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. .mixin (...) {
  2. variadic: true;
  3. }
  4. .mixin (@a...) {
  5. named-variadic: true;
  6. }
  7. .mixin () {
  8. zero: 0;
  9. }
  10. .mixin (@a: 1px) {
  11. one: 1;
  12. }
  13. .mixin (@a) {
  14. one-req: 1;
  15. }
  16. .mixin (@a: 1px, @b: 2px) {
  17. two: 2;
  18. }
  19. .mixin (@a, @b, @c) {
  20. three-req: 3;
  21. }
  22. .mixin (@a: 1px, @b: 2px, @c: 3px) {
  23. three: 3;
  24. }
  25. .zero {
  26. .mixin();
  27. }
  28. .one {
  29. .mixin(1);
  30. }
  31. .two {
  32. .mixin(1, 2);
  33. }
  34. .three {
  35. .mixin(1, 2, 3);
  36. }
  37. //
  38. .mixout ('left') {
  39. left: 1;
  40. }
  41. .mixout ('right') {
  42. right: 1;
  43. }
  44. .left {
  45. .mixout('left');
  46. }
  47. .right {
  48. .mixout('right');
  49. }
  50. //
  51. .border (@side, @width) {
  52. color: black;
  53. .border-side(@side, @width);
  54. }
  55. .border-side (left, @w) {
  56. border-left: @w;
  57. }
  58. .border-side (right, @w) {
  59. border-right: @w;
  60. }
  61. .border-right {
  62. .border(right, 4px);
  63. }
  64. .border-left {
  65. .border(left, 4px);
  66. }
  67. //
  68. .border-radius (@r) {
  69. both: (@r * 10);
  70. }
  71. .border-radius (@r, left) {
  72. left: @r;
  73. }
  74. .border-radius (@r, right) {
  75. right: @r;
  76. }
  77. .only-right {
  78. .border-radius(33, right);
  79. }
  80. .only-left {
  81. .border-radius(33, left);
  82. }
  83. .left-right {
  84. .border-radius(33);
  85. }