├── .npm └── package │ ├── .gitignore │ ├── npm-shrinkwrap.json │ └── README ├── assets ├── foundation.scss └── foundation-flex.scss ├── docs ├── assets │ ├── partials │ │ ├── interchange-default.html │ │ ├── interchange-medium.html │ │ └── interchange-large.html │ ├── img │ │ ├── orbit-1.jpg │ │ ├── orbit-2.jpg │ │ ├── orbit-3.jpg │ │ ├── orbit-4.jpg │ │ ├── voyager.jpg │ │ ├── avatar-1.jpg │ │ ├── avatar-2.jpg │ │ ├── avatar-3.jpg │ │ ├── square-1.jpg │ │ ├── square-2.jpg │ │ ├── square-3.jpg │ │ ├── square-4.jpg │ │ ├── square-5.jpg │ │ ├── square-6.jpg │ │ ├── icons │ │ │ ├── social.png │ │ │ ├── favicon.ico │ │ │ ├── footer-expo.png │ │ │ ├── footer-icons.png │ │ │ ├── social-retina.png │ │ │ ├── footer-products.png │ │ │ ├── footer-studios.png │ │ │ ├── footer-top-icons.png │ │ │ ├── footer-expo-retina.png │ │ │ ├── footer-foundation.png │ │ │ ├── footer-university.png │ │ │ ├── footer-icons-retina.png │ │ │ ├── footer-studios-retina.png │ │ │ ├── footer-products-retina.png │ │ │ ├── footer-top-icons-retina.png │ │ │ └── footer-foundation-retina.png │ │ ├── rectangle-1.jpg │ │ ├── rectangle-2.jpg │ │ ├── rectangle-3.jpg │ │ ├── rectangle-4.jpg │ │ ├── rectangle-5.jpg │ │ ├── rectangle-6.jpg │ │ ├── rectangle-7.jpg │ │ ├── rectangle-8.jpg │ │ ├── thumbnail │ │ │ ├── 01.jpg │ │ │ ├── 02.jpg │ │ │ └── 03.jpg │ │ ├── interchange │ │ │ ├── large.jpg │ │ │ ├── small.jpg │ │ │ ├── medium.jpg │ │ │ ├── map-medium.png │ │ │ └── map-small.png │ │ ├── a11y │ │ │ └── chrome-a11y-inspector.jpg │ │ ├── logo-sass.svg │ │ └── zurb-logo.svg │ ├── js │ │ ├── docs.kitchenSink.js │ │ ├── docs.js │ │ ├── docs.tableOfContents.js │ │ ├── docs.examples.js │ │ ├── docs.copyButton.js │ │ ├── docs.buildingBlocks.js │ │ ├── docs.search.js │ │ └── docs.interchangeMap.js │ └── scss │ │ └── docs.scss ├── partials │ ├── mobile-navigation.html │ └── navigation.html ├── pages │ ├── sass-mixins.md │ ├── thumbnail.md │ ├── accordion-menu.md │ ├── close-button.md │ ├── float-classes.md │ ├── sass-functions.md │ ├── compatibility.md │ ├── breadcrumbs.md │ ├── flex-video.md │ ├── top-bar.md │ ├── rtl.md │ ├── badge.md │ ├── drilldown-menu.md │ ├── label.md │ ├── progress-bar.md │ ├── pagination.md │ ├── dropdown.md │ ├── magellan.md │ ├── slider.md │ ├── toggler.md │ ├── button-group.md │ ├── installation.md │ ├── global.md │ ├── equalizer.md │ ├── tooltip.md │ └── callout.md └── layout │ └── default.html ├── docslink.sh ├── gulp ├── clean.js ├── copy.js ├── test.js ├── lint.js ├── javascript.js ├── docs.js └── sass.js ├── test ├── javascript │ ├── tests.js │ └── index.html └── sass │ ├── tests.scss │ ├── _selector.scss │ ├── _color.scss │ ├── _unit.scss │ ├── _components.scss │ └── _value.scss ├── .editorconfig ├── .npmignore ├── scss ├── util │ ├── _util.scss │ ├── _selector.scss │ ├── _color.scss │ └── _unit.scss ├── components │ ├── _float.scss │ ├── _sticky.scss │ ├── _accordion-menu.scss │ ├── _badge.scss │ ├── _label.scss │ ├── _thumbnail.scss │ ├── _dropdown.scss │ ├── _flex-video.scss │ ├── _title-bar.scss │ ├── _close-button.scss │ ├── _top-bar.scss │ ├── _media-object.scss │ ├── _progress-bar.scss │ ├── _drilldown.scss │ ├── _breadcrumbs.scss │ ├── _tooltip.scss │ ├── _callout.scss │ └── _accordion.scss ├── typography │ ├── _alignment.scss │ ├── _typography.scss │ ├── _helpers.scss │ └── _print.scss ├── grid │ ├── _size.scss │ ├── _layout.scss │ ├── _gutter.scss │ ├── _grid.scss │ ├── _position.scss │ ├── _row.scss │ ├── _classes.scss │ └── _column.scss ├── forms │ ├── _help-text.scss │ ├── _forms.scss │ ├── _checkbox.scss │ ├── _label.scss │ ├── _fieldset.scss │ ├── _select.scss │ ├── _input-group.scss │ └── _error.scss └── foundation.scss ├── .versions ├── sache.json ├── config ├── .jshintConfig └── karma.conf.js ├── bower.json ├── composer.json ├── .gitignore ├── gulpfile.js ├── LICENSE ├── package.json ├── lib └── util-map.json ├── js ├── foundation.util.timerAndImageLoader.js ├── foundation.util.motion.js ├── foundation.util.nest.js └── foundation.responsiveToggle.js ├── CONTRIBUTING.md ├── README.md └── package.js /.npm/package/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /assets/foundation.scss: -------------------------------------------------------------------------------- 1 | @import './scss/foundation'; 2 | 3 | @include foundation-everything; 4 | -------------------------------------------------------------------------------- /docs/assets/partials/interchange-default.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/assets/partials/interchange-medium.html: -------------------------------------------------------------------------------- 1 |

