diff options
| author | Martijn Cuppens <[email protected]> | 2019-06-30 16:59:58 +0300 |
|---|---|---|
| committer | XhmikosR <[email protected]> | 2019-07-22 16:08:58 +0300 |
| commit | b4c422340905b59aa34a0e20ca707bc06ed11ad7 (patch) | |
| tree | 3cfc2cdf425485a1832f56721bfe04159f726088 | |
| parent | 3b73dfc44badc90953cc3f4b239b679c9e46cd34 (diff) | |
| download | bootstrap-b4c422340905b59aa34a0e20ca707bc06ed11ad7.tar.xz bootstrap-b4c422340905b59aa34a0e20ca707bc06ed11ad7.zip | |
Remove card columns in favor of masonry grid
| -rw-r--r-- | scss/_card.scss | 23 | ||||
| -rw-r--r-- | scss/_variables.scss | 4 | ||||
| -rw-r--r-- | site/content/docs/4.3/components/card.md | 86 | ||||
| -rw-r--r-- | site/content/docs/4.3/examples/masonry/index.md | 102 | ||||
| -rw-r--r-- | site/content/docs/4.3/migration.md | 4 | ||||
| -rw-r--r-- | site/data/examples.yml | 6 | ||||
| -rwxr-xr-x | site/static/docs/4.3/assets/img/examples/masonry.png | bin | 0 -> 15253 bytes | |||
| -rwxr-xr-x | site/static/docs/4.3/assets/img/examples/[email protected] | bin | 0 -> 37733 bytes |
8 files changed, 114 insertions, 111 deletions
diff --git a/scss/_card.scss b/scss/_card.scss index 0369bb387..f68855c56 100644 --- a/scss/_card.scss +++ b/scss/_card.scss @@ -242,29 +242,6 @@ // -// Columns -// - -.card-columns { - .card { - margin-bottom: $card-columns-margin; - } - - @include media-breakpoint-up(sm) { - column-count: $card-columns-count; - column-gap: $card-columns-gap; - orphans: 1; - widows: 1; - - .card { - display: inline-block; // Don't let them vertically span multiple columns - width: 100%; // Don't let their width change - } - } -} - - -// // Accordion // diff --git a/scss/_variables.scss b/scss/_variables.scss index bc429a2d6..f6eb41910 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -841,10 +841,6 @@ $card-img-overlay-padding: 1.25rem !default; $card-group-margin: $grid-gutter-width / 2 !default; $card-deck-margin: $card-group-margin !default; -$card-columns-count: 3 !default; -$card-columns-gap: 1.25rem !default; -$card-columns-margin: $card-spacer-y !default; - // Tooltips diff --git a/site/content/docs/4.3/components/card.md b/site/content/docs/4.3/components/card.md index 7860c5d76..99225ceec 100644 --- a/site/content/docs/4.3/components/card.md +++ b/site/content/docs/4.3/components/card.md @@ -601,88 +601,6 @@ Just like with card groups, card footers in decks will automatically line up. </div> {{< /example >}} -### Card columns +### Card columns (Masonry layout) -Cards can be organized into [Masonry](https://masonry.desandro.com/)-like columns with just CSS by wrapping them in `.card-columns`. Cards are built with CSS `column` properties instead of flexbox for easier alignment. Cards are ordered from top to bottom and left to right. - -**Heads up!** Your mileage with card columns may vary. To prevent cards breaking across columns, we must set them to `display: inline-block` as `column-break-inside: avoid` isn't a bulletproof solution yet. - -{{< example >}} -<div class="card-columns"> - <div class="card"> - {{< placeholder width="100%" height="160" class="card-img-top" text="Image cap" >}} - <div class="card-body"> - <h5 class="card-title">Card title that wraps to a new line</h5> - <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> - </div> - </div> - <div class="card p-3"> - <blockquote class="blockquote mb-0 card-body"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> - <footer class="blockquote-footer"> - <small class="text-muted"> - Someone famous in <cite title="Source Title">Source Title</cite> - </small> - </footer> - </blockquote> - </div> - <div class="card"> - {{< placeholder width="100%" height="160" class="card-img-top" text="Image cap" >}} - <div class="card-body"> - <h5 class="card-title">Card title</h5> - <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p> - <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> - </div> - </div> - <div class="card bg-primary text-white text-center p-3"> - <blockquote class="blockquote mb-0"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.</p> - <footer class="blockquote-footer text-white"> - <small> - Someone famous in <cite title="Source Title">Source Title</cite> - </small> - </footer> - </blockquote> - </div> - <div class="card text-center"> - <div class="card-body"> - <h5 class="card-title">Card title</h5> - <p class="card-text">This card has a regular title and short paragraphy of text below it.</p> - <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> - </div> - </div> - <div class="card"> - {{< placeholder width="100%" height="260" class="card-img" text="Card image" >}} - </div> - <div class="card p-3 text-right"> - <blockquote class="blockquote mb-0"> - <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> - <footer class="blockquote-footer"> - <small class="text-muted"> - Someone famous in <cite title="Source Title">Source Title</cite> - </small> - </footer> - </blockquote> - </div> - <div class="card"> - <div class="card-body"> - <h5 class="card-title">Card title</h5> - <p class="card-text">This is another card with title and supporting text below. This card has some additional content to make it slightly taller overall.</p> - <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> - </div> - </div> -</div> -{{< /example >}} - -Card columns can also be extended and customized with some additional code. Shown below is an extension of the `.card-columns` class using the same CSS we use—CSS columns— to generate a set of responsive tiers for changing the number of columns. - -{{< highlight scss >}} -.card-columns { - @include media-breakpoint-only(lg) { - column-count: 4; - } - @include media-breakpoint-only(xl) { - column-count: 5; - } -} -{{< /highlight >}} +In `v4` we used a CSS-only technique to mimic the behaviour of [Masonry](https://masonry.desandro.com/)-like columns, but this technique came with lots of unpleasant [side effects](https://github.com/twbs/bootstrap/pull/28922). If you want to have this type of layout in `v5`, you can just make use of Masonry plugin. **Masonry is not included in Bootstrap**, but we've made a [demo example]({{< docsref "/examples/masonry" >}}) to help you get started. diff --git a/site/content/docs/4.3/examples/masonry/index.md b/site/content/docs/4.3/examples/masonry/index.md new file mode 100644 index 000000000..d03e3cc7a --- /dev/null +++ b/site/content/docs/4.3/examples/masonry/index.md @@ -0,0 +1,102 @@ +--- +layout: single +title: Bootstrap grid masonry example +description: This example illustrates how to integrate the [Masonry plugin](https://masonry.desandro.com/) with the Bootstrap grid. More options & documentation can be found on their [documentation site](https://masonry.desandro.com/). +include_docs_stylesheets: true +active_menu: "example" +extra_js: + - src: "https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" + integrity: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" + async: true +--- + +Masonry is not included in Bootstrap, but can easily be added by including your locally hosted file or using the following hosted javascript file: + +```js +<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" integrity="sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" crossorigin="anonymous" async></script> +``` + +By adding `data-masonry='{"percentPosition": true }'` to the `.row` wrapper, we can combine the powers of Bootstrap's responsive grid and Masonry's positioning. + +{{< example >}} +<div class="row" data-masonry='{"percentPosition": true }'> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card"> + {{< placeholder width="100%" height="160" class="card-img-top" text="Image cap" >}} + <div class="card-body"> + <h5 class="card-title">Card title that wraps to a new line</h5> + <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> + </div> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card p-3"> + <blockquote class="blockquote mb-0 card-body"> + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> + <footer class="blockquote-footer"> + <small class="text-muted"> + Someone famous in <cite title="Source Title">Source Title</cite> + </small> + </footer> + </blockquote> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card"> + {{< placeholder width="100%" height="160" class="card-img-top" text="Image cap" >}} + <div class="card-body"> + <h5 class="card-title">Card title</h5> + <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p> + <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> + </div> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card bg-primary text-white text-center p-3"> + <blockquote class="blockquote mb-0"> + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.</p> + <footer class="blockquote-footer text-white"> + <small> + Someone famous in <cite title="Source Title">Source Title</cite> + </small> + </footer> + </blockquote> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card text-center"> + <div class="card-body"> + <h5 class="card-title">Card title</h5> + <p class="card-text">This card has a regular title and short paragraphy of text below it.</p> + <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> + </div> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card"> + {{< placeholder width="100%" height="260" class="card-img" text="Card image" >}} + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card p-3 text-right"> + <blockquote class="blockquote mb-0"> + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> + <footer class="blockquote-footer"> + <small class="text-muted"> + Someone famous in <cite title="Source Title">Source Title</cite> + </small> + </footer> + </blockquote> + </div> + </div> + <div class="col-sm-6 col-lg-4 mb-4"> + <div class="card"> + <div class="card-body"> + <h5 class="card-title">Card title</h5> + <p class="card-text">This is another card with title and supporting text below. This card has some additional content to make it slightly taller overall.</p> + <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> + </div> + </div> + </div> +</div> +{{< /example >}} diff --git a/site/content/docs/4.3/migration.md b/site/content/docs/4.3/migration.md index bae7c6a51..e2bf76bb2 100644 --- a/site/content/docs/4.3/migration.md +++ b/site/content/docs/4.3/migration.md @@ -93,6 +93,10 @@ Badges were overhauled to better differentiate themselves from buttons and to be - **Todo:** Removed `.badge-pill` for the `.rounded-pill` utility class - **Todo:** Removed badge's hover and focus styles for `a.badge` and `button.badge`. +### Cards + +- Removed the card columns in favor of a Masonry grid [See #28922](https://github.com/twbs/bootstrap/pull/28922). + ### Icons (New!) - Added new Bootstrap icons to the project for our documentation, form controls, and more. diff --git a/site/data/examples.yml b/site/data/examples.yml index 9e4fd6bd7..1a6884d41 100644 --- a/site/data/examples.yml +++ b/site/data/examples.yml @@ -51,3 +51,9 @@ description: "Beautifully simple forms with floating labels over your inputs." - name: Offcanvas description: "Turn your expandable navbar into a sliding offcanvas menu." + +- category: Integrations + description: "Integrations with external libraries." + examples: + - name: "Masonry" + description: "Combine the powers of the Bootstrap grid and the Masonry layout." diff --git a/site/static/docs/4.3/assets/img/examples/masonry.png b/site/static/docs/4.3/assets/img/examples/masonry.png Binary files differnew file mode 100755 index 000000000..20137306f --- /dev/null +++ b/site/static/docs/4.3/assets/img/examples/masonry.png diff --git a/site/static/docs/4.3/assets/img/examples/[email protected] b/site/static/docs/4.3/assets/img/examples/[email protected] Binary files differnew file mode 100755 index 000000000..8d9a5cf97 --- /dev/null +++ b/site/static/docs/4.3/assets/img/examples/[email protected] |
