Skip to content
This repository has been archived by the owner on Sep 10, 2019. It is now read-only.

Releases: zurb/foundation-apps

Version 1.2 — Eiger

05 Dec 01:37
Compare
Choose a tag to compare

What's in Store?

We're planning a 1.3 release to transition between version 1.x and 2.x of Foundation for Apps. Here's our current plan for 1.3:

  • The visual styles of many components will be improved. In many places we'll be bringing the styles more in line with Foundation for Sites 6.
    • New Foundation for Apps projects will automatically get these styles.
    • Existing projects will be able to opt-in to the new styles by changing a Sass variable.
  • The built-in motion module will be replaced with the external Motion UI library.
    • The existing motion Sass file (scss/components/_motion.scss) will be removed.
    • Transition class names have changed from .camelCase to .kebab-case.
    • The syntax for existing transition and animation mixins has changed. Check out the Motion UI documentation for more details.
    • New Foundation for Apps projects will include Motion UI as a dependency.
  • The dynamic routing module, now branded Front Router, has been moved to an external Node library.
    • New Foundation for Apps projects are currently referencing this library.
    • In 1.5, the existing built-in library will be removed.
  • The Sass files will be rearranged to match the structure of Foundation for Sites 6.
    • The upgrade path will be relatively straightforward—you just need to change around some @import paths.
  • RTL support will be added.

General

  • Updated to Angular 1.4.
  • Updated to FastClick 1.0.6.
  • Updated to Normalize.css 3.0.3.
  • Added the precompiled Angular templates to bower.json's main section. #534
  • Added forms to the export list. Previously, the CSS would output no matter what. #544
  • FastClick and viewport-units-buggyfill are now initialized within the Foundation code, which means you can remove it from your app's run() method.
  • Thanks to a few pull requests from @erikmellum, Foundation for Apps now works in Electron!

Features

  • Interchange directives. @soumak77 put together a set of ng-if-like directives that respond to media queries, like so:
<div zf-if="medium"></div>
<div zf-if="not large"></div>
  • Animation methods with promises. FoundationApi.animateAndAdvise allows you to animate an element and get a promise back, which resolves when the animation finishes.
  • Click outside of things to close them! Panels and off-canvas menus can be configured to be closed when they're clicked/tapped outside of. To enable it, add the directive zf-close-all to the <body> element. #430
  • Front Router now outputs an entire Angular module instead of a global variable, to avoid polluting the global namespace.
  • Added the method .isActive to ModalFactory, which tells you if a modal is open. #580

Bug Fixes

  • Grid blocks with the .shrink class can no longer scroll. #568
  • Prevent JavaScript errors if an app loads without any CSS, such as when being loaded in a headless browser. #596
  • Fixed an "apply already in progress" error with action sheets. #558
  • Fixed a sizing issue in IE10 and 11 with grid items that used the .up-* grid classes.
  • Fixed Iconic images not working with Angular directives. #569
  • Prevent JavaScript errors when not using Front Router. #583
  • Fixed various menu issues related to alignment and Flexbox properties. #567
  • Fixed text inputs inside block lists having cut off text in Firefox. #566
  • Added overflow-y: visible to menu bar, to make working with dropdowns easier. #520
  • Modals now properly publish a close event when the overlay is hidden. #540
  • Fixed JavaScript errors popping up when clicking on elements inside of a panel. #548
  • Fixed arrows in <select> elements not appearing in IE10 and 11. #606
  • Fixed CSSO choking on Foundation's CSS. #650

Since 1935, over sixty climbers have perished attempting to climb the North Face of Eiger. Because of this, the mountain has been nicknamed "Mordwand," German for "murder wall."

image

Version 1.1 — Weisshorn

17 Mar 16:51
Compare
Choose a tag to compare

