The chagnes in 0.14.0-rc1
and o.14.0-rc2
are also included as part of this release.
Have a look at them as well.
- [Docs] Migrated the following pages to use the new documentation standard:
- [Tabs] (#2515)
- [Snackbar] (#2562)
- [DropDownMenu] (#2565)
- [Card] (#2590)
- Added the following eslint rules:
- key-spacing (#2552)
- [SvgIcon] Improved the code generation tasks (#2606)
- [ES6] Use module everywhere (#2614)
- Added a temporary bootstrap project for ReactNative to pave the way for ReactNative support (#2611)
- Clean up CSS classes (#2630)
- [SelectField] [TextField] Fixed error styling issue (#2539)
- [TextField] Implemented optional underline (#2476)
- [AutoComplete] Migrated to use popover (#2634)
- [DropDownMenu] [SelectField] Deprecated
menuItems
, these components are now composable. (#2565)
- [Menu] Depreciation of the old menu, introduces a very small breaking change (#2443)
- [Dialog] Removed deprecated API (#2396)
- zIndex, rework them to be more coherent (#2444)
- Decoupled
Popover
animation from the component to increase flexibility (#2367) - [Tests] Migrated tests to use the new
react-addons-test-utils
package (#2401) - [Docs] Improvements to the documentation site (#2426, #2421, #2438, #2479, #2508)
- [Docs] Migrated the following pages to use the new documentation standard:
- [AppBar] (#2382) also where the new standard was introduced by @oliviertassinari
- [Avatar] (#2407)
- [Toolbars] (#2415)
- [Badge] (#2489)
- [Dialog] (#2483)
- [LeftNav] (#2507)
- Added the following eslint rules:
- react/jsx-indent-props (#2377)
- max-len (#2381)
- wrap-multilines (#2419)
- [Card] Use
preventDefault()
when handling expansion (#2495) - [CardHeader] Made
avatar
property optional (#2397) - [Checkbox] Now updates it's state when
checked
property changes (#2464) - [DatePicker] Fix year selection (#2410)
- [Dialog] Added
overlayStyle
property (#2431) - [Dialog] Added
width
property (#2387) - [Divider] Initial implementation. Thanks to @newoga (#2473)
- [DropDownMenu] Added
menuStyle
property (#2389) - [DropDownMenu] Now uses
Popover
(#2150) - [DropDownMenu] Now bubbles keyboard events (#2461)
- [FlatButton] Adjusted background, hover and ripple colors (#2488)
- [IconMenu] Added
open
andonRequestChange
properties (#2383) - [ListItem] Added option to toggle nested list items on primary action (#2390)
- [Menu] Fixed an error when children is only one child (#2402)
- [Menu] Remove absolute positioning (#2455)
- [Menu] Fixed issue when passed null children (#2429)
- [SelectField] Fixed the propagation of underline styles (#2405)
- [TableRow] Fixed a bug when unselectable rows could still be selected (#2503)
- The old menu components under the
material-ui/lib/menu
folder (#2443) - The
actions
property ofDialog
accepting a JSON is deprecated (#2483) - The
menuItems
ofLeftNav
and all the related properties are now deprecated in favor of composibility (#2507)
- [IconMenu] removed openDirection prop in favor of anchorOrigin and targetOrigin (#2149)
- Use ES6 import / export syntax over require (#2253, #2333, #2334)
- Dialog render-to-layer version (#2129)
- Add declarative props to LeftNav, deprecate methods (#2180, #2351)
- Add linting to test files (#2273)
- Support nested menu items using Popover (#2148)
- [DropdownMenu] add labelMember prop (#2285)
- Add new ESLint rules (#2293, #2314, #2319, #2348, #2360, #2365, #2366)
- Add unit tests for Dialog (#2298)
- [AutoComplete] Support changing searchText via props (#2306)
- [AutoComplete] dataSource prop is of type array (#2286)
- [AppBar] add titleStyle prop (#2324)
- [TimePicker] update as per spec (#2358)
- [Popover] add useLayerForClickAway prop (#2359)
- Fix wrong proptype for value in RadioButton (#2276)
- Make LeftNav swipeable only from far left / right (#2263)
- [TextField] allow rowsMax prop to equal rows prop (#2312)
- Fix Invariant Violation error in ClickAwayable mixin (#2296)
- [DatePicker] fix calendarTextColor context key (#2318)
- Fix and improve examples (#2344, #2345)
- [Dropdown][SelectField] change value PropType to React.PropTypes.any (#2352)
- [CardActions] prevent children styles from being overridden (#2361)
- Introduced SelectableEnhance HOC to wrap List with valueLink (#1976)
- Added color prop to LinearProgress and RefreshIndicator (#2206)
- [AutoComplete] new component! (#2187) (thanks @yongxu)
- [Table] added wrapperStyle prop to override table wrapper's styles (#2238)
- Updated SVG icons (#2240)
- [Table] added props for headerStyle, bodyStyle and footerStyle (#2246)
- Fixed double ripple due to compat mouse down (#2216)
- [RenderToLayer] iframe support for clickaway (#2210)
- [TextField] Fixed floating label element not allowing focus (#2228)
- [SelectField] onFocus and onBlur handlers passed to underlying TextField component (#2102)
- [Snackbar] add bodyStyle prop to style child div (#2104)
- [DatePicker] add container prop to display DatePicker in-line or inside Dialog (#2120 and #2153)
- [AppBar] add relative positioning for z-index to take effect (#1478)
- [AppBar] add onTitleTouchTap prop to AppBar (#2125)
- [Popover] new component! (#2043) (thanks @chrismcv)
- Split [SelectField] and [TextField] doc pages (#2161)
- [SelectField] onChange triggered consistently when using value prop (#1610)
- [Dialog] fix page scrolling behind dialog after resizing (#1946)
- [DatePicker] fix calendar height (#2141)
- [TimePicker] allow to set time to null (#2108)
- Add tabs with slide effect (#1907)
- Universal rendering support (#2007) (thanks @Cavitt)
- Add labelPosition prop to buttons (#2014)
- Add RenderToLayer component (#2042) (thanks @chrismcv)
- Open state of of dialog now controlled through props (#1996)
- openImmediately, show(), dismiss() deprecated
- Update TextField docs (#2070)
- New Badge component (#2045) (thanks @rhythnic)
- Add import statements to components' docs pages (#2113)
- Fix server side rendering (#2021)
- Add key to TableHeaderColumn for selectAll (#2030)
- Fix Circular Progress transition (#2047)
- Fix Snackbar getting stuck when receiving new props (#2024)
- iPad enhanced textarea fix (#1720)
- Table clickAway triggers onRowSelection (#2054)
- Theme color fixes for Slider and Toggle (#2016)
- [SVGIcons] added index.js and index-generator script (#1959)
- [TimePicker] openDialog() function (#1939) and autoOk prop (#1940) added
- [DatePicker] i18n support added (#1658)
- [LeftNav] supports nested children (w/o menuItems) (#1982)
- [Snackbar] updated for new specification (#1668)
- [Tabs] added tabTemplate prop (#1691)
- [TextArea] height issue fixed (#1875)
- [GridList] doc added (#1948) with code examples (#1988)
- [TextField] fixed custom theme color hiding backgroundColor (#1989)
- [TimePicker] added style and textFieldStyle props (#1949)
- [Card] text color is now pulled from theme (#1995)
- Material-UI for React 0.14.x
- FloatingActionButton now has iconStyle prop (#1575)
- Card title and subtitle props can be any node (#1950)
v0.12.4 should have really been v0.13.0 as it breaks compatibility with React 0.13.3. This version fixes that. We reverted some commits (related to React 0.14.0 support) from v0.12.4 to bring to you v0.12.5 that works as expected.
- DatePicker performance has been improved (#1905)
- Docs code now follows ESLint rules more strictly (#1778)
- Removed duplicate keys in component definitions (#1933)
This version is not compatible with React 0.13.x. If you're on React 0.13.x, use Material-UI v0.12.5 instead.
- React 0.14 compatible
- ThemeDecorator supports props (#1841)
- Full RTL support included (#1674)
- react-draggable dependency removed for Slider (#1825)
- Quick-fix version until react 0.14 support is somewhat stable
- Changed react dependency to ~0.13 in package.json (#1836)
- NEW GridList component and documentation! Thanks to @igorbt (#1320)
- Added back canvasColor to theme palette (#1762)
- Added hintStyle prop to TextField (#1510)
- Add isScrollbarVisible function to table (#1539)
- Add rowsMax prop to EnhancedTextarea (#1562)
- Tab "item three" renamed on docs site (#1775)
- Fixed docs server to run on Windows (#1774)
- FlatButton now has a backgroundColor prop (#1561)
- Fixed DropdownMenu buggy value prop check (#1768)
- Fix broken documentation site
- Fix theme display switch problem in doc (#1696)
- Fix typo in src/card-expandable.jsx (#1724)
- Fix broken link to v0.12.0 release tag
- Use correct require calls
- for react addons (#1729)
- for raw themes (#1742)
- Remove hard-coded color values from theme-manager
- Use consistent values from raw theme (#1746)
- Theming has been re-done so that material-ui components can be used without having to worry about passing a theme (all components implement a default theme) (#1662)
- There's now a concept of
mui theme
andraw theme
,mui theme
is produced fromraw theme
ThemeManager
has been changed, no longer needsnew
in callThemeManager
producesmui theme
fromraw theme
. Raw themes may be user-defined.- Functions in
ThemeManager
allow to modify theme variables. Component-level styles may be overriden in themui theme
. - See new documentation here
- There's now a concept of
- Function names in the context-pure mixin have been changed (#1711)
getContextProps()
has been changed togetRelevantContextKeys()
- Updated dependency of
react-tap-event-plugin
(#1714)
- Dialog component (#1717)
actions
now hasid
property- Fixed a bug in dialog where a faulty check caused an error in console
- Text field ipad scrolling in dialog
- DatePicker - Updated to new design specs (#1266)
- LeftNav - Fix sidebar position for browsers that don't support transform3d (#1269)
- TextField - Added props to override underlineStyle when disabled (#1493)
- The Table component is now composable. (#1199)
- JSON objects to create the table and the table component will no longer generate the table for you. The docs site provides a complete example of how a table might look: http://material-ui.com/#/components/table. The example also includes a 'super header' and 'super footer' row.
- Upgrade Path: Instead of passing in the raw JSON data, you'll need to generate the appropriate TableHeader/TableRow/TableHeaderColumn components and pass them in as children. The same should be applied to the rowData and the footer.
- Tabs can now be controlled. In order to make this work we had to change the parameters being passed back to
the
onChange
event to:onChange(value, e, tab)
. Where value is the value of the tab that it was changed to, e is the event, and tab is the actual tab component. (#1232, #1235) - Added a new
static
flag to the ThemeManager that defaults totrue
. If you're mutating your theme variables after the app initializes, set this flag tofalse
. This will allow us to perform some optimizations to components that require theme variables. (#1397) - ListItem (#1438, #1105)
- Nested list items should no longer be passed in as children. Use the
nestedItems
prop instead. - The
open
prop has been renamed toinitiallyOpen
.
- Nested list items should no longer be passed in as children. Use the
- Removed classable mixin
- This mixin was no longer used in the library. Removing it allowed us to get rid of the
classnames
dependency. If you were using this mixin in your own projects, you'll need to pull the source and manually include it.
- This mixin was no longer used in the library. Removing it allowed us to get rid of the
- Buttons - Fixed a bug that caused buttons to not gain keyboard focus in some cases (#1485, #1453, #1458)
- Card
- Properly merge
CardAction
andCardExpandable
styles. (#1376) - Added Right-To-Left support to
CardExpandable
. To use this, setisRtl
totrue
in the theme. (#1408)
- Properly merge
- DatePicker - Fixed an error that occurred when using valueLink (#1400)
- DropDownMenu - Added
disabled
prop (#1406) - FlatButton - Added
labelPosition
prop. (#1286) - InkBar - Added color prop and inkBar.backgroundColor to theme variables. (#1244)
- Ripple
- Fixed display glitch on Safari (#1420)
- Fixed an error when ripples were unMounted (#1416)
- SelectField
- Added
floatingLabelStyle
prop (#1463 #1450)
- Added
- Slider
- Fixed a bug when setting the width attr (#1368)
- Fixed a bug with disabled sliders (#1417)
- Fixed a focus style glitch and other style problems (#1448, #1451, #1468)
- Snackbar - Added onShow and onDismiss (#1390)
- Table - Ensure that the table component properly keeps track of selected rows (#1325)
- TextField
- Added
underlineFocusStyle
prop (#1422, #1419) hintText
can now be astring
orelement
(#1424, #1202)
- Added
- TimePicker
- Fixed a bug that caused the am/pm selector to switch (#1440)
- Fixed a bug that caused defaultTime to not be set (#1466)
- Tooltip - Probably center tooltips when tooltip text changes (#1205)
- Theme - Added
setContentFontFamily
(#1405)
- TouchRipple - Fixed a bug that caused onClick to not fire on the first click (#1370)
- We've set up the project to perform automated tests - now we just need to increase our test coverage. :) (#1331)
- The style auto-prefixer now caches browser test results so that it only has to perform them once.
- RefreshIndicator (#1312)
- AppBar - showMenuIconButton now only affects the icon next to the title (#1295, #1182)
- CardMedia - CardMedia children styles are now being properly merged (#1306)
- Dialog - fixed a bug that caused the dialog height to be incorrect on window resize (#1305)
- FloatingActionButton - Added backgroundColor and disabledColor props (#1329)
- FocusRipples now only get rendered when needed.
- IconMenu - Added isOpen() (#1288)
- LeftNav
- Added menuItemClassName, menuItemClassNameSubheader, menuItemClassNameLink props (#1318)
- Fixed a display problem that cuased icons to not be the correct color (#1324)
- ListItem - fixed incorrect styling on disabled list items (#1350)
- SelectField
- Fixed a bug that happened when select field was controlled and the value was undefined (#1227)
- Fixed error text positioning (#1341, #1111)
- Added errorStyle prop (#1341)
- Snackbar - Clickaway is now properly bound when openOnMount is true (#1327)
- Tabs - Added contentContainerClassName prop (#1285)
- TextField - Added underlineStyle prop (#1343)
- TimePicker - Added pedantic prop (#1275, #1173)
- Changed
date-picker/index.js
to expose DatePicker and DatePickerDialog. Hencerequire('material-ui/lib/date-picker')
no longer works. Userequire('material-ui/lib/date-picker/date-picker')
instead.
- Replaced onMouseOver / onMouseOut with onMouseEnter / onMouseLeave to achieve hover affects. This prevented extra unnecessary renders from happening. (#1190)
- All svg icons inside the /svg-icons folder now uses the PureRenderMixin.
- Added tests, build process, file template, and file suffix (#1130, #1127, #1126, #1125, #1139)
- AppBar - Fixed a styling bug in Safari (#1226)
- Cards can now expand and collapse (#1060)
- DatePicker
- Allow using DatePicker as a controlled input (#1170)
- Added valueLink support and openDialog() (#1213)
- Fixed a bug that caused dates to get selected when switching months (#1243)
- Avoid handling keyboard events when calendar is not active (#1245)
- Fixed display glitch on Firefox (#1242, #1248)
- Dialog
- Hitting the ESC key no longer closes the window if modal is set to true (#1187, #1162)
- The onShow event now called after all contents in the dialog have been rendered. (#1198)
- DropDownMenu - Clicking away no longer triggers other click events to happen (#1177, #1174)
- FocusRipples now only render when actually shown.
- IconMenu
- Fixed a bug that caused a scrollable menu to jump after selecting an item.
- Fixed keyboard focus when user hits ESC.
- LeftNav
- Added some Perf improvements (#1184)
- Fixed a bug that caused onNavOpen to sometimes not fire (#1225)
- Added disableSwipeToOpen prop (#1279)
- Menu
- Performance improvements when opening a menu.
- Added animated prop.
- RaisedButton - Fixed a bug that caused rounded corners not to round (#1048)
- SelectField - Now passes the index and payload back in the onChange callback (#1193, #1194)
- Slider - Fixed a bug that caused value to not be set correctly (#1251)
- Snackbar - Extra props are now being passed down to the root (#1260)
- SvgIcon - Added code to remove some unnecessary renders on hover.
- Toolbar - Fixed display glitch on Firefox (#839, #1248)
- CircularProgress - Fixed animation bug in Safari (#1093, #863)
- Dialog
contentClassName
is now being passed down to the appropriate child (#1122)- Fixed max height on vertically scrollable dialogs (#1153, #1100)
- DropDownMenu
- Fixed display height (#1123)
- Fixed display height when menu items change (#1145)
- IconMenu - Added
closeOnItemTouchTap
prop (#1156) - LeftNav - Performance improvements during show/hide (#1137)
- SelectField -
errorText
is now being passed down to underlyingtextField
(#1131) - Table - Added static width to checkbox columns (#1128)
- Tabs - Added
inkBarStyle
prop (#1154) - TextField -
errorStyle
prop is now being properly merged (#1116)
- Removed
input.jsx
file. This component was deprecated long ago, but was never removed from the project. - Buttons now default to a type of
button
instead of the browser's default ofsubmit
. We found that most of the buttons in our apps were not submit buttons and it was more intuitive to default tobutton
. If you need a submit button, be sure to pass in a type ofsubmit
. (#1017) - The
DialogWindow
component was refactored intoDialog
.DialogWindow
was never documented and was just a lower level component that was used byDialog
. It was, however, exposed on the mainindex.js
and has since been removed. If you were usingDialogWindow
before, you should be able to safely useDialog
instead.
- SvgIcons & Icon Builder
- We've created SvgIcon versions of all the
material-design-icons. These SvgIcon
components can be found in the
/lib/svg-icons
directory and were not added to the mainindex.js
file. To use these icons, require them directly:require('material-ui/lib/svg-icons/action/face')
. These icons were created using a script that crawls the icon repo and generates the appropriatejs
andjsx
files and can be found in the/icon-builder
directory.
- We've created SvgIcon versions of all the
material-design-icons. These SvgIcon
components can be found in the
- Menu, MenuItem, MenuDivider
- This is a new implementation of menus and menu items. With it comes:
- better composability
- scrollable menus
- better transitions
- better keyboard access
- selectable with value and valueLink
- We're working on migrating some of our other components to use this new implementation. Until that's
thats done, require these components directly if you'd like to use them:
require('material-ui/lib/menus/menu')
.
- This is a new implementation of menus and menu items. With it comes:
- IconMenu
- This component replaces
DropDownIcon
and has all of the new menu features mentioned above.
- This component replaces
- AppBar
- IconButton styles are now being properly merged (#967)
- FlatButtons are now being properly styled (#967)
- AppCanvas - AppBar child styles can now be overridable (#903)
- Avatar - Added
size
prop (#945) - CardMedia - Styles are now being properly merged using the
mediaStyle
prop (#1004) - CircularProgress - Added
color
andinnerStyle
prop (#928) - DatePicker
- Prevent root styles from propagating to child input (#991)
- Fixed DatePicker year/month navigation buttons (#1081, #1075)
- Dialog
- Window scrolling is now enabled on unmount as well (#946)
- Allow dialog window to scroll for long content (#1045, #525)
- Drastically improved dialog performance (#1059)
- Dialogs now honor modal property. (#1092)
- Fixed vertical centering on smaller screen sizes (#1095)
- FloatingActionButton - Now accepts
FontIcon
andSvgIcon
as children (#967, #894) - FontIcon - Now supports
material-icon
ligatures (#952, #1007) - IconButton
- Added
tooltipPosition
prop (#921) - Added
tooltipStyles
prop (#1010, #1005) - Pass iconStyle props to every children (#967)
- Now supports
material-icon
ligatures (#1024, #1013)
- Added
- LeftNav - Fixed swipe gesture to open / close (#868, #848, #998, #997)
- List - Added
zDepth
prop. - ListItem
- Fixed display glitch on touch devices (#858)
- List items can now be keyboard focused
- Allow drop downs to be displayed inside a list item (#978)
- Fixed a bug that caused rightIconButton events to not propagate (#1055)
- List Items can now be nested (#918)
- Added
primaryText
prop (#1073)
- Menu
- Fixed a bug that caused closed menu to be selectable (#913)
- Fixed menu height and width when menu items change (#1012, #805, #1014)
- Subheader styles are now being properly merged (#950)
- MenuItems now properly renders icons (#956)
- Overlay
- Added to main
index.js
(#955) - Fix issue where Overlay can prevent the body from scrolling (#1058, #897)
- Added to main
- RaisedButton
- Fixed a display glitch when changing the button's height (#937, #765)
- Added
backgroundColor
,labelColor
,disabledBackgroundColor
,disabledLabelColor
props (#965) - Added
fullWidth
prop (#989)
- SelectField
- Fixed menu and error text display glitches (#922)
- Added hint text functionality (#966)
- Fixed display problem when
floatingLabelText
is set (#976) - Fixed font size (#1027)
- Slider
className
can now be set (#938, #713)- Added min/max prop validation (#1070, #899)
- Snackbar
- Root styles are not being merged properly (#925)
- Added
autoHideDuration
prop (#1050, #958) - Clicking slider track advances the slider knob. (#1089, #1074)
- Table
- Fixed
displayRowCheckbox
prop (#935) - Table rows can be selected in the rowData configuration (#1023)
- Removed duplicate table calls and support multiple tables (#954, #1087, #1084)
- Fixed
- Tab - Added
contentContainerStyle
prop (#953) - Tabs - Fixed a bug that caused inkbar to not display properly (#1015, #940)
- TextField
- Fix error when setting the value of the textfield
input
. (#959) - Style fixes for floating label (#980)
- Fixed display glitch for long hint text and error text (#987, #438, #439)
- Fixed display problem when value is 0 (#1090)
- Added
errorStyle
prop (#1079)
- Fix error when setting the value of the textfield
- TimePicker - Fixed key warnings (#1018)
- Toolbar
- Fixed display glitch with DropDownIcons (#917, #904)
- Styles are now being properly merged for
DropDownMenu
,DropDownIcon
,RaisedButton
,FontIcon
(#965)
- SelectField (#846)
- Card, CardActions, CardHeader, CardMedia, CardText, CardTitle (#857)
- Table (#890)
- AppBar - Long AppBar titles now render ellipses (#875)
- Buttons
- Added containerElement prop (#850)
- Fixed styling for disabled link buttons
- DropDownMenu - Added keyboard functionality (#846)
- FontIcon - Added color and hoverColor props
- ListItem
- Fixed display problem with Single line checkboxes (#854)
- Added rightIconButton prop
- Slider - Added step functionality (#860)
- Switches - Added labelStyle prop (#871)
- SvgIcon - Added color and hoverColor props
- TextField - Made element styles overridable (#864)
- TimePicker
- Fixed clock functionality for various browsers (#840)
- Fixed clock numbers positioning for Safari (#870)
- Fixed clock handles on Android Chrome (#873)
- Toggle
- Made element styles overridable (#855)
- Fixed style bug on IE 10, 11 (#885)
- Toolbar - Fixed error when a child element is null (#847)
- Theme spacing can now be overriden (#879)
The following components have been modified to allow for style overrides: Radio Button Group, Radio Button, Enhanced Switch Label, Text Field, Toggle, Checkbox (#807)
- List, ListItem, ListDivider, Avatar (#836)
- Checkbox - Added checkedIcon and unCheckedIcon props. This is useful to create icon toggles.
- Dialog - Fixed a bug with the open immediately flag (#810)
- DropDownIcon - Added support for icon ligature (#806)
- Menu - Fixed a style problem (#843)
- RadioButtonGroup - Fixed a bug with mapping Radio children (#820)
- Slider - Fixed a glitch that happened when click on the slider handle (#833)
- TextField - Added fullWidth prop (#827)
- TimePicker
- Fixed a bug with the defaultTime setting (#822)
- Fixed clock handles on Firefox (#825)
We've cleaned up some of our click/tap events. (#771) Upgrade should be straight forward, please see below:
- DropDownIcon - closeOnMenuItemClick has been replaced with closeOnMenuItemTouchTap.
- Menu - onItemClick has been removed; use onItemTap instead.
- MenuItem - onClick event has been removed; use onTouchTap instead.
- ClickAwayable is now bound to onTouchTap instead of onClick (#766)
- AppBar will now render its children (#725)
- DatePicker will now properly handle defaultDate prop changes (#722)
- Dialog actions now respond to onTouchTap (#752)
- LeftNav
- Fixed line height style bug (#742)
- Fixed a bug that caused the LeftNav to immediately close on iOS full screen mode (#751, #366)
- Menu
- Will now adjust its height when props change (#544, #203)
- MenuItemStyle prop is now passed down to nested menus (#802)
- RadioButtonGroup can now have its styles overridden (#768)
- RaisedButtons - Fixed a bug that caused incorrect transitions (#731, #702)
- SvgIcon - ViewBox can now be passed in as a prop (#747)
- Tabs - Components inside tabs now keep their state when switching between tabs (#700, #450)
- TextField
- Multi-line text fields can now be initialized with a certain number of rows (#693)
- Fixed style bug that caused width to not be set on disabled text-fields
- Fixed style bug that caused focus underline to be black
- Fixed style problem that caused text to jump on multi-line inputs
- Theme (New)
- This is a high order component that can be used to set your theme overrides (#797)
- Refactored all CSS into Javascript (#30, #316)
- All Material-UI components now have their styles defined inline. This solves many problems with CSS as mentions in @vjeux's presentation such as polluting the global namespace with classes that really should be component specific. In addition to the benefits mentioned in the presentation, inline styles allow Material-UI to become CSS preprocessor agnostic and make Themeing much more dynamic and simple. Read our CSS in JS discussion
- Upgrade path:
- If you are overriding component CSS classes: Redefine your overrides as
an object following React's inline styles format,
then pass it into the material-ui component via the
style
prop. These changes are applied to the root element of the component. If you are overriding a nested element of the component, check the component's documentation and see if there is a style prop available for that nested element. If a style prop does not exist for the component's nested element that you are trying to override, submit an issue requesting to have it added. - If you are using any of Material-UI's Less files: These files have been
refactored into their own javascript files
and can be accessed like so
var FILENAME = require('material-ui').Styles.FILENAME;
. Material-UI has moved away from being a CSS Framework to being simply a set of React components.
- If you are overriding component CSS classes: Redefine your overrides as
an object following React's inline styles format,
then pass it into the material-ui component via the
- Paper component no longer generates nested divs (#601)
- This allowed us to simplify styling of paper containers. As a result, styling the inner div is no longer necessary.
- Themes have been added (#202)
- Requiring individual components is now supported (#363)
- An example would be:
var SvgIcon = require('material-ui/lib/svg-icon);
- The
/lib
folder in Material-UI contains the file structure needed when referencing individual components.
- An example would be:
- Date Picker
- Added AutoOK Prop (#658)
- Added ability to specify min and max dates (#658)
- Added Year Selector (#658)
- Dialog now repositions on screen resize (#597)
- Left Nav will now close with a swipe gesture (#614)
- Linear and Circular Progress Indicators - NEW (#632)
- TimePicker - NEW (#589)
- Removed deprecation warnings by replacing
this.getDOMNode()
withReact.findDOMNode()
(#558) - Replaced
process.NODE_ENV
withprocess.env.NODE_ENV
(#573)
- DropDownMenu
- Fixed
props is not defined
error whenonChange
is invoked (#556)
- Fixed
- Floating Action Button
- Fixed alignment bug on Chrome when using FAB as a link (#574)
- Updated to react v0.13
- AppBar
- Fixed IE toString.Call() issue (#518, #468)
- Buttons
- Button events now do not fire on disabled buttons (#512)
- Fixed rapid keyboard tabbing issue (#528)
- DatePicker
- Added autoOk, minDate, and maxDate props (#538)
- Dialog
- Fixed IE toString.Call() issue (#518, #468)
- Added modal prop (#523)
- Fixed warnings caused by overwriting props (#500)
- Added ability to give an action button autofocus (#552)
- DropDownMenu
- Handle selectIndex less than 0 (#480)
- Fixed issue of using this component outside strict mode (#533)
- LeftNav
- Added onNavOpen & onNavClose events (#495)
- Switches
- Fixed errors on disabled switches on mobile (#476)
- Updated mui to use peer dependency changes (#471)
- Replaced
DOMIdable
withUniqueId
(#490)
- Dialog
- Changed
title
prop to accept node types instead of just strings (#474)
- Changed
- Link Menu Item
- Fixed anchor attribute name (#493)
- Menu
- Nested menus expand when hovered (#475)
- Updated react-draggable2 dependency (#391)
- Updated react and peer dependecies to React v0.13 (#452)
- Date Picker
- Added
onShow
andonDismiss
props (#399)
- Added
- Dialog
- Fixed scrolling issue when opened immediately (#406)
onShow
is now called when opened immediately (#453)
- Flat Button
- Disabled primary buttons use disabled styling over primary (#432)
- Floating Action Button
- Fixed zdepth to update when
disabled
prop changes (#390) - Disabled secondary buttons use disabled styling over secondary (#432)
- Fixed zdepth to update when
- Left Nav
- Scrolling is prevented when displayed (#406)
- Menu
- Menu and menu-related components have been moved into
js/menu/*
(#402) - Added LinkMenuItem component (#402)
- Menu and menu-related components have been moved into
- Menu Item
- Added
disable
prop (#402)
- Added
- Overlay
- Now control scroll un/locking. (#406)
- Paper
- Added
innerStyle
prop (#418)
- Added
- Raised Button
- Disabled primary buttons use disabled styling over primary (#432)
- Tabs
- Added
initialSelectedIndex
prop (#389)
- Added
- Allow removal of debug code in production builds (#349)
- AppBar
- Fixed a styling bug that caused icons not to show (#336)
- Title prop can now be an element (#361)
- Added iconClassNameLeft, iconElementLeft, iconElementRight props (#367)
- Date Picker
- Fixed a bug that caused the date picker dialog window to ghost on small screen widths (#342)
- Dialog Window
- Window no longer loses scroll position after opening a dialog window. (#386)
- DropDown Icon
- Added closeOnMenuItemClick prop (#376)
- Flat Buttons
- Fixed a styling bug with touch ripples.
- Icon Buttons
- Fixed a styling bug with touch ripples. (#341)
- Menu Item
- Link targets can now be set on menu items. (#350)
- Slider
- Fixed percentage calculation in getInitialState (#382)
- Tabs
- The onChange event now passed in the tabIndex, and tab to the callBack (#384)
- Text Field
- Added onEnterKeyDown prop. (#328)
- Fixed a bug with setting multiLine values (#356, #357)
- Removed Icon component - Replaced with FontIcon and SvgIcon (#318, #125, #148)
- The main motivation here is to give developers more control over which font icons to include in their project. Instead of automatically including all material design icons in material-ui, developers can now create their own custom icon font file and just pass the icon className into the FontIcon component. Read more about FontIcons.
- Upgrade path:
- If you were using the Icon component before, you'll need switch to either using FontIcon or SvgIcon. For FontIcon, create a custom font file and include it in your project and just pass the Icon className into the FontIcon component. For SvgIcon, create a new React component that represents that particular icon. This will allow you to package your icons inside your js files. Examples can be found here.
- Additionally, all components that had an icon prop now take an iconClassName prop instead. These include FloatingActionButton, IconButton, Menu, MenuItem, and DropDownIcon.
- All jsx files are now being compiled before publishing to npm. (#179, #215)
- Buttons
- Fixed a bug that cause onClick to not fire in Safari (#307)
- You can now pass down children into all buttons. This allows you to add icons to flat and raised buttons or to add a file input element. (#323, #189)
- Menu Item
- Fixed toggle display bug (#298)
- Toggle props can now be passed in (#299)
- Slider
- Removed inline style @import (#218)
- Switches
- Switches now support focusability and can be focused/changed via keyboard inputs. (#292)
- Added focus and touch ripple animations.
- All switches use the labelPosition prop (as opposed to labelPositionRight), including RadioButtonGroup.
- Added innerClassName prop. (#309)
- Tabs
- Fixes width transition for ink bar (#280)
- Text Field
- Fixed a bug with using valueLink with a multiline Text Field (#311)
- Fixed a bug with multiline defaultValues in a multiline Text Field (#296)
- Checkbox & Toggle
- Fixed a bug that caused checkboxes and toggles to not uncheck.
- Fixed dependencies to prevent multiple versions of React getting loaded on the docs site (#194)
- Input - Please use TextField instead.
- Radio Button Group
- This component was created to make it easier to work with groups of radio buttons (#151)
- Tabs
- Added new Tabs component.
- TextField
- This component replaces Input. It extends the native input element and will support all of its props and events. It also supports valueLink and can be controlled or uncontrolled.
- MultiLine text fields now grow and shrink as the user inputs data.
- Allow for both floating labels and hint text in the same input.
- Floating labels now generate a label element.
- AppBar
- Added icon prop. (#250)
- Checkbox
- Checkbox styling now matches material design specs
- This component has been revamped and can now be controlled or uncontrolled.
- Date Picker
- Fixed a bug with getDate() (#196)
- Added onChange prop (#198)
- Dialog
- Actions can now be passed in as an array of react elements. (#241)
- Menu Item
- Menu Items now respond to onTouchTap
- Radio Button
- Radio Button styling now matches material design specs
- This component has been revamped and can now be controlled or uncontrolled.
- Slider
- Fixed a css bug with slider handles (#225)
- Added onDragStart and onDragStop props (#217)
- Snackbar
- Fixed Ghost hidden snackbar (#235)
- Toggle
- This component now extends a native input checkbox.
- It can now be controlled or uncontrolled.
- Toolbar
- Fixed FlatButton positioning inside toolbar (#224)
- Removed lesshat dependency. Be sure to change your build process to include an autoprefixer.
- Buttons
- Ripple animations are much faster now. The animation starts onMouseDown or onTouchStart and completes onMouseUp or onTouchEnd. Now we can spam buttons all day long. :)
- Spacebar key up triggers button clicks. (#155)
- Slider
- Changed slider cursor (#187)
- Snackbar (New)
- Added a snackbar component.
- Updated to react 0.12.2; browserify 7.0.3
- Fixed ripple animation on Firefox (#129)
- Updated red, green, and blue color variables to match specs (#177)
- Buttons
- Added secondary button colors
- Removed underline styles on link buttons (#172)
- Date Picker (New)
- Added new date picker component.
- Dialog version is implemented, inline version to follow in upcoming release.
- Has both portrait and landscape modes.
- Keyboard support: arrow keys advance dates, shift+arrow advances month.
- Dialog
- Dialog actions now generate buttons with secondary colors.
- Added contentClassName prop. This is used to style the actual dialog window. For example, setting its width.
- Dialog contents no longer are removed from the DOM when the dialog is dismissed.
- Disabled scrolling when the dialog window is open.
- Input
- Added disabled input styles (#140)
- Added blur() method
- Added support for email input type (#170)
- Fix textarea placeholder focus exception (#170)
- Added mui-is-not-empty class when the input isn't empty (#170)
- Slider
- Trigger onChange when clicking on slider (#153)
- Removed PaperButton - Use FlatButton, RaisedButton, or FloatingActionButton
- Removed Roboto font import (#104) - Be sure to include the Roboto font in your project.
- Added react-draggable2 dependency
- Buttons
- Added linkButton functionality (#130)
- Icon Buttons
- Added tooltip functionality
- Input
- Added method to set focus
- Left Nav
- Added method to open left nav panel
- Radio Button
- Added defaultChecked prop
- Slider (New)
- Added slider component
- Toggle
- Updated styles to match material design specs
- Added a basic example project in /example
- Dialog
- Actions are now real buttons
- Added transitions
- Prefixed classNames with mui
- Cleaned up styles
- Input
- Fixed a bug that caused placeholder to not show on focus (#112)
- Placeholders can now be displayed in-line by setting inlinePlaceholder to true.
- The initial number of rows can now be set with the rows prop.
- Toggle
- Fixed alignment issue (#118)
- The inital state of the toggle can now be set with the toggled prop.
- Upgraded dependencies: react 0.12.1, browserify 6.3.3, reactify: 0.17.1
- Dialog
- Added key prop to dialog actions. (#99)
- Added onDismiss event callback. (#86)
- Dialog is now positioned onMound and onUpdate (#85)
- Fixed a bug that cuased dialog to not be vertically centered on long pages
- Dropdown Menu
- Added autoWidth prop (#89)
- Menu
- Added autoWidth prop
- Nested Menu
- Fixed bug that caused some nesteed menus to not show. (#88)
- Paper
- Updated to use spread operator
- Radio Button
- Fixed radio button label styles. (#94)
- Ripple
- Account for page scrolling on ripple animation. (#93)
- Removed browserify react addons alias. (#68)
- FlatButton, RaisedButton, and FloatingActionButton (NEW)
- These buttons will replace the current PaperButton which will be depreciated in v.0.4.0.
- They generate actual button tags, are keyboard focusable and listen to onTouchTap. (#50, #61)
- Icon Button
- Pressing enter when the button is in focus now fires onTouchTap
- Added dark theme ripple colors
- Focus and click animations now use Scale Transforms to improve performance.
- Input
- Added support for ReactLink and use JSX spread attributes
- Error messages are now props instead of internal states (#95)
- LeftNav
- Pressing ESC now closes the left nav
- PaperButton
- Will be depreciated in v.0.4.0.
- Radio Button
- Fixed toggle bug. (#70)
- WindowListenable is now available from Mixins.WindowListenable
- Added KeyCodes constants
- Updated Browserify & Reactify versions
- Enabled reactify es6 transformations
- Removed jQuery dependency (#25)
- Added reaact-tap-event-plugin dependency
- Dialog
- Width is now determined by content
- Position is centered horizontally inside parent container
- Pressing Esc now closes the dialog (#35)
- Dropdown Menu
- Added underline (#39)
- Fixed display problem on double click (#43)
- Icon
- Transfer all props to underlying span
- Icon Button (New)
- Buttons...that are icons. :)
- Input
- Added required, min, max and step
- LeftNav
- Fixed left nav style when docked (#36)
- Transition now uses translate3d instead of left
- Overlay now listens to onTouchTap
- Menu Items
- Added user select none styles (#45)
- Paper
- Added onMouseOver & onMouseOut props
- Toolbar
- Items are now passed in as children instead of groupItem prop
- Added WindowListenable. Allows listening to window events.
- Added Dom and Events utility functions
- Fixed a bug that caused CSS Events to bind twice
- Added media query variables
- Added no-wrap mixin
- Removed unnecessary style resets
- Removed tab highlight color on all elements
- Changed project structure to be less confusing. Material-UI components/styles live in the src directory. Docs site code lives in the docs directory. This still allows us to easily test components in the docs site as we are working on them
- Added .editorconfig to help keep code formatting consistent among contributors. See http://editorconfig.org/
- Fixed drop down display issue in safari
- Fixed nested menu arrow icon
- Added hover transitions to menus
- Improved ripple animation on buttons
- Fixed icon font reference. We're now including it as part of the project instead of an npm dependency.
- Icon
- Added all font icons from the unoffical material design icon font: https://github.com/designjockey/material-design-fonticons
- All icon names had to change because of this. Sorry. :(
- PaperButton
- Added href prop
- Css fixes
- Dialog
- Added onShow event
- Children contents of the dialog is only rendered if the dialog is opened
- LeftNav
- Fixed a bug that caused docked LeftNav component to close on menu click
- Removed isInitiallyOpen prop
- Input
- onLineBreak event now passes back event (e) on callback
- css fix on paper component
- hover transition fix on buttons
- removed selected state on drop down icon component
- css fix on left nav component
- added prop on left nav component to allow left nav to be docked and hidden