From 7e19b6b02ccd5417a6c2d3d418c08219773f1112 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Wed, 31 Jul 2013 18:02:41 -0700 Subject: add the theme file derp --- less/theme.less | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 less/theme.less (limited to 'less/theme.less') diff --git a/less/theme.less b/less/theme.less new file mode 100644 index 000000000..6befcc0c1 --- /dev/null +++ b/less/theme.less @@ -0,0 +1,55 @@ + +// +// Buttons +// -------------------------------------------------- + +// Button mixin for generating new styles +.btn-styles(@btn-color: #555) { + text-shadow: 0 -1px 0 rgba(0,0,0,.2); + #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 10%)); + border-color: darken(@btn-color, 12%); + @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 { + background-color: darken(@btn-color, 10%); + border-color: darken(@btn-color, 12%); + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } +} + +// 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); } +.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); } + + + + +// +// Navbar +// -------------------------------------------------- + +// Basic navbar +.navbar { + #gradient > .vertical(@start-color: lighten(@navbar-bg, 10%); @end-color: @navbar-bg;); +} + +// Inverted navbar +.navbar-inverse { + #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg;); +} -- cgit v1.2.3 From 2af9cf10ce2e93fe0ac07651d405abc484e4c608 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Tue, 6 Aug 2013 18:42:10 -0700 Subject: more twerks to the theme --- less/theme.less | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'less/theme.less') diff --git a/less/theme.less b/less/theme.less index 6befcc0c1..0ad042204 100644 --- a/less/theme.less +++ b/less/theme.less @@ -30,7 +30,7 @@ } // Apply the mixin to the buttons -.btn-default { .btn-styles(@btn-default-bg); } +.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); } @@ -47,9 +47,17 @@ // Basic navbar .navbar { #gradient > .vertical(@start-color: lighten(@navbar-bg, 10%); @end-color: @navbar-bg;); + + .navbar-nav > .active > a { + background-color: @navbar-bg; + } } // 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; + } } -- cgit v1.2.3 From c56a749323836b7e0b7401d41de1d0c68a7cb7a8 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 17 Aug 2013 18:59:50 -0700 Subject: Finish first pass at and docment Bootstrap v2-ish theme * Adds new "theme" example * Adds new theme.less file to provide all the overrides and additional styles for the theme * theme.less compiles, via Grunt, to two new files to `dist/css`, bootstrap-theme.css and bootstrap-theme.min.css --- less/theme.less | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 175 insertions(+), 6 deletions(-) (limited to 'less/theme.less') diff --git a/less/theme.less b/less/theme.less index 0ad042204..4acf9ee76 100644 --- a/less/theme.less +++ b/less/theme.less @@ -1,22 +1,44 @@ +// +// Load core variables and mixins +// -------------------------------------------------- + +@import "variables.less"; +@import "mixins.less"; + + + // // Buttons // -------------------------------------------------- -// Button mixin for generating new styles -.btn-styles(@btn-color: #555) { +// Common styles +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { text-shadow: 0 -1px 0 rgba(0,0,0,.2); - #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 10%)); - border-color: darken(@btn-color, 12%); @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)); + } +} + +// Button 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%); - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); } } @@ -30,7 +52,7 @@ } // Apply the mixin to the buttons -.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } +.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); } @@ -39,6 +61,31 @@ +// +// 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 @@ -47,11 +94,18 @@ // 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 { @@ -60,4 +114,119 @@ .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); +} + +// Alert 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;) +} + +// Progress bar 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)); +} + +// Alert 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); } -- cgit v1.2.3 From 9a66906d3dec56d1e44083e8ee005affa71ffecf Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 17 Aug 2013 19:14:13 -0700 Subject: generic comment --- less/theme.less | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'less/theme.less') diff --git a/less/theme.less b/less/theme.less index 4acf9ee76..52e2d239a 100644 --- a/less/theme.less +++ b/less/theme.less @@ -30,7 +30,7 @@ } } -// Button mixin for generating new styles +// 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%); @@ -141,7 +141,7 @@ .box-shadow(@shadow); } -// Alert mixin for generating new styles +// Mixin for generating new styles .alert-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%)); border-color: darken(@color, 15%); @@ -164,7 +164,7 @@ #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg;) } -// Progress bar mixin for generating new styles +// Mixin for generating new styles .progress-bar-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%)); } @@ -205,7 +205,7 @@ .box-shadow(0 1px 2px rgba(0,0,0,.05)); } -// Alert mixin for generating new styles +// Mixin for generating new styles .panel-heading-styles(@color) { #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%)); } -- cgit v1.2.3