├── .bowerrc ├── .editorconfig ├── .eslintrc ├── .gitignore ├── Gruntfile.js ├── LICENSE.md ├── README.md ├── bower.json ├── karma └── karma-unit.tpl.js ├── package.json ├── production ├── assets │ ├── angularjs-foundation-boilerplate-1.0.0.css │ ├── angularjs-foundation-boilerplate-1.0.0.css.map │ ├── angularjs-foundation-boilerplate-1.0.0.js │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── foundation-yeti.png │ └── images │ │ └── foundation-fav-icon.ico └── index.html ├── protractor.config.js ├── src ├── app │ ├── about │ │ ├── about.module.js │ │ ├── controllers │ │ │ ├── AboutCtrl.js │ │ │ └── controllers.js │ │ ├── e2e │ │ │ └── about.e2e.js │ │ ├── styles │ │ │ ├── _about.scss │ │ │ └── _styles.scss │ │ ├── unit │ │ │ └── AboutCtrl.spec.js │ │ └── views │ │ │ └── about.tpl.html │ ├── app.js │ ├── common │ │ ├── common.module.js │ │ ├── directives │ │ │ ├── backButton.js │ │ │ └── directives.js │ │ └── services │ │ │ ├── Utils.js │ │ │ └── services.js │ ├── home │ │ ├── assets │ │ │ └── foundation-yeti.png │ │ ├── controllers │ │ │ ├── HomeCtrl.js │ │ │ └── controllers.js │ │ ├── directives │ │ │ └── directives.js │ │ ├── e2e │ │ │ └── home.e2e.js │ │ ├── home.module.js │ │ ├── services │ │ │ ├── HomeService.js │ │ │ └── services.js │ │ ├── styles │ │ │ ├── _home.scss │ │ │ └── _styles.scss │ │ ├── unit │ │ │ ├── HomeCtrl.spec.js │ │ │ └── HomeService.service.spec.js │ │ └── views │ │ │ └── home.tpl.html │ ├── layout │ │ ├── controllers │ │ │ ├── LayoutCtrl.js │ │ │ └── controllers.js │ │ ├── layout.module.js │ │ ├── styles │ │ │ ├── _layout.scss │ │ │ └── _styles.scss │ │ └── views │ │ │ └── layout.tpl.html │ ├── sample │ │ ├── controllers │ │ │ ├── SampleCtrl.js │ │ │ └── controllers.js │ │ ├── directives │ │ │ ├── directives.js │ │ │ └── sampleDirective.js │ │ ├── e2e │ │ │ └── sample.e2e.js │ │ ├── sample.module.js │ │ ├── services │ │ │ ├── SampleService.js │ │ │ └── services.js │ │ ├── styles │ │ │ ├── _sample.scss │ │ │ └── _styles.scss │ │ ├── unit │ │ │ ├── SampleCtrl.spec.js │ │ │ └── SampleService.service.spec.js │ │ └── views │ │ │ └── sample.tpl.html │ └── topbar │ │ ├── controllers │ │ ├── TopbarCtrl.js │ │ └── controllers.js │ │ ├── e2e │ │ └── topbar.e2e.js │ │ ├── styles │ │ ├── _styles.scss │ │ ├── _tabbar.scss │ │ └── _topbar.scss │ │ ├── topbar.module.js │ │ ├── unit │ │ └── topbar.spec.js │ │ └── views │ │ ├── tabbar.tpl.html │ │ └── topbar.tpl.html ├── assets │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ └── images │ │ └── foundation-fav-icon.ico ├── index.html └── styles │ ├── _font-awesome.scss │ ├── _mixins.scss │ ├── _settings.scss │ ├── _shared.scss │ └── main.scss └── vendor.config.js /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "vendor", 3 | "json": "bower.json" 4 | } 5 | 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs. 2 | # More information at http://EditorConfig.org 3 | 4 | # No .editorconfig files above the root directory 5 | root = true 6 | 7 | [*] 8 | indent_style = space 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | 14 | # Use 2 spaces for indentation in HTML, JavaScript, Ruby, SCSS, and XML 15 | 16 | [*.{html,js,rb,css,scss,xml}] 17 | indent_size = 2 18 | 19 | # Use 4 spaces for indentation in Markdown files 20 | 21 | [*.md] 22 | indent_size = 2 -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["angular"], 3 | 4 | "env": { 5 | "browser": true, 6 | "node": true, 7 | "amd" : true, 8 | "mocha" : true, 9 | "jasmine" : true, 10 | "phantomjs" : true, 11 | "jquery" : true 12 | }, 13 | 14 | "rules": { 15 | "strict": 0, 16 | "no-alert": 2, 17 | "no-caller": 2, 18 | "no-bitwise": 0, 19 | "no-console": 2, 20 | "no-debugger": 1, 21 | "no-empty": 1, 22 | "no-eval": 2, 23 | "no-ex-assign": 1, 24 | "no-floating-decimal": 0, 25 | "no-implied-eval": 1, 26 | "no-with": 1, 27 | "no-fallthrough": 1, 28 | "no-unreachable": 2, 29 | "no-underscore-dangle": 0, 30 | "no-undef-init": 1, 31 | "no-octal": 1, 32 | "no-obj-calls": 1, 33 | "no-new-wrappers": 1, 34 | "no-new": 1, 35 | "no-new-func": 1, 36 | "no-native-reassign": 1, 37 | "no-plusplus": 0, 38 | "no-delete-var": 1, 39 | "no-return-assign": 1, 40 | "no-new-object": 1, 41 | "no-label-var": 1, 42 | "no-ternary": 0, 43 | "no-self-compare": 0, 44 | "smarter-eqeqeq": 0, 45 | "brace-style": 1, 46 | "camelcase": 1, 47 | "curly": 1, 48 | "dot-notation": 1, 49 | "eqeqeq": 2, 50 | "new-parens": 1, 51 | "guard-for-in": 0, 52 | "radix": 0, 53 | "new-cap": 0, 54 | "quote-props": 0, 55 | "semi": 2, 56 | "use-isnan": 1, 57 | "quotes": [1, "single"], 58 | "max-params": [0, 3], 59 | "max-statements": [0, 10], 60 | "complexity": [0, 11], 61 | "wrap-iife": 1, 62 | "no-multi-str": 1, 63 | "no-multi-spaces": 1, 64 | "key-spacing": 0, 65 | "brace-style": 0, 66 | "no-unused-vars": 2, 67 | "no-shadow": 0, 68 | "no-undef": 1, 69 | "camelcase": 0, 70 | "comma-spacing": 1, 71 | "no-use-before-define": 0, 72 | 73 | // ANGULAR RULES 74 | "angular/controller-as": 0, 75 | "angular/typecheck-object": 0, 76 | "angular/timeout-service": 0, 77 | "angular/controller-as-vm": 0, 78 | "angular/controller-as-route": 0, 79 | "angular/controller-name": [1, "/[A-Z].*Controller|Ctrl$/"], //e.g HomeController or HomeCtrl 80 | "angular/on-watch": 0, 81 | "angular/di": 0 82 | }, 83 | 84 | "globals": { 85 | "document": true, 86 | "window": true, 87 | "before": true, 88 | "beforeEach": true, 89 | "inject": true, 90 | "$log": true, 91 | "_": true, 92 | "after": true, 93 | "afterEach": true, 94 | "angular": true, 95 | "require": true, 96 | "module": true, 97 | "define": true, 98 | "brackets": true, 99 | "jQuery": true, 100 | "$": true, 101 | "Mustache": true, 102 | "CallManager": true, 103 | "getEncodedServerAddr": true, 104 | "log4javascript": true, 105 | "console": true, 106 | "atmosphere": true, 107 | "jasmine": true, 108 | "exports": true, 109 | "describe": true, 110 | "browser": true, 111 | "it": true, 112 | "by": true, 113 | "waits": true, 114 | "expect": true, 115 | "runs": true, 116 | "element": true, 117 | "waitsFor": true, 118 | "it": false, 119 | "xit": false, 120 | "describe": false, 121 | "xdescribe": false, 122 | "beforeEach": false, 123 | "afterEach": false, 124 | "expect": false, 125 | "spyOn": false 126 | } 127 | 128 | } 129 | 130 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | .sass-cache/ 4 | npm-debug.log 5 | junit-report.xml 6 | tmp/ 7 | build/ 8 | public/ 9 | node_modules/ 10 | reports/ 11 | coverage/ 12 | vendor/ 13 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | 3 | module.exports = function (grunt) { 4 | 5 | /* 6 | * Load required Grunt tasks. These are installed based on the versions listed 7 | * in `package.json` when you do `npm install` in this directory. 8 | */ 9 | grunt.loadNpmTasks('grunt-contrib-clean'); 10 | grunt.loadNpmTasks('grunt-contrib-copy'); 11 | grunt.loadNpmTasks('grunt-contrib-concat'); 12 | grunt.loadNpmTasks('grunt-contrib-watch'); 13 | grunt.loadNpmTasks('grunt-contrib-uglify'); 14 | grunt.loadNpmTasks('grunt-ng-annotate'); 15 | grunt.loadNpmTasks('grunt-contrib-htmlmin'); 16 | grunt.loadNpmTasks('grunt-express'); 17 | grunt.loadNpmTasks('grunt-karma'); 18 | grunt.loadNpmTasks('grunt-html2js'); 19 | grunt.loadNpmTasks('grunt-run'); 20 | grunt.loadNpmTasks('grunt-newer'); 21 | grunt.loadNpmTasks('grunt-continue'); 22 | grunt.loadNpmTasks('grunt-eslint'); 23 | grunt.loadNpmTasks('grunt-sass'); 24 | 25 | /* 26 | * Load in our JavaScript Libraries 27 | */ 28 | var vendorConfig = require('./vendor.config.js'); 29 | 30 | /* 31 | * Load in our build configuration 32 | */ 33 | var userConfig = { 34 | /* 35 | * The `dev_build_dir` folder is where our projects are compiled during 36 | * development and the `prod_build_dir` folder is where our app resides once it's 37 | * completely built. 38 | */ 39 | dev_build_dir: 'public', 40 | prod_build_dir: 'production', 41 | 42 | /* 43 | * This is a collection of file patterns that refer to our app source code 44 | */ 45 | app_files: { 46 | js: ['src/app/**/*.js', '!src/app/**/*.spec.js', '!src/app/**/*.e2e.js', '!src/assets/**/*.js'], 47 | jsunit: ['src/app/**/*.spec.js'], 48 | e2e: ['src/app/**/*.e2e.js'], 49 | atpl: ['src/app/**/*.tpl.html'], 50 | html: ['src/index.html'], 51 | sass: 'src/styles/main.scss' 52 | }, 53 | 54 | /* 55 | * Configure the JavaScript vendor files 56 | */ 57 | vendor_files: vendorConfig 58 | 59 | }; 60 | 61 | /* 62 | * This is the configuration object Grunt uses to give each plugin its 63 | * instructions. 64 | */ 65 | var taskConfig = { 66 | /* 67 | * We read in our `package.json` file so we can access the package name and 68 | * version. It's already there, so we don't repeat ourselves here. 69 | */ 70 | pkg: grunt.file.readJSON('package.json'), 71 | 72 | /* 73 | * The banner is the comment that is placed at the top of our compiled 74 | * source files. It is first processed as a Grunt template, where the `<%=` 75 | * pairs are evaluated based on this very configuration object. 76 | */ 77 | meta: { 78 | banner: '/**\n' + 79 | ' * <%= pkg.name %> v<%= pkg.version %> <%= grunt.template.today("dd-mm-yyyy") %>\n' + 80 | ' * <%= pkg.homepage %>\n' + 81 | ' *\n' + 82 | ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + 83 | ' */\n' 84 | }, 85 | 86 | /* 87 | * The directories to delete when `grunt clean` is executed. 88 | */ 89 | clean: { 90 | build: { 91 | src: ['<%= dev_build_dir %>', 'reports/'], 92 | options: { 93 | force: true 94 | } 95 | }, 96 | compile: { 97 | src: ['<%= prod_build_dir %>'], 98 | options: { 99 | force: true 100 | } 101 | } 102 | }, 103 | 104 | /* 105 | * The `copy` task just copies files from A to B. We use it here to copy 106 | * our project assets (images, fonts, etc.) and Javascript files into 107 | * `dev_build_dir`, and then to copy the assets to `prod_build_dir`. 108 | */ 109 | copy: { 110 | build_module_assets: { 111 | files: [ 112 | { 113 | dest: '<%= dev_build_dir %>/assets/', 114 | src: ['src/app/**/assets/**/*.*'], 115 | cwd: '.', 116 | expand: true, 117 | flatten: true 118 | } 119 | ] 120 | }, 121 | 122 | build_app_assets: { 123 | files: [ 124 | { 125 | src: ['**'], 126 | dest: '<%= dev_build_dir %>/assets/', 127 | cwd: 'src/assets', 128 | expand: true 129 | } 130 | ] 131 | }, 132 | build_appjs: { 133 | files: [ 134 | { 135 | src: ['<%= app_files.js %>'], 136 | dest: '<%= dev_build_dir %>/', 137 | cwd: '.', 138 | expand: true 139 | } 140 | ] 141 | }, 142 | build_vendorjs: { 143 | files: [ 144 | { 145 | src: ['<%= vendor_files.js %>'], 146 | dest: '<%= dev_build_dir %>/', 147 | cwd: '.', 148 | expand: true 149 | } 150 | ] 151 | }, 152 | compile_assets: { 153 | files: [ 154 | { 155 | src: ['**'], 156 | dest: '<%= prod_build_dir %>/assets', 157 | cwd: '<%= dev_build_dir %>/assets', 158 | expand: true 159 | } 160 | ] 161 | } 162 | }, 163 | 164 | /* 165 | * `grunt concat` concatenates multiple source files into a single file. 166 | */ 167 | concat: { 168 | 169 | /* 170 | * The `build_css` target concatenates compiled CSS and vendor CSS 171 | * together. 172 | */ 173 | build_css: { 174 | src: [ 175 | '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css' 176 | ], 177 | dest: '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css' 178 | }, 179 | 180 | /* 181 | * The `compile_js` target is the concatenation of our application source 182 | * code and all specified vendor source code into a single file. 183 | */ 184 | compile_js: { 185 | 186 | options: { 187 | banner: '<%= meta.banner %>' 188 | }, 189 | 190 | /* 191 | * Wraps all javascript app code into a closure 192 | * to prevent polluting the global namespace 193 | */ 194 | src: [ 195 | '(function ( window, angular, undefined ) {', 196 | '<%= vendor_files.js %>', 197 | '<%= dev_build_dir %>/src/**/*.js', 198 | '<%= html2js.app.dest %>', 199 | '})( window, window.angular );' 200 | ], 201 | dest: '<%= prod_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.js' 202 | } 203 | }, 204 | 205 | /* 206 | * `ngAnnotate` annotates the sources before minifying. That is, it allows us 207 | * to code without the array syntax. 208 | */ 209 | ngAnnotate: { 210 | compile: { 211 | files: [ 212 | { 213 | src: ['<%= app_files.js %>'], 214 | cwd: '<%= dev_build_dir %>', 215 | dest: '<%= dev_build_dir %>', 216 | expand: true 217 | } 218 | ] 219 | } 220 | }, 221 | 222 | /* 223 | * Minify the sources! 224 | */ 225 | uglify: { 226 | compile: { 227 | files: { 228 | '<%= concat.compile_js.dest %>': '<%= concat.compile_js.dest %>' 229 | } 230 | } 231 | }, 232 | 233 | /* 234 | * This task handles our SASS compilation and uglification automatically. 235 | * Only our `main.scss` file is included in compilation. All other files 236 | * must be imported from this file. 237 | */ 238 | sass: { 239 | build: { 240 | options: { 241 | sourceMap: true, 242 | outputStyle: 'expanded' 243 | }, 244 | files: { 245 | '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>' 246 | } 247 | }, 248 | compile: { 249 | options: { 250 | sourceMap: false, 251 | outputStyle: 'compressed' 252 | }, 253 | files: { 254 | '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css': '<%= app_files.sass %>' 255 | } 256 | } 257 | }, 258 | 259 | /* 260 | * HTMLMIN is a Grunt plugin that takes all of your html template files and 261 | * and minifies them by removing comments, white spaces, etc. 262 | * This plugin is used in combination with the 'html2js' and it's called before 263 | * to minimise the html before is put in the AngularJS templateCache. 264 | */ 265 | htmlmin: { 266 | index: { // Selects only the main 'index.html' file 267 | options: { // Target options 268 | removeComments: true, // Strip HTML comments 269 | removeCommentsFromCDATA: true, // Strip HTML comments from scripts and styles 270 | minifyJS: true, // Minify JavaScript inside script tags 271 | collapseWhitespace: true // Remove white spaces 272 | }, 273 | files: { 274 | '<%= prod_build_dir %>/index.html': '<%= prod_build_dir %>/index.html' 275 | } 276 | } 277 | }, 278 | 279 | /* 280 | * HTML2JS is a Grunt plugin that takes all of your template files and 281 | * places them into JavaScript files as strings that are added to 282 | * AngularJS's template cache. This means that the templates too become 283 | * part of the initial payload as one JavaScript file. Neat! 284 | */ 285 | html2js: { 286 | /* 287 | * These are the templates from `src/app`. 288 | */ 289 | app: { 290 | options: { 291 | module: 'app.templates', 292 | quoteChar: '\'', 293 | fileHeaderString: '/* eslint-disable */', 294 | fileFooterString: '/* eslint-enable */', 295 | base: 'src/app' 296 | }, 297 | src: ['<%= app_files.atpl %>'], 298 | dest: '<%= dev_build_dir %>/app.templates.js' 299 | }, 300 | 301 | /* 302 | * These are the minified templates 303 | */ 304 | min: { 305 | options: { 306 | module: 'app.templates', 307 | quoteChar: '\'', 308 | fileHeaderString: '/* eslint-disable */', 309 | fileFooterString: '/* eslint-enable */', 310 | base: 'src/app', 311 | htmlmin: { 312 | collapseBooleanAttributes: true, 313 | collapseWhitespace: true, 314 | removeAttributeQuotes: true, 315 | removeComments: true, 316 | removeEmptyAttributes: true, 317 | removeRedundantAttributes: true, 318 | removeScriptTypeAttributes: true, 319 | removeStyleLinkTypeAttributes: true 320 | } 321 | }, 322 | src: ['<%= app_files.atpl %>'], 323 | dest: '<%= dev_build_dir %>/app.templates.js' 324 | } 325 | 326 | }, 327 | 328 | /* 329 | * The Karma configurations. 330 | */ 331 | karma: { 332 | options: { 333 | configFile: '<%= dev_build_dir %>/karma-unit.js' 334 | }, 335 | continuous: { 336 | singleRun: true 337 | } 338 | }, 339 | 340 | /* 341 | * This task compiles the karma template so that changes to its file array 342 | * don't have to be managed manually. 343 | */ 344 | karmaconfig: { 345 | unit: { 346 | dir: '<%= dev_build_dir %>', 347 | src: ['<%= vendor_files.js %>', '<%= html2js.app.dest %>'] 348 | } 349 | }, 350 | 351 | parseUnit: { 352 | all: { 353 | dir: '<%= dev_build_dir %>', 354 | src: ['<%= app_files.jsunit %>'] 355 | } 356 | }, 357 | 358 | parseE2E: { 359 | all: { 360 | dir: '<%= dev_build_dir %>', 361 | src: ['<%= app_files.e2e %>'] 362 | } 363 | }, 364 | 365 | /* 366 | * The `index` task compiles the `index.html` file as a Grunt template. CSS 367 | * and JS files co-exist here but they get split apart later. 368 | */ 369 | index: { 370 | 371 | /* 372 | * During development, we don't want to have wait for compilation, 373 | * concatenation, minification, etc. So to avoid these steps, we simply 374 | * add all script files directly to the `
` of `index.html`. The 375 | * `src` property contains the list of included files. 376 | */ 377 | build: { 378 | dir: '<%= dev_build_dir %>', 379 | src: [ 380 | '<%= vendor_files.js %>', 381 | '<%= dev_build_dir %>/src/**/*.js', 382 | '<%= html2js.app.dest %>', 383 | '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css' 384 | ] 385 | }, 386 | /* 387 | * When it is time to have a completely compiled application, we can 388 | * alter the above to include only a single JavaScript and a single CSS 389 | * file. Now we're back! 390 | */ 391 | compile: { 392 | dir: '<%= prod_build_dir %>', 393 | src: [ 394 | '<%= concat.compile_js.dest %>', 395 | '<%= dev_build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css' 396 | ] 397 | } 398 | }, 399 | 400 | /* 401 | * Configure Express server --port 9000 402 | */ 403 | express: { 404 | development: { 405 | options: { 406 | port: 9000, 407 | //hostname: 'localhost', 408 | serverreload: false, 409 | bases: '<%= dev_build_dir %>', 410 | livereload: true 411 | } 412 | }, 413 | production: { 414 | options: { 415 | port: 9000, 416 | serverreload: false, 417 | bases: '<%= prod_build_dir %>', 418 | livereload: false 419 | } 420 | } 421 | }, 422 | 423 | /* 424 | * This task allows Grunt to run external tools (e.g. nodejs, serve, etc) 425 | */ 426 | run: { 427 | public: { 428 | exec: 'serve --cors --port 31000 ' + '<%= dev_build_dir %>/' 429 | }, 430 | production: { 431 | exec: 'serve --cors --port 32000 ' + '<%= prod_build_dir %>/' 432 | }, 433 | reports: { 434 | exec: 'serve --port 22000 reports/coverage/lcov-report' 435 | }, 436 | protractor: { 437 | exec: 'protractor protractor.config.js' 438 | } 439 | }, 440 | 441 | eslint: { 442 | options: { 443 | configFile: '.eslintrc', 444 | 445 | /* Available formats: stylish, compact, checkstyle, junit, */ 446 | format: 'stylish' 447 | }, 448 | target: ['src/app/**/*.js', '!src/app/**/*.spec.js', '!src/app/**/*.e2e.js'] 449 | }, 450 | 451 | /* 452 | * And for rapid development, we have a watch set up that checks to see if 453 | * any of the files listed below change, and then to execute the listed 454 | * tasks when they do. This just saves us from having to type 'grunt' into 455 | * the command-line every time we want to see what we're working on; we can 456 | * instead just leave 'grunt watch' running in a background terminal. 457 | * 458 | * But we don't need the same thing to happen for all the files. 459 | */ 460 | delta: { 461 | /* 462 | * When our JavaScript source files change, we want to run lint them and 463 | * run our unit tests. 464 | */ 465 | jssrc: { 466 | files: ['<%= app_files.js %>'], 467 | /* 468 | * Changes are detected but unit tests are not run 469 | * this creates faster live reload sessions 470 | */ 471 | tasks: ['newer:eslint', 'newer:copy:build_appjs' ], 472 | options: { 473 | spawn: false, 474 | livereload: true 475 | } 476 | }, 477 | 478 | /* 479 | * When a JavaScript unit test file changes, we only want to lint it and 480 | * run the unit tests. We don't want to do any live reloading. 481 | */ 482 | jsunit: { 483 | files: [ 484 | '<%= app_files.jsunit %>' 485 | ], 486 | tasks: [ 'newer:eslint', 'karmaconfig:unit', 'karma:continuous'], 487 | options: { 488 | spawn: false, 489 | livereload: false 490 | } 491 | }, 492 | 493 | e2e: { 494 | files: ['<%= app_files.e2e %>'], 495 | tasks: ['newer:eslint', 'run:protractor'], 496 | options: { 497 | spawn: false, 498 | livereload: false 499 | } 500 | }, 501 | 502 | /* 503 | * When assets are changed, copy them. Note that this will *not* copy new 504 | * files, so this is probably not very useful. 505 | */ 506 | assets: { 507 | files: ['src/assets/**/*'], 508 | tasks: ['newer:copy:build_app_assets'], 509 | options: { 510 | spawn: false, 511 | livereload: true 512 | } 513 | }, 514 | 515 | /* 516 | * When index.html changes, we need to compile it. 517 | */ 518 | html: { 519 | files: ['<%= app_files.html %>'], 520 | tasks: ['index:build'], 521 | options: { 522 | spawn: false, 523 | livereload: true 524 | } 525 | }, 526 | 527 | /* 528 | * When our templates change, we only rewrite the template cache. 529 | */ 530 | tpls: { 531 | files: ['<%= app_files.atpl %>'], 532 | tasks: [ 'html2js:app' ], 533 | options: { 534 | spawn: false, 535 | livereload: true 536 | } 537 | }, 538 | 539 | /* 540 | * When any SASS or CSS changes, we need to compile them. 541 | */ 542 | sass: { 543 | files: ['src/**/*.scss'], 544 | tasks: ['sass:build'], 545 | options: { 546 | spawn: false, 547 | livereload: true 548 | } 549 | } 550 | 551 | } 552 | 553 | }; 554 | 555 | /* 556 | * Track how long each task takes to run, used to optimize 557 | * grunt build times 558 | */ 559 | require('time-grunt')(grunt); 560 | 561 | /* 562 | * Use this function to catch events when watch is called: 563 | * 564 | * grunt.event.on('watch', function(action, filepath) { 565 | * grunt.log.write('message to console'); 566 | * }); 567 | */ 568 | 569 | grunt.initConfig(grunt.util._.extend(taskConfig, userConfig)); 570 | 571 | /* 572 | * In order to make it safe to just compile or copy *only* what was changed, 573 | * we need to ensure we are starting from a clean, fresh build. So we rename 574 | * the `watch` task to `delta` (that's why the configuration var above is 575 | * `delta`) and then add a new task called `watch` that does a clean build 576 | * before watching for changes. 577 | */ 578 | grunt.renameTask('watch', 'delta'); 579 | grunt.registerTask('watch', ['development', 'express:development', 'delta']); 580 | 581 | /* 582 | * Register our own grunt tasks. The default task is the development build 583 | */ 584 | grunt.registerTask('default', ['development']); 585 | grunt.registerTask('deploy', ['production', 'copy:deploy']); 586 | 587 | /* 588 | * The `build` task gets your app ready to run for development and testing. 589 | */ 590 | grunt.registerTask('development', [ 591 | 'clean:build', 592 | 'html2js:app', 593 | 'eslint', 594 | 'sass:build', 595 | 'concat:build_css', 596 | 'copy:build_app_assets', 'copy:build_module_assets', 597 | 'copy:build_appjs', 598 | 'copy:build_vendorjs', 'index:build' 599 | ]); 600 | 601 | /* 602 | * Run E2E tests 603 | */ 604 | grunt.registerTask('run:e2e', [ 605 | 'express:development', 606 | 'run:protractor' 607 | ]); 608 | 609 | /* 610 | * Run unit tests 611 | */ 612 | grunt.registerTask('run:unit', [ 613 | 'karmaconfig', 614 | 'karma:continuous' 615 | ]); 616 | 617 | /* 618 | * Creates and runs code coverage reports. 619 | */ 620 | grunt.registerTask('reports', [ 621 | 'run:unit', 622 | 'run:reports' 623 | ]); 624 | 625 | /* 626 | * This task runs code checks (ESLint), Unit Tests and E2E tests. 627 | * It produces reports on code coverage and unit test results. 628 | * Reports are stored in a 'reports' folder. 629 | */ 630 | grunt.registerTask('test', [ 631 | 'clean:build', 632 | 'eslint', 633 | 'html2js:app', 634 | 'sass:build', 635 | 'concat:build_css', 636 | 'copy:build_app_assets', 'copy:build_module_assets', 637 | 'copy:build_appjs', 'copy:build_vendorjs', 'index:build', 638 | 'run:unit', 639 | 'run:e2e' 640 | ]); 641 | 642 | /* 643 | * The `production` task gets your app ready for deployment by concatenating and 644 | * minifying your code. 645 | */ 646 | grunt.registerTask('production', [ 647 | 'clean:build', 648 | 'clean:compile', 649 | 'html2js:min', 650 | 'test', 651 | 'sass:compile', 652 | 'concat:build_css', 653 | 'copy:build_app_assets', 654 | 'copy:build_module_assets', 655 | 'copy:build_appjs', 656 | 'copy:build_vendorjs', 657 | 'index:build', 658 | 'copy:compile_assets', 659 | 'ngAnnotate', 660 | 'concat:compile_js', 661 | 'uglify', 662 | 'index:compile', 663 | 'htmlmin:index' 664 | ]); 665 | 666 | /* 667 | * A utility function to get all app JavaScript sources. 668 | */ 669 | function filterForJS(files) { 670 | return files.filter(function (file) { 671 | return file.match(/\.js$/); 672 | }); 673 | } 674 | 675 | /* 676 | * A utility function to get all app CSS sources. 677 | */ 678 | function filterForCSS(files) { 679 | return files.filter(function (file) { 680 | return file.match(/\.css$/); 681 | }); 682 | } 683 | 684 | /* 685 | * A utility function to get all app unit tests 686 | */ 687 | function filterForSpecFiles(files) { 688 | return files.filter(function (file) { 689 | return file.match(/\.spec.js$/); 690 | }); 691 | } 692 | 693 | /* 694 | * A utility function to get all app unit tests 695 | */ 696 | function filterForE2EFiles(files) { 697 | return files.filter(function (file) { 698 | return file.match(/\.e2e.js$/); 699 | }); 700 | } 701 | 702 | /* 703 | * The index.html template includes the stylesheet and javascript sources 704 | * based on dynamic names calculated in this Gruntfile. This task assembles 705 | * the list into variables for the template to use and then runs the 706 | * compilation. 707 | */ 708 | grunt.registerMultiTask('index', 'Process index.html template', function () { 709 | var dirRE = new RegExp('^(' + grunt.config('dev_build_dir') + '|' + grunt.config('prod_build_dir') + ')\/', 'g'); 710 | 711 | var jsFiles = filterForJS(this.filesSrc).map(function (file) { 712 | return file.replace(dirRE, ''); 713 | }); 714 | 715 | var cssFiles = filterForCSS(this.filesSrc).map(function (file) { 716 | return file.replace(dirRE, ''); 717 | }); 718 | 719 | grunt.file.copy('src/index.html', this.data.dir + '/index.html', { 720 | process: function (contents, path) { 721 | return grunt.template.process(contents, { 722 | data: { 723 | scripts: jsFiles, 724 | styles: cssFiles, 725 | version: grunt.config('pkg.version'), 726 | author: grunt.config('pkg.author'), 727 | date: grunt.template.today("yyyy") 728 | } 729 | }); 730 | } 731 | }); 732 | }); 733 | 734 | /* 735 | * In order to avoid having to specify manually the files needed for karma to 736 | * run, we use grunt to manage the list for us. The `karma/*` files are 737 | * compiled as grunt templates for use by Karma. Yay! 738 | */ 739 | grunt.registerMultiTask('karmaconfig', 'Process karma config templates', function () { 740 | var scripts = filterForJS(this.filesSrc); 741 | 742 | grunt.file.copy('karma/karma-unit.tpl.js', grunt.config('dev_build_dir') + '/karma-unit.js', { 743 | process: function (contents, path) { 744 | return grunt.template.process(contents, { 745 | data: { 746 | scripts: scripts 747 | } 748 | }); 749 | } 750 | }); 751 | 752 | }); 753 | 754 | grunt.registerMultiTask('parseUnit', 'Parse unit test files', function () { 755 | var jsFiles = filterForSpecFiles(this.filesSrc); 756 | 757 | grunt.log.writeln('Unit test files:'); 758 | grunt.log.writeln(JSON.stringify(jsFiles)); 759 | }); 760 | 761 | grunt.registerMultiTask('parseE2E', 'Parse E2E test file', function () { 762 | var jsFiles = filterForE2EFiles(this.filesSrc); 763 | 764 | grunt.log.writeln('E2E test files:'); 765 | grunt.log.writeln(JSON.stringify(jsFiles)); 766 | }); 767 | 768 | }; 769 | /* eslint-enable */ 770 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Cathal Mac Donnacha 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # angularjs-foundation-boilerplate 2 | A simple and well structured boilerplate project based on AngularJS and Zurb's Foundation 3 | 4 | ## Features 5 | * Responsive layout 6 | * Mobile ready 7 | * SASS support 8 | * Grunt watch, build and local server tasks 9 | * Live reload 10 | * Organised folder structure 11 | * Minified CSS, HTML and JS build files 12 | * [Font Awesome](http://fortawesome.github.io/Font-Awesome/icons/) icons 13 | * Support for Unit & E2E Testing 14 | * Unit Test reporting 15 | * ESLint to detect incorrect coding patterns. 16 | * [Jasmine](http://jasmine.github.io/2.3/introduction.html) testing framework 17 | * [Karma](http://karma-runner.github.io/0.13/index.html) test runner 18 | * [Protractor](https://angular.github.io/protractor/#/) end-to-end test framework 19 | 20 | ## Live Demo 21 | [Check out the live demo](http://cmacdonnacha.github.io/angularjs-foundation-boilerplate/) 22 | 23 | ## Setup 24 | 1. Install [Git](https://git-scm.com/downloads) and [NodeJS](http://nodejs.org/) 25 | 2. Install Grunt and Bower globally: `npm install -g grunt-cli bower` 26 | 3. Install Karma globally: `npm install -g karma` 27 | 4. Install PhantomJS headless browser globally: `npm install -g phantomjs` 28 | 5. Install Protractor globally: `npm install -g protractor` 29 | 6. Install Selenium web driver binaries by running: `webdriver-manager update` (installs the Chrome driver by default) 30 | 7. Install a local Http server: `npm install -g serve` (for local web testing) 31 | 32 | **NOTE:** If you have previous versions of any of the above packages, it's recommended that you update them: `npm update -g` 33 | 34 | ## Install Project Dependencies 35 | 1. `git clone https://github.com/cmacdonnacha/angularjs-foundation-boilerplate.git myApp` 36 | 2. `cd myApp` 37 | 3. `npm install` - this installs both the required NodeJS modules and the bower component libraries. 38 | 39 | **IMPORTANT:** If you run into any issues please have a look at the **"Troubleshooting"** section at the bottom of this page. 40 | 41 | ## Quick Usage 42 | * `grunt watch` : Creates a development build folder called 'public' and serves it on: [`http://localhost:9000/`](http://localhost:9000/) 43 | * `grunt test` : Runs code checks, unit tests and E2E tests 44 | * `grunt run:unit` : Runs unit tests only 45 | * `grunt run:e2e` : Runs E2E tests only 46 | * `grunt production` : Creates a production build in a folder called **'production'** 47 | * `grunt run:production` : Serves the **'production'** build on: [`http://localhost:9000/`](http://localhost:9000/) if it exists. 48 | * `grunt eslint` : Runs an ESLint code check 49 | 50 | ## Running unit test reports 51 | 1. `grunt reports`: will create and serve the **'reports'** folder 52 | 2. Navigate to [`http://localhost:22000/`](http://localhost:22000/) 53 | 54 | ## Project Structure 55 | This project follows a **"Folders-by-Feature"** structure very similar to [John Papa's Styleguide](https://github.com/johnpapa/angular-styleguide#application-structure). From the folder structure below you can see that there are 6 separate components, a folder for each one. 56 | Each component is treated as a mini Angular app. This structure allows us developers to easily locate code and identify what each file represents at a glance. 57 | By retaining this structure the project is much more manageable as it grows. 58 | 59 |  60 | 61 | * The `app` folder contains the individual components: 62 | * `about`: Contains the about page related files. 63 | * `common`: Contains all common services, directives etc. used across the entire app. 64 | * `home`: Contains the home page related files. 65 | * `layout`: Acts as a container for other layout components (about, home, topbar etc.) 66 | * `sample`: A template component that can be duplicated whenever you want to create your own component (Copy and paste). 67 | * `topbar`: Contains the topbar related files. 68 | 69 | 70 | * Each component has its own sub-folder containing files associated with that component: 71 | * assets 72 | * controllers 73 | * directives 74 | * e2e tests 75 | * services 76 | * styles 77 | * unit tests 78 | * views 79 | 80 | **Note:** Not every component will contain all of these sub-folders, just add them as you need them. 81 | * The `assets` folder contains the globally used fonts and images. 82 | * The `styles` folder contains all of the global sass files needed to style the app. Let's have a closer look at each file: 83 | 84 | * `_font-awesome.scss`: Contains all of the font awesome icons taken from the `vendor/font-awesome` folder. Check [this](http://fortawesome.github.io/Font-Awesome/icons/) out to see all available icons. 85 | * `_mixins.scss`: This is where you can put your very own Sass Mixins that can be used globally throughout the app. This should only contain Mixins. 86 | * `_settings.scss`: Allows you to override the default Foundation styles with your own. This is detailed in a section below. 87 | * `_shared.scss`: This is where you can put your very own Sass that can be used globally throughout the app. Typically it's where you would add globally used Sass classes which would then use mixins from the `_mixins.scss` file. 88 | * `main.scss`: Brings everything together. Contains all of the Sass file imports. It's what tells the app where to grab the styles from. 89 | 90 | #### Adding a new component 91 | As you can see in this boilerpate project we have 6 sample components: `about`, `common`, `home`, `layout`, `sample` and `topbar`. Check out the [wiki](https://github.com/cmacdonnacha/angularjs-foundation-boilerplate/wiki/How-to-add-a-new-component) to see how you can go about adding your very own component. 92 | 93 | ## Making Foundation Styles your own 94 | Foundation is great because it comes with basic styling, leaving it up to you to give it your very own touch. You can do this by changing the `_settings.scss` file inside the `styles` folder: 95 | 96 |  97 | 98 | Simply uncomment any of the sections in the `_settings.scss` file and you will override the default Foundation styling. Don't like the color of the topbar? No problem, change to a nice bright pink instead. Find out more [here.](http://foundation.zurb.com/docs/using-sass.html) 99 | 100 | ## Troubleshooting 101 | Even crème de menthe projects have their issues. Here are some problems you may face along with some suggestions on how to resolve them: 102 | 103 | #### 1. Issue: I'm getting the following error when running `npm install`: ***"Error: EPERM or operation not permitted or permission denied"*** 104 | This error means that NPM was not able to install one of the node modules to the file system. There are three major reasons why this could happen: 105 | 106 | * You don't have write access to the installation directory. 107 | * The permissions in the NPM cache got messed up. 108 | * You have over-zealous anti-virus software installed, and it's blocking file system writes. 109 | 110 | **Suggestion:** 111 | 112 | 1. Run `npm cache clean`. 113 | 2. Run `npm install` again. 114 | 115 | #### 2. Issue: I'm getting the following error when running `npm install`: ***"Error: Can't find Python executable 'python', you can set the PYTHON env variable."*** 116 | **Suggestion:** This error can be ignored (it's a warning really) as the node modules will install successfully anyway. The reason this error appears is because 117 | some node modules have dependencies on a clunky build tool called `node-gyp` that compiles C++ extensions for NodeJS, and it requires python. Long story short, 118 | if you don't have Python installed on your machine you will see these errors but it's nothing to worry about. 119 | 120 | #### 3. Issue: I'm getting an error when running the `grunt production` task. 121 | **Suggestion:** Make sure you have administrator permissions to delete folders from the directory. If you're still seeing the issue then manually delete the `production` folder and run `grunt production` again. 122 |Navigating between pages is really easy thanks to ui-router.
6 |{{homepageMessage}}
6 | tags
261 | // $code-color: $oil;
262 | // $code-font-family: $font-family-monospace;
263 | // $code-font-weight: $font-weight-normal;
264 | // $code-background-color: scale-color($secondary-color, $lightness: 70%);
265 | // $code-border-size: 1px;
266 | // $code-border-style: solid;
267 | // $code-border-color: scale-color($code-background-color, $lightness: -10%);
268 | // $code-padding: rem-calc(2) rem-calc(5) rem-calc(1);
269 |
270 | // We use these to style anchors
271 | // $anchor-text-decoration: none;
272 | // $anchor-text-decoration-hover: none;
273 | // $anchor-font-color: $primary-color;
274 | // $anchor-font-color-hover: scale-color($anchor-font-color, $lightness: -14%);
275 |
276 | // We use these to style the
element
277 | // $hr-border-width: 1px;
278 | // $hr-border-style: solid;
279 | // $hr-border-color: $gainsboro;
280 | // $hr-margin: rem-calc(20);
281 |
282 | // We use these to style lists
283 | // $list-font-family: $paragraph-font-family;
284 | // $list-font-size: $paragraph-font-size;
285 | // $list-line-height: $paragraph-line-height;
286 | // $list-margin-bottom: $paragraph-margin-bottom;
287 | // $list-style-position: outside;
288 | // $list-side-margin: 1.1rem;
289 | // $list-ordered-side-margin: 1.4rem;
290 | // $list-side-margin-no-bullet: 0;
291 | // $list-nested-margin: rem-calc(20);
292 | // $definition-list-header-weight: $font-weight-bold;
293 | // $definition-list-header-margin-bottom: .3rem;
294 | // $definition-list-margin-bottom: rem-calc(12);
295 |
296 | // We use these to style blockquotes
297 | // $blockquote-font-color: scale-color($header-font-color, $lightness: 35%);
298 | // $blockquote-padding: rem-calc(9 20 0 19);
299 | // $blockquote-border: 1px solid $gainsboro;
300 | // $blockquote-cite-font-size: rem-calc(13);
301 | // $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%);
302 | // $blockquote-cite-link-color: $blockquote-cite-font-color;
303 |
304 | // Acronym styles
305 | // $acronym-underline: 1px dotted $gainsboro;
306 |
307 | // We use these to control padding and margin
308 | // $microformat-padding: rem-calc(10 12);
309 | // $microformat-margin: rem-calc(0 0 20 0);
310 |
311 | // We use these to control the border styles
312 | // $microformat-border-width: 1px;
313 | // $microformat-border-style: solid;
314 | // $microformat-border-color: $gainsboro;
315 |
316 | // We use these to control full name font styles
317 | // $microformat-fullname-font-weight: $font-weight-bold;
318 | // $microformat-fullname-font-size: rem-calc(15);
319 |
320 | // We use this to control the summary font styles
321 | // $microformat-summary-font-weight: $font-weight-bold;
322 |
323 | // We use this to control abbr padding
324 | // $microformat-abbr-padding: rem-calc(0 1);
325 |
326 | // We use this to control abbr font styles
327 | // $microformat-abbr-font-weight: $font-weight-bold;
328 | // $microformat-abbr-font-decoration: none;
329 |
330 | // 01. Accordion
331 | // - - - - - - - - - - - - - - - - - - - - - - - - -
332 |
333 | // $include-html-accordion-classes: $include-html-classes;
334 |
335 | // $accordion-navigation-padding: rem-calc(16);
336 | // $accordion-navigation-bg-color: $silver;
337 | // $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
338 | // $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
339 | // $accordion-navigation-active-font-color: $jet;
340 | // $accordion-navigation-font-color: $jet;
341 | // $accordion-navigation-font-size: rem-calc(16);
342 | // $accordion-navigation-font-family: $body-font-family;
343 |
344 | // $accordion-content-padding: ($column-gutter/2);
345 | // $accordion-content-active-bg-color: $white;
346 |
347 | // 02. Alert Boxes
348 | // - - - - - - - - - - - - - - - - - - - - - - - - -
349 |
350 | // $include-html-alert-classes: $include-html-classes;
351 |
352 | // We use this to control alert padding.
353 | // $alert-padding-top: rem-calc(14);
354 | // $alert-padding-default-float: $alert-padding-top;
355 | // $alert-padding-opposite-direction: $alert-padding-top + rem-calc(10);
356 | // $alert-padding-bottom: $alert-padding-top;
357 |
358 | // We use these to control text style.
359 | // $alert-font-weight: $font-weight-normal;
360 | // $alert-font-size: rem-calc(13);
361 | // $alert-font-color: $white;
362 | // $alert-font-color-alt: scale-color($secondary-color, $lightness: -66%);
363 |
364 | // We use this for close hover effect.
365 | // $alert-function-factor: -14%;
366 |
367 | // We use these to control border styles.
368 | // $alert-border-style: solid;
369 | // $alert-border-width: 1px;
370 | // $alert-border-color: scale-color($primary-color, $lightness: $alert-function-factor);
371 | // $alert-bottom-margin: rem-calc(20);
372 |
373 | // We use these to style the close buttons
374 | // $alert-close-color: $oil;
375 | // $alert-close-top: 50%;
376 | // $alert-close-position: rem-calc(4);
377 | // $alert-close-font-size: rem-calc(22);
378 | // $alert-close-opacity: .3;
379 | // $alert-close-opacity-hover: .5;
380 | // $alert-close-padding: 9px 6px 4px;
381 | // $alert-close-background: inherit;
382 |
383 | // We use this to control border radius
384 | // $alert-radius: $global-radius;
385 |
386 | // $alert-transition-speed: 300ms;
387 | // $alert-transition-ease: ease-out;
388 |
389 | // 03. Block Grid
390 | // - - - - - - - - - - - - - - - - - - - - - - - - -
391 |
392 | // $include-html-block-grid-classes: $include-html-classes;
393 | // $include-xl-html-block-grid-classes: false;
394 |
395 | // We use this to control the maximum number of block grid elements per row
396 | // $block-grid-elements: 12;
397 | // $block-grid-default-spacing: rem-calc(20);
398 |
399 | // $align-block-grid-to-grid: false;
400 | // @if $align-block-grid-to-grid {$block-grid-default-spacing: $column-gutter;}
401 |
402 | // Enables media queries for block-grid classes. Set to false if writing semantic HTML.
403 | // $block-grid-media-queries: true;
404 |
405 | // 04. Breadcrumbs
406 | // - - - - - - - - - - - - - - - - - - - - - - - - -
407 |
408 | // $include-html-nav-classes: $include-html-classes;
409 |
410 | // We use this to set the background color for the breadcrumb container.
411 | // $crumb-bg: scale-color($secondary-color, $lightness: 55%);
412 |
413 | // We use these to set the padding around the breadcrumbs.
414 | // $crumb-padding: rem-calc(9 14 9);
415 | // $crumb-side-padding: rem-calc(12);
416 |
417 | // We use these to control border styles.
418 | // $crumb-function-factor: -10%;
419 | // $crumb-border-size: 1px;
420 | // $crumb-border-style: solid;
421 | // $crumb-border-color: scale-color($crumb-bg, $lightness: $crumb-function-factor);
422 | // $crumb-radius: $global-radius;
423 |
424 | // We use these to set various text styles for breadcrumbs.
425 | // $crumb-font-size: rem-calc(11);
426 | // $crumb-font-color: $primary-color;
427 | // $crumb-font-color-current: $oil;
428 | // $crumb-font-color-unavailable: $aluminum;
429 | // $crumb-font-transform: uppercase;
430 | // $crumb-link-decor: underline;
431 |
432 | // We use these to control the slash between breadcrumbs
433 | // $crumb-slash-color: $base;
434 | // $crumb-slash: "/";
435 | // $crumb-slash-position: 1px;
436 |
437 | // 05. Buttons
438 | // - - - - - - - - - - - - - - - - - - - - - - - - -
439 |
440 | // $include-html-button-classes: $include-html-classes;
441 |
442 | // We use these to build padding for buttons.
443 | // $button-tny: rem-calc(10);
444 | // $button-sml: rem-calc(14);
445 | // $button-med: rem-calc(16);
446 | // $button-lrg: rem-calc(18);
447 |
448 | // We use this to control the display property.
449 | // $button-display: inline-block;
450 | // $button-margin-bottom: rem-calc(20);
451 |
452 | // We use these to control button text styles.
453 | // $button-font-family: $body-font-family;
454 | // $button-font-color: $white;
455 | // $button-font-color-alt: $oil;
456 | // $button-font-tny: rem-calc(11);
457 | // $button-font-sml: rem-calc(13);
458 | // $button-font-med: rem-calc(16);
459 | // $button-font-lrg: rem-calc(20);
460 | // $button-font-weight: $font-weight-normal;
461 | // $button-font-align: center;
462 |
463 | // We use these to control various hover effects.
464 | // $button-function-factor: -20%;
465 |
466 | // We use these to control button border styles.
467 | // $button-border-width: 0;
468 | // $button-border-style: solid;
469 | // $button-bg-color: $primary-color;
470 | // $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor);
471 | // $button-border-color: $button-bg-hover;
472 | // $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor);
473 | // $secondary-button-border-color: $secondary-button-bg-hover;
474 | // $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor);
475 | // $success-button-border-color: $success-button-bg-hover;
476 | // $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor);
477 | // $alert-button-border-color: $alert-button-bg-hover;
478 | // $warning-button-bg-hover: scale-color($warning-color, $lightness: $button-function-factor);
479 | // $warning-button-border-color: $warning-button-bg-hover;
480 | // $info-button-bg-hover: scale-color($info-color, $lightness: $button-function-factor);
481 | // $info-button-border-color: $info-button-bg-hover;
482 |
483 | // We use this to set the default radius used throughout the core.
484 | // $button-radius: $global-radius;
485 | // $button-round: $global-rounded;
486 |
487 | // We use this to set default opacity and cursor for disabled buttons.
488 | // $button-disabled-opacity: .7;
489 | // $button-disabled-cursor: $cursor-default-value;
490 |
491 | // 06. Button Groups
492 | // - - - - - - - - - - - - - - - - - - - - - - - - -
493 |
494 | // $include-html-button-classes: $include-html-classes;
495 |
496 | // Sets the margin for the right side by default, and the left margin if right-to-left direction is used
497 | // $button-bar-margin-opposite: rem-calc(10);
498 | // $button-group-border-width: 1px;
499 |
500 | // 07. Clearing
501 | // - - - - - - - - - - - - - - - - - - - - - - - - -
502 |
503 | // $include-html-clearing-classes: $include-html-classes;
504 |
505 | // We use these to set the background colors for parts of Clearing.
506 | // $clearing-bg: $oil;
507 | // $clearing-caption-bg: $clearing-bg;
508 | // $clearing-carousel-bg: rgba(51,51,51,0.8);
509 | // $clearing-img-bg: $clearing-bg;
510 |
511 | // We use these to style the close button
512 | // $clearing-close-color: $iron;
513 | // $clearing-close-size: 30px;
514 |
515 | // We use these to style the arrows
516 | // $clearing-arrow-size: 12px;
517 | // $clearing-arrow-color: $clearing-close-color;
518 |
519 | // We use these to style captions
520 | // $clearing-caption-font-color: $iron;
521 | // $clearing-caption-font-size: .875em;
522 | // $clearing-caption-padding: 10px 30px 20px;
523 |
524 | // We use these to make the image and carousel height and style
525 | // $clearing-active-img-height: 85%;
526 | // $clearing-carousel-height: 120px;
527 | // $clearing-carousel-thumb-width: 120px;
528 | // $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255);
529 |
530 | // 08. Dropdown
531 | // - - - - - - - - - - - - - - - - - - - - - - - - -
532 |
533 | // $include-html-dropdown-classes: $include-html-classes;
534 |
535 | // We use these to controls height and width styles.
536 | // $f-dropdown-max-width: 200px;
537 | // $f-dropdown-height: auto;
538 | // $f-dropdown-max-height: none;
539 |
540 | // Used for bottom position
541 | // $f-dropdown-margin-top: 2px;
542 |
543 | // Used for right position
544 | // $f-dropdown-margin-left: $f-dropdown-margin-top;
545 |
546 | // Used for left position
547 | // $f-dropdown-margin-right: $f-dropdown-margin-top;
548 |
549 | // Used for top position
550 | // $f-dropdown-margin-bottom: $f-dropdown-margin-top;
551 |
552 | // We use this to control the background color
553 | // $f-dropdown-bg: $white;
554 |
555 | // We use this to set the border styles for dropdowns.
556 | // $f-dropdown-border-style: solid;
557 | // $f-dropdown-border-width: 1px;
558 | // $f-dropdown-border-color: scale-color($white, $lightness: -20%);
559 |
560 | // We use these to style the triangle pip.
561 | // $f-dropdown-triangle-size: 6px;
562 | // $f-dropdown-triangle-color: $white;
563 | // $f-dropdown-triangle-side-offset: 10px;
564 |
565 | // We use these to control styles for the list elements.
566 | // $f-dropdown-list-style: none;
567 | // $f-dropdown-font-color: $charcoal;
568 | // $f-dropdown-font-size: rem-calc(14);
569 | // $f-dropdown-list-padding: rem-calc(5, 10);
570 | // $f-dropdown-line-height: rem-calc(18);
571 | // $f-dropdown-list-hover-bg: $smoke;
572 | // $dropdown-mobile-default-float: 0;
573 |
574 | // We use this to control the styles for when the dropdown has custom content.
575 | // $f-dropdown-content-padding: rem-calc(20);
576 |
577 | // Default radius for dropdown.
578 | // $f-dropdown-radius: $global-radius;
579 |
580 |
581 | // 09. Dropdown Buttons
582 | // - - - - - - - - - - - - - - - - - - - - - - - - -
583 |
584 | // $include-html-button-classes: $include-html-classes;
585 |
586 | // We use these to set the color of the pip in dropdown buttons
587 | // $dropdown-button-pip-color: $white;
588 | // $dropdown-button-pip-color-alt: $oil;
589 |
590 | // We use these to set the size of the pip in dropdown buttons
591 | // $button-pip-tny: rem-calc(6);
592 | // $button-pip-sml: rem-calc(7);
593 | // $button-pip-med: rem-calc(9);
594 | // $button-pip-lrg: rem-calc(11);
595 |
596 | // We use these to style tiny dropdown buttons
597 | // $dropdown-button-padding-tny: $button-pip-tny * 7;
598 | // $dropdown-button-pip-size-tny: $button-pip-tny;
599 | // $dropdown-button-pip-opposite-tny: $button-pip-tny * 3;
600 | // $dropdown-button-pip-top-tny: (-$button-pip-tny / 2) + rem-calc(1);
601 |
602 | // We use these to style small dropdown buttons
603 | // $dropdown-button-padding-sml: $button-pip-sml * 7;
604 | // $dropdown-button-pip-size-sml: $button-pip-sml;
605 | // $dropdown-button-pip-opposite-sml: $button-pip-sml * 3;
606 | // $dropdown-button-pip-top-sml: (-$button-pip-sml / 2) + rem-calc(1);
607 |
608 | // We use these to style medium dropdown buttons
609 | // $dropdown-button-padding-med: $button-pip-med * 6 + rem-calc(3);
610 | // $dropdown-button-pip-size-med: $button-pip-med - rem-calc(3);
611 | // $dropdown-button-pip-opposite-med: $button-pip-med * 2.5;
612 | // $dropdown-button-pip-top-med: (-$button-pip-med / 2) + rem-calc(2);
613 |
614 | // We use these to style large dropdown buttons
615 | // $dropdown-button-padding-lrg: $button-pip-lrg * 5 + rem-calc(3);
616 | // $dropdown-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
617 | // $dropdown-button-pip-opposite-lrg: $button-pip-lrg * 2.5;
618 | // $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3);
619 |
620 | // 10. Flex Video
621 | // - - - - - - - - - - - - - - - - - - - - - - - - -
622 |
623 | // $include-html-media-classes: $include-html-classes;
624 |
625 | // We use these to control video container padding and margins
626 | // $flex-video-padding-top: rem-calc(25);
627 | // $flex-video-padding-bottom: 67.5%;
628 | // $flex-video-margin-bottom: rem-calc(16);
629 |
630 | // We use this to control widescreen bottom padding
631 | // $flex-video-widescreen-padding-bottom: 56.34%;
632 |
633 | // 11. Forms
634 | // - - - - - - - - - - - - - - - - - - - - - - - - -
635 |
636 | // $include-html-form-classes: $include-html-classes;
637 |
638 | // We use this to set the base for lots of form spacing and positioning styles
639 | // $form-spacing: rem-calc(16);
640 |
641 | // We use these to style the labels in different ways
642 | // $form-label-pointer: pointer;
643 | // $form-label-font-size: rem-calc(14);
644 | // $form-label-font-weight: $font-weight-normal;
645 | // $form-label-line-height: 1.5;
646 | // $form-label-font-color: scale-color($black, $lightness: 30%);
647 | // $form-label-small-transform: capitalize;
648 | // $form-label-bottom-margin: 0;
649 | // $input-font-family: inherit;
650 | // $input-font-color: rgba(0,0,0,0.75);
651 | // $input-font-size: rem-calc(14);
652 | // $input-placeholder-font-color: #cccccc;
653 | // $input-bg-color: $white;
654 | // $input-focus-bg-color: scale-color($white, $lightness: -2%);
655 | // $input-border-color: scale-color($white, $lightness: -20%);
656 | // $input-focus-border-color: scale-color($white, $lightness: -40%);
657 | // $input-border-style: solid;
658 | // $input-border-width: 1px;
659 | // $input-border-radius: $global-radius;
660 | // $input-disabled-bg: $gainsboro;
661 | // $input-disabled-cursor: $cursor-default-value;
662 | // $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
663 | // $input-include-glowing-effect: false;
664 |
665 | // We use these to style the fieldset border and spacing.
666 | // $fieldset-border-style: solid;
667 | // $fieldset-border-width: 1px;
668 | // $fieldset-border-color: $gainsboro;
669 | // $fieldset-padding: rem-calc(20);
670 | // $fieldset-margin: rem-calc(18 0);
671 |
672 | // We use these to style the legends when you use them
673 | // $legend-bg: $white;
674 | // $legend-font-weight: $font-weight-bold;
675 | // $legend-padding: rem-calc(0 3);
676 |
677 | // We use these to style the prefix and postfix input elements
678 | // $input-prefix-bg: scale-color($white, $lightness: -5%);
679 | // $input-prefix-border-color: scale-color($white, $lightness: -20%);
680 | // $input-prefix-border-size: 1px;
681 | // $input-prefix-border-type: solid;
682 | // $input-prefix-overflow: hidden;
683 | // $input-prefix-font-color: $oil;
684 | // $input-prefix-font-color-alt: $white;
685 |
686 | // We use this setting to turn on/off HTML5 number spinners (the up/down arrows)
687 | // $input-number-spinners: true;
688 |
689 | // We use these to style the error states for inputs and labels
690 | // $input-error-message-padding: rem-calc(6 9 9);
691 | // $input-error-message-top: -1px;
692 | // $input-error-message-font-size: rem-calc(12);
693 | // $input-error-message-font-weight: $font-weight-normal;
694 | // $input-error-message-font-style: italic;
695 | // $input-error-message-font-color: $white;
696 | // $input-error-message-bg-color: $alert-color;
697 | // $input-error-message-font-color-alt: $oil;
698 |
699 | // We use this to style the glowing effect of inputs when focused
700 | // $glowing-effect-fade-time: .45s;
701 | // $glowing-effect-color: $input-focus-border-color;
702 |
703 | // We use this to style the transition when inputs are focused and when the glowing effect is disabled.
704 | // $input-transition-fade-time: 0.15s;
705 | // $input-transition-fade-timing-function: linear;
706 |
707 | // Select variables
708 | // $select-bg-color: $ghost;
709 | // $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%);
710 |
711 |
712 | // 12. Icon Bar
713 | // - - - - - - - - - - - - - - - - - - - - - - - - -
714 |
715 | // We use these to style the icon-bar and items
716 | // $icon-bar-bg: $oil;
717 | // $icon-bar-font-color: $white;
718 | // $icon-bar-font-color-hover: $icon-bar-font-color;
719 | // $icon-bar-font-size: 1rem;
720 | // $icon-bar-hover-color: $primary-color;
721 | // $icon-bar-icon-color: $white;
722 | // $icon-bar-icon-color-hover: $icon-bar-icon-color;
723 | // $icon-bar-icon-size: 1.875rem;
724 | // $icon-bar-image-width: 1.875rem;
725 | // $icon-bar-image-height: 1.875rem;
726 | // $icon-bar-active-color: $primary-color;
727 | // $icon-bar-item-padding: 1.25rem;
728 |
729 | // We use this to set default opacity and cursor for disabled icons.
730 | // $icon-bar-disabled-opacity: .7;
731 |
732 | // 13. Inline Lists
733 | // - - - - - - - - - - - - - - - - - - - - - - - - -
734 |
735 | // $include-html-inline-list-classes: $include-html-classes;
736 |
737 | // We use this to control the margins and padding of the inline list.
738 | // $inline-list-top-margin: 0;
739 | // $inline-list-opposite-margin: 0;
740 | // $inline-list-bottom-margin: rem-calc(17);
741 | // $inline-list-default-float-margin: rem-calc(-22);
742 | // $inline-list-default-float-list-margin: rem-calc(22);
743 |
744 | // $inline-list-padding: 0;
745 |
746 | // We use this to control the overflow of the inline list.
747 | // $inline-list-overflow: hidden;
748 |
749 | // We use this to control the list items
750 | // $inline-list-display: block;
751 |
752 | // We use this to control any elements within list items
753 | // $inline-list-children-display: block;
754 |
755 | // 14. Joyride
756 | // - - - - - - - - - - - - - - - - - - - - - - - - -
757 |
758 | // $include-html-joyride-classes: $include-html-classes;
759 |
760 | // Controlling default Joyride styles
761 | // $joyride-tip-bg: $oil;
762 | // $joyride-tip-default-width: 300px;
763 | // $joyride-tip-padding: rem-calc(18 20 24);
764 | // $joyride-tip-border: solid 1px $charcoal;
765 | // $joyride-tip-radius: 4px;
766 | // $joyride-tip-position-offset: 22px;
767 |
768 | // Here, we're setting the tip font styles
769 | // $joyride-tip-font-color: $white;
770 | // $joyride-tip-font-size: rem-calc(14);
771 | // $joyride-tip-header-weight: $font-weight-bold;
772 |
773 | // This changes the nub size
774 | // $joyride-tip-nub-size: 10px;
775 |
776 | // This adjusts the styles for the timer when its enabled
777 | // $joyride-tip-timer-width: 50px;
778 | // $joyride-tip-timer-height: 3px;
779 | // $joyride-tip-timer-color: $steel;
780 |
781 | // This changes up the styles for the close button
782 | // $joyride-tip-close-color: $monsoon;
783 | // $joyride-tip-close-size: 24px;
784 | // $joyride-tip-close-weight: $font-weight-normal;
785 |
786 | // When Joyride is filling the screen, we use this style for the bg
787 | // $joyride-screenfill: rgba(0,0,0,0.5);
788 |
789 | // 15. Keystrokes
790 | // - - - - - - - - - - - - - - - - - - - - - - - - -
791 |
792 | // $include-html-keystroke-classes: $include-html-classes;
793 |
794 | // We use these to control text styles.
795 | // $keystroke-font: "Consolas", "Menlo", "Courier", monospace;
796 | // $keystroke-font-size: inherit;
797 | // $keystroke-font-color: $jet;
798 | // $keystroke-font-color-alt: $white;
799 | // $keystroke-function-factor: -7%;
800 |
801 | // We use this to control keystroke padding.
802 | // $keystroke-padding: rem-calc(2 4 0);
803 |
804 | // We use these to control background and border styles.
805 | // $keystroke-bg: scale-color($white, $lightness: $keystroke-function-factor);
806 | // $keystroke-border-style: solid;
807 | // $keystroke-border-width: 1px;
808 | // $keystroke-border-color: scale-color($keystroke-bg, $lightness: $keystroke-function-factor);
809 | // $keystroke-radius: $global-radius;
810 |
811 | // 16. Labels
812 | // - - - - - - - - - - - - - - - - - - - - - - - - -
813 |
814 | // $include-html-label-classes: $include-html-classes;
815 |
816 | // We use these to style the labels
817 | // $label-padding: rem-calc(4 8 4);
818 | // $label-radius: $global-radius;
819 |
820 | // We use these to style the label text
821 | // $label-font-sizing: rem-calc(11);
822 | // $label-font-weight: $font-weight-normal;
823 | // $label-font-color: $oil;
824 | // $label-font-color-alt: $white;
825 | // $label-font-family: $body-font-family;
826 |
827 | // 17. Magellan
828 | // - - - - - - - - - - - - - - - - - - - - - - - - -
829 |
830 | // $include-html-magellan-classes: $include-html-classes;
831 |
832 | // $magellan-bg: $white;
833 | // $magellan-padding: 10px;
834 |
835 | // 18. Off-canvas
836 | // - - - - - - - - - - - - - - - - - - - - - - - - -
837 |
838 | // Off Canvas Tab Bar Variables
839 | // $include-html-off-canvas-classes: $include-html-classes;
840 |
841 | // $tabbar-bg: $oil;
842 | // $tabbar-height: rem-calc(45);
843 | // $tabbar-icon-width: $tabbar-height;
844 | // $tabbar-line-height: $tabbar-height;
845 | // $tabbar-color: $white;
846 | // $tabbar-middle-padding: 0 rem-calc(10);
847 |
848 | // Off Canvas Divider Styles
849 | // $tabbar-left-section-border: solid 1px scale-color($tabbar-bg, $lightness: -50%);
850 | // $tabbar-right-section-border: $tabbar-left-section-border;
851 |
852 |
853 | // Off Canvas Tab Bar Headers
854 | // $tabbar-header-color: $white;
855 | // $tabbar-header-weight: $font-weight-bold;
856 | // $tabbar-header-line-height: $tabbar-height;
857 | // $tabbar-header-margin: 0;
858 |
859 | // Off Canvas Menu Variables
860 | // $off-canvas-width: rem-calc(250);
861 | // $off-canvas-bg: $oil;
862 | // $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%);
863 | // $off-canvas-bg-active: scale-color($tabbar-bg, $lightness: -30%);
864 |
865 | // Off Canvas Menu List Variables
866 | // $off-canvas-label-padding: .3rem rem-calc(15);
867 | // $off-canvas-label-color: $aluminum;
868 | // $off-canvas-label-text-transform: uppercase;
869 | // $off-canvas-label-font-size: rem-calc(12);
870 | // $off-canvas-label-font-weight: $font-weight-bold;
871 | // $off-canvas-label-bg: $tuatara;
872 | // $off-canvas-label-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%);
873 | // $off-canvas-label-border-bottom: none;
874 | // $off-canvas-label-margin:0;
875 | // $off-canvas-link-padding: rem-calc(10, 15);
876 | // $off-canvas-link-color: rgba($white, .7);
877 | // $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%);
878 | // $off-canvas-back-bg: #444;
879 | // $off-canvas-back-border-top: $off-canvas-label-border-top;
880 | // $off-canvas-back-border-bottom: $off-canvas-label-border-bottom;
881 | // $off-canvas-back-hover-bg: scale-color($off-canvas-back-bg, $lightness: -30%);
882 | // $off-canvas-back-hover-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%);
883 | // $off-canvas-back-hover-border-bottom: none;
884 |
885 | // Off Canvas Menu Icon Variables
886 | // $tabbar-menu-icon-color: $white;
887 | // $tabbar-menu-icon-hover: scale-color($tabbar-menu-icon-color, $lightness: -30%);
888 |
889 | // $tabbar-menu-icon-text-indent: rem-calc(35);
890 | // $tabbar-menu-icon-width: $tabbar-icon-width;
891 | // $tabbar-menu-icon-height: $tabbar-height;
892 | // $tabbar-menu-icon-padding: 0;
893 |
894 | // $tabbar-hamburger-icon-width: rem-calc(16);
895 | // $tabbar-hamburger-icon-left: false;
896 | // $tabbar-hamburger-icon-top: false;
897 | // $tabbar-hamburger-icon-thickness: 1px;
898 | // $tabbar-hamburger-icon-gap: 6px;
899 |
900 | // Off Canvas Back-Link Overlay
901 | // $off-canvas-overlay-transition: background 300ms ease;
902 | // $off-canvas-overlay-cursor: pointer;
903 | // $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, .5), 4px 0 4px rgba($black, .5);
904 | // $off-canvas-overlay-background: rgba($white, .2);
905 | // $off-canvas-overlay-background-hover: rgba($white, .05);
906 |
907 | // Transition Variables
908 | // $menu-slide: "transform 500ms ease";
909 |
910 | // 19. Orbit
911 | // - - - - - - - - - - - - - - - - - - - - - - - - -
912 |
913 | // $include-html-orbit-classes: $include-html-classes;
914 |
915 | // We use these to control the caption styles
916 | // $orbit-container-bg: none;
917 | // $orbit-caption-bg: rgba(51,51,51, .8);
918 | // $orbit-caption-font-color: $white;
919 | // $orbit-caption-font-size: rem-calc(14);
920 | // $orbit-caption-position: "bottom"; // Supported values: "bottom", "under"
921 | // $orbit-caption-padding: rem-calc(10 14);
922 | // $orbit-caption-height: auto;
923 |
924 | // We use these to control the left/right nav styles
925 | // $orbit-nav-bg: transparent;
926 | // $orbit-nav-bg-hover: rgba(0,0,0,0.3);
927 | // $orbit-nav-arrow-color: $white;
928 | // $orbit-nav-arrow-color-hover: $white;
929 |
930 | // We use these to control the timer styles
931 | // $orbit-timer-bg: rgba(255,255,255,0.3);
932 | // $orbit-timer-show-progress-bar: true;
933 |
934 | // We use these to control the bullet nav styles
935 | // $orbit-bullet-nav-color: $iron;
936 | // $orbit-bullet-nav-color-active: $aluminum;
937 | // $orbit-bullet-radius: rem-calc(9);
938 |
939 | // We use these to controls the style of slide numbers
940 | // $orbit-slide-number-bg: rgba(0,0,0,0);
941 | // $orbit-slide-number-font-color: $white;
942 | // $orbit-slide-number-padding: rem-calc(5);
943 |
944 | // Graceful Loading Wrapper and preloader
945 | // $wrapper-class: "slideshow-wrapper";
946 | // $preloader-class: "preloader";
947 |
948 | // Hide controls on small
949 | // $orbit-nav-hide-for-small: true;
950 | // $orbit-bullet-hide-for-small: true;
951 | // $orbit-timer-hide-for-small: true;
952 |
953 | // 20. Pagination
954 | // - - - - - - - - - - - - - - - - - - - - - - - - -
955 |
956 | // $include-pagination-classes: $include-html-classes;
957 |
958 | // We use these to control the pagination container
959 | // $pagination-height: rem-calc(24);
960 | // $pagination-margin: rem-calc(-5);
961 |
962 | // We use these to set the list-item properties
963 | // $pagination-li-float: $default-float;
964 | // $pagination-li-height: rem-calc(24);
965 | // $pagination-li-font-color: $jet;
966 | // $pagination-li-font-size: rem-calc(14);
967 | // $pagination-li-margin: rem-calc(5);
968 |
969 | // We use these for the pagination anchor links
970 | // $pagination-link-pad: rem-calc(1 10 1);
971 | // $pagination-link-font-color: $aluminum;
972 | // $pagination-link-active-bg: scale-color($white, $lightness: -10%);
973 |
974 | // We use these for disabled anchor links
975 | // $pagination-link-unavailable-cursor: default;
976 | // $pagination-link-unavailable-font-color: $aluminum;
977 | // $pagination-link-unavailable-bg-active: transparent;
978 |
979 | // We use these for currently selected anchor links
980 | // $pagination-link-current-background: $primary-color;
981 | // $pagination-link-current-font-color: $white;
982 | // $pagination-link-current-font-weight: $font-weight-bold;
983 | // $pagination-link-current-cursor: default;
984 | // $pagination-link-current-active-bg: $primary-color;
985 |
986 | // 21. Panels
987 | // - - - - - - - - - - - - - - - - - - - - - - - - -
988 |
989 | // $include-html-panel-classes: $include-html-classes;
990 |
991 | // We use these to control the background and border styles
992 | // $panel-bg: scale-color($white, $lightness: -5%);
993 | // $panel-border-style: solid;
994 | // $panel-border-size: 1px;
995 | // $callout-panel-bg: scale-color($primary-color, $lightness: 94%);
996 |
997 | // We use this % to control how much we darken things on hover
998 | // $panel-border-color: scale-color($panel-bg, $lightness: -11%);
999 |
1000 | // We use these to set default inner padding and bottom margin
1001 | // $panel-margin-bottom: rem-calc(20);
1002 | // $panel-padding: rem-calc(20);
1003 |
1004 | // We use these to set default font colors
1005 | // $panel-font-color: $oil;
1006 | // $panel-font-color-alt: $white;
1007 |
1008 | // $panel-header-adjust: true;
1009 | // $callout-panel-link-color: $primary-color;
1010 | // $callout-panel-link-color-hover: scale-color($callout-panel-link-color, $lightness: -14%);
1011 |
1012 | // 22. Pricing Tables
1013 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1014 |
1015 | // $include-html-pricing-classes: $include-html-classes;
1016 |
1017 | // We use this to control the border color
1018 | // $price-table-border: solid 1px $gainsboro;
1019 |
1020 | // We use this to control the bottom margin of the pricing table
1021 | // $price-table-margin-bottom: rem-calc(20);
1022 |
1023 | // We use these to control the title styles
1024 | // $price-title-bg: $oil;
1025 | // $price-title-padding: rem-calc(15 20);
1026 | // $price-title-align: center;
1027 | // $price-title-color: $smoke;
1028 | // $price-title-weight: $font-weight-normal;
1029 | // $price-title-size: rem-calc(16);
1030 | // $price-title-font-family: $body-font-family;
1031 |
1032 | // We use these to control the price styles
1033 | // $price-money-bg: $vapor;
1034 | // $price-money-padding: rem-calc(15 20);
1035 | // $price-money-align: center;
1036 | // $price-money-color: $oil;
1037 | // $price-money-weight: $font-weight-normal;
1038 | // $price-money-size: rem-calc(32);
1039 | // $price-money-font-family: $body-font-family;
1040 |
1041 |
1042 | // We use these to control the description styles
1043 | // $price-bg: $white;
1044 | // $price-desc-color: $monsoon;
1045 | // $price-desc-padding: rem-calc(15);
1046 | // $price-desc-align: center;
1047 | // $price-desc-font-size: rem-calc(12);
1048 | // $price-desc-weight: $font-weight-normal;
1049 | // $price-desc-line-height: 1.4;
1050 | // $price-desc-bottom-border: dotted 1px $gainsboro;
1051 |
1052 | // We use these to control the list item styles
1053 | // $price-item-color: $oil;
1054 | // $price-item-padding: rem-calc(15);
1055 | // $price-item-align: center;
1056 | // $price-item-font-size: rem-calc(14);
1057 | // $price-item-weight: $font-weight-normal;
1058 | // $price-item-bottom-border: dotted 1px $gainsboro;
1059 |
1060 | // We use these to control the CTA area styles
1061 | // $price-cta-bg: $white;
1062 | // $price-cta-align: center;
1063 | // $price-cta-padding: rem-calc(20 20 0);
1064 |
1065 | // 23. Progress Bar
1066 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1067 |
1068 | // $include-html-media-classes: $include-html-classes;
1069 |
1070 | // We use this to set the progress bar height
1071 | // $progress-bar-height: rem-calc(25);
1072 | // $progress-bar-color: $vapor;
1073 |
1074 | // We use these to control the border styles
1075 | // $progress-bar-border-color: scale-color($white, $lightness: 20%);
1076 | // $progress-bar-border-size: 1px;
1077 | // $progress-bar-border-style: solid;
1078 | // $progress-bar-border-radius: $global-radius;
1079 |
1080 | // We use these to control the margin & padding
1081 | // $progress-bar-margin-bottom: rem-calc(10);
1082 |
1083 | // We use these to set the meter colors
1084 | // $progress-meter-color: $primary-color;
1085 | // $progress-meter-secondary-color: $secondary-color;
1086 | // $progress-meter-success-color: $success-color;
1087 | // $progress-meter-alert-color: $alert-color;
1088 |
1089 | // 24. Range Slider
1090 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1091 |
1092 | // $include-html-range-slider-classes: $include-html-classes;
1093 |
1094 | // These variables define the slider bar styles
1095 | // $range-slider-bar-width: 100%;
1096 | // $range-slider-bar-height: rem-calc(16);
1097 |
1098 | // $range-slider-bar-border-width: 1px;
1099 | // $range-slider-bar-border-style: solid;
1100 | // $range-slider-bar-border-color: $gainsboro;
1101 | // $range-slider-radius: $global-radius;
1102 | // $range-slider-round: $global-rounded;
1103 | // $range-slider-bar-bg-color: $ghost;
1104 | // $range-slider-active-segment-bg-color: scale-color($secondary-color, $lightness: -1%);
1105 |
1106 | // Vertical bar styles
1107 | // $range-slider-vertical-bar-width: rem-calc(16);
1108 | // $range-slider-vertical-bar-height: rem-calc(200);
1109 |
1110 | // These variables define the slider handle styles
1111 | // $range-slider-handle-width: rem-calc(32);
1112 | // $range-slider-handle-height: rem-calc(22);
1113 | // $range-slider-handle-position-top: rem-calc(-5);
1114 | // $range-slider-handle-bg-color: $primary-color;
1115 | // $range-slider-handle-border-width: 1px;
1116 | // $range-slider-handle-border-style: solid;
1117 | // $range-slider-handle-border-color: none;
1118 | // $range-slider-handle-radius: $global-radius;
1119 | // $range-slider-handle-round: $global-rounded;
1120 | // $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%);
1121 | // $range-slider-handle-cursor: pointer;
1122 |
1123 | // $range-slider-disabled-opacity: .7;
1124 | // $range-slider-disabled-cursor: $cursor-disabled-value;
1125 |
1126 | // 25. Reveal
1127 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1128 |
1129 | // $include-html-reveal-classes: $include-html-classes;
1130 |
1131 | // We use these to control the style of the reveal overlay.
1132 | // $reveal-overlay-bg: rgba($black, .45);
1133 | // $reveal-overlay-bg-old: $black;
1134 |
1135 | // We use these to control the style of the modal itself.
1136 | // $reveal-modal-bg: $white;
1137 | // $reveal-position-top: rem-calc(100);
1138 | // $reveal-default-width: 80%;
1139 | // $reveal-max-width: $row-width;
1140 | // $reveal-modal-padding: rem-calc(20);
1141 | // $reveal-box-shadow: 0 0 10px rgba($black,.4);
1142 |
1143 | // We use these to style the reveal close button
1144 | // $reveal-close-font-size: rem-calc(40);
1145 | // $reveal-close-top: rem-calc(10);
1146 | // $reveal-close-side: rem-calc(22);
1147 | // $reveal-close-color: $base;
1148 | // $reveal-close-weight: $font-weight-bold;
1149 |
1150 | // We use this to set the default radius used throughout the core.
1151 | // $reveal-radius: $global-radius;
1152 | // $reveal-round: $global-rounded;
1153 |
1154 | // We use these to control the modal border
1155 | // $reveal-border-style: solid;
1156 | // $reveal-border-width: 1px;
1157 | // $reveal-border-color: $steel;
1158 |
1159 | // $reveal-modal-class: "reveal-modal";
1160 | // $close-reveal-modal-class: "close-reveal-modal";
1161 |
1162 | // 26. Side Nav
1163 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1164 |
1165 | // $include-html-nav-classes: $include-html-classes;
1166 |
1167 | // We use this to control padding.
1168 | // $side-nav-padding: rem-calc(14 0);
1169 |
1170 | // We use these to control list styles.
1171 | // $side-nav-list-type: none;
1172 | // $side-nav-list-position: outside;
1173 | // $side-nav-list-margin: rem-calc(0 0 7 0);
1174 |
1175 | // We use these to control link styles.
1176 | // $side-nav-link-color: $primary-color;
1177 | // $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%);
1178 | // $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%);
1179 | // $side-nav-link-bg-hover: hsla(0, 0, 0, .025);
1180 | // $side-nav-link-margin: 0;
1181 | // $side-nav-link-padding: rem-calc(7 14);
1182 | // $side-nav-font-size: rem-calc(14);
1183 | // $side-nav-font-weight: $font-weight-normal;
1184 | // $side-nav-font-weight-active: $side-nav-font-weight;
1185 | // $side-nav-font-family: $body-font-family;
1186 | // $side-nav-font-family-active: $side-nav-font-family;
1187 |
1188 | // We use these to control heading styles.
1189 | // $side-nav-heading-color: $side-nav-link-color;
1190 | // $side-nav-heading-font-size: $side-nav-font-size;
1191 | // $side-nav-heading-font-weight: bold;
1192 | // $side-nav-heading-text-transform: uppercase;
1193 |
1194 | // We use these to control border styles
1195 | // $side-nav-divider-size: 1px;
1196 | // $side-nav-divider-style: solid;
1197 | // $side-nav-divider-color: scale-color($white, $lightness: 10%);
1198 |
1199 | // 27. Split Buttons
1200 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1201 |
1202 | // $include-html-button-classes: $include-html-classes;
1203 |
1204 | // We use these to control different shared styles for Split Buttons
1205 | // $split-button-function-factor: 10%;
1206 | // $split-button-pip-color: $white;
1207 | // $split-button-span-border-color: rgba(255,255,255,0.5);
1208 | // $split-button-pip-color-alt: $oil;
1209 | // $split-button-active-bg-tint: rgba(0,0,0,0.1);
1210 |
1211 | // We use these to control tiny split buttons
1212 | // $split-button-padding-tny: $button-pip-tny * 10;
1213 | // $split-button-span-width-tny: $button-pip-tny * 6;
1214 | // $split-button-pip-size-tny: $button-pip-tny;
1215 | // $split-button-pip-top-tny: $button-pip-tny * 2;
1216 | // $split-button-pip-default-float-tny: rem-calc(-6);
1217 |
1218 | // We use these to control small split buttons
1219 | // $split-button-padding-sml: $button-pip-sml * 10;
1220 | // $split-button-span-width-sml: $button-pip-sml * 6;
1221 | // $split-button-pip-size-sml: $button-pip-sml;
1222 | // $split-button-pip-top-sml: $button-pip-sml * 1.5;
1223 | // $split-button-pip-default-float-sml: rem-calc(-6);
1224 |
1225 | // We use these to control medium split buttons
1226 | // $split-button-padding-med: $button-pip-med * 9;
1227 | // $split-button-span-width-med: $button-pip-med * 5.5;
1228 | // $split-button-pip-size-med: $button-pip-med - rem-calc(3);
1229 | // $split-button-pip-top-med: $button-pip-med * 1.5;
1230 | // $split-button-pip-default-float-med: rem-calc(-6);
1231 |
1232 | // We use these to control large split buttons
1233 | // $split-button-padding-lrg: $button-pip-lrg * 8;
1234 | // $split-button-span-width-lrg: $button-pip-lrg * 5;
1235 | // $split-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
1236 | // $split-button-pip-top-lrg: $button-pip-lrg + rem-calc(5);
1237 | // $split-button-pip-default-float-lrg: rem-calc(-6);
1238 |
1239 | // 28. Sub Nav
1240 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1241 |
1242 | // $include-html-nav-classes: $include-html-classes;
1243 |
1244 | // We use these to control margin and padding
1245 | // $sub-nav-list-margin: rem-calc(-4 0 18);
1246 | // $sub-nav-list-padding-top: rem-calc(4);
1247 |
1248 | // We use this to control the definition
1249 | // $sub-nav-font-family: $body-font-family;
1250 | // $sub-nav-font-size: rem-calc(14);
1251 | // $sub-nav-font-color: $aluminum;
1252 | // $sub-nav-font-weight: $font-weight-normal;
1253 | // $sub-nav-text-decoration: none;
1254 | // $sub-nav-padding: rem-calc(3 16);
1255 | // $sub-nav-border-radius: 3px;
1256 | // $sub-nav-font-color-hover: scale-color($sub-nav-font-color, $lightness: -25%);
1257 |
1258 |
1259 | // We use these to control the active item styles
1260 |
1261 | // $sub-nav-active-font-weight: $font-weight-normal;
1262 | // $sub-nav-active-bg: $primary-color;
1263 | // $sub-nav-active-bg-hover: scale-color($sub-nav-active-bg, $lightness: -14%);
1264 | // $sub-nav-active-color: $white;
1265 | // $sub-nav-active-padding: $sub-nav-padding;
1266 | // $sub-nav-active-cursor: default;
1267 |
1268 | // $sub-nav-item-divider: "";
1269 | // $sub-nav-item-divider-margin: rem-calc(12);
1270 |
1271 | // 29. Switch
1272 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1273 |
1274 | // $include-html-form-classes: $include-html-classes;
1275 |
1276 | // Controlling background color for the switch container
1277 | // $switch-bg: $gainsboro;
1278 |
1279 | // We use these to control the switch heights for our default classes
1280 | // $switch-height-tny: 1.5rem;
1281 | // $switch-height-sml: 1.75rem;
1282 | // $switch-height-med: 2rem;
1283 | // $switch-height-lrg: 2.5rem;
1284 | // $switch-bottom-margin: 1.5rem;
1285 |
1286 | // We use these to style the switch-paddle
1287 | // $switch-paddle-bg: $white;
1288 | // $switch-paddle-transition-speed: .15s;
1289 | // $switch-paddle-transition-ease: ease-out;
1290 | // $switch-active-color: $primary-color;
1291 |
1292 | // 30. Tables
1293 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1294 |
1295 | // $include-html-table-classes: $include-html-classes;
1296 |
1297 | // These control the background color for the table and even rows
1298 | // $table-bg: $white;
1299 | // $table-even-row-bg: $snow;
1300 |
1301 | // These control the table cell border style
1302 | // $table-border-style: solid;
1303 | // $table-border-size: 1px;
1304 | // $table-border-color: $gainsboro;
1305 |
1306 | // These control the table head styles
1307 | // $table-head-bg: $white-smoke;
1308 | // $table-head-font-size: rem-calc(14);
1309 | // $table-head-font-color: $jet;
1310 | // $table-head-font-weight: $font-weight-bold;
1311 | // $table-head-padding: rem-calc(8 10 10);
1312 |
1313 | // These control the table foot styles
1314 | // $table-foot-bg: $table-head-bg;
1315 | // $table-foot-font-size: $table-head-font-size;
1316 | // $table-foot-font-color: $table-head-font-color;
1317 | // $table-foot-font-weight: $table-head-font-weight;
1318 | // $table-foot-padding: $table-head-padding;
1319 |
1320 | // These control the caption
1321 | // $table-caption-bg: transparent;
1322 | // $table-caption-font-color: $table-head-font-color;
1323 | // $table-caption-font-size: rem-calc(16);
1324 | // $table-caption-font-weight: bold;
1325 |
1326 | // These control the row padding and font styles
1327 | // $table-row-padding: rem-calc(9 10);
1328 | // $table-row-font-size: rem-calc(14);
1329 | // $table-row-font-color: $jet;
1330 | // $table-line-height: rem-calc(18);
1331 |
1332 | // These are for controlling the layout, display and margin of tables
1333 | // $table-layout: auto;
1334 | // $table-display: table-cell;
1335 | // $table-margin-bottom: rem-calc(20);
1336 |
1337 |
1338 | // 31. Tabs
1339 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1340 |
1341 | // $include-html-tabs-classes: $include-html-classes;
1342 |
1343 | // $tabs-navigation-padding: rem-calc(16);
1344 | // $tabs-navigation-bg-color: $silver;
1345 | // $tabs-navigation-active-bg-color: $white;
1346 | // $tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -6%);
1347 | // $tabs-navigation-font-color: $jet;
1348 | // $tabs-navigation-active-font-color: $tabs-navigation-font-color;
1349 | // $tabs-navigation-font-size: rem-calc(16);
1350 | // $tabs-navigation-font-family: $body-font-family;
1351 |
1352 | // $tabs-content-margin-bottom: rem-calc(24);
1353 | // $tabs-content-padding: ($column-gutter/2);
1354 |
1355 | // $tabs-vertical-navigation-margin-bottom: 1.25rem;
1356 |
1357 | // 32. Thumbnails
1358 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1359 |
1360 | // $include-html-media-classes: $include-html-classes;
1361 |
1362 | // We use these to control border styles
1363 | // $thumb-border-style: solid;
1364 | // $thumb-border-width: 4px;
1365 | // $thumb-border-color: $white;
1366 | // $thumb-box-shadow: 0 0 0 1px rgba($black,.2);
1367 | // $thumb-box-shadow-hover: 0 0 6px 1px rgba($primary-color,0.5);
1368 |
1369 | // Radius and transition speed for thumbs
1370 | // $thumb-radius: $global-radius;
1371 | // $thumb-transition-speed: 200ms;
1372 |
1373 | // 33. Tooltips
1374 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1375 |
1376 | // $include-html-tooltip-classes: $include-html-classes;
1377 |
1378 | // $has-tip-border-bottom: dotted 1px $iron;
1379 | // $has-tip-font-weight: $font-weight-bold;
1380 | // $has-tip-font-color: $oil;
1381 | // $has-tip-border-bottom-hover: dotted 1px scale-color($primary-color, $lightness: -55%);
1382 | // $has-tip-font-color-hover: $primary-color;
1383 | // $has-tip-cursor-type: help;
1384 |
1385 | // $tooltip-padding: rem-calc(12);
1386 | // $tooltip-bg: $oil;
1387 | // $tooltip-font-size: rem-calc(14);
1388 | // $tooltip-font-weight: $font-weight-normal;
1389 | // $tooltip-font-color: $white;
1390 | // $tooltip-line-height: 1.3;
1391 | // $tooltip-close-font-size: rem-calc(10);
1392 | // $tooltip-close-font-weight: $font-weight-normal;
1393 | // $tooltip-close-font-color: $monsoon;
1394 | // $tooltip-font-size-sml: rem-calc(14);
1395 | // $tooltip-radius: $global-radius;
1396 | // $tooltip-rounded: $global-rounded;
1397 | // $tooltip-pip-size: 5px;
1398 | // $tooltip-max-width: 300px;
1399 |
1400 | // 34. Top Bar
1401 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1402 |
1403 | // $include-html-top-bar-classes: $include-html-classes;
1404 |
1405 | // Background color for the top bar
1406 | // $topbar-bg-color: $oil;
1407 | // $topbar-bg: $topbar-bg-color;
1408 |
1409 | // Height and margin
1410 | // $topbar-height: rem-calc(45);
1411 | // $topbar-margin-bottom: 0;
1412 |
1413 | // Controlling the styles for the title in the top bar
1414 | // $topbar-title-weight: $font-weight-normal;
1415 | // $topbar-title-font-size: rem-calc(17);
1416 |
1417 | // Set the link colors and styles for top-level nav
1418 | // $topbar-link-color: $white;
1419 | // $topbar-link-color-hover: $white;
1420 | // $topbar-link-color-active: $white;
1421 | // $topbar-link-color-active-hover: $white;
1422 | // $topbar-link-weight: $font-weight-normal;
1423 | // $topbar-link-font-size: rem-calc(13);
1424 | // $topbar-link-hover-lightness: -10%; // Darken by 10%
1425 | // $topbar-link-bg: $topbar-bg;
1426 | // $topbar-link-bg-hover: $jet;
1427 | // $topbar-link-bg-color-hover: $charcoal;
1428 | // $topbar-link-bg-active: $primary-color;
1429 | // $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
1430 | // $topbar-link-font-family: $body-font-family;
1431 | // $topbar-link-text-transform: none;
1432 | // $topbar-link-padding: ($topbar-height / 3);
1433 | // $topbar-back-link-size: rem-calc(18);
1434 | // $topbar-link-dropdown-padding: rem-calc(20);
1435 | // $topbar-button-font-size: .75rem;
1436 | // $topbar-button-top: 7px;
1437 |
1438 | // Style the top bar dropdown elements
1439 | // $topbar-dropdown-bg: $oil;
1440 | // $topbar-dropdown-link-color: $white;
1441 | // $topbar-dropdown-link-color-hover: $topbar-link-color-hover;
1442 | // $topbar-dropdown-link-bg: $oil;
1443 | // $topbar-dropdown-link-bg-hover: $jet;
1444 | // $topbar-dropdown-link-weight: $font-weight-normal;
1445 | // $topbar-dropdown-toggle-size: 5px;
1446 | // $topbar-dropdown-toggle-color: $white;
1447 | // $topbar-dropdown-toggle-alpha: .4;
1448 |
1449 | // $topbar-dropdown-label-color: $monsoon;
1450 | // $topbar-dropdown-label-text-transform: uppercase;
1451 | // $topbar-dropdown-label-font-weight: $font-weight-bold;
1452 | // $topbar-dropdown-label-font-size: rem-calc(10);
1453 | // $topbar-dropdown-label-bg: $oil;
1454 |
1455 | // Top menu icon styles
1456 | // $topbar-menu-link-transform: uppercase;
1457 | // $topbar-menu-link-font-size: rem-calc(13);
1458 | // $topbar-menu-link-weight: $font-weight-bold;
1459 | // $topbar-menu-link-color: $white;
1460 | // $topbar-menu-icon-color: $white;
1461 | // $topbar-menu-link-color-toggled: $jumbo;
1462 | // $topbar-menu-icon-color-toggled: $jumbo;
1463 | // $topbar-menu-icon-position: $opposite-direction; // Change to $default-float for a left menu icon
1464 |
1465 | // Transitions and breakpoint styles
1466 | // $topbar-transition-speed: 300ms;
1467 | // Using rem-calc for the below breakpoint causes issues with top bar
1468 | // $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout
1469 | // $topbar-media-query: "#{$screen} and (min-width:#{lower-bound($topbar-breakpoint)})";
1470 |
1471 | // Top-bar input styles
1472 | // $topbar-input-height: rem-calc(28);
1473 |
1474 | // Divider Styles
1475 | // $topbar-divider-border-bottom: solid 1px scale-color($topbar-bg-color, $lightness: 13%);
1476 | // $topbar-divider-border-top: solid 1px scale-color($topbar-bg-color, $lightness: -50%);
1477 |
1478 | // Sticky Class
1479 | // $topbar-sticky-class: ".sticky";
1480 | // $topbar-arrows: true; //Set false to remove the triangle icon from the menu item
1481 | // $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li//
1482 |
1483 | // 36. Visibility Classes
1484 | // - - - - - - - - - - - - - - - - - - - - - - - - -
1485 |
1486 | // $include-html-visibility-classes: $include-html-classes;
1487 | // $include-accessibility-classes: true;
1488 | // $include-table-visibility-classes: true;
1489 | // $include-legacy-visibility-classes: true;
1490 |
--------------------------------------------------------------------------------
/src/styles/_shared.scss:
--------------------------------------------------------------------------------
1 | // ** This is where you can put Sass that is used globally across the entire app ** //
2 | @import "mixins";
3 |
4 | // Class: circle
5 | // Description: Used to make a circular element. (e.g Change a square
to a circle)
6 | .circle {
7 | @include circle;
8 | }
9 |
--------------------------------------------------------------------------------
/src/styles/main.scss:
--------------------------------------------------------------------------------
1 | // Include global Sass files needed to style the app. You shouldn't have to change anything here.
2 | @import "../../vendor/foundation/scss/normalize";
3 | @import "settings";
4 | @import "../../vendor/foundation/scss/foundation";
5 | @import "font-awesome";
6 | @import "mixins";
7 | @import "shared";
8 |
9 | // Include custom styles per component. If you add a new component, you should the path to its styles file here.
10 | @import "../app/about/styles/styles";
11 | @import "../app/home/styles/styles";
12 | @import "../app/layout/styles/styles";
13 | @import "../app/topbar/styles/styles";
14 |
--------------------------------------------------------------------------------
/vendor.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * The `vendor_files.js` property in Gruntfile.js holds files to be automatically
3 | * concatenated and minified with our project source files.
4 | *
5 | * NOTE: Use the *.min.js version when compiling for production.
6 | * Otherwise, use the normal *.js version for development
7 | *
8 | */
9 |
10 | module.exports = {
11 | js: [
12 | // utility libraries
13 | 'vendor/jquery/dist/jquery.min.js',
14 |
15 | // Angular components
16 | 'vendor/angular/angular.js',
17 | 'vendor/angular-ui-router/release/angular-ui-router.min.js',
18 | 'vendor/angular-resource/angular-resource.min.js',
19 | 'vendor/angular-mocks/angular-mocks.js',
20 |
21 | // Local storage
22 | 'vendor/angular-local-storage/dist/angular-local-storage.min.js',
23 |
24 | // Modernizer
25 | 'vendor/modernizr/modernizr.js',
26 |
27 | // Foundation
28 | 'vendor/foundation/js/foundation.min.js'
29 | ],
30 | css: [ ],
31 | assets: [ ]
32 | };
33 |
--------------------------------------------------------------------------------