<commit_before>@function width-calc ($columns: 1, $spacing: 0rem) {
  @return calc(#{ 100% / $columns } - #{ ($columns - 1) / $columns * $spacing });
}

@mixin columns ($columns: 1, $spacing: 0rem) {
  box-sizing: border-box;
  &:after {
    content: '';
    display: table;
    clear: both;
  }
  > * {
    box-sizing: border-box;
    display: block;
    float: left;
    width: width-calc($columns, $spacing);
    &:nth-child(n) {
      margin-top: $spacing;
      margin-left: $spacing;
    }
    &:nth-child(#{ $columns }n + 1) {
      margin-left: 0;
    }
    &:nth-child(-n+#{ $columns }) {
      margin-top: 0;
    }
  }
}

@mixin span ($span: $columns of $parent-columns, $spacing: 0rem) {
  $columns: nth($span, 1);
  $parent-columns: nth($span, 3);
  width: width-calc($parent-columns / $columns, $spacing);
}
<commit_msg>Add width fallback for older browsers<commit_after>@mixin columns ($columns: 1, $spacing: 0rem) {
  box-sizing: border-box;
  &:after {
    content: '';
    display: table;
    clear: both;
  }
  > * {
    box-sizing: border-box;
    display: block;
    float: left;
    width: 100% / $columns;
    width: calc(#{ 100% / $columns } - #{ ($columns - 1) / $columns * $spacing });
    &:nth-child(n) {
      margin-top: $spacing;
      margin-left: $spacing;
    }
    &:nth-child(#{ $columns }n + 1) {
      margin-left: 0;
    }
    &:nth-child(-n+#{ $columns }) {
      margin-top: 0;
    }
  }
}

@mixin span ($span: $columns of $parent-columns, $spacing: 0rem) {
  $columns: nth($span, 1);
  $parent-columns: nth($span, 3);
  $relative-columns: $parent-columns / $columns;
  width: 100% / $relative-columns;
  width: calc(#{ 100% / $relative-columns } - #{ ($relative-columns - 1) / $relative-columns * $spacing });
}

{'fraction_non_alphanumeric': 0.19851682829435255, 'fraction_numerical': 0.02053622361665716, 'mean_word_length': 2.739872068230277, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1763955', 'n_tokens_mistral': 704, 'n_tokens_neox': 656, 'n_words': 149}