<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/mui-org/material-ui/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h2 dir="auto">Expected Behavior</h2>
<p dir="auto">Modal should have smooth transitions on open and close or give users the ability to add them.</p>
<h2 dir="auto">Current Behavior</h2>
<p dir="auto">Currently in your <a href="https://material-ui-next.com/demos/modals/" rel="nofollow">Modal example</a>, there is a short transition in and when closing a modal the content pops off the screen. Your standard transitions for the backdrop are being cut off as well, as I'm assuming the modal is killing itself before transitions finish.</p>
<p dir="auto">Looking at <a href="https://github.com/mui-org/material-ui/blob/v1-beta/src/Modal/Modal.js">your implementation</a>, I could be reading it incorrectly, but it looks like it is supposed to handle transitions before "exited" state.</p>
<p dir="auto">The <a href="https://material-ui-next.com/demos/dialogs/#dialogs" rel="nofollow">dialog</a> component appears to not have these issues.</p>
<h2 dir="auto">Steps to Reproduce (for bugs)</h2>
<ol dir="auto">
<li>Visit <a href="https://material-ui-next.com/demos/modals/" rel="nofollow">Modal example</a></li>
<li>Open modal and notice there is a short transition for opacity.</li>
<li>Close the modal and notice all content pops off instead of transitioning.</li>
</ol>
<h2 dir="auto">Context</h2>
<p dir="auto">It is important for us to have a smooth experience for our users so that it is pleasant to use the site and tools. We do everything we can to avoid harsh transitions.</p>
<h2 dir="auto">Your Environment</h2>
<table role="table">
<thead>
<tr>
<th>Tech</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Material-UI</td>
<td>1.0.0-beta.27</td>
</tr>
<tr>
<td>React</td>
<td>15.6.1</td>
</tr>
<tr>
<td>browser</td>
<td>Chrome Version 64.0.3282.167 (Official Build) (64-bit)</td>
</tr>
</tbody>
</table>
<p dir="auto"><a href="https://github.com/callemall/material-ui/blob/616d69d5ff7263eb9c84960b6b7a4c9ff852d4ef/src/styles/index.js">src/styles/index.js</a> and <a href="https://github.com/callemall/material-ui/blob/616d69d5ff7263eb9c84960b6b7a4c9ff852d4ef/src/styles/index.d.ts">src/styles/index.d.ts</a>  these two documents are not consistent,<br>
This will cause the TypeScript environment to run well but in the browser environment will be an error</p>


<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/callemall/material-ui/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h2 dir="auto">Expected Behavior</h2>

<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import { createMuiTheme, createBreakpoints } from 'material-ui/styles';
const theme = createMuiTheme({
  breakpoints: createBreakpoints({
    values: {
      xs: 360,
      sm: 575,
      md: 768,
      lg: 991,
      xl: 1199,
    },
});"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createMuiTheme</span><span class="pl-kos">,</span> <span class="pl-s1">createBreakpoints</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'material-ui/styles'</span><span class="pl-kos">;</span>
<span class="pl-k">const</span> <span class="pl-s1">theme</span> <span class="pl-c1">=</span> <span class="pl-s1">createMuiTheme</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-c1">breakpoints</span>: <span class="pl-en">createBreakpoints</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">values</span>: <span class="pl-kos">{</span>
      <span class="pl-c1">xs</span>: <span class="pl-c1">360</span><span class="pl-kos">,</span>
      <span class="pl-c1">sm</span>: <span class="pl-c1">575</span><span class="pl-kos">,</span>
      <span class="pl-c1">md</span>: <span class="pl-c1">768</span><span class="pl-kos">,</span>
      <span class="pl-c1">lg</span>: <span class="pl-c1">991</span><span class="pl-kos">,</span>
      <span class="pl-c1">xl</span>: <span class="pl-c1">1199</span><span class="pl-kos">,</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">In the TypeScript environment is nothing wrong, but in the browser environment got a <code class="notranslate">Uncaught TypeError:  Object(createBreakpoints) is not a function</code>.</p>
<h2 dir="auto">Current Behavior</h2>

<p dir="auto">Now import it like this</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import { createMuiTheme /*, createBreakpoints*/ } from 'material-ui/styles';
import createBreakpoints from 'material-ui/styles/createBreakpoints';
const theme = createMuiTheme({
  breakpoints: createBreakpoints({
    values: {
      xs: 360,
      sm: 575,
      md: 768,
      lg: 991,
      xl: 1199,
    },
});"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createMuiTheme</span> <span class="pl-c">/*, createBreakpoints*/</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'material-ui/styles'</span><span class="pl-kos">;</span>
<span class="pl-k">import</span> <span class="pl-s1">createBreakpoints</span> <span class="pl-k">from</span> <span class="pl-s">'material-ui/styles/createBreakpoints'</span><span class="pl-kos">;</span>
<span class="pl-k">const</span> <span class="pl-s1">theme</span> <span class="pl-c1">=</span> <span class="pl-s1">createMuiTheme</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-c1">breakpoints</span>: <span class="pl-en">createBreakpoints</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">values</span>: <span class="pl-kos">{</span>
      <span class="pl-c1">xs</span>: <span class="pl-c1">360</span><span class="pl-kos">,</span>
      <span class="pl-c1">sm</span>: <span class="pl-c1">575</span><span class="pl-kos">,</span>
      <span class="pl-c1">md</span>: <span class="pl-c1">768</span><span class="pl-kos">,</span>
      <span class="pl-c1">lg</span>: <span class="pl-c1">991</span><span class="pl-kos">,</span>
      <span class="pl-c1">xl</span>: <span class="pl-c1">1199</span><span class="pl-kos">,</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>

<h2 dir="auto">Context</h2>
    
<h2 dir="auto">Your Environment</h2>

<table role="table">
<thead>
<tr>
<th>Tech</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Material-UI</td>
<td>1.0.0-beta.17</td>
</tr>
<tr>
<td>React</td>
<td>16</td>
</tr>
<tr>
<td>browser</td>
<td>chrome 62</td>
</tr>
<tr>
<td>TypeScript</td>
<td>2.5.3</td>
</tr>
</tbody>
</table>