General

  • The CLI has been updated to version 1.1. It includes a streamlined install process, better error-handling, better cross-platform support, and no Ruby dependency. Run npm update -g foundation-cli to get it.
  • The documentation is way better. We did a sweep of every docs page to fix typos, improve examples, and generally make things more clear. Enjoy!
  • Foundation for Apps is now libsass-first. We're still testing the codebase in both Ruby Sass 3.4+ and libsass 3.1+, but our documentation and template stack now compile with libsass by default. This means Ruby is no longer a hard dependency of the framework.
  • Directive templates are now compiled to one file. We're using ng-html2js to package up all of our directive templates into a single JavaScript file. This means you no longer need to include the components folder in a public directory! This method still works, but you can also just include the templates.js file and you're good to go.
    • The templates file is included in the Bower and npm packages, under dist/js/foundation-apps-templates.js.
    • A third CDN URL has been created for the template files.
    • Thanks to @MikaAK for submitting the pull request that implemented this!

Sass Variable Changes

These Sass variables changed. If you're upgrading an existing project, you'll need to update your _settings.scss file manually.

Added: $button-background-hover: scale-color($button-background, $lightness: -15%)
Added: $motion-class-showhide: (in: "ng-hide-remove", out: "ng-hide-add");
Added: $motion-class-showhide-active: (in: "ng-hide-remove-active", out: "ng-hide-add-active");
Added: $input-background-disabled: smartscale($input-background)
Added: $input-cursor-disabled: not-allowed
Changed: $button-tag-selector is now false (previously true)
Removed: $panel-animation-speed

You don't need to add the new variables to your settings file, unless you want to change their default values.

The old variables are still in the codebase, but aren't being used. They'll be permanently removed in version 1.2.

Template Changes

  • Sass is now compiled using libsass.
  • Directive templates are compiled into a templates.js file, instead of being referenced using hardcoded paths to HTML files.
  • If you have an existing project, you don't need to change anything to upgrade to v1.1.

New Features

  • Improved view animation! In and out animations on views will now play simultaneously. Thanks to @AntJanus, @stryju, and @jeanieshark for all their hard work in solving this difficult problem!
  • ui-view elements no longer need the attribute ng-class="['ui-animation']" to animate properly; just having ui-view is enough.
  • Prior to v1.1, view animations only worked if the states were created using our front matter routing plugin. Now you can enable view animation in manually-defined states by adding an animation property to the state object.
$stateProvider
  .state('home', {
    url: '/',
    templateUrl: 'templates/home.html',
    animation: {
      enter: 'slideInDown',
      leave: 'fadeOut'
    }
  });
  • #461: Added a $background-hover parameter to the button-style() mixin. You can pass in a color, or the auto keyword to automatically set a color based on the $background parameter.
  • #462: Added styles for disabled form elements. They're automatically applied to any <input> element with the disabled or readonly attributes, or a <fieldset> with disabled. The styles can also be added manually by adding the .disabled class.
  • #475: The path the zf-iconic directive uses to search for icon files can now be changed width the IconicProvider provider. Use IconicProvider.setAssetPath(path) to set the path. Thanks to @gjungb for implementing this!
  • #495: The front matter routing plugin now supports ui-router's abstract states. Just add abstract: true to a view template to make it go.
  • Added support for ngAnimate's "show" and "hide" events. This means you can now use Motion UI classes with ng-show and ng-hide.
  • Added a .noscroll class for grid blocks and content blocks. I bet you can guess what it does!
  • You can now pass a scope to a modal created with ModalFactory, by passing it through the contentScope property on the modal's configuration object.

