_mixins.grid.scss 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. @use 'sass:math';
  2. // Utility variable - you should never need to modify this
  3. $padding: math.div($grid-gutter-width, 2);
  4. // Our row container
  5. @mixin row($padding: 0) {
  6. @include clearfix();
  7. box-sizing: border-box;
  8. display: block;
  9. margin-inline-end: auto;
  10. margin-inline-start: auto;
  11. padding-inline-end: $padding;
  12. padding-inline-start: $padding;
  13. }
  14. @mixin row-flush() {
  15. margin-inline-start: -$padding;
  16. margin-inline-end: -$padding;
  17. }
  18. // Our column container
  19. @mixin column($x, $padding: $padding, $grid-columns: $grid-columns) {
  20. box-sizing: border-box;
  21. display: inline;
  22. float: left;
  23. width: 100% * math.div($x, $grid-columns);
  24. padding-inline-end: $padding;
  25. padding-inline-start: $padding;
  26. }
  27. @mixin table-column($x, $padding: $padding, $grid-columns: $grid-columns) {
  28. box-sizing: border-box;
  29. width: 100% * math.div($x, $grid-columns);
  30. }
  31. // Push adds left padding
  32. @mixin push($offset: 1, $grid-columns: $grid-columns) {
  33. margin-inline-start: 100% * math.div($offset, $grid-columns);
  34. }
  35. @mixin push-padding($offset: 1, $grid-columns: $grid-columns) {
  36. padding-inline-start: 100% * math.div($offset, $grid-columns);
  37. }
  38. // Pull adds right padding
  39. @mixin pull($offset: 1, $grid-columns: $grid-columns) {
  40. margin-inline-end: 100% * math.div($offset, $grid-columns);
  41. }
  42. @mixin pull-padding($offset: 1, $grid-columns: $grid-columns) {
  43. padding-inline-end: 100% * math.div($offset, $grid-columns);
  44. }
  45. // only used in places where padding not applied to same elements as row or row-flush
  46. // most of the time this class should be applied directly to the html elements
  47. @mixin nice-padding {
  48. padding-inline-start: $mobile-nice-padding;
  49. padding-inline-end: $mobile-nice-padding;
  50. @include media-breakpoint-up(sm) {
  51. padding-inline-start: $desktop-nice-padding;
  52. padding-inline-end: $desktop-nice-padding;
  53. }
  54. }
  55. @mixin nice-margin {
  56. margin-inline-start: $mobile-nice-padding;
  57. margin-inline-end: $mobile-nice-padding;
  58. @include media-breakpoint-up(sm) {
  59. margin-inline-start: $desktop-nice-padding;
  60. margin-inline-end: $desktop-nice-padding;
  61. }
  62. }