Problem/Motivation

no-gutters was removed from Bootstrap 5
https://getbootstrap.com/docs/5.0/layout/gutters/#no-gutters
https://github.com/twbs/bootstrap/blob/v5.1.3/dist/css/bootstrap.css

But it was in Bootstrap 4
https://github.com/twbs/bootstrap/blob/v4.6.1/dist/css/bootstrap.css#L588

rajab@vardot-dev:/var/www/html/products$ grep -rl --exclude-dir={node_modules,bower_components}  "no-gutters" .
./bootstrap_layout_builder/templates/blb-section.html.twig
./bootstrap_layout_builder/src/Plugin/Layout/BootstrapLayout.php
./varbase_layout_builder/templates/vlb-section.html.twig
./vartheme_bs4/VARTHEME_BS4_SUBTHEME/css/base/bootstrap.base.css
./vartheme_bs4/css/base/bootstrap.base.css

#3246862: Remove "px-md-0" from items in Varbase Blog views

In Bootstrap 5 final computed css.

.g-0,
.gx-0 {
  padding-right: 0;
  padding-left: 0;
}

.g-0,
.gy-0 {
  padding-top: 0;
  padding-bottom: 0;
}

In Bootstrap 5 base

.g-0,
.gx-0 {
  --bs-gutter-x: 0;
}

.g-0,
.gy-0 {
  --bs-gutter-y: 0;
}

But no > [class*="col-"] as in Bootstrap 4

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}

Proposed resolution

Change to no-gutters gx-0 to support both Bootstrap 5 and Bootstrap 4
And remove the logic of gutters_between_on with gx-0

Remaining tasks

  • ✅ File an issue about this project
  • ✅ Change from no-gutters to no-gutters g-0
  • ✅ Testing to ensure no regression
  • ❌ Automated unit/functional testing coverage
  • ❌ Developer Documentation support on feature change/addition
  • ❌ User Guide Documentation support on feature change/addition
  • ✅ Code review from 1 Varbase core team member
  • ✅ Full testing and approval
  • ✅ Credit contributors
  • ✅ Review with the product owner
  • ❌ Release

User interface changes

The Edit layout and the front-end changes

Edit layout - keep gutters between columns

Edit layout - keep gutters between columns

Test keep gutters between columns

Test keep gutters between columns

Test keep gutters between columns with Bootstrap grid

Test keep gutters between columns with Bootstrap grid


Edit layout - NO gutters between columns

Edit layout - NO gutters between columns

Test No gutters between columns

Test No gutters between columns

Test NO gutters between columns with Bootstrap grid

Test NO gutters between columns with Bootstrap grid

API changes

  • N/A

Data model changes

  • N/A

Comments

RajabNatshah created an issue. See original summary.

  • RajabNatshah committed ef3377d on 10.0.x
    Issue #3246993: Change Keep gutters between columns from using no-...
rajab natshah’s picture

No gutters equivalents are not working will in Bootstrap 5
https://getbootstrap.com/docs/5.0/layout/gutters/#no-gutters

The gutters between columns in our predefined grid classes can be removed with .g-0. This removes the negative margins from .row and the horizontal padding from all immediate children columns.

Same: their example is not working too in a real case

<div class="row g-0">
  <div class="col-sm-6 col-md-8">.col-sm-6 .col-md-8</div>
  <div class="col-6 col-md-4">.col-6 .col-md-4</div>
</div>

In Bootstrap 5 final computed css.

.g-0,
.gx-0 {
  padding-right: 0;
  padding-left: 0;
}

.g-0,
.gy-0 {
  padding-top: 0;
  padding-bottom: 0;
}

In Bootstrap 5 base

.g-0,
.gx-0 {
  --bs-gutter-x: 0;
}

.g-0,
.gy-0 {
  --bs-gutter-y: 0;
}

But no > [class*="col-"] as in Bootstrap 4

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}
rajab natshah’s picture

Issue summary: View changes
StatusFileSize
new2.59 MB
new3.29 MB

-

rajab natshah’s picture

Test bootstrap 4 and no gutters

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">

    <title>Test bootstrap 4 and no gutters</title>
  </head>
  <body>
    <h1 class="text-center">Test bootstrap 4 and no gutters</h1>

    <hr />
    <h2 class="text-center">No outer container + No inner container + gutters ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">No outer container + No inner container + no-gutters ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">No outer container + No inner container + g-0 ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>
    <hr />

    <hr />
    <h2 class="text-center">Outer container + Inner container + Gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + Inner container + no-gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + Inner container + g-0</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + no-gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + g-0</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>



    <hr />
  </body>
</html>


Test bootstrap 5 and no gutters

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

    <title>Test bootstrap 5 and no gutters</title>
  </head>
  <body>
    <h1 class="text-center">Test bootstrap 5 and no gutters</h1>

    <hr />
    <h2 class="text-center">No outer container + No inner container + gutters ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">No outer container + No inner container + no-gutters ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">No outer container + No inner container + g-0 ( edge-to-edge )</h2>
    <div class="no-container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>
    <hr />

    <hr />
    <h2 class="text-center">Outer container + Inner container + Gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + Inner container + no-gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + Inner container + g-0</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + no-gutters</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row no-gutters">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>

    <hr />
    <h2 class="text-center">Outer container + No inner container + g-0</h2>
    <div class="container">
      <div class="row">
          <div class="col-12">
            <div class="no-container">
                <div class="row g-0">
                  <div class="col-sm-6 bg-dark"><img class="img-fluid" src="images/coworking-1.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                  <div class="col-sm-6 bg-info"><img class="img-fluid" src="images/coworking-4.jpg" alt="test" title="test" typeof="foaf:Image"></div>
                </div>
            </div>
        </div>
      </div>
    </div>



    <hr />
  </body>
</html>

rajab natshah’s picture

Title: Change Keep gutters between columns from using no-gutters to g-0 on rows » Change Keep gutters between columns from using no-gutters to "no-gutters g-0" on rows
rajab natshah’s picture

Issue summary: View changes

Changed to no-gutters g-0 to support both Bootstrap 5 and Bootstrap 4

rajab natshah’s picture

Issue summary: View changes

  • RajabNatshah committed a7f0d2f on 10.0.x
    Issue #3246993: Change Keep gutters between columns from using no-...
rajab natshah’s picture

Title: Change Keep gutters between columns from using no-gutters to "no-gutters g-0" on rows » Change Keep gutters between columns from using no-gutters to "no-gutters gx-0" on rows
rajab natshah’s picture

Issue summary: View changes
rajab natshah’s picture

Changed to no-gutters gx-0 to support both Bootstrap 5 and Bootstrap 4
And removed the logic of gutters_between_on with gx-0

rajab natshah’s picture

Issue summary: View changes

  • RajabNatshah committed 79f4c82 on 10.0.x
    Issue #3246993: Change Keep gutters between columns from using no-...
rajab natshah’s picture

Assigned: rajab natshah » mohammed j. razem
Status: Active » Needs review
rajab natshah’s picture

Assigned: mohammed j. razem » Unassigned
rajab natshah’s picture

Issue summary: View changes

  • RajabNatshah committed 41d181d on 10.0.x
    Revert changes in the 10.0.x as it was moved to the 10.1.x branch -...
rajab natshah’s picture

Version: 10.0.x-dev » 10.1.x-dev
rajab natshah’s picture

Title: Change Keep gutters between columns from using no-gutters to "no-gutters gx-0" on rows » Change Keep gutters between columns from using no-gutters to gx-0 on rows
rajab natshah’s picture

Status: Needs review » Fixed
Issue tags: +varbase-9.1.0-beta1

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.