Bug Fixes

  • #191: <input type="range"> elements are properly styled in Internet Explorer 10+.
  • #396: Prevent a $digest already in progress error from occuring with panels and off-canvas.
  • #397: The FoundationApi service now has an unsubscribe method, which allows us to remove event listeners from elements that have been removed from the DOM.
  • #467: The settings variables for buttons were placed above button group, which prevents an issue with undefined variables.
  • #472: Fixed the color attribute of static notifications not applying.
  • #478: Fixed an issue with modals where scope.$root could be null after a state change.
  • #483: Fixed notifications with autoclose not automatically closing under some circumstances.
  • #486: The ModalFactory factory will fetch the modal template before initialization.
  • #489: Deprecated $panel-animation-speed, an unused Sass variable for panels. It will be removed in a future version of the framework.
  • #511: Panels that have converted into a block won't play their in/out animations if triggered by an open or close event.
  • #530: Visibility classes will not conflict with Angular's .ng-hide class.
  • The <button> tag is no longer styled as a .button element by default.
  • Any element with zf-open, zf-close, or zf-toggle applied gets the cursor: pointer property.
  • Removed the dropdown arrow that Internet Explorer 10+ adds to <select> elements.
  • Prevented ghosting issues in WebKit with views that are mid-transition, by adding -webkit-transform-style: preserve3d.
  • Fixed landscape/portrait visibility classes not hiding properly.
  • Images inside cards will stretch to the width of the container.
  • Added a missing secondary coloring class to Iconic (.iconic-color-secondary).

The British physicist John Tyndall was the first person to ascend Weisshorn. When the climb was at its most bleak, Tyndall strengthened his resolve with patriotic thoughts:

I thought of Englishmen in battle, of the qualities which had made them famous: it was mainly the quality of not knowing when to yield - of fighting for duty even after they had ceased to be animated by hope. Such thoughts helped to lift me over the rocks.

800px-weisshorn _zinal

Version 1.0.3

16 Feb 20:42
Compare
Choose a tag to compare

General

  • The Bower and npm packages now include a dist folder, which contains compiled CSS and JavaScript files, in minified and unminified flavors.
  • The Sass is now fully compatible with libsass. It's been tested in node-sass 1.2.3. Eventually our documentation and template stack will be compiled with node-sass instead of Ruby Sass, but we'll continue to test both.

Breaking Changes

These Sass variables changed. If you're updating an existing project, you'll need to update your _settings.scss file manually.

  • Added: $badge-diameter: 1.5rem
  • Renamed: $badge-font-color is now $badge-color
  • Removed: $badge-padding
  • Removed: $badge-radius

The old variables are still in the codebase but aren't being used. They'll be permanently removed in version 1.1.

Template Changes

The Gulpfile used in the template stack now uses the gulp-load-plugins library to streamline use of plugins. If you have an existing project, you don't need to change anything to upgrade.