2 | -------------------------------------------------------------------------------- /assets/foundation-flex.scss: -------------------------------------------------------------------------------- 1 | @import './scss/foundation'; 2 | 3 | @include foundation-everything($flex: true); 4 | -------------------------------------------------------------------------------- /docs/assets/img/orbit-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/orbit-1.jpg -------------------------------------------------------------------------------- /docs/assets/img/orbit-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/orbit-2.jpg -------------------------------------------------------------------------------- /docs/assets/img/orbit-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/orbit-3.jpg -------------------------------------------------------------------------------- /docs/assets/img/orbit-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/orbit-4.jpg -------------------------------------------------------------------------------- /docs/assets/img/voyager.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/voyager.jpg -------------------------------------------------------------------------------- /docs/assets/img/avatar-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/avatar-1.jpg -------------------------------------------------------------------------------- /docs/assets/img/avatar-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/avatar-2.jpg -------------------------------------------------------------------------------- /docs/assets/img/avatar-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/avatar-3.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-1.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-2.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-3.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-4.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-5.jpg -------------------------------------------------------------------------------- /docs/assets/img/square-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/square-6.jpg -------------------------------------------------------------------------------- /docs/assets/img/icons/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/social.png -------------------------------------------------------------------------------- /docs/assets/img/rectangle-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-1.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-2.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-3.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-4.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-5.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-6.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-7.jpg -------------------------------------------------------------------------------- /docs/assets/img/rectangle-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/rectangle-8.jpg -------------------------------------------------------------------------------- /docs/assets/img/thumbnail/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/thumbnail/01.jpg -------------------------------------------------------------------------------- /docs/assets/img/thumbnail/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/thumbnail/02.jpg -------------------------------------------------------------------------------- /docs/assets/img/thumbnail/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/thumbnail/03.jpg -------------------------------------------------------------------------------- /docs/assets/img/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/favicon.ico -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-expo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-expo.png -------------------------------------------------------------------------------- /docs/assets/img/interchange/large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/interchange/large.jpg -------------------------------------------------------------------------------- /docs/assets/img/interchange/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/interchange/small.jpg -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-icons.png -------------------------------------------------------------------------------- /docs/assets/img/icons/social-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/social-retina.png -------------------------------------------------------------------------------- /docs/assets/img/interchange/medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/interchange/medium.jpg -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-products.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-products.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-studios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-studios.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-top-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-top-icons.png -------------------------------------------------------------------------------- /docs/assets/img/interchange/map-medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/interchange/map-medium.png -------------------------------------------------------------------------------- /docs/assets/img/interchange/map-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/interchange/map-small.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-expo-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-expo-retina.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-foundation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-foundation.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-university.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-university.png -------------------------------------------------------------------------------- /docs/assets/img/a11y/chrome-a11y-inspector.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/a11y/chrome-a11y-inspector.jpg -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-icons-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-icons-retina.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-studios-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-studios-retina.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-products-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-products-retina.png -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-top-icons-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-top-icons-retina.png -------------------------------------------------------------------------------- /docslink.sh: -------------------------------------------------------------------------------- 1 | # Clones the foundation-docs repo and links it to NPM locally 2 | git clone https://github.com/zurb/foundation-docs 3 | npm link ./foundation-docs 4 | -------------------------------------------------------------------------------- /docs/assets/img/icons/footer-foundation-retina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derweili/foundation-sites/develop/docs/assets/img/icons/footer-foundation-retina.png -------------------------------------------------------------------------------- /gulp/clean.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var rimraf = require('rimraf').sync; 3 | 4 | // Erases the dist folder 5 | gulp.task('clean', function() { 6 | rimraf('_build'); 7 | }); 8 | -------------------------------------------------------------------------------- /test/javascript/tests.js: -------------------------------------------------------------------------------- 1 | var expect = chai.expect; 2 | 3 | describe('Foundation', function() { 4 | it('should be a jQuery prototype function', function() { 5 | expect($.fn.foundation).to.be.a('function'); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_style = space 7 | indent_size = 2 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /.npm/package/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "motion-ui": { 4 | "version": "1.1.0", 5 | "dependencies": { 6 | "jquery": { 7 | "version": "2.1.4" 8 | } 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/sass/tests.scss: -------------------------------------------------------------------------------- 1 | @import 'bootcamp'; 2 | 3 | @include runner-start; 4 | 5 | @import 'global'; 6 | 7 | @import 8 | 'breakpoint', 9 | 'color', 10 | 'selector', 11 | 'unit', 12 | 'value', 13 | 'components'; 14 | 15 | @include runner-end; 16 | -------------------------------------------------------------------------------- /docs/partials/mobile-navigation.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | Foundation 5 |
6 |
7 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | _build 3 | bower_components 4 | config 5 | docs 6 | gulp 7 | lib 8 | spec 9 | bower.json 10 | composer.json 11 | CONTRIBUTING.md 12 | gulpfile.js 13 | meteor-README.md 14 | package.js 15 | sache.json 16 | test 17 | .editorconfig 18 | .versions 19 | scss/settings 20 | -------------------------------------------------------------------------------- /gulp/copy.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | var FILES = [ 4 | 'docs/assets/**/*', 5 | '!docs/assets/{js,scss}', 6 | '!docs/assets/{js,scss}/**/*' 7 | ]; 8 | 9 | // Copies static assets 10 | gulp.task('copy', function() { 11 | gulp.src(FILES) 12 | .pipe(gulp.dest('_build/assets')); 13 | }); 14 | -------------------------------------------------------------------------------- /scss/util/_util.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | // Utilities 6 | @import 'unit'; 7 | @import 'value'; 8 | @import 'color'; 9 | @import 'selector'; 10 | 11 | // Libraries 12 | @import 'breakpoint'; 13 | 14 | // Mixins 15 | @import 'mixins'; 16 | -------------------------------------------------------------------------------- /.versions: -------------------------------------------------------------------------------- 1 | babel-compiler@5.8.24_1 2 | babel-runtime@0.1.4 3 | base64@1.0.4 4 | caching-compiler@1.0.0 5 | check@1.1.0 6 | ecmascript@0.1.6 7 | ecmascript-runtime@0.2.6 8 | ejson@1.0.7 9 | fourseven:scss@3.4.1 10 | jquery@1.11.4 11 | meteor@1.1.10 12 | promise@0.5.1 13 | random@1.0.5 14 | underscore@1.0.4 15 | zurb:foundation-sites@6.0.6 16 | -------------------------------------------------------------------------------- /sache.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "foundation", 3 | "description": "The most advanced responsive front-end framework in the world. Includes grids, buttons, ui elements, javascript plugins and more. Foundation 6 makes going from Prototype to Production faster than ever.", 4 | "tags": ["grid", "typography", "buttons", "ui", "responsive-web-design"] 5 | } 6 | -------------------------------------------------------------------------------- /config/.jshintConfig: -------------------------------------------------------------------------------- 1 | { 2 | "boss": true, 3 | "node": true, 4 | "strict": true, 5 | "newcap": false, 6 | "undef": true, 7 | "unused": false, 8 | "onecase": true, 9 | "lastsemic": true, 10 | "expr": true, 11 | "eqeqeq": true, 12 | "jquery": true, 13 | "browser": true, 14 | "predef": ["Foundation", "define"] 15 | } -------------------------------------------------------------------------------- /test/sass/_selector.scss: -------------------------------------------------------------------------------- 1 | @import 'util/selector'; 2 | 3 | @include describe('Text inputs') { 4 | @include it('creates a selector out of a list of text input types') { 5 | $actual: #{text-inputs(text password)}; 6 | $expected: "[type='text'], [type='password']"; 7 | 8 | @debug $actual; 9 | 10 | @include should(expect($actual), to(be($expected))); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /docs/assets/partials/interchange-large.html: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 |
11 | 12 |
13 | -------------------------------------------------------------------------------- /docs/assets/js/docs.kitchenSink.js: -------------------------------------------------------------------------------- 1 | !function() { 2 | 3 | $ks = $('#docs-kitchen-sink'); 4 | if (!$ks.length) return; 5 | 6 | $ks.find('[data-docs-code]').each(function() { 7 | var $code = $(this); 8 | 9 | $link = $('Toggle Code'); 10 | $link.on('click.docs', function() { 11 | $code.slideToggle(250); 12 | }); 13 | $link.insertBefore(this); 14 | $code.addClass('kitchen-sink').hide(0); 15 | }); 16 | 17 | }() -------------------------------------------------------------------------------- /docs/assets/js/docs.js: -------------------------------------------------------------------------------- 1 | $(document).foundation(); 2 | 3 | $(function() { 4 | // Equalizer test 5 | var counter = 0; 6 | $('#test-eq').on('postEqualized.zf.Equalizer', function() { 7 | counter++; 8 | console.log(counter); 9 | }); 10 | $('#pokemonRed').on('invalid.fndtn.abide', function(e, data) { 11 | console.log(data); 12 | }); 13 | }); 14 | 15 | $(function() { 16 | $('[data-docs-version]').text('v' + Foundation.version); 17 | }); 18 | -------------------------------------------------------------------------------- /docs/pages/sass-mixins.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sass Mixins 3 | descriptions: Mixins allow us to reuse code in various parts of the framework. Foundation includes mixins for clearfixes, visibility, icons, shapes, and more. 4 | sass: scss/util/_mixins.scss 5 | --- 6 | 7 | ## Importing 8 | 9 | Foundation's Sass mixins are all kept in one file: `scss/util/_mixins.scss`. To import it in Sass, use this line of code: 10 | 11 | ```scss 12 | @import 'util/mixins'; 13 | ``` 14 | -------------------------------------------------------------------------------- /.npm/package/README: -------------------------------------------------------------------------------- 1 | This directory and the files immediately inside it are automatically generated 2 | when you change this package's NPM dependencies. Commit the files in this 3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control 4 | so that others run the same versions of sub-dependencies. 5 | 6 | You should NOT check in the node_modules directory that Meteor automatically 7 | creates; if you are using git, the .gitignore file tells git to ignore it. 8 | -------------------------------------------------------------------------------- /docs/assets/js/docs.tableOfContents.js: -------------------------------------------------------------------------------- 1 | !function() { 2 | 3 | var $h2s = $('.docs-component h2'); 4 | var $toc = $('[data-docs-toc]'); 5 | 6 | $h2s.each(function() { 7 | if ($(this).parents('.docs-code-live').length) return; 8 | 9 | var text = $(this).text(); 10 | var anchor = $(this).children('a').attr('href'); 11 | 12 | $toc.append('
  • '+text+'
  • '); 13 | }); 14 | 15 | if ($toc.length) { 16 | new Foundation.Magellan($toc, {}); 17 | } 18 | 19 | }() 20 | -------------------------------------------------------------------------------- /scss/components/_float.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group float 7 | //// 8 | 9 | @mixin foundation-float-classes { 10 | .float-left { 11 | float: left !important; 12 | } 13 | 14 | .float-right { 15 | float: right !important; 16 | } 17 | 18 | .float-center { 19 | display: block; 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | .clearfix { 25 | @include clearfix; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /docs/assets/scss/docs.scss: -------------------------------------------------------------------------------- 1 | // The CSS for the Foundation docs is stored in an external codebase: 2 | // https://github.com/zurb/foundation-docs 3 | // 4 | // You can test Sass changes locally by running these commands: 5 | // git clone https://github.com/zurb/foundation-docs 6 | // npm link ./foundation-docs 7 | // 8 | // Feel free to submit pull requests to foundation-docs like you would Foundation itself! 9 | 10 | @import 'settings/settings'; 11 | @import 'foundation'; 12 | @import 'motion-ui'; 13 | 14 | @include foundation-everything; 15 | @include motion-ui-transitions; 16 | 17 | @import 'foundation-docs'; 18 | -------------------------------------------------------------------------------- /scss/typography/_alignment.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | @mixin foundation-text-alignment { 6 | @each $size in $breakpoint-classes { 7 | @include breakpoint($size) { 8 | @each $align in (left, right, center, justify) { 9 | @if $size != 'small' { 10 | .#{$size}-text-#{$align} { 11 | text-align: $align; 12 | } 13 | } 14 | @else { 15 | .text-#{$align} { 16 | text-align: $align; 17 | } 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gulp/test.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var opener = require('opener'); 3 | var rubySass = require('gulp-ruby-sass'); 4 | 5 | // Runs unit tests 6 | gulp.task('test', ['test:sass', 'test:javascript']); 7 | 8 | gulp.task('test:sass', function() { 9 | return rubySass('./test/sass/tests.scss', { 10 | loadPath: ['scss', 'node_modules/bootcamp/dist'], 11 | style: 'nested', 12 | quiet: true 13 | }) 14 | .on('data', function(data) { 15 | console.log(data.contents.toString()); 16 | }); 17 | }); 18 | 19 | gulp.task('test:javascript', function(cb) { 20 | opener('../test/javascript/index.html'); 21 | cb(); 22 | }); 23 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "foundation-sites", 3 | "version": "6.0.6", 4 | "main": [ 5 | "scss/foundation.scss", 6 | "dist/foundation.js" 7 | ], 8 | "ignore": [ 9 | "config", 10 | "docs", 11 | "gulp", 12 | "lib", 13 | "test", 14 | "composer.json", 15 | "CONTRIBUTING.md", 16 | "gulpfile.js", 17 | "meteor-README.md", 18 | "package.js", 19 | "package.json", 20 | "sache.json", 21 | ".editorconfig", 22 | ".npm", 23 | ".gitignore", 24 | ".npmignore", 25 | ".versions", 26 | "scss/settings" 27 | ], 28 | "dependencies": { 29 | "jquery": "~2.1.0", 30 | "what-input": "~1.1.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scss/typography/_typography.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group typography 7 | //// 8 | 9 | // scss-lint:disable DeclarationOrder 10 | 11 | // Base typography styles (tags only) 12 | @import 'base'; 13 | 14 | // Typography helper classes (classes only) 15 | @import 'helpers'; 16 | 17 | // Text alignment classes 18 | @import 'alignment'; 19 | 20 | // Print styles 21 | @import 'print'; 22 | 23 | @mixin foundation-typography { 24 | @include foundation-typography-base; 25 | @include foundation-typography-helpers; 26 | @include foundation-text-alignment; 27 | @include foundation-print-styles; 28 | } 29 | -------------------------------------------------------------------------------- /scss/grid/_size.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group grid 7 | //// 8 | 9 | /// Set the width of a grid column. 10 | /// 11 | /// @param {Number|List} $width [$grid-column-count] - Width to make the column. You can pass in any value accepted by the `grid-column()` function, such as `6`, `50%`, or `1 of 2`. 12 | @mixin grid-column-size( 13 | $columns: $grid-column-count 14 | ) { 15 | width: grid-column($columns); 16 | } 17 | 18 | /// Shorthand for `grid-column-size()`. 19 | /// @alias grid-column-size 20 | @mixin grid-col-size( 21 | $columns: $grid-column-count 22 | ) { 23 | @include grid-column-size($columns); 24 | } 25 | -------------------------------------------------------------------------------- /scss/components/_sticky.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | @mixin foundation-sticky { 6 | .sticky-container { 7 | position: relative; 8 | } 9 | 10 | .sticky { 11 | position: absolute; 12 | z-index: 0; 13 | transform: translate3d(0, 0, 0); 14 | } 15 | 16 | .sticky.is-stuck { 17 | position: fixed; 18 | z-index: 5; 19 | 20 | &.is-at-top { 21 | top: 0; 22 | } 23 | 24 | &.is-at-bottom { 25 | bottom: 0; 26 | } 27 | } 28 | 29 | .sticky.is-anchored { 30 | position: absolute; 31 | left: auto; 32 | right: auto; 33 | 34 | &.is-at-bottom { 35 | bottom: 0; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /test/javascript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mocha 5 | 6 | 7 | 8 | 9 | 10 |
    11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zurb/foundation-sites", 3 | "description": "The most advanced responsive front-end framework in the world.", 4 | "version": "6.0.6", 5 | "keywords": [ 6 | "css", 7 | "scss", 8 | "sass", 9 | "js", 10 | "responsive", 11 | "mobile-first", 12 | "framework" 13 | ], 14 | "homepage": "http://foundation.zurb.com", 15 | "authors": [ 16 | { 17 | "name": "ZURB, Inc.", 18 | "homepage": "http://zurb.com", 19 | "email": "foundation@zurb.com" 20 | } 21 | ], 22 | "support": { 23 | "email": "foundation@zurb.com", 24 | "issues": "https://github.com/zurb/foundation-sites/issues", 25 | "forum": "http://foundation.zurb.com/forum" 26 | }, 27 | "license": "MIT" 28 | } 29 | -------------------------------------------------------------------------------- /gulp/lint.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var scssLint = require('gulp-scss-lint'); 3 | var jshint = require('gulp-jshint'); 4 | 5 | var PATHS = [ 6 | 'scss/**/*.scss', 7 | '!scss/vendor/**/*.scss', 8 | '!scss/components_old/**/*.scss' 9 | ]; 10 | 11 | // Lints Sass and JavaScript files for formatting issues 12 | gulp.task('lint', ['lint:sass', 'lint:javascript']); 13 | 14 | gulp.task('lint:sass', function() { 15 | return gulp.src(PATHS) 16 | .pipe(scssLint({ 17 | 'config': 'config/scss-lint.yml' 18 | })); 19 | }); 20 | 21 | gulp.task('lint:javascript', function() { 22 | jshint.lookup = false; 23 | 24 | return gulp.src('js/*.js') 25 | .pipe(jshint('./config/.jshintConfig')) 26 | .pipe(jshint.reporter('default')); 27 | }); 28 | -------------------------------------------------------------------------------- /scss/forms/_help-text.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group forms 7 | //// 8 | 9 | /// Default color for help text. 10 | /// @type Color 11 | $helptext-color: #333 !default; 12 | 13 | /// Default font size for help text. 14 | /// @type Number 15 | $helptext-font-size: rem-calc(13) !default; 16 | 17 | /// Default font style for help text. 18 | /// @type Keyword 19 | $helptext-font-style: italic !default; 20 | 21 | @mixin foundation-form-helptext { 22 | .help-text { 23 | $margin-top: ($form-spacing * 0.5) * -1; 24 | 25 | margin-top: $margin-top; 26 | font-size: $helptext-font-size; 27 | font-style: $helptext-font-style; 28 | color: $helptext-color; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scss/grid/_layout.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group grid 7 | //// 8 | 9 | /// Sizes child elements so that `$n` number of items appear on each row. 10 | /// 11 | /// @param {Number} $n - Number of elements to display per row. 12 | /// @param {String} $selector ['.column'] - Selector(s) to use for child elements. 13 | @mixin grid-layout( 14 | $n, 15 | $selector: '.column' 16 | ) { 17 | & > #{$selector} { 18 | width: percentage(1/$n); 19 | float: $global-left; 20 | 21 | &:nth-of-type(1n) { 22 | clear: none; 23 | } 24 | 25 | &:nth-of-type(#{$n}n+1) { 26 | clear: both; 27 | } 28 | 29 | &:last-child { 30 | float: left; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /scss/forms/_forms.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group forms 7 | //// 8 | 9 | /// Global spacing for form elements. 10 | /// @type Number 11 | $form-spacing: rem-calc(16) !default; 12 | 13 | @import 14 | 'text', 15 | 'checkbox', 16 | 'label', 17 | 'help-text', 18 | 'input-group', 19 | 'fieldset', 20 | 'select', 21 | 'error'; 22 | 23 | @mixin foundation-forms { 24 | @include foundation-form-text; 25 | @include foundation-form-checkbox; 26 | @include foundation-form-label; 27 | @include foundation-form-helptext; 28 | @include foundation-form-prepostfix; 29 | @include foundation-form-fieldset; 30 | @include foundation-form-select; 31 | @include foundation-form-error; 32 | } 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.DS_Store 2 | *.gem 3 | *.orig 4 | *.rbc 5 | *.rbenv-version 6 | *.ruby-version 7 | *.scssc 8 | *.sublime-* 9 | *.swp 10 | *.swo 11 | .bundle 12 | .config 13 | .grunt 14 | .idea 15 | .sass-cache/* 16 | .yardoc 17 | _build 18 | 19 | bower_components 20 | bundle 21 | build/* 22 | /docs2/public/* 23 | _yardoc 24 | coverage 25 | docs/public/* 26 | InstalledFiles 27 | lib/bundler/man 28 | marketing/.sass-cache/* 29 | node_modules 30 | pkg 31 | rdoc 32 | spec/reports 33 | npm-debug.log 34 | _debug.json 35 | 36 | *.orig 37 | node_modules 38 | docs/public/* 39 | *.scssc 40 | *.rbenv-version 41 | *.ruby-version 42 | /docs2/public/* 43 | .settings 44 | .project 45 | test/scss/output-test 46 | test/tmp 47 | test/version_tmp 48 | tmp 49 | testing/_build 50 | 51 | pizza/ 52 | data.json 53 | npm-debug.log 54 | foundation-docs 55 | -------------------------------------------------------------------------------- /scss/components/_accordion-menu.scss: -------------------------------------------------------------------------------- 1 | //// 2 | /// @group accordion-menu 3 | //// 4 | 5 | /// Sets if accordion menus have the default arrow styles. 6 | /// @type Boolean 7 | $accordionmenu-arrows: true !default; 8 | 9 | /// Sets accordion menu arrow color if arrow is used. 10 | /// @type Color 11 | $accordionmenu-arrow-color: $primary-color !default; 12 | 13 | @mixin foundation-accordion-menu { 14 | @if $accordionmenu-arrows { 15 | .is-accordion-submenu-parent > a { 16 | position: relative; 17 | 18 | &::after { 19 | @include css-triangle(6px, $accordionmenu-arrow-color, down); 20 | position: absolute; 21 | top: 50%; 22 | margin-top: -4px; 23 | right: 1rem; 24 | } 25 | } 26 | 27 | .is-accordion-submenu-parent[aria-expanded='true'] > a::after { 28 | transform-origin: 50% 50%; 29 | transform: scaleY(-1); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /scss/forms/_checkbox.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group forms 7 | //// 8 | 9 | @mixin foundation-form-checkbox { 10 | [type='file'], 11 | [type='checkbox'], 12 | [type='radio'] { 13 | margin: 0 0 $form-spacing; 14 | } 15 | 16 | // Styles for input/label siblings 17 | [type='checkbox'] + label, 18 | [type='radio'] + label { 19 | display: inline-block; 20 | margin-#{$global-left}: $form-spacing * 0.5; 21 | margin-#{$global-right}: $form-spacing; 22 | margin-bottom: 0; 23 | vertical-align: baseline; 24 | } 25 | 26 | // Styles for inputs inside labels 27 | label > [type='checkbox'], 28 | label > [type='label'] { 29 | margin-#{$global-right}: $form-spacing * 0.5; 30 | } 31 | 32 | // Normalize file input width 33 | [type='file'] { 34 | width: 100%; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /docs/assets/js/docs.examples.js: -------------------------------------------------------------------------------- 1 | // Code for specific docs examples. 2 | 3 | !function() { 4 | 5 | $('[data-docs-example-ofc]').click(function() { 6 | $('#offCanvasLeft').toggleClass('reveal-for-large'); 7 | }); 8 | 9 | $('[data-docs-example-series]').click(function() { 10 | $('#series-example').addClass('is-animating'); 11 | }); 12 | 13 | var $transitionDemo = $('.docs-transition-demo'); 14 | $('.docs-transitions').change(function() { 15 | var value = $(this).val(); 16 | var method = value.match('-in') ? 'animateIn' : 'animateOut'; 17 | 18 | Foundation.Motion[method]($transitionDemo, value, function() { 19 | $transitionDemo.show(); 20 | }); 21 | }); 22 | var stickyMag = $('#sticky-magellan'); 23 | stickyMag.on('sticky.zf.stuckto:top', function(){ 24 | stickyMag.find('nav').addClass('stuck-mag'); 25 | }).on('sticky.zf.unstuckfrom:top', function(e){ 26 | stickyMag.find('nav').removeClass('stuck-mag'); 27 | }); 28 | 29 | }(); 30 | -------------------------------------------------------------------------------- /scss/util/_selector.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group functions 7 | //// 8 | 9 | /// Generates a selector with every text input type. You can also filter the list to only output a subset of those selectors. 10 | /// 11 | /// @param {List|Keyword} $types [()] - A list of text input types to use. Leave blank to use all of them. 12 | @function text-inputs($types: ()) { 13 | $return: (); 14 | 15 | $all-types: 16 | text 17 | password 18 | date 19 | datetime 20 | datetime-local 21 | month 22 | week 23 | email 24 | number 25 | search 26 | tel 27 | time 28 | url 29 | color; 30 | 31 | @if not has-value($types) { 32 | $types: $all-types; 33 | } 34 | 35 | @each $type in $types { 36 | $return: append($return, unquote('[type=\'#{$type}\']'), comma); 37 | } 38 | 39 | @return $return; 40 | } 41 | -------------------------------------------------------------------------------- /docs/pages/thumbnail.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Thumbnail 3 | description: If you're going to use an image as an anchor, we've got you covered. All you gotta do is add one class to your image and voilà! 4 | sass: scss/components/_thumbnail.scss 5 | --- 6 | 7 | The `.thumbnail` class can be applied directly to an `` element, or an `` that wraps it. Make sure the `` has an `alt` attribute that describes the contents of the image. 8 | 9 | ```html 10 | Photo of Uranus. 11 | ``` 12 | 13 |
    14 |
    15 | Photo of Uranus. 16 |
    17 |
    18 | Photo of Neptune. 19 |
    20 |
    21 | Photo of Pluto. 22 |
    23 |
    24 | -------------------------------------------------------------------------------- /scss/grid/_gutter.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group grid 7 | //// 8 | 9 | /// Collapse the gutters on a column by removing the padding. 10 | @mixin grid-column-collapse { 11 | padding-left: 0; 12 | padding-right: 0; 13 | } 14 | 15 | /// Un-collapse the gutters on a column by re-adding the padding. 16 | /// 17 | /// @param {Number} $gutter [$grid-column-gutter] - Spacing between columns. 18 | @mixin grid-column-uncollapse($gutter: $grid-column-gutter) { 19 | $gutter: rem-calc($gutter) / 2; 20 | padding-left: $gutter; 21 | padding-right: $gutter; 22 | } 23 | 24 | /// Shorthand for `grid-column-collapse()`. 25 | /// @alias grid-column-collapse 26 | @mixin grid-col-collapse { 27 | @include grid-column-collapse; 28 | } 29 | 30 | /// Shorthand for `grid-column-uncollapse()`. 31 | /// @alias grid-column-uncollapse 32 | @mixin grid-col-uncollapse { 33 | @include grid-column-uncollapse; 34 | } 35 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var browser = require('browser-sync'); 3 | var requireDir = require('require-dir'); 4 | var port = process.env.SERVER_PORT || 3000; 5 | 6 | requireDir('./gulp'); 7 | 8 | // Builds the documentation and framework files 9 | gulp.task('build', ['clean', 'copy', 'docs:all', 'docs:search', 'sass', 'javascript']); 10 | 11 | // Starts a BrowerSync instance 12 | gulp.task('serve', ['build'], function(){ 13 | browser.init({server: './_build', port: port}); 14 | }); 15 | 16 | // Runs all of the above tasks and then waits for files to change 17 | gulp.task('default', ['serve'], function() { 18 | gulp.watch('docs/**/*', ['docs', browser.reload]); 19 | gulp.watch(['docs/layout/*.html', 'docs/partials/*.html'], ['docs:all', browser.reload]); 20 | gulp.watch('scss/**/*', ['sass', browser.reload]); 21 | gulp.watch('docs/assets/scss/**/*', ['sass:docs', browser.reload]); 22 | gulp.watch('js/**/*', ['javascript:foundation', browser.reload]); 23 | gulp.watch('docs/assets/js/**/*', ['javascript:docs', browser.reload]); 24 | }); 25 | -------------------------------------------------------------------------------- /docs/pages/accordion-menu.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accordion Menu 3 | sass: scss/components/_accordion-menu.scss 4 | js: js/foundation.accordionMenu.js 5 | description: Change a basic vertical Menu into a expandable accordion menu with the Accordion Menu plugin. 6 | --- 7 | 8 | ```html_example 9 |
    34 | ``` 35 | -------------------------------------------------------------------------------- /docs/pages/close-button.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Close Button 3 | description: The humble close button can be used anywhere you need something to go away on click. 4 | sass: scss/components/_close-button.scss 5 | --- 6 | 7 | A close button is a ` 16 |

    You can so totally close this!

    17 | 18 | ``` 19 | 20 |
    21 |

    The close button on its own doesn't close elements, but you can use it with Toggler, Reveal, Off-canvas, and other plugins that have open and close behaviors.

    22 |
    23 | -------------------------------------------------------------------------------- /docs/assets/js/docs.copyButton.js: -------------------------------------------------------------------------------- 1 | // Adds a copy button to all code examples in the docs. 2 | 3 | !function() { 4 | 5 | // Look for code samples and set up a copy button on each 6 | $('[data-docs-code]').each(function(index, value) { 7 | var copyBtnId = 'copy-btn-' + index.toString(); 8 | var $button = $(''); 9 | 10 | var text = $(this).find('code').text() 11 | .replace('<', '<') 12 | .replace('>', '>'); 13 | 14 | $(this).prepend($button); 15 | 16 | var clipboard = new Clipboard('#' + copyBtnId, { 17 | text: function() { 18 | return text; 19 | } 20 | }); 21 | 22 | // Change the text of the copy button when it's clicked on 23 | clipboard.on('success', function(event) { 24 | $button.text('Copied!'); 25 | window.setTimeout(function() { 26 | $button.text('Copy'); 27 | }, 3000); 28 | }); 29 | 30 | // Log errors on copy failure 31 | clipboard.on('error', function(event) { 32 | console.error('Action:', event.action); 33 | console.error('Trigger:', event.trigger); 34 | }); 35 | }); 36 | 37 | }() -------------------------------------------------------------------------------- /docs/assets/js/docs.buildingBlocks.js: -------------------------------------------------------------------------------- 1 | // Adds links to Building Blocks from the ZURB library to each component page 2 | 3 | !function() { 4 | 5 | $.ajax({ 6 | url: 'http://zurb.com/library/api/building_blocks/type/buttons', 7 | dataType: 'jsonp', 8 | success: addBuildingBlocks 9 | }); 10 | 11 | function addBuildingBlocks(data) { 12 | var html = ''; 13 | 14 | $.each(data, function() { 15 | html += '

    '+this.name+'

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor, amet incidunt sint esse nihil eum repellendus necessitatibus officiis iusto reprehenderit, alias laudantium veniam ad. Soluta repellat nemo quaerat quis laboriosam.

    '; 16 | }); 17 | 18 | $('[data-building-blocks]').each(function() { 19 | $(this).html(html); 20 | }); 21 | 22 | if ($('[data-building-blocks] .docs-bb').length === 0) { 23 | $('.docs-building-blocks').hide(0); 24 | } 25 | } 26 | 27 | }() -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 ZURB, inc. 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /test/sass/_color.scss: -------------------------------------------------------------------------------- 1 | @import 'util/color'; 2 | 3 | @include describe('Foreground') { 4 | @include it('returns black if the input color is light') { 5 | $actual: foreground($white); 6 | $expected: $black; 7 | 8 | @include should(expect($actual), to(be($expected))); 9 | } 10 | 11 | @include it('returns white if the input color is dark') { 12 | $actual: foreground($black); 13 | $expected: $white; 14 | 15 | @include should(expect($actual), to(be($expected))); 16 | } 17 | } 18 | 19 | @include describe('Smart Scale') { 20 | @include it('darkens a light color') { 21 | $color: $white; 22 | $scale: 5%; 23 | $threshold: 60%; 24 | 25 | $actual: smart-scale($color, $scale, $threshold); 26 | $expected: scale-color($color, $lightness: -$scale); 27 | 28 | @include should(expect($actual), to(be($expected))); 29 | } 30 | @include it('lightens a dark color') { 31 | $color: $black; 32 | $scale: 5%; 33 | $threshold: 60%; 34 | 35 | $actual: smart-scale($color, $scale, $threshold); 36 | $expected: scale-color($color, $lightness: $scale); 37 | 38 | @include should(expect($actual), to(be($expected))); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/pages/float-classes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Float Classes 3 | description: Foundation includes a handful of helpful float classes to add common positioning behaviors to elements. 4 | --- 5 | 6 | ## Float Left/Right 7 | 8 | You can change the float behavior of an element by adding the `.float-left` or `.float-right` classes to an element. To clear floats, add the class `.clearfix` to the parent element. 9 | 10 |
    11 |

    Float classes don't flip direction in a right-to-left environment—left always means left, and right always means right.

    12 |
    13 | 14 | ```html_example 15 |
    16 | Left 17 | Right 18 |
    19 | ``` 20 | 21 | --- 22 | 23 | ## Float Center 24 | 25 | Okay, it's not *really* a float, but you can add the `.float-center` class to an element to engage the automatic margin centering trick. Note that this will only work on elements with an absolute width, which means not a percentage or `auto` width. 26 | 27 | ```html_example 28 | 29 | ``` 30 | -------------------------------------------------------------------------------- /scss/grid/_grid.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group grid 7 | //// 8 | 9 | /// The maximum width of a row. 10 | /// @type Number 11 | $grid-row-width: $global-width !default; 12 | 13 | /// The default column count of a grid. Changing this value affects the logic of the grid mixins, and the number of CSS classes output. 14 | /// @type Number 15 | $grid-column-count: 12 !default; 16 | 17 | /// The amount of space between columns. 18 | /// @type Number 19 | $grid-column-gutter: 30px !default; 20 | 21 | /// If `true`, the last column in a row will align to the opposite edge of the row. 22 | /// @type Boolean 23 | $grid-column-align-edge: true !default; 24 | 25 | // Internal value to store the end column float direction 26 | $-zf-end-float: if($grid-column-align-edge, $global-right, $global-left); 27 | 28 | /// The highest number of `.x-up` classes available when using the block grid CSS. 29 | /// @type Number 30 | $block-grid-max: 8 !default; 31 | 32 | @import 'row'; 33 | @import 'column'; 34 | @import 'size'; 35 | @import 'position'; 36 | @import 'gutter'; 37 | @import 'classes'; 38 | @import 'layout'; 39 | 40 | @import 'flex-grid'; 41 | -------------------------------------------------------------------------------- /docs/pages/sass-functions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sass Functions 3 | description: Behind the scenes, Foundation is powered by a set of utility Sass functions that help us work with colors, units, selectors, and more. 4 | sass: 5 | - scss/util/*.scss 6 | - '!scss/util/_breakpoint.scss' 7 | - '!scss/util/_mixins.scss' 8 | --- 9 | 10 | ## Importing 11 | 12 | All of Foundation's Sass utilities are in the folder `scss/util`, and broken up into multiple files by category. You can import every utility file at once using this line of code: 13 | 14 | ```scss 15 | @import 'util/util'; 16 | ``` 17 | 18 | Or, utilities can be imported individually. 19 | 20 | ```scss 21 | // Color manipulation 22 | @import 'util/color'; 23 | 24 | // Selector generation 25 | @import 'util/selector'; 26 | 27 | // Unit manipulation and conversion 28 | @import 'util/unit'; 29 | 30 | // Value checking and extraction 31 | @import 'util/value'; 32 | ``` 33 | 34 |
    35 |

    Variables, functions, or mixins prefixed with -zf- are considered part of the internal API, which means they could change, break, or disappear without warning. We recommend sticking to only the public API, which is documented below.

    36 |
    37 | -------------------------------------------------------------------------------- /docs/pages/compatibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Compatibility 3 | description: Foundation is tested across many browsers and devices, and works back as far as IE9 and Android 2. 4 | tags: 5 | - support 6 | - browser 7 | --- 8 | 9 | ## Overview 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
    ChromeLast Two Versions
    Firefox
    Safari
    Opera
    Mobile Safari
    IE Mobile
    Internet ExplorerVersions 9+
    Android BrowserVersions 2.3+
    30 | 31 | --- 32 | 33 | ## What Won't Work? 34 | 35 | - **The Grid:** Foundation's grid uses `box-sizing: border-box` to apply gutters to columns, but this property isn't supported in IE8. 36 | - **Desktop Styles:** Because the framework is written mobile-first, browsers that don't support media queries will display the mobile styles of the site. 37 | - **JavaScript:** Our plugins use a number of handy ECMAScript 5 features that aren't supported in IE8. 38 | -------------------------------------------------------------------------------- /gulp/javascript.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var concat = require('gulp-concat'); 3 | 4 | var FOUNDATION = [ 5 | 'js/foundation.core.js', 6 | 'js/foundation.util.*.js', 7 | 'js/*.js' 8 | ]; 9 | 10 | var DEPS = [ 11 | 'node_modules/jquery/dist/jquery.js', 12 | 'node_modules/motion-ui/dist/motion-ui.js', 13 | 'node_modules/what-input/what-input.js' 14 | ]; 15 | 16 | var DOCS = [ 17 | 'node_modules/clipboard/dist/clipboard.js', 18 | 'node_modules/typeahead.js/dist/typeahead.bundle.js', 19 | 'docs/assets/js/docs.*.js', 20 | 'docs/assets/js/docs.js' 21 | ]; 22 | 23 | // Compiles JavaScript into a single file 24 | gulp.task('javascript', ['javascript:foundation', 'javascript:deps', 'javascript:docs']); 25 | 26 | gulp.task('javascript:foundation', function() { 27 | return gulp.src(FOUNDATION) 28 | .pipe(concat('foundation.js')) 29 | .pipe(gulp.dest('_build/assets/js')); 30 | }); 31 | 32 | gulp.task('javascript:deps', function() { 33 | return gulp.src(DEPS) 34 | .pipe(concat('vendor.js')) 35 | .pipe(gulp.dest('_build/assets/js')); 36 | }); 37 | 38 | gulp.task('javascript:docs', function() { 39 | return gulp.src(DOCS) 40 | .pipe(concat('docs.js')) 41 | .pipe(gulp.dest('_build/assets/js')); 42 | }); 43 | -------------------------------------------------------------------------------- /scss/forms/_label.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group forms 7 | //// 8 | 9 | /// Color for form labels. 10 | /// @type Color 11 | $form-label-color: $black !default; 12 | 13 | /// Font size for form labels. 14 | /// @type Number 15 | $form-label-font-size: rem-calc(14) !default; 16 | 17 | /// Font weight for form labels. 18 | /// @type Keyword 19 | $form-label-font-weight: $global-weight-normal !default; 20 | 21 | /// Line height for form labels. The higher the number, the more space between the label and its input field. 22 | /// @type Number 23 | $form-label-line-height: 1.8 !default; 24 | 25 | @mixin form-label { 26 | display: block; 27 | margin: 0; 28 | font-size: $form-label-font-size; 29 | font-weight: $form-label-font-weight; 30 | line-height: $form-label-line-height; 31 | color: $form-label-color; 32 | } 33 | 34 | @mixin form-label-middle { 35 | $input-border-width: get-border-value($input-border, width); 36 | margin: 0 0 $form-spacing; 37 | padding: ($form-spacing / 2 + rem-calc($input-border-width)) 0; 38 | } 39 | 40 | @mixin foundation-form-label { 41 | label { 42 | @include form-label; 43 | 44 | &.middle { 45 | @include form-label-middle; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /scss/forms/_fieldset.scss: -------------------------------------------------------------------------------- 1 | // Foundation for Sites by ZURB 2 | // foundation.zurb.com 3 | // Licensed under MIT Open Source 4 | 5 | //// 6 | /// @group forms 7 | //// 8 | 9 | /// Default border around custom fieldsets. 10 | /// @type Border 11 | $fieldset-border: 1px solid $medium-gray !default; 12 | 13 | /// Default padding inside custom fieldsets. 14 | /// @type Number 15 | $fieldset-padding: rem-calc(20) !default; 16 | 17 | /// Default margin around custom fieldsets. 18 | /// @type Number 19 | $fieldset-margin: rem-calc(18 0) !default; 20 | 21 | /// Default padding between the legend text and fieldset border. 22 | /// @type Number 23 | $legend-padding: rem-calc(0 3) !default; 24 | 25 | @mixin fieldset { 26 | border: $fieldset-border; 27 | padding: $fieldset-padding; 28 | margin: $fieldset-margin; 29 | 30 | legend { 31 | // Covers up the fieldset's border to create artificial padding 32 | background: $body-background; 33 | padding: $legend-padding; 34 | margin: 0; 35 | margin-#{$global-left}: rem-calc(-3); 36 | } 37 | } 38 | 39 | @mixin foundation-form-fieldset { 40 | fieldset { 41 | border: 0; 42 | padding: 0; 43 | margin: 0; 44 | } 45 | 46 | legend { 47 | margin-bottom: $form-spacing * 0.5; 48 | } 49 | 50 | .fieldset { 51 | @include fieldset; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /docs/pages/breadcrumbs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Breadcrumbs 3 | description: Breadcrumbs come in handy to show a navigation trail for users clicking through your site. 4 | sass: scss/components/_breadcrumbs.scss 5 | --- 6 | 7 | To make a set of breadcrumb links, just add the class `.breadcrumbs` to a `