Skip to content

Instantly share code, notes, and snippets.

@seyDoggy
Forked from andyl/bootstrap_ms.css.scss
Last active February 21, 2022 19:47
Show Gist options
  • Save seyDoggy/4f370a676f5db6df2d1d to your computer and use it in GitHub Desktop.
Save seyDoggy/4f370a676f5db6df2d1d to your computer and use it in GitHub Desktop.
// Bootstrap Mid-Small - col-ms-* - the missing grid set for Bootstrap3.
//
// LICENSE under MIT - https://github.com/twbs/bootstrap/blob/master/LICENSE
//
// Source: https://gist.github.com/seyDoggy/4f370a676f5db6df2d1d
// Forked: https://gist.github.com/andyl/6360906
//
// This is a hack to fill the gap between 480 and 760 pixels - a missing range
// in the bootstrap responsive grid structure. Use these classes to style pages
// on cellphones when they transition from portrait to landscape.
//
// By default, the smallest column (col-xs-*) spans from 480px to 768px,
// neglecting the ever-useful 640px screen size. This snippet aims to solve
// that by limiting col-xs-* to the 480px to 640px range and adding col-ms-*
// that covers the range between 640px and 768px.
//
// This initiative was originally started by @andyl in response to this thread
// https://github.com/twbs/bootstrap/issues/10203, but I found it lacked the
// responsive utilities, container widths and other such conveniences that it
// generally raised more questions in me than it solved. Plus it didn't actually
// work well in my test cases. I'm hoping what I've done here fixes that.
//
// NOTE: Here I use SASS instead of LESS for styling. To convert to LESS
// replace '$screen' with '@screen' and '$grid' with '@grid'.
//
// See https://github.com/twbs/bootstrap/issues/10203 for more info.
//
// Columns, offsets, pushes, pulls, visible-ms-*, hidden-ms and container-ms
// for the ms device range, from landscape phones (640px) to tablets (768px).
//
// Note that `.col-ms-12` doesn't get floated on purpose—there's no need since
// it's full-width.
// $screen-ms variables (defined above import for $screen-xs-max override)
$screen-ms: 640px;
$screen-ms-min: $screen-ms;
// overrides default (has to be before import)
$screen-xs-max: ($screen-ms-min - 1);
// Include bootstrap
@import "bootstrap.scss";
// $screen-ms-max (defined after import to read $screen-sm)
$screen-ms-max: ($screen-sm-min - 1);
// $container-ms (defined after import to read $grid-gutter-width)
$container-ms: (592px + $grid-gutter-width);
// ms visible helper
@media (min-width: $screen-ms-min) and (max-width: $screen-ms-max) {
@include responsive-visibility('.visible-ms');
}
.visible-ms-block {
@media (min-width: $screen-ms-min) and (max-width: $screen-ms-max) {
display: block !important;
}
}
.visible-ms-inline {
@media (min-width: $screen-ms-min) and (max-width: $screen-ms-max) {
display: inline !important;
}
}
.visible-ms-inline-block {
@media (min-width: $screen-ms-min) and (max-width: $screen-ms-max) {
display: inline-block !important;
}
}
// ms hidden helper
@media (min-width: $screen-ms-min) and (max-width: $screen-ms-max) {
@include responsive-invisibility('.hidden-ms');
}
// Container widths
//
// Set the container width (again), and override it for fixed navbars in media queries.
.container {
@include container-fixed;
@media (min-width: $screen-sm-min) {
width: $container-sm;
}
@media (min-width: $screen-ms-min ) {
width: $container-ms;
}
@media (min-width: $screen-md-min) {
width: $container-md;
}
@media (min-width: $screen-lg-min) {
width: $container-lg;
}
}
// ----- common styles - from twbs/bootstrap/blob/master/less/grid.less -----
.col-ms-1,
.col-ms-2,
.col-ms-3,
.col-ms-4,
.col-ms-5,
.col-ms-6,
.col-ms-7,
.col-ms-8,
.col-ms-9,
.col-ms-10,
.col-ms-11,
.col-ms-12 {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: ($grid-gutter-width / 2);
padding-right: ($grid-gutter-width / 2);
}
// ----- col-ms breakpoints and related classes -----
@media (min-width: $screen-ms-min) {
.col-ms-1,
.col-ms-2,
.col-ms-3,
.col-ms-4,
.col-ms-5,
.col-ms-6,
.col-ms-7,
.col-ms-8,
.col-ms-9,
.col-ms-10,
.col-ms-11 {
float: left;
}
.col-ms-1 { width: percentage((1 / $grid-columns)); }
.col-ms-2 { width: percentage((2 / $grid-columns)); }
.col-ms-3 { width: percentage((3 / $grid-columns)); }
.col-ms-4 { width: percentage((4 / $grid-columns)); }
.col-ms-5 { width: percentage((5 / $grid-columns)); }
.col-ms-6 { width: percentage((6 / $grid-columns)); }
.col-ms-7 { width: percentage((7 / $grid-columns)); }
.col-ms-8 { width: percentage((8 / $grid-columns)); }
.col-ms-9 { width: percentage((9 / $grid-columns)); }
.col-ms-10 { width: percentage((10/ $grid-columns)); }
.col-ms-11 { width: percentage((11/ $grid-columns)); }
.col-ms-12 { width: 100%; }
// Push and pull columns for source order changes
.col-ms-push-1 { left: percentage((1 / $grid-columns)); }
.col-ms-push-2 { left: percentage((2 / $grid-columns)); }
.col-ms-push-3 { left: percentage((3 / $grid-columns)); }
.col-ms-push-4 { left: percentage((4 / $grid-columns)); }
.col-ms-push-5 { left: percentage((5 / $grid-columns)); }
.col-ms-push-6 { left: percentage((6 / $grid-columns)); }
.col-ms-push-7 { left: percentage((7 / $grid-columns)); }
.col-ms-push-8 { left: percentage((8 / $grid-columns)); }
.col-ms-push-9 { left: percentage((9 / $grid-columns)); }
.col-ms-push-10 { left: percentage((10/ $grid-columns)); }
.col-ms-push-11 { left: percentage((11/ $grid-columns)); }
.col-ms-pull-1 { right: percentage((1 / $grid-columns)); }
.col-ms-pull-2 { right: percentage((2 / $grid-columns)); }
.col-ms-pull-3 { right: percentage((3 / $grid-columns)); }
.col-ms-pull-4 { right: percentage((4 / $grid-columns)); }
.col-ms-pull-5 { right: percentage((5 / $grid-columns)); }
.col-ms-pull-6 { right: percentage((6 / $grid-columns)); }
.col-ms-pull-7 { right: percentage((7 / $grid-columns)); }
.col-ms-pull-8 { right: percentage((8 / $grid-columns)); }
.col-ms-pull-9 { right: percentage((9 / $grid-columns)); }
.col-ms-pull-10 { right: percentage((10/ $grid-columns)); }
.col-ms-pull-11 { right: percentage((11/ $grid-columns)); }
// Offsets
.col-ms-offset-1 { margin-left: percentage((1 / $grid-columns)); }
.col-ms-offset-2 { margin-left: percentage((2 / $grid-columns)); }
.col-ms-offset-3 { margin-left: percentage((3 / $grid-columns)); }
.col-ms-offset-4 { margin-left: percentage((4 / $grid-columns)); }
.col-ms-offset-5 { margin-left: percentage((5 / $grid-columns)); }
.col-ms-offset-6 { margin-left: percentage((6 / $grid-columns)); }
.col-ms-offset-7 { margin-left: percentage((7 / $grid-columns)); }
.col-ms-offset-8 { margin-left: percentage((8 / $grid-columns)); }
.col-ms-offset-9 { margin-left: percentage((9 / $grid-columns)); }
.col-ms-offset-10 { margin-left: percentage((10/ $grid-columns)); }
.col-ms-offset-11 { margin-left: percentage((11/ $grid-columns)); }
}
@deankeen
Copy link

I see this is a scss file...how do I convert this to CSS so I can add it to my website?

@abea
Copy link

abea commented Sep 17, 2015

@deankeen: If you don't use Sass locally you can put any Sass/scss code into this web tool to convert it: http://sassmeister.com/.

@jeffwalsh
Copy link

thank you so much! after using the other forks of this file, I could not get it to work consistently! Either only MS would work, or everything but MS would work. You are a legend!

@fabiodevin
Copy link

@abea , this file doesn't compile in sassmeister

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment