- $$interimElement: make templates work with custom interpolation symbols (d5aa68d1)
- build: correct in buildConfig.js (6caccf75, closes #981)
- button: fix hover on flat buttons (de587772)
- checkbox:
- demo: Update slider demo to work in IE11 (39559808, closes #653)
- filenames: updated component .scss names to match conventions (629b753f)
- layout:
flex="n"
attrs set height for column layout, width for row (d3577798, closes #937) - mdToast: Puts index above dialog (4ae4e072, closes #903)
- switch: only add focus border if label is not empty (9c24cc93, closes #944)
- tooltip: fix bugs in Safari & Firefox, as well as scrolling bugs (0d265292, closes #593)
- theming: use $mdThemingProvider (47f0d09e)
- Themes are no longer defined by linked CSS files.
Themes are now defined through Javascript only. A 'theme template' is bundled into angular-material.js, and then Javascript is used to generate theme css for every theme the user defines.
The default
theme is still shipped with angular-material.
If you used another theme (for example, the purple
theme), change your code from this:
<link rel="stylesheet" href="/themes/purple-theme.css">
<div md-theme="purple">
<md-button class="md-primary">Purple</md-button>
</div>
To this:
var app = angular.module('myApp', ['ngMaterial']);
app.config(function($mdThemingProvider) {
//will use the colors from default theme for any color not defined.
$mdThemingProvider.theme('purple')
.primaryColor('purple');
});
<div md-theme="purple">
<md-button class="md-primary">Purple</md-button>
</div>
For more information, read the updated Theme documentation - (47f0d09e)
- checkbox:
- compiler: trim whitespace from templates (effects toast, bottomSheet, etc) (3be3a527)
- dialog: transition in and out properly to/from click element (1f5029d0, closes #568)
- layout: make [hide] attr work properly with all device sizes (c0bbad20)
- mdMedia: support all prefixes: sm,gt-sm,md,gt-md,lg,gt-lg (c1cb9951)
- ripple: fixes an error caused when clicking on disabled checkboxes (8a1718d7)
- slider:
- tabs:
- toolbar: use accent color for buttons inside (12d458e3)
- tooltip: make it appear above dialogs (a3ce7d84, closes #735)
- layout: add both layout-margin and layout-padding attributes (5caa22b2, closes #830)
- toast: simple with content string: '$mdToast.simple('my-content')` (554beff3, closes #833)
- dialog: correct the opening position when opening from a button (22865394, closes #757)
- hide: make hide-gt-* attrs work properly with larger show attrs (7fc6b423)
- ripple: prevent null error while using ripple (6d81ded1)
This version introduces more breaking layout changes, ripple improvements, aria improvements, bug fixes, and documentation enhancements.
- button: add override for transitions on ng-hide (8fa652cf, closes #678)
- layout: add [flex-{sm,md,etc}] attr for 100% flex on screen size (7acca432, closes #706)
- ripple:
- sidenav: use flex display when opened (ae1c1528, closes #737)
- mdAria: checks child nodes for aria-label (d515a6c2, closes #567)
- mdBottomSheet: add escape to close functionality (d4b4480e)
- tabs: ink ripple color syncs with ink bar (9c56383b)
-
The -phone, -tablet, -pc, and -tablet-landscape attribute suffixes have been removed and replaced with -sm, -md, and -lg attributes.
-
hide-sm means hide only on small devices (phones).
-
hide-md means hide only on medium devices (tablets)
-
hide-lg means hide only on large devices (rotated tablets).
Additionally, three new attribute suffixes have been provided for more flexibility:
- hide-gt-sm means hide on devices with size greater than small (bigger than phones).
- hide-gt-md means hide on devices with size greater than medium (bigger than tablets)
- hide-gt-lg means hide on devices with size greater than large (bigger than rotated tablets).
See the layout options section of the website for up-to-date information.
(a659c543)
v0.6.0-rc1 releases the following changes:
- improvements to the ink Ripple effects
- namespace prefixing Material attributes
- revised the Layout system to be more intuitive and responsive
- added enhancements for modular builds and distrbution for each component
- improved minification and SHA tags for each deployed .js and .css file
- numerous bug fixes to improve stability, adds responsive features, and enhances API documentation.
- button: fix css for md-fab icon position when href is present (a7763fde, closes #591)
- card: make md-card themeable (55cdb5b7, closes #619)
- demos: dialog, bottomsheet, and toast now display within properly within the bounding d (5909f0a5)
- docs:
- layout: updates layout attributes in index template (669d0048)
- md-button: improve a11y: make title, aria-label work (ff576289, closes #512)
- ripple: fix ripple sometimes appearing when the element is disabled (58eaef49)
- sidenav:
- slider: update discrete slider thumb text while dragging (2877585e, closes #622)
- themes: bring blue, red, and green colors up to latest spec (de3ff4b8)
- layout:
- styles: add 'swift' css transitions to all components according to spec (15bb142c, closes #611)
- mdThemingProvider: add alwaysWatchTheme options, fix docs (0a404088)
- radioGroup: add up/down arrow navigation (367e47db, closes #538)
- tabs: add accessibility links between tabs and content (5d3bab56)
- bottomSheet: focus the first available button on open (768cc098, closes #571)
- interimElement: allow options.parent to be a selector (342051e0, closes #640)
- mdDialog: enhance show API with confirm() and alert() builder functions. (12b8cbc06.
See Demos JavaScript source
$mdDialog.show(
$mdDialog.alert()
.title('This is an alert title')
.content('You can specify some description text in here.')
.ariaLabel('Password notification')
.ok('Got it!')
.targetEvent(ev)
);
- To provide improved clarity and easier usages, the Layout system has been revised (d51a44c5).
See the updated Layout sections for details. We associate labels with specific breakpoints:
Label | Size (dp) | Attribute |
---|---|---|
Phone | 0 <= size <= 600 | layout-sm |
Tablet | 600 > size <= 960 | layout-md |
Tablet-Landscape | 960 >= size <= 1200 | layout-lg |
PC | > 1200 | layout-gt-lg |
Example 1: To use a horizontal layout and responsively change to vertical for screen sizes < 600 dp:
- For performance, the disabled attribute is no longer supported; instead the ng-disabled attribute is now read to check if a component is disabled. (2ece8cd7)
If you use the
disabled
attribute on a component to set whether it is disabled, change it to an ng-disabled expression. Change your code from this:<md-checkbox disabled></md-checkbox>To this:
<md-checkbox ng-disabled="true"></md-checkbox>
-
All material component attributes and are now namespaced with the
md-
prefix; these changes do not affect ng- prefixes or standard html5 prefixes (eb2f2f8a). Affected attributes:- <md-button md-no-ink="" >
- <md-content> (92b76435)
- md-scroll-x
- md-scroll-y
- md-scroll-xy
- <md-divider md-inset="" >
- <md-linear-progress md-buffer-value="someValue" md-mode="query" >
- <md-circular-rogress md-mode="query" md-diameter="60" >
- <md-sidenav>
- md-is-open="isOpen"
- md-is-locked-open="isLockedOpen"
- md-component-id="my-sidenav"
- <md-tabs>
- md-selected="selectedIndex"
- md-on-select="doSomething()"
- md-on-deselect="doSomething()"
- md-active="tabIsActive"
- <md-text-float md-fid="someId">
-
When using the
<md-button>
directive, the compiled element will now be a normal<a>
or<button>
element with the class="md-button" attribute. (d835f9ee)
Any css referencing the
md-button
element selector should now reference the.md-button
class selector. Change your CSS overrides from this:md-button { color: red; }To this:
.md-button { color: red; }
Version 0.5.0 introduces theming support, improves stability, adds responsive features, and enhances API documentation.
- theming: introduce theming support, documented at Theming Introduction (80768270)
- sidenav:
- mdAria: add better warnings (3368c931, closes #366)
- md-input-group: disable with ARIA (72bad32a)
- slider: slider default value in ng-repeat corrected (b652d863, closes #479)
- css:
- textFloat:
- colors:
- The
md-theme-*
classes have all been removed, in favor of themes. - Instead, use
md-primary
andmd-warn
classes on an element when a theme is set.
- The
- bottomSheet:
list
class has been renamed tomd-list
grid
class has been renamed tomd-grid
has-header
class has been renamed tomd-has-header
grid-text
class has been renamed tomd-grid-text
.
- button:
md-button-colored
class has been changed tomd-primary
andmd-warn
color classes.- All classes that start with
md-button-fab
now start withmd-fab
.md-button-fab
tomd-fab
.md-button-fab-top-left
tomd-fab-top-left
md-button-fab-top-right
tomd-fab-top-right
md-button-fab-bottom-left
tomd-fab-bottom-left
md-button-fab-bottom-right
tomd-fab-bottom-right
md-button-cornered
class has been changed tomd-cornered
md-button-icon
class has been changed tomd-icon
md-button-raised
class has been changed tomd-raised
- content:
md-content-padding
class has been renamed tomd-padding
. - dialog:
dialog-content
class has been removed. Use anmd-content
element instead.dialog-actions
has been renamed tomd-actions
- subheader:
md-subheader-colored
is nowmd-primary
. - textFloat:
- use of
<md-input-group>
is deprecated,<md-text-float>
markup can be used for most cases
- use of
- toast:
toast-action
has been renamed tomd-action
- toolbar:
md-toolbar-tall
class has been renamed tomd-tall
md-toolbar-medium-tall
class has been renamed tomd-medium-tall
- whiteframe: md-whiteframe-z* classes no longer set z-index, only shadow
This release adds support for the official Angular 1.3 release and includes improvements to both the document generator and component demos.
Note that
<md-input-group>
and<md-input>
are deprecated in favor on<md-text-float>
. While both directives are still available for more granular control, developers are encouraged to use the<md-text-float>
directive whenever possible.
- text-float: Add floating label text field (25cf6f1)
- Focus management for docs views (9afe28a8)
- bottomSheet: use position:fixed so it does not move (bfaf96d8)
- ripple: use contentParent scroll offset (4c0c50e4, closes #416)
- slider:
- subheader: sort items correctly in browsers that dont support true/false (d8e5079e, closes #438)
- tabs: remove tabs all at once on controller destroy (7237767d, closes #437)
Version 0.4.1 changes the prefix for all services and directives from 'material' to 'md'.
To migrate your code, replace all instances of 'material' in your project with 'md':
sed -i '' 's/material/md/g' $(echo my-material-project/app/**/*.{js,html,css})
Additionally, material-linear-progress
has been renamed to md-progress-linear
and material-circular-progress
has been renamed to md-progress-circular
.
angular-aria
is now a dependency. Be sure to include angular-aria.js before angular-material. See https://github.com/angular/bower-material#usage.
Version 0.4 incorporates four (4) new components: circular progress, subheader, tooltip and bottom sheet. A new API has also been introduced for $materialDialog
and $materialToast
. Additionally, many small component functionality and performance issues have been resolved.
v0.4 is tested on desktop Chrome, Safari and Firefox, as well as Android 4.4+ and iOS7.
The services $materialDialog
and $materialToast
have changed API(s). See section at bottom for Change Details.
- button:
- checkbox: resolve TypeError for inputDirective.link (4da56732)
- dialog: cancel instead of hiding when user escapes/clicks out (0cc21d47)
- interimElement: make cancel and hide not fail when no element is shown (6162156d)
- progress-linear: Add aria, tests and better animations (3b386276, closes #297)
- radio: Radio button a11y (05ed42de, closes #310)
- toolbar: Demo correct heading levels (fd7697d6)
- ripple:
- sidenav:
- slider: discrete mode supports live dragging and snap-to (b231f1c0, closes #331)
- textfield:
- progress-circular: Add circular progress component (07d56533, closes #365)
- subheader: add subheader component with sticky scroll (7787c9cc, closes #216)
- tooltip: add tooltip component (9f9b0897, closes #354)
- bottomSheet add bottomSheet component (3be359c)
#### Details on Breaking Changes
1) $materialDialog:
Change your code from this:
var hideDialog = $materialDialog(options);
hideDialog();
To this:
$materialDialog
.show(options)
.then(
function success(response) {},
function cancelled(reason) {}
);
// Hides the dialog last shown with `show()`
// and resolves the show() promise with `response`
$materialDialog.hide(response);
// Hides the dialog last shown and rejects the `show()`
// promise with the `reason`
$materialDialog.cancel(reason);
Note: If you previously provided a controller
option to $materialDialog
, that controller would be injected with a $hideDialog
function. This feature no longer exists; use $materialDialog.hide()
.
2) $materialToast:
Change your code from this:
var hideToast = $materialToast(options);
hideToast();
To this:
$materialToast
.show(options)
.then(
function success(response) {},
function cancelled(reason) {}
);
// Hides the dialog last shown with `show()`
// and resolves the show() promise with `response`
$materialToast.hide(response);
// Hides the dialog last shown and rejects the `show()`
// promise with the `reason`
$materialToast.cancel(reason);
Note: If you previously provided a `controller` option to `$materialToast`, that controller would be injected with a `$hideToast` function. This feature no longer exists; use `$materialToast.hide()`.
v0.0.3 includes many bug fixes, performance, and usability improvements to existing components, as well as introducing the slider, switch, divider, and linear progress components.
Additionally, accessibility support is added to material-button, material-checkbox, material-radio-button, material-slider, material-dialog and material-list. With added ARIA support including roles, states and properties, Angular Material directives now also communicate to users of assistive technologies. Additionally, tabIndex and focus management are handled dynamically where appropriate.
0.0.3 is tested on desktop Chrome, Safari and Firefox, as well as Android 4.4+ and iOS 7+. Also tested with VoiceOver on OSX and iOS7, ChromeVox, JAWS, NVDA and ZoomText.
- button: don't use angular transclusion at all, manual only (6b322729)
- card: make it use up proper width with margin (f33185ff, closes #247)
- demo: tab demos improved layout and accessibility (8915c324)
- dialog: use position:fixed instead of absolute (6ba874d8, closes #249)
- iterator: update add()/remove() logic (6a596b32)
- material-dialog: Focus mgmt, ARIA attributes (fe054ae6)
- material-list: Add semantics (6e48cd35)
- material-slider: Adds missing ARIA role (903cbc06)
- ripple:
- slider: watch ngDisabled expr on non-isolate parent scope (5f1923d5, closes #272)
- switch: correctly adjust when label will not fit on one line (e912a838, closes #80)
- tabs:
- make the ink ripple use the color of the ink bar. (c5ca159a, closes #280)
- don't paginate on initial load when width is 0 (5f5435d1, closes #271)
- use position: absolute container to fix ios bugs (7d0a282f, closes #220)
- Tab pagination/selection now works properly on iOS (3410650d, closes #220, #231)
- Tab pagination/selection now works properly on iOS (c77c0e26, closes #220, #231)
- remove window resize listener on $destroy (4b887f1e, closes #254)
- toolbar:
- add hammerjs dependency (e383e4f4)
- $materialToast: add swipe-to-close functionality (22285dc4)
- divider: add implementation of the divider component (e3aceeae, closes #194)
- docs: added support for the doc app to show its associated Git SHA id/link (02d2e5d2)
- progressLinear: Add linear progress indicator (f87d0452, closes #187)
- material-dialog: on open focus
.dialog-close
or the last button (8f756fc6, closes #222) - material-switch: add switch component (4975c743, closes #80)
- slider: add full-featured slider component (5ea4dbc2, closes #260, #31)
- switch: add focus styles (8878ca7a)
- tabs: improvements to pagination, disabled tabs, and tab navigation. (b4244bf3)