New Features

  • Stacking notifications. (#388) Dynamically-called notifications will now stack when you call more than one.
  • Responsive Iconic icons. (#408) Iconic icons are now fluid by default, which means they will adjust their geometry based on the width of the parent container.
  • Staggered animations. (#394) When using our motion classes in conjunction with the ng-repeat, you can now add a stagger class to make items animate in sequence. Add the class .stagger, .short-stagger, or .long-stagger to an element to enable the stagger effect.
  • #376: Added .info and .dark coloring classes to buttons.
  • #436: The items in a menu bar can be aligned with .align-right, .align-center, .align-justify, or .align-spaced. These classes mimic the behavior of the grid alignment classes.
  • Notifications can now be assigned a timeout by adding the autoclose attribute. The value of autoclose is the number of milliseconds to wait before closing.
  • The speed of all animations has been increased slightly. The default felt just a little too slow.

Bug Fixes

CSS:

  • #194: Fixed modals not scrolling when they overflow their parent.
  • #412: <button> and <input> elements can be used as prefix/postfix elements in forms now, in addition to <a>.
  • #417: Added padding to <select> elements to prevent the text from overlapping with the arrow.
  • #435: Fixed a misnamed parameter in the grid-block() mixin.
  • #438: Fixed display issues with <select> elements in Firefox.
  • #453: Fixed block list checkboxes being misaligned.
  • Fixed the .dialog class and sizing classes of modals not working.
  • The CSS for badges was refactored so they're sized with width and height instead of padding.
  • The pointer cursor is now used when hovering over any anchor (<a>) or any element with the ui-sref attribute.

JavaScript:

  • #363: Fixed zf-close not working when placed outside of a component.
  • #420: Fixed panel/block animations triggering even though the element is in block mode.
  • #427: Fixed the pin-at directive not passing its value to Tether.
  • #448: Fixed invalid $scope.params property on the DefaultController controller.
  • If a component is closed or opened while a transition is in progress, the transition will reverse.

Version 1.0.2

23 Dec 23:17
Compare
Choose a tag to compare

Foundation for Apps is now on npm! npm install foundation-apps

Upgrading from an older version? We changed how our Angular plugins are structured, which means an existing app's build process will need to be changed slightly.

  • If you're using our template stack as-is:
    • Replace your existing Gulpfile.js with the new Gulpfile.
    • Copy the new app.js file into the folder client/assets/js/.
  • If you need to upgrade a project with a custom build process:
    • To capture every plugin's JavaScript files in a single blob, use bower_components/foundation-apps/js/angular/**/*.js.
    • The Bower package no longer includes an app.js file. You can use our template stack's file as a baseline to write your own.
    • To capture every plugin's HTML template, use bower_components/foundation-apps/js/angular/components/**/*.html.

Codebase changes:

  • #282: The Angular code has been refactored to be more streamlined and more modular. Each UI component now has its own folder, which includes the component's JavaScript and HTML template. The template stack has been updated to properly compile the new asset structure. If you're upgrading an existing project, follow the above instructions to get everything set.
    • The Bower package no longer includes an app.js file. Instead, a sample file has been included in the client folder of the template stack.
  • #108: Every Sass function now has a unit test. Run gulp sass:test to run the test suite.
  • #338: The Sass settings file is now automatically generated based on the variables inside each component's Sass file, with the command gulp settings. The settings parser plguin will be maintained as a separate codebase. The plugin pulls the variables out of each Sass file, after which:
    • Every component's variables are combined into one settings file, organized by component.
    • Each individual component's variables are output as an HTML partial, to be displayed on that component's documentation.

New features:

  • Touch support! We added the Hammer.js Angular library to our codebase, which allows you to trigger functions with touch gestures, using directives like hm-swipeup and hm-pinchin.
    • We added one custom directive, zf-touch-close, which allows you to trigger the close event on an element by swiping. We'll add more features in future versions.
  • #301: Menu bars can now switch between the expanded and condensed styles at different screen sizes, using these classes: condense, medium-condense, large-condense, medium-expand, large-expand.
  • #335: Menu bars can now be wrapped in a menu-bar-group container, which allows two menu bars to sit on the same row, aligned to the left and the right. Learn more here.
  • #342: The src attribute of an Iconic icon can now be dynamically inserted. Instead of data-src, define the icon's source with the dyn-src attribute on a zf-iconic element.

Bug fixes:

  • Added proper styles for checkboxes, radio buttons, and their text labels.
  • Fixed a bug with IE10 and 11 where the last item in a wrapping grid would wrap to the next line.
  • Fixed an issue with panels not properly functioning as grid containers.
  • #320: Fixed the clearall event for notifications not removing elements from the view.
  • #321: Fixed zf-hard-toggle not closing open action sheets.
  • #328: Fixed an issue with collapible items in accordions.
  • #331: Allow action sheets to be closed with zf-hard-toggle.
  • #337: Improved the behavior of components animating in and out when toggled on and off rapidly.
  • #343: The settings file now imports the functions file, to make rem-calc() and other functions accessible when modifying settings.
  • #351: Fixed a bug where images were not added to notifications created with the publish API.
  • #326: Fixed detached off-canvas menus overlapping with regular ones.
  • #356: Fixed $small-font-color not being properly applied to <small> elements.

Version 1.0.1

12 Dec 22:14
Compare
Choose a tag to compare

Lots of fixes for the Sass, JavaScript, and documentation. Thanks so much to everyone who's been giving feedback, reporting bugs, and most importantly, fixing our typos this past week.

CSS

  • Fixed an alignment issue with action sheet dropdowns.
  • #157: Fixed misbehaving box shadows on panels.
  • #180: Added a PNG fallback for the SVG icons used in block lists, for IE10.
  • #212: Corrected a misused parameter in the grid-frame() and grid-block() mixins.
  • #215: Removed unused text direction variables.
  • #225: Fixed some components not working inside of an off-canvas menu because of selector specificity.
  • #226: Configured the Gulpfile to catch Sass errors instead of exiting.
  • #268: Changed map-serialize() to escape quotes in the outputted JSON.
  • #247: Set the $accordion-title-background-active variable to be relative to $accordion-title-background.
    • #261: $tab-title-background-active got the same treatment.
  • #295: Fixed a error that came up when creating a media query with @include breakpoint(xxlarge only).

JavaScript

  • Added the zf-hard-toggle directive, to force other open components to close when the targeted component opens.
  • Integrated the FastClick library.
  • #199: Modals can be configured to not close when clicked outside of.
  • #258: Accordions can be set to allow every item to be closed at once with collapsible="true".
  • #260: Added the element restriction to action sheets.
  • #274: Added a timeout to hide elements that are missing an animationOut class.
  • #290: Updated the Gulpfile to properly run copy when template pages are added or removed.

Version 1.0.0 — Matterhorn

04 Dec 20:10
Compare
Choose a tag to compare

Welcome to Foundation for Apps 1.0.0! Thanks for swinging by to try it out.

Our initial release of the framework includes:

  • An awesome, responsive flexbox-based grid for creating robust, responsive app layouts.
  • The Motion UI library for easily animating pages and components. You can also use our mixins to write custom animations.
  • Our Gulp-powered Angular helpers which allow you to harness the power of the Angular UI Router library without writing any JavaScript.

The framework also includes these sweet components:

  • Block list
  • Button
  • Button group
  • Card
  • Forms
  • Label and badge
  • Menu bar
  • Switch
  • Title bar
  • Typography
  • Visibility and utility classes

These components are also available as Angular directives:

  • Accordion
  • Action sheet
  • Modal
  • Notification
  • Off-canvas
  • Panel
  • Popup
  • Tabs

How to Contribute

We love feedback! Help us find bugs and suggest improvements or new features. Follow us on Twitter at @ZURBFoundation to keep up-to-date with what's new, or to just shoot the breeze.

If you find a problem or have an idea, open a new issue on GitHub. When filing a bug report, make sure you specify the browser and operating system you're on, and toss us a screenshot or show us how we can recreate the issue.

Known Issues

  • Some issues with the flexbox grid in IE10
  • Mobile Safari doesn't place fixed-position elements (modals, notifications) at the right z-index — #190
  • Range sliders aren't properly styled in IE10+ — #191

The iconic Matterhorn gets its name from the German words Matte, meaning "meadow", and Horn, which means "peak".

matterhorn_from_domhutte_-_2

Version 1.0.0 RC1 — Mont Blanc

21 Nov 19:15
Compare
Choose a tag to compare
Pre-release

It's our 1.0 release candidate! Thanks for stopping by to take a look.

How to mess with it

If you want a quick way to jump in, check out our starter template, which has a basic directory structure and a blank index file for you to work with. Follow the instructions in the readme to get going.

The first thing you'll probably want to check out is the grid. If you compile this repo on your machine, you can find the grid documentation at http://localhost:8080/#!/grid. You can also view the source of that file here.

To incorporate our Sass components and Angular directives into your own project, install Foundation using Bower:

bower install zurb/foundation-apps

The JavaScript is organized into common components, specific directives, and vendor files. There's also a sample app.js that shows how to import the Foundation modules, but you'll likely want to set up your Angular application your own way.

How to contribute

We love feedback! We have a few discussion topics open on our issue tracker, but if you have more specific feedback, please open a new issue! If you encounter any bugs, let us know as well. Be sure to specify the browser and operating system you're using, and show us how we can recreate the issue. Code samples are great!

What's left

The codebase is very close to feature-complete. Here are the things we're still working on:

  • Fully-working motion classes (see #113)
  • Loose ends on components (see #109, #110, #111)
  • Animation on directives (see #107)
  • Unit tests for Angular and Sass (see #106)
  • A finished settings file
  • The command-line interface (being built in a separate repo, currently private)
  • Testing, testing, testing