diff options
| author | Mark Otto <[email protected]> | 2013-08-17 22:39:07 -0700 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2013-08-17 22:39:07 -0700 |
| commit | 18766db63423e9151d1be4de061016b7a53ff8a1 (patch) | |
| tree | 07c1170429e6e22caba90d72948460f379d989e3 /less | |
| parent | 5e31478a91e62fc022ba0141acf27937c9dd7719 (diff) | |
| parent | 04a73ebe42b8beb9567220fe31cc11057badf40f (diff) | |
| download | bootstrap-18766db63423e9151d1be4de061016b7a53ff8a1.tar.xz bootstrap-18766db63423e9151d1be4de061016b7a53ff8a1.zip | |
Merge branch '3.0.0-wip' into bs3_homepage
Conflicts:
dist/css/bootstrap.min.css
Diffstat (limited to 'less')
| -rw-r--r-- | less/bootstrap.less | 37 | ||||
| -rw-r--r-- | less/grid.less | 4 | ||||
| -rw-r--r-- | less/jumbotron.less | 15 | ||||
| -rw-r--r-- | less/mixins.less | 24 | ||||
| -rw-r--r-- | less/navbar.less | 39 | ||||
| -rw-r--r-- | less/navs.less | 2 | ||||
| -rw-r--r-- | less/panels.less | 1 | ||||
| -rw-r--r-- | less/responsive-utilities.less | 48 | ||||
| -rw-r--r-- | less/theme.less | 232 | ||||
| -rw-r--r-- | less/variables.less | 29 |
10 files changed, 342 insertions, 89 deletions
diff --git a/less/bootstrap.less b/less/bootstrap.less index accfb92e4..635e0256c 100644 --- a/less/bootstrap.less +++ b/less/bootstrap.less @@ -21,43 +21,38 @@ @import "type.less"; @import "code.less"; @import "grid.less"; - @import "tables.less"; @import "forms.less"; @import "buttons.less"; -// Components: common +// Components @import "component-animations.less"; -@import "input-groups.less"; @import "dropdowns.less"; -@import "list-group.less"; -@import "panels.less"; -@import "wells.less"; -@import "close.less"; - -// Components: Nav +@import "button-groups.less"; +@import "input-groups.less"; @import "navs.less"; @import "navbar.less"; -@import "button-groups.less"; @import "breadcrumbs.less"; @import "pagination.less"; @import "pager.less"; +@import "labels.less"; +@import "badges.less"; +@import "jumbotron.less"; +@import "thumbnails.less"; +@import "alerts.less"; +@import "progress-bars.less"; +@import "media.less"; +@import "list-group.less"; +@import "panels.less"; +@import "wells.less"; +@import "close.less"; -// Components: Popovers +// Components w/ JavaScript @import "modals.less"; @import "tooltip.less"; @import "popovers.less"; - -// Components: Misc -@import "alerts.less"; -@import "thumbnails.less"; -@import "media.less"; -@import "labels.less"; -@import "badges.less"; -@import "progress-bars.less"; @import "carousel.less"; -@import "jumbotron.less"; // Utility classes -@import "utilities.less"; // Has to be last to override when necessary +@import "utilities.less"; @import "responsive-utilities.less"; diff --git a/less/grid.less b/less/grid.less index e3684e5ae..c77f455f3 100644 --- a/less/grid.less +++ b/less/grid.less @@ -272,9 +272,9 @@ // Note that `.col-lg-12` doesn't get floated on purpose—there's no need since // it's full-width. -@media (min-width: @screen-large-desktop) { +@media (min-width: @screen-lg-desktop) { .container { - max-width: @container-large-desktop; + max-width: @container-lg-desktop; } .col-lg-1, diff --git a/less/jumbotron.less b/less/jumbotron.less index ca51b481a..bb5a71fb5 100644 --- a/less/jumbotron.less +++ b/less/jumbotron.less @@ -11,6 +11,7 @@ line-height: (@line-height-base * 1.5); color: @jumbotron-lead-color; background-color: @jumbotron-bg; + h1 { line-height: 1; color: @jumbotron-heading-color; @@ -19,9 +20,19 @@ line-height: 1.4; } + .container & { + border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container + } + @media screen and (min-width: @screen-tablet) { - padding: 50px 60px; - border-radius: @border-radius-large; // Only round corners at higher resolutions + padding-top: 50px; + padding-bottom: 50px; + + .container & { + padding-left: 60px; + padding-right: 60px; + } + h1 { font-size: (@font-size-base * 4.5); } diff --git a/less/mixins.less b/less/mixins.less index de21668b7..c4d1de5ff 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -558,7 +558,7 @@ padding-right: (@gutter / 2); // Calculate width based on number of columns available - @media (min-width: @screen-small) { + @media (min-width: @screen-sm) { float: left; width: percentage((@columns / @grid-columns)); } @@ -566,17 +566,17 @@ // Generate the small column offsets .make-sm-column-offset(@columns) { - @media (min-width: @screen-small) { + @media (min-width: @screen-sm) { margin-left: percentage((@columns / @grid-columns)); } } .make-sm-column-push(@columns) { - @media (min-width: @screen-small) { + @media (min-width: @screen-sm) { left: percentage((@columns / @grid-columns)); } } .make-sm-column-pull(@columns) { - @media (min-width: @screen-small) { + @media (min-width: @screen-sm) { right: percentage((@columns / @grid-columns)); } } @@ -591,7 +591,7 @@ padding-right: (@gutter / 2); // Calculate width based on number of columns available - @media (min-width: @screen-medium) { + @media (min-width: @screen-md) { float: left; width: percentage((@columns / @grid-columns)); } @@ -599,17 +599,17 @@ // Generate the large column offsets .make-md-column-offset(@columns) { - @media (min-width: @screen-medium) { + @media (min-width: @screen-md) { margin-left: percentage((@columns / @grid-columns)); } } .make-md-column-push(@columns) { - @media (min-width: @screen-medium) { + @media (min-width: @screen-md) { left: percentage((@columns / @grid-columns)); } } .make-md-column-pull(@columns) { - @media (min-width: @screen-medium) { + @media (min-width: @screen-md) { right: percentage((@columns / @grid-columns)); } } @@ -624,7 +624,7 @@ padding-right: (@gutter / 2); // Calculate width based on number of columns available - @media (min-width: @screen-large) { + @media (min-width: @screen-lg) { float: left; width: percentage((@columns / @grid-columns)); } @@ -632,17 +632,17 @@ // Generate the large column offsets .make-lg-column-offset(@columns) { - @media (min-width: @screen-large) { + @media (min-width: @screen-lg) { margin-left: percentage((@columns / @grid-columns)); } } .make-lg-column-push(@columns) { - @media (min-width: @screen-large) { + @media (min-width: @screen-lg) { left: percentage((@columns / @grid-columns)); } } .make-lg-column-pull(@columns) { - @media (min-width: @screen-large) { + @media (min-width: @screen-lg) { right: percentage((@columns / @grid-columns)); } } diff --git a/less/navbar.less b/less/navbar.less index 2141c5255..44def9f11 100644 --- a/less/navbar.less +++ b/less/navbar.less @@ -30,8 +30,6 @@ // styling of responsive aspects. .navbar-header { - padding-left: @navbar-padding-horizontal; - padding-right: @navbar-padding-horizontal; .clearfix(); @media (min-width: @grid-float-breakpoint) { @@ -66,8 +64,6 @@ @media (min-width: @grid-float-breakpoint) { width: auto; - padding-right: 0; - padding-left: 0; border-top: 0; box-shadow: none; @@ -85,6 +81,22 @@ } +// Both navbar header and collapse +// +// When a container is present, change the behavior of the header and collapse. + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -@navbar-padding-horizontal; + margin-left: -@navbar-padding-horizontal; + + @media (min-width: @grid-float-breakpoint) { + margin-right: 0; + margin-left: 0; + } +} + + // // Navbar alignment options // @@ -130,8 +142,7 @@ .navbar-brand { float: left; - padding-top: @navbar-padding-vertical; - padding-bottom: @navbar-padding-vertical; + padding: @navbar-padding-vertical @navbar-padding-horizontal; font-size: @font-size-large; line-height: @line-height-computed; color: @navbar-brand-color; @@ -141,6 +152,12 @@ text-decoration: none; background-color: @navbar-brand-hover-bg; } + + @media (min-width: @grid-float-breakpoint) { + .navbar > .container & { + margin-left: -@navbar-padding-horizontal; + } + } } @@ -152,6 +169,7 @@ .navbar-toggle { position: relative; float: right; + margin-right: @navbar-padding-horizontal; padding: 9px 10px; .navbar-vertical-align(34px); background-color: transparent; @@ -176,9 +194,6 @@ } @media (min-width: @grid-float-breakpoint) { - position: relative; - top: auto; - left: auto; display: none; } } @@ -220,7 +235,7 @@ } } - @media (max-width: @screen-phone-max) { + @media (max-width: @screen-xs-max) { // Dropdowns get custom display when collapsed .open .dropdown-menu { position: static; @@ -315,7 +330,7 @@ .form-inline(); .form-group { - @media (max-width: @screen-phone-max) { + @media (max-width: @screen-xs-max) { margin-bottom: 5px; } } @@ -516,7 +531,7 @@ } } - @media (max-width: @screen-phone-max) { + @media (max-width: @screen-xs-max) { // Dropdowns get custom display .open .dropdown-menu { > .dropdown-header { diff --git a/less/navs.less b/less/navs.less index abee86dcc..6002a8cdd 100644 --- a/less/navs.less +++ b/less/navs.less @@ -162,7 +162,7 @@ } } - @media (min-width: @screen-small) { + @media (min-width: @screen-sm) { > li { display: table-cell; width: 1%; diff --git a/less/panels.less b/less/panels.less index 5cd04b3db..9d1b21389 100644 --- a/less/panels.less +++ b/less/panels.less @@ -15,6 +15,7 @@ // Panel contents .panel-body { padding: 15px; + .clearfix(); } // List groups in panels diff --git a/less/responsive-utilities.less b/less/responsive-utilities.less index 529152032..062d6820c 100644 --- a/less/responsive-utilities.less +++ b/less/responsive-utilities.less @@ -37,98 +37,98 @@ .visible-xs { .responsive-visibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-invisibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-invisibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-invisibility(); } } .visible-sm { .responsive-invisibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-visibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-invisibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-invisibility(); } } .visible-md { .responsive-invisibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-invisibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-visibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-invisibility(); } } .visible-lg { .responsive-invisibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-invisibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-invisibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-visibility(); } } .hidden-xs { .responsive-invisibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-visibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-visibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-visibility(); } } .hidden-sm { .responsive-visibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-invisibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-visibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-visibility(); } } .hidden-md { .responsive-visibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-visibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-invisibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-visibility(); } } .hidden-lg { .responsive-visibility(); - @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + @media (min-width: @screen-sm) and (max-width: @screen-sm-max) { .responsive-visibility(); } - @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) { + @media (min-width: @screen-md) and (max-width: @screen-md-max) { .responsive-visibility(); } - @media (min-width: @screen-large-desktop) { + @media (min-width: @screen-lg) { .responsive-invisibility(); } } diff --git a/less/theme.less b/less/theme.less new file mode 100644 index 000000000..52e2d239a --- /dev/null +++ b/less/theme.less @@ -0,0 +1,232 @@ + +// +// Load core variables and mixins +// -------------------------------------------------- + +@import "variables.less"; +@import "mixins.less"; + + + +// +// Buttons +// -------------------------------------------------- + +// Common styles +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0,0,0,.2); + @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); + .box-shadow(@shadow); + + // Reset the shadow + &:active, + &.active { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } +} + +// Mixin for generating new styles +.btn-styles(@btn-color: #555;) { + #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 10%)); + border-color: darken(@btn-color, 12%); + + &:active, + &.active { + background-color: darken(@btn-color, 10%); + border-color: darken(@btn-color, 12%); + } +} + +// Common styles +.btn { + // Remove the gradient for the pressed/active state + &:active, + &.active { + background-image: none; + } +} + +// Apply the mixin to the buttons +.btn-default { .btn-styles(@btn-default-bg;); text-shadow: 0 1px 0 #fff; border-color: #ccc; } +.btn-primary { .btn-styles(@btn-primary-bg); } +.btn-success { .btn-styles(@btn-success-bg); } +.btn-warning { .btn-styles(@btn-warning-bg); } +.btn-danger { .btn-styles(@btn-danger-bg); } +.btn-info { .btn-styles(@btn-info-bg); } + + + +// +// Images +// -------------------------------------------------- + +.thumbnail, +.img-thumbnail { + .box-shadow(0 1px 2px rgba(0,0,0,.075)); +} + + + +// +// Dropdowns +// -------------------------------------------------- + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); + background-color: darken(@dropdown-link-hover-bg, 5%); +} + + + +// +// Navbar +// -------------------------------------------------- + +// Basic navbar +.navbar { + #gradient > .vertical(@start-color: lighten(@navbar-bg, 10%); @end-color: @navbar-bg;); + border-radius: @border-radius-base; + @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); + .box-shadow(@shadow); + + .navbar-nav > .active > a { + background-color: @navbar-bg; + } +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255,255,255,.25); +} + +// Inverted navbar +.navbar-inverse { + #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg;); + + .navbar-nav > .active > a { + background-color: @navbar-inverse-bg; + } + + .navbar-brand, + .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + } +} + +// Undo rounded corners in static and fixed navbars +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + + + +// +// Alerts +// -------------------------------------------------- + +// Common styles +.alert { + text-shadow: 0 1px 0 rgba(255,255,255,.2); + @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); + .box-shadow(@shadow); +} + +// Mixin for generating new styles +.alert-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%)); + border-color: darken(@color, 15%); +} + +// Apply the mixin to the alerts +.alert { .alert-styles(@alert-bg); } +.alert-success { .alert-styles(@alert-success-bg); } +.alert-info { .alert-styles(@alert-info-bg); } +.alert-danger { .alert-styles(@alert-danger-bg); } + + + +// +// Progress bars +// -------------------------------------------------- + +// Give the progress background some depth +.progress { + #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg;) +} + +// Mixin for generating new styles +.progress-bar-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%)); +} + +// Apply the mixin to the progress bars +.progress-bar { .progress-bar-styles(@progress-bar-bg); } +.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); } +.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); } +.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); } +.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); } + + + +// +// List groups +// -------------------------------------------------- + +.list-group { + border-radius: @border-radius-base; + .box-shadow(0 1px 2px rgba(0,0,0,.075)); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%); + #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%)); + border-color: darken(@list-group-active-border, 7.5%); +} + + + +// +// Panels +// -------------------------------------------------- + +// Common styles +.panel { + .box-shadow(0 1px 2px rgba(0,0,0,.05)); +} + +// Mixin for generating new styles +.panel-heading-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%)); +} + +// Apply the mixin to the panel headings only +.panel-heading { .panel-heading-styles(@panel-heading-bg); } +.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); } +.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); } +.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); } +.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); } +.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); } + + + +// +// Wells +// -------------------------------------------------- + +.well { + #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg;); + border-color: darken(@well-bg, 10%); + @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); + .box-shadow(@shadow); +} diff --git a/less/variables.less b/less/variables.less index c3eeaaebc..a46ad4fb6 100644 --- a/less/variables.less +++ b/less/variables.less @@ -193,26 +193,25 @@ // -------------------------------------------------- // Extra small screen / phone -@screen-xsmall: 480px; -@screen-phone: @screen-xsmall; +@screen-xs: 480px; +@screen-phone: @screen-xs; // Small screen / tablet -@screen-small: 768px; -@screen-tablet: @screen-small; +@screen-sm: 768px; +@screen-tablet: @screen-sm; // Medium screen / desktop -@screen-medium: 992px; -@screen-desktop: @screen-medium; +@screen-md: 992px; +@screen-desktop: @screen-md; // Large screen / wide desktop -@screen-large: 1200px; -@screen-large-desktop: @screen-large; +@screen-lg: 1200px; +@screen-lg-desktop: @screen-lg; // So media queries don't overlap when required, provide a maximum -@screen-phone-max: (@screen-small - 1); -@screen-small-max: (@screen-medium - 1); -@screen-tablet-max: (@screen-desktop - 1); -@screen-desktop-max: (@screen-large-desktop - 1); +@screen-xs-max: (@screen-sm - 1); +@screen-sm-max: (@screen-md - 1); +@screen-md-max: (@screen-lg - 1); // Grid system @@ -600,10 +599,10 @@ // -------------------------------------------------- // Small screen / tablet -@container-tablet: ((720px + @grid-gutter-width)); +@container-tablet: ((720px + @grid-gutter-width)); // Medium screen / desktop -@container-desktop: ((940px + @grid-gutter-width)); +@container-desktop: ((940px + @grid-gutter-width)); // Large screen / wide desktop -@container-large-desktop: ((1140px + @grid-gutter-width)); +@container-lg-desktop: ((1140px + @grid-gutter-width)); |
