- #95: Allow using HTML as notification content
https://base-apps.github.io/angular-base-apps/v2.0.11
- Add support for angular 1.6.x
https://base-apps.github.io/angular-base-apps/v2.0.10
- Fix build issue
https://base-apps.github.io/angular-base-apps/v2.0.9
https://base-apps.github.io/angular-base-apps/v2.0.8
- Add missing dependency injection to
ba-modal
directive
https://base-apps.github.io/angular-base-apps/v2.0.7
- #84: Remove
angular-ui-router
from index.js
https://base-apps.github.io/angular-base-apps/v2.0.6
https://base-apps.github.io/angular-base-apps/v2.0.5
- #80: Enable adding
ba-advise
support to modals created withModalFactory
https://base-apps.github.io/angular-base-apps/v2.0.4
- #72: Fix links used inside
ba-close
,ba-open
,ba-toggle
, andba-hard-toggle
https://base-apps.github.io/angular-base-apps/v2.0.3
- #74: Support
import
for ES6 templates
https://base-apps.github.io/angular-base-apps/v2.0.2
- #71: Update
npm
dependencies to matchbower
dependencies
https://base-apps.github.io/angular-base-apps/v2.0.1
First release to be completely separated from ZURB and Foundation for Apps! Check the migration docs for complete info on how to update to this release.
- #16: Added
destroy-on-close
property to modals - #31: Removed word foundation from codebase
- #38: Add customizable loading symbols from SpinKit
- #37: Moved custom Iconic icons to angular-icons
- #42: Refactored dynamic routing code into angular-dynamic-routing and base-apps-router
- #59: Add
icon-left
andicon-right
classes to position icons and loaders inside of buttons and button-groups - #63: Add
ba-no-support
directive to enable easy error display on unsupported browsers
- #22: Links inside
ba-close
,ba-open
,ba-toggle
, andba-hard-toggle
aren't working - #53: Links inside
ba-close-all
weren't working when a notification or popup was active - #62: Add vertical spacing for labels and badges
https://base-apps.github.io/angular-base-apps/v2.0.0
- Provides alternatives to
window.confirm
andwindow.prompt
. Check the modal docs for how to use the new modals. - This marks the final release for the drop-in replacement support of Foundation for Apps. Check the migration docs for complete info on how to update to this release.
https://base-apps.github.io/angular-base-apps/v1.2.6
This release is geared towards improving the accordion component functionality. Check the accordion docs for more info.
- Fix
collapsible
to work as intended - Use accordion
id
when publishing/subscribing to enable externally controlling the accordions - Improved docs for accordions
https://base-apps.github.io/angular-base-apps/v1.2.5
This release is geared towards improving the tab component functionality. Check the tab docs for more info.
- Add
auto-open
andcollapsible
attributes - Use tab
id
when publishing/subscribing to enable externally controlling the tabs - Improved docs for tabs
https://base-apps.github.io/angular-base-apps/v1.2.4
- #21: allow links inside modals to be clickable
https://base-apps.github.io/angular-base-apps/v1.2.3
Merge pending PRs from Foundation for Apps. The following PRs were merged:
- #826: Initializing state definitions with empty resolve object
- #825: Fixed a bug during fast navigation
- #824: Properly destroy popup tether component
- #820: Fix panel animations
- #816: Bold font weight should be determined from settings
- #815: Remove fixed 1rem spacings on grid CSS
- #807: adding
.gutter
class to grid blocks - #806: update handling of resize message
- #802: fix hollow button size to match non-hollow button size
- #801: Apply disabled state with :disabled
- #785: Fix stagger durations
- #768: Applied fix for depciation warning
- #760: fix clearing of media query cache
- #743: Allow panel with block transform to animate
- #741: standardize active state tracking across components
- #736:
zf-close-all
andzf-ignore-all-close
fixes - #717: Fix ModalFactory overlayClose=false option
https://base-apps.github.io/angular-base-apps/v1.2.2
- First release as Angular Base Apps. Release geared towards rebranding and decoupling from ZURB.
- Prepares users for version 2 by introducing
base
modules and files.
- #3: Adds
base.
modules to mirrorfoundation.
modules. Addsbase-apps
js and css files to mirrorfoundation
files.
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 existing motion Sass file (
- 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.
- The upgrade path will be relatively straightforward—you just need to change around some
- RTL support will be added.
- 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
'smain
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!
- 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
toModalFactory
, which tells you if a modal is open. #580
- 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
March 17, 2015
- 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 thetemplates.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!
- The templates file is included in the Bower and npm packages, under
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.
- 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.
- 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 attributeng-class="['ui-animation']"
to animate properly; just havingui-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 thebutton-style()
mixin. You can pass in a color, or theauto
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 thedisabled
orreadonly
attributes, or a<fieldset>
withdisabled
. 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 theIconicProvider
provider. UseIconicProvider.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
andng-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 thecontentScope
property on the modal's configuration object.
- #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 anunsubscribe
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 benull
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
, orzf-toggle
applied gets thecursor: 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.
February 16, 2015
- 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.
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.
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.
- 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 ofautoclose
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.
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 theui-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.
December 23, 2014
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/
.
- Replace your existing
- 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
.
- To capture every plugin's JavaScript files in a single blob, use
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 theclient
folder of the template stack.
- The Bower package no longer includes an
- #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
andhm-pinchin
.- We added one custom directive,
zf-touch-close
, which allows you to trigger theclose
event on an element by swiping. We'll add more features in future versions.
- We added one custom directive,
- #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 ofdata-src
, define the icon's source with thedyn-src
attribute on azf-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.
December 12, 2014
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.
- 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()
andgrid-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.
- #261:
- #295: Fixed a error that came up when creating a media query with
@include breakpoint(xxlarge only)
. - #326: Fixed detached off-canvas menus overlapping with regular ones.
- 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.
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
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.
- 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".
It's our 1.0 release candidate! Thanks for stopping by to take a look.
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.
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!
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