completely purge websockets
This commit is contained in:
81
app.js
81
app.js
@ -3,8 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var dotenv = require('dotenv');
|
|
||||||
dotenv.load();
|
|
||||||
var cookieParser = require('cookie-parser');
|
var cookieParser = require('cookie-parser');
|
||||||
var compress = require('compression');
|
var compress = require('compression');
|
||||||
var session = require('express-session');
|
var session = require('express-session');
|
||||||
@ -34,7 +32,6 @@ var userController = require('./controllers/user');
|
|||||||
var apiController = require('./controllers/api');
|
var apiController = require('./controllers/api');
|
||||||
var contactController = require('./controllers/contact');
|
var contactController = require('./controllers/contact');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API keys and Passport configuration.
|
* API keys and Passport configuration.
|
||||||
*/
|
*/
|
||||||
@ -46,22 +43,7 @@ var passportConf = require('./config/passport');
|
|||||||
* Create Express server.
|
* Create Express server.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var socket = require('socket.io');
|
|
||||||
var express = require('express');
|
|
||||||
var http = require('http');
|
|
||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
var server = http.createServer(app);
|
|
||||||
|
|
||||||
server.listen(2999, function() {
|
|
||||||
console.log('server started on %d', 2999);
|
|
||||||
// console.log(process.env)
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
var io = socket.listen(server);
|
|
||||||
|
|
||||||
//console.log('Express server started on port %s', server.address().port);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to MongoDB.
|
* Connect to MongoDB.
|
||||||
@ -69,7 +51,7 @@ var io = socket.listen(server);
|
|||||||
|
|
||||||
mongoose.connect(secrets.db);
|
mongoose.connect(secrets.db);
|
||||||
mongoose.connection.on('error', function() {
|
mongoose.connection.on('error', function() {
|
||||||
console.error('MongoDB Connection Error. Make sure MongoDB is running.');
|
console.error('MongoDB Connection Error. Make sure MongoDB is running.');
|
||||||
});
|
});
|
||||||
|
|
||||||
var hour = 3600000;
|
var hour = 3600000;
|
||||||
@ -91,8 +73,8 @@ app.set('views', path.join(__dirname, 'views'));
|
|||||||
app.set('view engine', 'jade');
|
app.set('view engine', 'jade');
|
||||||
app.use(compress());
|
app.use(compress());
|
||||||
app.use(connectAssets({
|
app.use(connectAssets({
|
||||||
paths: [path.join(__dirname, 'public/css'), path.join(__dirname, 'public/js')],
|
paths: [path.join(__dirname, 'public/css'), path.join(__dirname, 'public/js')],
|
||||||
helperContext: app.locals
|
helperContext: app.locals
|
||||||
}));
|
}));
|
||||||
app.use(logger('dev'));
|
app.use(logger('dev'));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
@ -101,35 +83,35 @@ app.use(expressValidator());
|
|||||||
app.use(methodOverride());
|
app.use(methodOverride());
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
app.use(session({
|
app.use(session({
|
||||||
resave: true,
|
resave: true,
|
||||||
saveUninitialized: true,
|
saveUninitialized: true,
|
||||||
secret: secrets.sessionSecret,
|
secret: secrets.sessionSecret,
|
||||||
store: new MongoStore({
|
store: new MongoStore({
|
||||||
url: secrets.db,
|
url: secrets.db,
|
||||||
auto_reconnect: true
|
auto_reconnect: true
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
app.use(passport.initialize());
|
app.use(passport.initialize());
|
||||||
app.use(passport.session());
|
app.use(passport.session());
|
||||||
app.use(flash());
|
app.use(flash());
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
// CSRF protection.
|
// CSRF protection.
|
||||||
if (_.contains(csrfExclude, req.path)) return next();
|
if (_.contains(csrfExclude, req.path)) return next();
|
||||||
csrf(req, res, next);
|
csrf(req, res, next);
|
||||||
});
|
});
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
// Make user object available in templates.
|
// Make user object available in templates.
|
||||||
res.locals.user = req.user;
|
res.locals.user = req.user;
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
// Remember original destination before login.
|
// Remember original destination before login.
|
||||||
var path = req.path.split('/')[1];
|
var path = req.path.split('/')[1];
|
||||||
if (/auth|login|logout|signup|fonts|favicon/i.test(path)) {
|
if (/auth|login|logout|signup|fonts|favicon/i.test(path)) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
req.session.returnTo = req.path;
|
req.session.returnTo = req.path;
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
|
app.use(express.static(path.join(__dirname, 'public'), { maxAge: week }));
|
||||||
|
|
||||||
@ -157,7 +139,6 @@ app.post('/account/profile', passportConf.isAuthenticated, userController.postUp
|
|||||||
app.post('/account/password', passportConf.isAuthenticated, userController.postUpdatePassword);
|
app.post('/account/password', passportConf.isAuthenticated, userController.postUpdatePassword);
|
||||||
app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount);
|
app.post('/account/delete', passportConf.isAuthenticated, userController.postDeleteAccount);
|
||||||
app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink);
|
app.get('/account/unlink/:provider', passportConf.isAuthenticated, userController.getOauthUnlink);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API examples routes.
|
* API examples routes.
|
||||||
*/
|
*/
|
||||||
@ -190,10 +171,6 @@ app.get('/api/yahoo', apiController.getYahoo);
|
|||||||
* OAuth sign-in routes.
|
* OAuth sign-in routes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
app.get('/auth/twitter', passport.authenticate('twitter'));
|
|
||||||
app.get('/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/login' }), function(req, res) {
|
|
||||||
res.redirect(req.session.returnTo || '/');
|
|
||||||
});
|
|
||||||
app.get('/auth/instagram', passport.authenticate('instagram'));
|
app.get('/auth/instagram', passport.authenticate('instagram'));
|
||||||
app.get('/auth/instagram/callback', passport.authenticate('instagram', { failureRedirect: '/login' }), function(req, res) {
|
app.get('/auth/instagram/callback', passport.authenticate('instagram', { failureRedirect: '/login' }), function(req, res) {
|
||||||
res.redirect(req.session.returnTo || '/');
|
res.redirect(req.session.returnTo || '/');
|
||||||
@ -210,6 +187,10 @@ app.get('/auth/google', passport.authenticate('google', { scope: 'profile email'
|
|||||||
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/login' }), function(req, res) {
|
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/login' }), function(req, res) {
|
||||||
res.redirect(req.session.returnTo || '/');
|
res.redirect(req.session.returnTo || '/');
|
||||||
});
|
});
|
||||||
|
app.get('/auth/twitter', passport.authenticate('twitter'));
|
||||||
|
app.get('/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/login' }), function(req, res) {
|
||||||
|
res.redirect(req.session.returnTo || '/');
|
||||||
|
});
|
||||||
app.get('/auth/linkedin', passport.authenticate('linkedin', { state: 'SOME STATE' }));
|
app.get('/auth/linkedin', passport.authenticate('linkedin', { state: 'SOME STATE' }));
|
||||||
app.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRedirect: '/login' }), function(req, res) {
|
app.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRedirect: '/login' }), function(req, res) {
|
||||||
res.redirect(req.session.returnTo || '/');
|
res.redirect(req.session.returnTo || '/');
|
||||||
@ -221,15 +202,15 @@ app.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRe
|
|||||||
|
|
||||||
app.get('/auth/foursquare', passport.authorize('foursquare'));
|
app.get('/auth/foursquare', passport.authorize('foursquare'));
|
||||||
app.get('/auth/foursquare/callback', passport.authorize('foursquare', { failureRedirect: '/api' }), function(req, res) {
|
app.get('/auth/foursquare/callback', passport.authorize('foursquare', { failureRedirect: '/api' }), function(req, res) {
|
||||||
res.redirect('/api/foursquare');
|
res.redirect('/api/foursquare');
|
||||||
});
|
});
|
||||||
app.get('/auth/tumblr', passport.authorize('tumblr'));
|
app.get('/auth/tumblr', passport.authorize('tumblr'));
|
||||||
app.get('/auth/tumblr/callback', passport.authorize('tumblr', { failureRedirect: '/api' }), function(req, res) {
|
app.get('/auth/tumblr/callback', passport.authorize('tumblr', { failureRedirect: '/api' }), function(req, res) {
|
||||||
res.redirect('/api/tumblr');
|
res.redirect('/api/tumblr');
|
||||||
});
|
});
|
||||||
app.get('/auth/venmo', passport.authorize('venmo', { scope: 'make_payments access_profile access_balance access_email access_phone' }));
|
app.get('/auth/venmo', passport.authorize('venmo', { scope: 'make_payments access_profile access_balance access_email access_phone' }));
|
||||||
app.get('/auth/venmo/callback', passport.authorize('venmo', { failureRedirect: '/api' }), function(req, res) {
|
app.get('/auth/venmo/callback', passport.authorize('venmo', { failureRedirect: '/api' }), function(req, res) {
|
||||||
res.redirect('/api/venmo');
|
res.redirect('/api/venmo');
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -243,7 +224,7 @@ app.use(errorHandler());
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
app.listen(app.get('port'), function() {
|
app.listen(app.get('port'), function() {
|
||||||
console.log('Express server listening on port %d in %s mode', app.get('port'), app.get('env'));
|
console.log('Express server listening on port %d in %s mode', app.get('port'), app.get('env'));
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
@ -1,102 +0,0 @@
|
|||||||
// Brand Colors
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@brand-primary: #4d90fc;
|
|
||||||
@brand-success: #60bf60;
|
|
||||||
@brand-warning: #ff9800;
|
|
||||||
@brand-danger: #de4b33;
|
|
||||||
@brand-info: #5bc0dd;
|
|
||||||
|
|
||||||
// Typography
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@headings-font-family: "HelveticaNeue-CondensedBold", "Helvetica Neue", "Arial Narrow", Arial, sans-serif;
|
|
||||||
|
|
||||||
// Buttons
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@btn-primary-border: darken(@btn-primary-bg, 3.2%);
|
|
||||||
@btn-success-border: darken(@btn-success-bg, 3.2%);
|
|
||||||
@btn-warning-border: darken(@btn-warning-bg, 3.2%);
|
|
||||||
@btn-danger-border: darken(@btn-danger-bg, 3.2%);
|
|
||||||
@btn-info-border: darken(@btn-info-bg, 3.2%);
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
border-radius: 0;
|
|
||||||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.11), 1px 1px 0 rgba(255, 255, 255, 0.21) inset;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-link {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-default, .btn-default:focus {
|
|
||||||
background-image: linear-gradient(to bottom, #ffffff 60%, #f8f8f8 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Forms
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@input-border-radius: 0;
|
|
||||||
@input-border-focus: #2598f9;
|
|
||||||
|
|
||||||
.form-control:focus {
|
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) inset;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Form states and alerts
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@state-success-text: #569845;
|
|
||||||
@state-success-bg: #dbf5d3;
|
|
||||||
@state-success-border: #aed3a5;
|
|
||||||
|
|
||||||
@state-info-text: #3a87ad;
|
|
||||||
@state-info-bg: #d9edf7;
|
|
||||||
@state-info-border: #98cce7;
|
|
||||||
|
|
||||||
@state-warning-text: #bf9853;
|
|
||||||
@state-warning-bg: #fdf8e2;
|
|
||||||
@state-warning-border: #f2daab;
|
|
||||||
|
|
||||||
@state-danger-text: #b94a48;
|
|
||||||
@state-danger-bg: #f2dede;
|
|
||||||
@state-danger-border: #e0b1b8;
|
|
||||||
|
|
||||||
// Alerts
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
.alert {
|
|
||||||
border-radius: 0;
|
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.10);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Navbar
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
@navbar-default-bg: rgba(255, 255, 255, 0.9);
|
|
||||||
@navbar-default-link-color: #252525;
|
|
||||||
@navbar-default-link-hover-color: #4da5f4;
|
|
||||||
@navbar-default-link-active-color: #4da5f4;
|
|
||||||
@navbar-default-link-hover-bg: transparent;
|
|
||||||
@navbar-default-link-active-bg: transparent;
|
|
||||||
@navbar-default-color: #fafafa;
|
|
||||||
@navbar-default-brand-hover-color: #4da5f4;
|
|
||||||
|
|
||||||
.navbar-default {
|
|
||||||
border: 0;
|
|
||||||
box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
|
|
||||||
|
|
||||||
.navbar-nav {
|
|
||||||
> li > a {
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
text-transform: uppercase;
|
|
||||||
transition: all 0.2s linear;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,991 +0,0 @@
|
|||||||
// Flatly 3.1.1
|
|
||||||
// Variables
|
|
||||||
// --------------------------------------------------
|
|
||||||
|
|
||||||
@import url("//fonts.googleapis.com/css?family=Lato:400,700,400italic");
|
|
||||||
|
|
||||||
//== Colors
|
|
||||||
//
|
|
||||||
//## Gray and brand colors for use across Bootstrap.
|
|
||||||
|
|
||||||
@gray-darker: lighten(#000, 13.5%); // #222
|
|
||||||
@gray-dark: #7b8a8b;
|
|
||||||
// #333
|
|
||||||
@gray: #95a5a6;
|
|
||||||
// #555
|
|
||||||
@gray-light: #b4bcc2;
|
|
||||||
// #999
|
|
||||||
@gray-lighter: #ecf0f1;
|
|
||||||
// #eee
|
|
||||||
|
|
||||||
@brand-primary: #2C3E50;
|
|
||||||
@brand-success: #18BC9C;
|
|
||||||
@brand-info: #3498DB;
|
|
||||||
@brand-warning: #F39C12;
|
|
||||||
@brand-danger: #E74C3C;
|
|
||||||
|
|
||||||
//== Scaffolding
|
|
||||||
//
|
|
||||||
// ## Settings for some of the most global styles.
|
|
||||||
|
|
||||||
//** Background color for `<body>`.
|
|
||||||
@body-bg: #fff;
|
|
||||||
//** Global text color on `<body>`.
|
|
||||||
@text-color: @brand-primary;
|
|
||||||
|
|
||||||
//** Global textual link color.
|
|
||||||
@link-color: @brand-success;
|
|
||||||
//** Link hover color set via `darken()` function.
|
|
||||||
@link-hover-color: @link-color;
|
|
||||||
|
|
||||||
//== Typography
|
|
||||||
//
|
|
||||||
//## Font, line-height, and color for body text, headings, and more.
|
|
||||||
|
|
||||||
@font-family-sans-serif: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
@font-family-serif: Georgia, "Times New Roman", Times, serif;
|
|
||||||
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
|
|
||||||
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
|
|
||||||
@font-family-base: @font-family-sans-serif;
|
|
||||||
|
|
||||||
@font-size-base: 15px;
|
|
||||||
@font-size-large: ceil((@font-size-base * 1.25));
|
|
||||||
// ~18px
|
|
||||||
@font-size-small: ceil((@font-size-base * 0.85));
|
|
||||||
// ~12px
|
|
||||||
|
|
||||||
@font-size-h1: floor((@font-size-base * 2.6));
|
|
||||||
// ~36px
|
|
||||||
@font-size-h2: floor((@font-size-base * 2.15));
|
|
||||||
// ~30px
|
|
||||||
@font-size-h3: ceil((@font-size-base * 1.7));
|
|
||||||
// ~24px
|
|
||||||
@font-size-h4: ceil((@font-size-base * 1.25));
|
|
||||||
// ~18px
|
|
||||||
@font-size-h5: @font-size-base;
|
|
||||||
@font-size-h6: ceil((@font-size-base * 0.85));
|
|
||||||
// ~12px
|
|
||||||
|
|
||||||
//** Unit-less `line-height` for use in components like buttons.
|
|
||||||
@line-height-base: 1.428571429; // 20/14
|
|
||||||
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
|
|
||||||
@line-height-computed: floor((@font-size-base * @line-height-base));
|
|
||||||
// ~20px
|
|
||||||
|
|
||||||
//** By default, this inherits from the `<body>`.
|
|
||||||
@headings-font-family: @font-family-base;
|
|
||||||
@headings-font-weight: 400;
|
|
||||||
@headings-line-height: 1.1;
|
|
||||||
@headings-color: inherit;
|
|
||||||
|
|
||||||
//-- Iconography
|
|
||||||
//
|
|
||||||
//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
|
|
||||||
|
|
||||||
@icon-font-path: "../fonts/";
|
|
||||||
@icon-font-name: "glyphicons-halflings-regular";
|
|
||||||
@icon-font-svg-id: "glyphicons_halflingsregular";
|
|
||||||
|
|
||||||
//== Components
|
|
||||||
//
|
|
||||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
|
||||||
|
|
||||||
@padding-base-vertical: 10px;
|
|
||||||
@padding-base-horizontal: 15px;
|
|
||||||
|
|
||||||
@padding-large-vertical: 18px;
|
|
||||||
@padding-large-horizontal: 27px;
|
|
||||||
|
|
||||||
@padding-small-vertical: 6px;
|
|
||||||
@padding-small-horizontal: 9px;
|
|
||||||
|
|
||||||
@padding-xs-vertical: 1px;
|
|
||||||
@padding-xs-horizontal: 5px;
|
|
||||||
|
|
||||||
@line-height-large: 1.33;
|
|
||||||
@line-height-small: 1.5;
|
|
||||||
|
|
||||||
@border-radius-base: 4px;
|
|
||||||
@border-radius-large: 6px;
|
|
||||||
@border-radius-small: 3px;
|
|
||||||
|
|
||||||
//** Global color for active items (e.g., navs or dropdowns).
|
|
||||||
@component-active-color: #fff;
|
|
||||||
//** Global background color for active items (e.g., navs or dropdowns).
|
|
||||||
@component-active-bg: @brand-primary;
|
|
||||||
|
|
||||||
//** Width of the `border` for generating carets that indicator dropdowns.
|
|
||||||
@caret-width-base: 4px;
|
|
||||||
//** Carets increase slightly in size for larger components.
|
|
||||||
@caret-width-large: 5px;
|
|
||||||
|
|
||||||
//== Tables
|
|
||||||
//
|
|
||||||
//## Customizes the `.table` component with basic values, each used across all table variations.
|
|
||||||
|
|
||||||
//** Padding for `<th>`s and `<td>`s.
|
|
||||||
@table-cell-padding: 8px;
|
|
||||||
//** Padding for cells in `.table-condensed`.
|
|
||||||
@table-condensed-cell-padding: 5px;
|
|
||||||
|
|
||||||
//** Default background color used for all tables.
|
|
||||||
@table-bg: transparent;
|
|
||||||
//** Background color used for `.table-striped`.
|
|
||||||
@table-bg-accent: #f9f9f9;
|
|
||||||
//** Background color used for `.table-hover`.
|
|
||||||
@table-bg-hover: @gray-lighter;
|
|
||||||
@table-bg-active: @table-bg-hover;
|
|
||||||
|
|
||||||
//** Border color for table and cell borders.
|
|
||||||
@table-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
//== Buttons
|
|
||||||
//
|
|
||||||
//## For each of Bootstrap's buttons, define text, background and border color.
|
|
||||||
|
|
||||||
@btn-font-weight: normal;
|
|
||||||
|
|
||||||
@btn-default-color: #fff;
|
|
||||||
@btn-default-bg: @gray;
|
|
||||||
@btn-default-border: @btn-default-bg;
|
|
||||||
|
|
||||||
@btn-primary-color: @btn-default-color;
|
|
||||||
@btn-primary-bg: @brand-primary;
|
|
||||||
@btn-primary-border: @btn-primary-bg;
|
|
||||||
|
|
||||||
@btn-success-color: @btn-default-color;
|
|
||||||
@btn-success-bg: @brand-success;
|
|
||||||
@btn-success-border: @btn-success-bg;
|
|
||||||
|
|
||||||
@btn-info-color: @btn-default-color;
|
|
||||||
@btn-info-bg: @brand-info;
|
|
||||||
@btn-info-border: @btn-info-bg;
|
|
||||||
|
|
||||||
@btn-warning-color: @btn-default-color;
|
|
||||||
@btn-warning-bg: @brand-warning;
|
|
||||||
@btn-warning-border: @btn-warning-bg;
|
|
||||||
|
|
||||||
@btn-danger-color: @btn-default-color;
|
|
||||||
@btn-danger-bg: @brand-danger;
|
|
||||||
@btn-danger-border: @btn-danger-bg;
|
|
||||||
|
|
||||||
@btn-link-disabled-color: @gray-light;
|
|
||||||
|
|
||||||
//== Forms
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** `<input>` background color
|
|
||||||
@input-bg: #fff;
|
|
||||||
//** `<input disabled>` background color
|
|
||||||
@input-bg-disabled: @gray-lighter;
|
|
||||||
|
|
||||||
//** Text color for `<input>`s
|
|
||||||
@input-color: @text-color;
|
|
||||||
//** `<input>` border color
|
|
||||||
@input-border: #dce4ec;
|
|
||||||
//** `<input>` border radius
|
|
||||||
@input-border-radius: @border-radius-base;
|
|
||||||
//** Border color for inputs on focus
|
|
||||||
@input-border-focus: #1abc9c;
|
|
||||||
|
|
||||||
//** Placeholder text color
|
|
||||||
@input-color-placeholder: #acb6c0;
|
|
||||||
|
|
||||||
//** Default `.form-control` height
|
|
||||||
@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
|
|
||||||
//** Large `.form-control` height
|
|
||||||
@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
|
|
||||||
//** Small `.form-control` height
|
|
||||||
@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
|
|
||||||
|
|
||||||
@legend-color: @text-color;
|
|
||||||
@legend-border-color: #e5e5e5;
|
|
||||||
|
|
||||||
//** Background color for textual input addons
|
|
||||||
@input-group-addon-bg: @gray-lighter;
|
|
||||||
//** Border color for textual input addons
|
|
||||||
@input-group-addon-border-color: @input-border;
|
|
||||||
|
|
||||||
//== Dropdowns
|
|
||||||
//
|
|
||||||
//## Dropdown menu container and contents.
|
|
||||||
|
|
||||||
//** Background for the dropdown menu.
|
|
||||||
@dropdown-bg: #fff;
|
|
||||||
//** Dropdown menu `border-color`.
|
|
||||||
@dropdown-border: rgba(0,0,0,.15);
|
|
||||||
//** Dropdown menu `border-color` **for IE8**.
|
|
||||||
@dropdown-fallback-border: #ccc;
|
|
||||||
//** Divider color for between dropdown items.
|
|
||||||
@dropdown-divider-bg: #e5e5e5;
|
|
||||||
|
|
||||||
//** Dropdown link text color.
|
|
||||||
@dropdown-link-color: @gray-dark;
|
|
||||||
//** Hover color for dropdown links.
|
|
||||||
@dropdown-link-hover-color: #fff;
|
|
||||||
//** Hover background for dropdown links.
|
|
||||||
@dropdown-link-hover-bg: @dropdown-link-active-bg;
|
|
||||||
|
|
||||||
//** Active dropdown menu item text color.
|
|
||||||
@dropdown-link-active-color: #fff;
|
|
||||||
//** Active dropdown menu item background color.
|
|
||||||
@dropdown-link-active-bg: @component-active-bg;
|
|
||||||
|
|
||||||
//** Disabled dropdown menu item background color.
|
|
||||||
@dropdown-link-disabled-color: @text-muted;
|
|
||||||
|
|
||||||
//** Text color for headers within dropdown menus.
|
|
||||||
@dropdown-header-color: @text-muted;
|
|
||||||
|
|
||||||
// Note: Deprecated @dropdown-caret-color as of v3.1.0
|
|
||||||
@dropdown-caret-color: #000;
|
|
||||||
|
|
||||||
//-- Z-index master list
|
|
||||||
//
|
|
||||||
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
|
||||||
// of components dependent on the z-axis and are designed to all work together.
|
|
||||||
//
|
|
||||||
// Note: These variables are not generated into the Customizer.
|
|
||||||
|
|
||||||
@zindex-navbar: 1000;
|
|
||||||
@zindex-dropdown: 1000;
|
|
||||||
@zindex-popover: 1010;
|
|
||||||
@zindex-tooltip: 1030;
|
|
||||||
@zindex-navbar-fixed: 1030;
|
|
||||||
@zindex-modal-background: 1040;
|
|
||||||
@zindex-modal: 1050;
|
|
||||||
|
|
||||||
//== Media queries breakpoints
|
|
||||||
//
|
|
||||||
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
|
|
||||||
|
|
||||||
// Extra small screen / phone
|
|
||||||
// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
|
|
||||||
@screen-xs: 480px;
|
|
||||||
@screen-xs-min: @screen-xs;
|
|
||||||
@screen-phone: @screen-xs-min;
|
|
||||||
|
|
||||||
// Small screen / tablet
|
|
||||||
// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
|
|
||||||
@screen-sm: 768px;
|
|
||||||
@screen-sm-min: @screen-sm;
|
|
||||||
@screen-tablet: @screen-sm-min;
|
|
||||||
|
|
||||||
// Medium screen / desktop
|
|
||||||
// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
|
|
||||||
@screen-md: 992px;
|
|
||||||
@screen-md-min: @screen-md;
|
|
||||||
@screen-desktop: @screen-md-min;
|
|
||||||
|
|
||||||
// Large screen / wide desktop
|
|
||||||
// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
|
|
||||||
@screen-lg: 1200px;
|
|
||||||
@screen-lg-min: @screen-lg;
|
|
||||||
@screen-lg-desktop: @screen-lg-min;
|
|
||||||
|
|
||||||
// So media queries don't overlap when required, provide a maximum
|
|
||||||
@screen-xs-max: (@screen-sm-min - 1);
|
|
||||||
@screen-sm-max: (@screen-md-min - 1);
|
|
||||||
@screen-md-max: (@screen-lg-min - 1);
|
|
||||||
|
|
||||||
//== Grid system
|
|
||||||
//
|
|
||||||
//## Define your custom responsive grid.
|
|
||||||
|
|
||||||
//** Number of columns in the grid.
|
|
||||||
@grid-columns: 12;
|
|
||||||
//** Padding between columns. Gets divided in half for the left and right.
|
|
||||||
@grid-gutter-width: 30px;
|
|
||||||
// Navbar collapse
|
|
||||||
//** Point at which the navbar becomes uncollapsed.
|
|
||||||
@grid-float-breakpoint: @screen-sm-min;
|
|
||||||
//** Point at which the navbar begins collapsing.
|
|
||||||
@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
|
|
||||||
|
|
||||||
//== Container sizes
|
|
||||||
//
|
|
||||||
//## Define the maximum width of `.container` for different screen sizes.
|
|
||||||
|
|
||||||
// Small screen / tablet
|
|
||||||
@container-tablet: ((720px + @grid-gutter-width));
|
|
||||||
//** For `@screen-sm-min` and up.
|
|
||||||
@container-sm: @container-tablet;
|
|
||||||
|
|
||||||
// Medium screen / desktop
|
|
||||||
@container-desktop: ((940px + @grid-gutter-width));
|
|
||||||
//** For `@screen-md-min` and up.
|
|
||||||
@container-md: @container-desktop;
|
|
||||||
|
|
||||||
// Large screen / wide desktop
|
|
||||||
@container-large-desktop: ((1140px + @grid-gutter-width));
|
|
||||||
//** For `@screen-lg-min` and up.
|
|
||||||
@container-lg: @container-large-desktop;
|
|
||||||
|
|
||||||
//== Navbar
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
// Basics of a navbar
|
|
||||||
@navbar-height: 60px;
|
|
||||||
@navbar-margin-bottom: @line-height-computed;
|
|
||||||
@navbar-border-radius: @border-radius-base;
|
|
||||||
@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
|
|
||||||
@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
|
|
||||||
@navbar-collapse-max-height: 340px;
|
|
||||||
|
|
||||||
@navbar-default-color: #777;
|
|
||||||
@navbar-default-bg: @brand-primary;
|
|
||||||
@navbar-default-border: darken(@navbar-default-bg, 6.5%);
|
|
||||||
|
|
||||||
// Navbar links
|
|
||||||
@navbar-default-link-color: #fff;
|
|
||||||
@navbar-default-link-hover-color: @brand-success;
|
|
||||||
@navbar-default-link-hover-bg: transparent;
|
|
||||||
@navbar-default-link-active-color: #fff;
|
|
||||||
@navbar-default-link-active-bg: darken(@navbar-default-bg, 10%);
|
|
||||||
@navbar-default-link-disabled-color: #ccc;
|
|
||||||
@navbar-default-link-disabled-bg: transparent;
|
|
||||||
|
|
||||||
// Navbar brand label
|
|
||||||
@navbar-default-brand-color: @navbar-default-link-color;
|
|
||||||
@navbar-default-brand-hover-color: @navbar-default-link-hover-color;
|
|
||||||
@navbar-default-brand-hover-bg: transparent;
|
|
||||||
|
|
||||||
// Navbar toggle
|
|
||||||
@navbar-default-toggle-hover-bg: darken(@navbar-default-bg, 10%);
|
|
||||||
@navbar-default-toggle-icon-bar-bg: #fff;
|
|
||||||
@navbar-default-toggle-border-color: darken(@navbar-default-bg, 10%);
|
|
||||||
|
|
||||||
|
|
||||||
// Inverted navbar
|
|
||||||
// Reset inverted navbar basics
|
|
||||||
@navbar-inverse-color: #fff;
|
|
||||||
@navbar-inverse-bg: @brand-success;
|
|
||||||
@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
|
|
||||||
|
|
||||||
// Inverted navbar links
|
|
||||||
@navbar-inverse-link-color: #fff;
|
|
||||||
@navbar-inverse-link-hover-color: @brand-primary;
|
|
||||||
@navbar-inverse-link-hover-bg: transparent;
|
|
||||||
@navbar-inverse-link-active-color: #fff;
|
|
||||||
@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 5%);
|
|
||||||
@navbar-inverse-link-disabled-color: #ccc;
|
|
||||||
@navbar-inverse-link-disabled-bg: transparent;
|
|
||||||
|
|
||||||
// Inverted navbar brand label
|
|
||||||
@navbar-inverse-brand-color: @navbar-inverse-link-color;
|
|
||||||
@navbar-inverse-brand-hover-color: @navbar-inverse-link-hover-color;
|
|
||||||
@navbar-inverse-brand-hover-bg: transparent;
|
|
||||||
|
|
||||||
// Inverted navbar toggle
|
|
||||||
@navbar-inverse-toggle-hover-bg: darken(@navbar-inverse-bg, 10%);
|
|
||||||
@navbar-inverse-toggle-icon-bar-bg: #fff;
|
|
||||||
@navbar-inverse-toggle-border-color: darken(@navbar-inverse-bg, 10%);
|
|
||||||
|
|
||||||
//== Navs
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//=== Shared nav styles
|
|
||||||
@nav-link-padding: 10px 15px;
|
|
||||||
@nav-link-hover-bg: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-disabled-link-color: @gray-light;
|
|
||||||
@nav-disabled-link-hover-color: @gray-light;
|
|
||||||
|
|
||||||
@nav-open-link-hover-color: #fff;
|
|
||||||
|
|
||||||
//== Tabs
|
|
||||||
@nav-tabs-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-tabs-link-hover-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-tabs-active-link-hover-bg: @body-bg;
|
|
||||||
@nav-tabs-active-link-hover-color: @brand-primary;
|
|
||||||
@nav-tabs-active-link-hover-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-tabs-justified-link-border-color: @gray-lighter;
|
|
||||||
@nav-tabs-justified-active-link-border-color: @body-bg;
|
|
||||||
|
|
||||||
//== Pills
|
|
||||||
@nav-pills-border-radius: @border-radius-base;
|
|
||||||
@nav-pills-active-link-hover-bg: @component-active-bg;
|
|
||||||
@nav-pills-active-link-hover-color: @component-active-color;
|
|
||||||
|
|
||||||
//== Pagination
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@pagination-color: #fff;
|
|
||||||
@pagination-bg: @brand-success;
|
|
||||||
@pagination-border: transparent;
|
|
||||||
|
|
||||||
@pagination-hover-color: #fff;
|
|
||||||
@pagination-hover-bg: darken(@brand-success, 15%);
|
|
||||||
@pagination-hover-border: transparent;
|
|
||||||
|
|
||||||
@pagination-active-color: #fff;
|
|
||||||
@pagination-active-bg: darken(@brand-success, 15%);
|
|
||||||
@pagination-active-border: transparent;
|
|
||||||
|
|
||||||
@pagination-disabled-color: @gray-lighter;
|
|
||||||
@pagination-disabled-bg: lighten(@brand-success, 15%);
|
|
||||||
;
|
|
||||||
@pagination-disabled-border: transparent;
|
|
||||||
|
|
||||||
//== Pager
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@pager-bg: @pagination-bg;
|
|
||||||
@pager-border: @pagination-border;
|
|
||||||
@pager-border-radius: 15px;
|
|
||||||
|
|
||||||
@pager-hover-bg: @pagination-hover-bg;
|
|
||||||
|
|
||||||
@pager-active-bg: @pagination-active-bg;
|
|
||||||
@pager-active-color: @pagination-active-color;
|
|
||||||
|
|
||||||
@pager-disabled-color: #fff;
|
|
||||||
|
|
||||||
//== Jumbotron
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@jumbotron-padding: 30px;
|
|
||||||
@jumbotron-color: inherit;
|
|
||||||
@jumbotron-bg: @gray-lighter;
|
|
||||||
@jumbotron-heading-color: inherit;
|
|
||||||
@jumbotron-font-size: ceil((@font-size-base * 1.5));
|
|
||||||
|
|
||||||
//== Form states and alerts
|
|
||||||
//
|
|
||||||
//## Define colors for form feedback states and, by default, alerts.
|
|
||||||
|
|
||||||
@state-success-text: #fff;
|
|
||||||
@state-success-bg: @brand-success;
|
|
||||||
@state-success-border: @brand-success;
|
|
||||||
|
|
||||||
@state-info-text: #fff;
|
|
||||||
@state-info-bg: @brand-info;
|
|
||||||
@state-info-border: @brand-info;
|
|
||||||
|
|
||||||
@state-warning-text: #fff;
|
|
||||||
@state-warning-bg: @brand-warning;
|
|
||||||
@state-warning-border: @brand-warning;
|
|
||||||
|
|
||||||
@state-danger-text: #fff;
|
|
||||||
@state-danger-bg: @brand-danger;
|
|
||||||
@state-danger-border: @brand-danger;
|
|
||||||
|
|
||||||
//== Tooltips
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Tooltip max width
|
|
||||||
@tooltip-max-width: 200px;
|
|
||||||
//** Tooltip text color
|
|
||||||
@tooltip-color: #fff;
|
|
||||||
//** Tooltip background color
|
|
||||||
@tooltip-bg: rgba(0,0,0,.9);
|
|
||||||
@tooltip-opacity: .9;
|
|
||||||
|
|
||||||
//** Tooltip arrow width
|
|
||||||
@tooltip-arrow-width: 5px;
|
|
||||||
//** Tooltip arrow color
|
|
||||||
@tooltip-arrow-color: @tooltip-bg;
|
|
||||||
|
|
||||||
//== Popovers
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Popover body background color
|
|
||||||
@popover-bg: #fff;
|
|
||||||
//** Popover maximum width
|
|
||||||
@popover-max-width: 276px;
|
|
||||||
//** Popover border color
|
|
||||||
@popover-border-color: rgba(0,0,0,.2);
|
|
||||||
//** Popover fallback border color
|
|
||||||
@popover-fallback-border-color: #ccc;
|
|
||||||
|
|
||||||
//** Popover title background color
|
|
||||||
@popover-title-bg: darken(@popover-bg, 3%);
|
|
||||||
|
|
||||||
//** Popover arrow width
|
|
||||||
@popover-arrow-width: 10px;
|
|
||||||
//** Popover arrow color
|
|
||||||
@popover-arrow-color: #fff;
|
|
||||||
|
|
||||||
//** Popover outer arrow width
|
|
||||||
@popover-arrow-outer-width: (@popover-arrow-width + 1);
|
|
||||||
//** Popover outer arrow color
|
|
||||||
@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
|
|
||||||
//** Popover outer arrow fallback color
|
|
||||||
@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
|
|
||||||
|
|
||||||
//== Labels
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Default label background color
|
|
||||||
@label-default-bg: @btn-default-bg;
|
|
||||||
//** Primary label background color
|
|
||||||
@label-primary-bg: @brand-primary;
|
|
||||||
//** Success label background color
|
|
||||||
@label-success-bg: @brand-success;
|
|
||||||
//** Info label background color
|
|
||||||
@label-info-bg: @brand-info;
|
|
||||||
//** Warning label background color
|
|
||||||
@label-warning-bg: @brand-warning;
|
|
||||||
//** Danger label background color
|
|
||||||
@label-danger-bg: @brand-danger;
|
|
||||||
|
|
||||||
//** Default label text color
|
|
||||||
@label-color: #fff;
|
|
||||||
//** Default text color of a linked label
|
|
||||||
@label-link-hover-color: #fff;
|
|
||||||
|
|
||||||
//== Modals
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Padding applied to the modal body
|
|
||||||
@modal-inner-padding: 20px;
|
|
||||||
|
|
||||||
//** Padding applied to the modal title
|
|
||||||
@modal-title-padding: 15px;
|
|
||||||
//** Modal title line-height
|
|
||||||
@modal-title-line-height: @line-height-base;
|
|
||||||
|
|
||||||
//** Background color of modal content area
|
|
||||||
@modal-content-bg: #fff;
|
|
||||||
//** Modal content border color
|
|
||||||
@modal-content-border-color: rgba(0,0,0,.2);
|
|
||||||
//** Modal content border color **for IE8**
|
|
||||||
@modal-content-fallback-border-color: #999;
|
|
||||||
|
|
||||||
//** Modal backdrop background color
|
|
||||||
@modal-backdrop-bg: #000;
|
|
||||||
//** Modal backdrop opacity
|
|
||||||
@modal-backdrop-opacity: .5;
|
|
||||||
//** Modal header border color
|
|
||||||
@modal-header-border-color: #e5e5e5;
|
|
||||||
//** Modal footer border color
|
|
||||||
@modal-footer-border-color: @modal-header-border-color;
|
|
||||||
|
|
||||||
@modal-lg: 900px;
|
|
||||||
@modal-md: 600px;
|
|
||||||
@modal-sm: 300px;
|
|
||||||
|
|
||||||
//== Alerts
|
|
||||||
//
|
|
||||||
//## Define alert colors, border radius, and padding.
|
|
||||||
|
|
||||||
@alert-padding: 15px;
|
|
||||||
@alert-border-radius: @border-radius-base;
|
|
||||||
@alert-link-font-weight: bold;
|
|
||||||
|
|
||||||
@alert-success-bg: @state-success-bg;
|
|
||||||
@alert-success-text: @state-success-text;
|
|
||||||
@alert-success-border: @state-success-border;
|
|
||||||
|
|
||||||
@alert-info-bg: @state-info-bg;
|
|
||||||
@alert-info-text: @state-info-text;
|
|
||||||
@alert-info-border: @state-info-border;
|
|
||||||
|
|
||||||
@alert-warning-bg: @state-warning-bg;
|
|
||||||
@alert-warning-text: @state-warning-text;
|
|
||||||
@alert-warning-border: @state-warning-border;
|
|
||||||
|
|
||||||
@alert-danger-bg: @state-danger-bg;
|
|
||||||
@alert-danger-text: @state-danger-text;
|
|
||||||
@alert-danger-border: @state-danger-border;
|
|
||||||
|
|
||||||
//== Progress bars
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Background color of the whole progress component
|
|
||||||
@progress-bg: @gray-lighter;
|
|
||||||
//** Progress bar text color
|
|
||||||
@progress-bar-color: #fff;
|
|
||||||
|
|
||||||
//** Default progress bar color
|
|
||||||
@progress-bar-bg: @brand-primary;
|
|
||||||
//** Success progress bar color
|
|
||||||
@progress-bar-success-bg: @brand-success;
|
|
||||||
//** Warning progress bar color
|
|
||||||
@progress-bar-warning-bg: @brand-warning;
|
|
||||||
//** Danger progress bar color
|
|
||||||
@progress-bar-danger-bg: @brand-danger;
|
|
||||||
//** Info progress bar color
|
|
||||||
@progress-bar-info-bg: @brand-info;
|
|
||||||
|
|
||||||
//== List group
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Background color on `.list-group-item`
|
|
||||||
@list-group-bg: #fff;
|
|
||||||
//** `.list-group-item` border color
|
|
||||||
@list-group-border: @gray-lighter;
|
|
||||||
//** List group border radius
|
|
||||||
@list-group-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Background color of single list elements on hover
|
|
||||||
@list-group-hover-bg: @gray-lighter;
|
|
||||||
//** Text color of active list elements
|
|
||||||
@list-group-active-color: @component-active-color;
|
|
||||||
//** Background color of active list elements
|
|
||||||
@list-group-active-bg: @component-active-bg;
|
|
||||||
//** Border color of active list elements
|
|
||||||
@list-group-active-border: @list-group-active-bg;
|
|
||||||
@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
|
|
||||||
|
|
||||||
@list-group-link-color: #555;
|
|
||||||
@list-group-link-heading-color: #333;
|
|
||||||
|
|
||||||
//== Panels
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@panel-bg: #fff;
|
|
||||||
@panel-body-padding: 15px;
|
|
||||||
@panel-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Border color for elements within panels
|
|
||||||
@panel-inner-border: @gray-lighter;
|
|
||||||
@panel-footer-bg: @gray-lighter;
|
|
||||||
|
|
||||||
@panel-default-text: @text-color;
|
|
||||||
@panel-default-border: @gray-lighter;
|
|
||||||
@panel-default-heading-bg: @gray-lighter;
|
|
||||||
|
|
||||||
@panel-primary-text: #fff;
|
|
||||||
@panel-primary-border: @brand-primary;
|
|
||||||
@panel-primary-heading-bg: @brand-primary;
|
|
||||||
|
|
||||||
@panel-success-text: @state-success-text;
|
|
||||||
@panel-success-border: @state-success-border;
|
|
||||||
@panel-success-heading-bg: @state-success-bg;
|
|
||||||
|
|
||||||
@panel-info-text: @state-info-text;
|
|
||||||
@panel-info-border: @state-info-border;
|
|
||||||
@panel-info-heading-bg: @state-info-bg;
|
|
||||||
|
|
||||||
@panel-warning-text: @state-warning-text;
|
|
||||||
@panel-warning-border: @state-warning-border;
|
|
||||||
@panel-warning-heading-bg: @state-warning-bg;
|
|
||||||
|
|
||||||
@panel-danger-text: @state-danger-text;
|
|
||||||
@panel-danger-border: @state-danger-border;
|
|
||||||
@panel-danger-heading-bg: @state-danger-bg;
|
|
||||||
|
|
||||||
//== Thumbnails
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Padding around the thumbnail image
|
|
||||||
@thumbnail-padding: 4px;
|
|
||||||
//** Thumbnail background color
|
|
||||||
@thumbnail-bg: @body-bg;
|
|
||||||
//** Thumbnail border color
|
|
||||||
@thumbnail-border: @gray-lighter;
|
|
||||||
//** Thumbnail border radius
|
|
||||||
@thumbnail-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Custom text color for thumbnail captions
|
|
||||||
@thumbnail-caption-color: @text-color;
|
|
||||||
//** Padding around the thumbnail caption
|
|
||||||
@thumbnail-caption-padding: 9px;
|
|
||||||
|
|
||||||
//== Wells
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@well-bg: @gray-lighter;
|
|
||||||
@well-border: transparent;
|
|
||||||
|
|
||||||
//== Badges
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@badge-color: #fff;
|
|
||||||
//** Linked badge text color on hover
|
|
||||||
@badge-link-hover-color: #fff;
|
|
||||||
@badge-bg: @gray;
|
|
||||||
|
|
||||||
//** Badge text color in active nav link
|
|
||||||
@badge-active-color: @link-color;
|
|
||||||
//** Badge background color in active nav link
|
|
||||||
@badge-active-bg: #fff;
|
|
||||||
|
|
||||||
@badge-font-weight: bold;
|
|
||||||
@badge-line-height: 1;
|
|
||||||
@badge-border-radius: 10px;
|
|
||||||
|
|
||||||
//== Breadcrumbs
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@breadcrumb-padding-vertical: 8px;
|
|
||||||
@breadcrumb-padding-horizontal: 15px;
|
|
||||||
//** Breadcrumb background color
|
|
||||||
@breadcrumb-bg: @gray-lighter;
|
|
||||||
//** Breadcrumb text color
|
|
||||||
@breadcrumb-color: #ccc;
|
|
||||||
//** Text color of current page in the breadcrumb
|
|
||||||
@breadcrumb-active-color: @gray;
|
|
||||||
//** Textual separator for between breadcrumb elements
|
|
||||||
@breadcrumb-separator: "/";
|
|
||||||
|
|
||||||
//== Carousel
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
|
|
||||||
|
|
||||||
@carousel-control-color: #fff;
|
|
||||||
@carousel-control-width: 15%;
|
|
||||||
@carousel-control-opacity: .5;
|
|
||||||
@carousel-control-font-size: 20px;
|
|
||||||
|
|
||||||
@carousel-indicator-active-bg: #fff;
|
|
||||||
@carousel-indicator-border-color: #fff;
|
|
||||||
|
|
||||||
@carousel-caption-color: #fff;
|
|
||||||
|
|
||||||
//== Close
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@close-font-weight: bold;
|
|
||||||
@close-color: #000;
|
|
||||||
@close-text-shadow: 0 1px 0 #fff;
|
|
||||||
|
|
||||||
//== Code
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@code-color: #c7254e;
|
|
||||||
@code-bg: #f9f2f4;
|
|
||||||
|
|
||||||
@kbd-color: #fff;
|
|
||||||
@kbd-bg: #333;
|
|
||||||
|
|
||||||
@pre-bg: @gray-lighter;
|
|
||||||
@pre-color: @gray-dark;
|
|
||||||
@pre-border-color: #ccc;
|
|
||||||
@pre-scrollable-max-height: 340px;
|
|
||||||
|
|
||||||
//== Type
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Text muted color
|
|
||||||
@text-muted: @gray-light;
|
|
||||||
//** Abbreviations and acronyms border color
|
|
||||||
@abbr-border-color: @gray-light;
|
|
||||||
//** Headings small color
|
|
||||||
@headings-small-color: @gray-light;
|
|
||||||
//** Blockquote small color
|
|
||||||
@blockquote-small-color: @gray-light;
|
|
||||||
//** Blockquote font size
|
|
||||||
@blockquote-font-size: (@font-size-base * 1.25);
|
|
||||||
//** Blockquote border color
|
|
||||||
@blockquote-border-color: @gray-lighter;
|
|
||||||
//** Page header border color
|
|
||||||
@page-header-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
//== Miscellaneous
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Horizontal line color.
|
|
||||||
@hr-border: @gray-lighter;
|
|
||||||
|
|
||||||
//** Horizontal offset for forms and lists.
|
|
||||||
@component-offset-horizontal: 180px;
|
|
||||||
|
|
||||||
@import url("//fonts.googleapis.com/css?family=Lato:400,700,400italic");
|
|
||||||
|
|
||||||
// Navbar =====================================================================
|
|
||||||
|
|
||||||
// Buttons ====================================================================
|
|
||||||
|
|
||||||
.btn:active {
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-group.open .dropdown-toggle {
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typography =================================================================
|
|
||||||
|
|
||||||
.text-primary,
|
|
||||||
.text-primary:hover {
|
|
||||||
color: @brand-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-success,
|
|
||||||
.text-success:hover {
|
|
||||||
color: @brand-success;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-danger,
|
|
||||||
.text-danger:hover {
|
|
||||||
color: @brand-danger;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-warning,
|
|
||||||
.text-warning:hover {
|
|
||||||
color: @brand-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-info,
|
|
||||||
.text-info:hover {
|
|
||||||
color: @brand-info;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tables =====================================================================
|
|
||||||
|
|
||||||
.table {
|
|
||||||
|
|
||||||
tr.success,
|
|
||||||
tr.warning,
|
|
||||||
tr.danger {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
> thead > tr > th,
|
|
||||||
> tbody > tr > th,
|
|
||||||
> tfoot > tr > th,
|
|
||||||
> thead > tr > td,
|
|
||||||
> tbody > tr > td,
|
|
||||||
> tfoot > tr > td {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-bordered > thead > tr > th,
|
|
||||||
&-bordered > tbody > tr > th,
|
|
||||||
&-bordered > tfoot > tr > th,
|
|
||||||
&-bordered > thead > tr > td,
|
|
||||||
&-bordered > tbody > tr > td,
|
|
||||||
&-bordered > tfoot > tr > td {
|
|
||||||
border: 1px solid @table-border-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Forms ======================================================================
|
|
||||||
|
|
||||||
.form-control,textarea.form-control,
|
|
||||||
input[type="text"],
|
|
||||||
input[type="password"],
|
|
||||||
input[type="datetime"],
|
|
||||||
input[type="datetime-local"],
|
|
||||||
input[type="date"],
|
|
||||||
input[type="month"],
|
|
||||||
input[type="time"],
|
|
||||||
input[type="week"],
|
|
||||||
input[type="number"],
|
|
||||||
input[type="email"],
|
|
||||||
input[type="url"],
|
|
||||||
input[type="search"],
|
|
||||||
input[type="tel"],
|
|
||||||
input[type="color"],
|
|
||||||
.uneditable-input {
|
|
||||||
border-width: 2px;
|
|
||||||
.box-shadow(none);
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-warning {
|
|
||||||
.help-block,
|
|
||||||
.control-label {
|
|
||||||
color: @brand-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control,
|
|
||||||
.form-control:focus {
|
|
||||||
border: 2px solid @brand-warning;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-error {
|
|
||||||
.help-block,
|
|
||||||
.control-label {
|
|
||||||
color: @brand-danger;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control,
|
|
||||||
.form-control:focus {
|
|
||||||
border: 2px solid @brand-danger;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-success {
|
|
||||||
.help-block,
|
|
||||||
.control-label {
|
|
||||||
color: @brand-success;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control,
|
|
||||||
.form-control:focus {
|
|
||||||
border: 2px solid @brand-success;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Navs =======================================================================
|
|
||||||
|
|
||||||
.nav {
|
|
||||||
.open > a,
|
|
||||||
.open > a:hover,
|
|
||||||
.open > a:focus {
|
|
||||||
border-color: transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.pager {
|
|
||||||
a,
|
|
||||||
a:hover {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.disabled {
|
|
||||||
&>a,
|
|
||||||
&>a:hover,
|
|
||||||
&>a:focus,
|
|
||||||
&>span {
|
|
||||||
background-color: @pagination-disabled-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Indicators =================================================================
|
|
||||||
|
|
||||||
.alert {
|
|
||||||
|
|
||||||
a,
|
|
||||||
.alert-link {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Progress bars ==============================================================
|
|
||||||
|
|
||||||
.progress {
|
|
||||||
height: 10px;
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Containers =================================================================
|
|
||||||
|
|
||||||
.well {
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,2 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
});
|
Reference in New Issue
Block a user