<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zombieJ</title>
    <description>The latest articles on DEV Community by zombieJ (@zombiej).</description>
    <link>https://dev.to/zombiej</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F172933%2Feb9dd60f-79db-47c4-a728-bddafc14969f.jpeg</url>
      <title>DEV Community: zombieJ</title>
      <link>https://dev.to/zombiej</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zombiej"/>
    <language>en</language>
    <item>
      <title>Ant Design 6.0 is released!</title>
      <dc:creator>zombieJ</dc:creator>
      <pubDate>Mon, 24 Nov 2025 07:53:26 +0000</pubDate>
      <link>https://dev.to/zombiej/ant-design-60-is-released-bfa</link>
      <guid>https://dev.to/zombiej/ant-design-60-is-released-bfa</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Since its open-sourcing, Ant Design has garnered &lt;strong&gt;96.6K Stars&lt;/strong&gt;, accumulated &lt;strong&gt;31.9K issues&lt;/strong&gt;, &lt;strong&gt;20.7K PRs&lt;/strong&gt;, released &lt;strong&gt;904 npm versions&lt;/strong&gt;, and has had &lt;strong&gt;2314 contributors&lt;/strong&gt; participate in its development. These numbers not only represent the community's activity and support but also witness the project's continuous evolution and maturation.&lt;/p&gt;

&lt;p&gt;It is because of you that Ant Design can continue to grow and move towards its next stop: &lt;a href="https://github.com/ant-design/ant-design/discussions/51919" rel="noopener noreferrer"&gt;《Plan about Ant Design 6.0》&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwkc26l6rjeswkqyaqy8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwkc26l6rjeswkqyaqy8.webp" alt="Ant Design 6.0" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After extensive RFC discussions and multiple Alpha version iterations, v6 has now entered a stable phase. Today, we are announcing the official release of Ant Design v6!&lt;/p&gt;

&lt;p&gt;This upgrade focuses on &lt;strong&gt;deep technical optimizations&lt;/strong&gt;, aiming to provide better compatibility and performance for React 19 and future versions (with version compatibility raised to React 18), and to further improve the semantic structure of components and CSS variable support.&lt;/p&gt;

&lt;p&gt;Unlike v5, this upgrade is a &lt;strong&gt;smooth version migration&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your project is already running on v5, you can upgrade directly to v6 without needing a compatibility package or codemod tool.&lt;/li&gt;
&lt;li&gt;The v5 main branch will switch to &lt;code&gt;v5.x-stable&lt;/code&gt; and enter a &lt;strong&gt;1-year maintenance period&lt;/strong&gt;.

&lt;ul&gt;
&lt;li&gt;We will no longer provide functional updates to v5 unless there is a particularly serious bug.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical Upgrades and Core Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⚛ Minimum React Version Requirement Raised to 18
&lt;/h3&gt;

&lt;p&gt;v6 supports versions from React 18 onwards, removing compatibility logic for React versions prior to this, thus avoiding API behavior differences between different versions.&lt;br&gt;
We still recommend using the latest React 19 version for the best experience.&lt;/p&gt;

&lt;p&gt;For static methods like &lt;code&gt;Modal.confirm&lt;/code&gt;, you no longer need extra compatibility code or dependencies, and can directly remove the relevant compatibility code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;-- import '@ant-design/v5-patch-for-react-19';
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  📦 React Compiler Enabled in &lt;code&gt;dist&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Enabled &lt;code&gt;React Compiler&lt;/code&gt; in the bundled outputs &lt;code&gt;antd.js&lt;/code&gt; and &lt;code&gt;antd.min.js&lt;/code&gt; to improve performance. Users in CJS/ESM environments can choose to enable it as needed. For more details, refer to the &lt;a href="https://react.dev/learn/react-compiler" rel="noopener noreferrer"&gt;React documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌈 Pure CSS Variables Style Architecture
&lt;/h3&gt;

&lt;p&gt;With the complete removal of IE support, &lt;code&gt;@ant-design/cssinjs&lt;/code&gt; in v6 defaults to the &lt;strong&gt;pure CSS Variables mode&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lighter style switching, supporting real-time theme changes.&lt;/li&gt;
&lt;li&gt;Reduced bundle size through multi-theme reuse.&lt;/li&gt;
&lt;li&gt;Supports zero-runtime style generation, which can be used with &lt;code&gt;@ant-design/static-style-extract&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ConfigProvider&lt;/span&gt; &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;zeroRuntime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;ConfigProvider&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The performance comparison is as follows, with zeroRuntime mode performing the best(compared with theme count):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84yxdbsqbicog6juktsm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84yxdbsqbicog6juktsm.webp" alt="Size" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9key144v43x1r2h5z6n.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9key144v43x1r2h5z6n.webp" alt="Speed" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get the full variable name through &lt;code&gt;useToken&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;cssVar&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;colorBgElevated&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;useToken&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  🚫 IE Support Discontinued
&lt;/h4&gt;

&lt;p&gt;The CSS Variables mode completely removes the StyleProvider for IE compatibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 Semantic Structure for All Components
&lt;/h3&gt;

&lt;p&gt;v6 has completed the DOM semantic transformation for &lt;strong&gt;all components&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9pup04n485xms0nocn5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9pup04n485xms0nocn5.webp" alt="Semantic Structure" width="800" height="2357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;#52115&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2Apoh0RaNQiS4AAAAAbjAAAAgAegCCAQ%2Ffmt.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2Apoh0RaNQiS4AAAAAbjAAAAgAegCCAQ%2Ffmt.webp" alt="Semantic Render Props" width="800" height="4335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;h1&gt;
  
  
  54995
&lt;/h1&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;APIs use logical position descriptions (e.g., &lt;code&gt;start&lt;/code&gt; / &lt;code&gt;end&lt;/code&gt;) and support RTL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The internal structure can be uniformly configured using ConfigProvider's &lt;code&gt;classNames&lt;/code&gt; and &lt;code&gt;styles&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supports functional dynamic generation of semantic structure:
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;btnClassNames&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ButtonProps&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;classNames&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;props&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;primary&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="nl"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ConfigProvider&lt;/span&gt; &lt;span class="na"&gt;button&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;classNames&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;btnClassNames&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;ConfigProvider&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Playful Icon Button
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;
  &lt;span class="na"&gt;classNames&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;root&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rounded-tr-xl rounded-bl-xl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rotate-30&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;SmileOutlined&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  Ant Design
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8grnmrmwiunm11tlicx6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8grnmrmwiunm11tlicx6.webp" alt="Funny" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Geek-style Card
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Card&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hello World"&lt;/span&gt;
  &lt;span class="na"&gt;classNames&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;root&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bg-green-300/10 text-green-500 border-green-500 rounded-none [box-shadow:0_0_8px_theme(colors.green.500)]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;header&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rounded-none border-green-500 [box-shadow:inset_0_0_8px_theme(colors.green.500)]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text-green-500 [text-shadow:0_0_12px_theme(colors.green.400)] overflow-visible&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rounded-none [text-shadow:0_0_8px_theme(colors.green.400)] [box-shadow:inset_0_0_12px_theme(colors.green.500)]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  Ant Design loves you!~ (=^・ω・^)
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Card&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kgtzkzrtngwp1zga1sd.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kgtzkzrtngwp1zga1sd.webp" alt="Geek Green" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚫 Removed v4 Deprecated APIs
&lt;/h3&gt;

&lt;p&gt;v6 removes all APIs that were deprecated in v4 and kept for compatibility in v5:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;findDOMNode&lt;/code&gt; compatibility logic is removed.&lt;/li&gt;
&lt;li&gt;Documentation for &lt;strong&gt;List&lt;/strong&gt;, &lt;strong&gt;Dropdown.Button&lt;/strong&gt;, &lt;strong&gt;BackTop&lt;/strong&gt; is removed, but compatibility is retained.&lt;/li&gt;
&lt;li&gt;React 18 compatibility code is deleted (directly supports 18).&lt;/li&gt;
&lt;li&gt;Unified API naming style, compatible with all v5 APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  New Components and Enhancements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔥 Masonry Component
&lt;/h3&gt;

&lt;p&gt;For scenarios like image galleries, card streams, etc.:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsw0zyfzhd85wybvf0pch.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsw0zyfzhd85wybvf0pch.webp" alt="Masonry" width="800" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔥 Tooltip Supports Panning and Sliding
&lt;/h3&gt;

&lt;p&gt;Enable panning and sliding between multiple tooltip contents:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AjBVfQYq4k_gAAAAATjAAAAgAegCCAQ%2Foriginal" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AjBVfQYq4k_gAAAAATjAAAAgAegCCAQ%2Foriginal" width="498" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🆕 InputNumber &lt;code&gt;spinner&lt;/code&gt; Mode
&lt;/h3&gt;

&lt;p&gt;A common button layout style, making it easy for users to click and interact directly:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ftrcs8hte2qu0bx7ifs.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ftrcs8hte2qu0bx7ifs.webp" alt="Spinner InputNumber" width="330" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🆕 Drawer Supports Resizing
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AYC2IRqx_O30AAAAAUXAAAAgAegCCAQ%2Foriginal" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AYC2IRqx_O30AAAAAUXAAAAgAegCCAQ%2Foriginal" alt="Resizable Drawer" width="972" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Mask Blur Background
&lt;/h3&gt;

&lt;p&gt;All overlay layers use a blur effect by default, which can be turned off via &lt;code&gt;mask: { blur: false }&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyogdc57ut5puggaqfumk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyogdc57ut5puggaqfumk.webp" alt="Blur Mask" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Upgrade Guide
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;v6 is fully compatible with v5 and can be upgraded directly.

&lt;ul&gt;
&lt;li&gt;It is recommended to replace deprecated APIs according to the warnings.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;The project needs to run on &lt;strong&gt;React 18 or a higher version&lt;/strong&gt;.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;IE&lt;/strong&gt; is no longer supported.&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Plans
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Optimize mobile interaction experience.&lt;/li&gt;
&lt;li&gt;Enhance Accessibility support.&lt;/li&gt;
&lt;li&gt;Follow up on new React features to improve performance.&lt;/li&gt;
&lt;li&gt;More new components are in development, please stay tuned.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  One More Thing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AD6p9Q4jAKtcAAAAAe9AAAAgAegCCAQ%2Foriginal" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmdn.alipayobjects.com%2Fhuamei_iwk9zp%2Fafts%2Fimg%2FA%2AD6p9Q4jAKtcAAAAAe9AAAAgAegCCAQ%2Foriginal" alt="Ant Design X 2.0" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Ant Design X is simultaneously releasing version 2.0. As Ant Design's component library for AI scenarios, the new version brings more powerful interaction and rendering capabilities. If you are exploring AI-driven interface experiences, now is the best time: &lt;a href="https://github.com/ant-design/x/issues/1357" rel="noopener noreferrer"&gt;🎉 Ant Design X 2.0 is here! 🎉&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk786a5139v2rxvyfpqsh.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk786a5139v2rxvyfpqsh.webp" alt="LUI" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A Final Word
&lt;/h2&gt;

&lt;p&gt;Ant Design has gone through 10 years since its first line of code. We hope that in the wave of AI, Ant Design will remain your best partner. Thanks to all the friends who contributed to v6. — Because of your participation, open source is so wonderful:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/984507092" rel="noopener noreferrer"&gt;984507092&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/afc163" rel="noopener noreferrer"&gt;afc163&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/aojunhao123" rel="noopener noreferrer"&gt;aojunhao123&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Arktomson" rel="noopener noreferrer"&gt;Arktomson&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/cactuser-Lu" rel="noopener noreferrer"&gt;cactuser-Lu&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ccc1018" rel="noopener noreferrer"&gt;ccc1018&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/codewizardTM" rel="noopener noreferrer"&gt;codewizardTM&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/coding-ice" rel="noopener noreferrer"&gt;coding-ice&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/crazyair" rel="noopener noreferrer"&gt;crazyair&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/divyeshagrawal" rel="noopener noreferrer"&gt;divyeshagrawal&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/elrrrrrrr" rel="noopener noreferrer"&gt;elrrrrrrr&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/EmilyyyLiu" rel="noopener noreferrer"&gt;EmilyyyLiu&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/fireairforce" rel="noopener noreferrer"&gt;fireairforce&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/GinWU05" rel="noopener noreferrer"&gt;GinWU05&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/guoyunhe" rel="noopener noreferrer"&gt;guoyunhe&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/hcjlxl" rel="noopener noreferrer"&gt;hcjlxl&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/JeeekXY" rel="noopener noreferrer"&gt;JeeekXY&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Jerryqun" rel="noopener noreferrer"&gt;Jerryqun&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jin19980928" rel="noopener noreferrer"&gt;jin19980928&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jon-cullison" rel="noopener noreferrer"&gt;jon-cullison&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/kiner-tang" rel="noopener noreferrer"&gt;kiner-tang&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/li-jia-nan" rel="noopener noreferrer"&gt;li-jia-nan&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Linkodt" rel="noopener noreferrer"&gt;Linkodt&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/lovelts" rel="noopener noreferrer"&gt;lovelts&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/MadCcc" rel="noopener noreferrer"&gt;MadCcc&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/meet-student" rel="noopener noreferrer"&gt;meet-student&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nmsn" rel="noopener noreferrer"&gt;nmsn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/OysterD3" rel="noopener noreferrer"&gt;OysterD3&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Psiphonc" rel="noopener noreferrer"&gt;Psiphonc&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Susuperli" rel="noopener noreferrer"&gt;Susuperli&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tanjiahao24" rel="noopener noreferrer"&gt;tanjiahao24&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/thinkasany" rel="noopener noreferrer"&gt;thinkasany&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ug-hero" rel="noopener noreferrer"&gt;ug-hero&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/wanpan11" rel="noopener noreferrer"&gt;wanpan11&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Wxh16144" rel="noopener noreferrer"&gt;Wxh16144&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/xkhanhan" rel="noopener noreferrer"&gt;xkhanhan&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/yellowryan" rel="noopener noreferrer"&gt;yellowryan&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/yoyo837" rel="noopener noreferrer"&gt;yoyo837&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/zjr222" rel="noopener noreferrer"&gt;zjr222&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/zombieJ" rel="noopener noreferrer"&gt;zombieJ&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Zyf665" rel="noopener noreferrer"&gt;Zyf665&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>ui</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Ant Design 4.0 is in progress!</title>
      <dc:creator>zombieJ</dc:creator>
      <pubDate>Fri, 31 May 2019 03:40:20 +0000</pubDate>
      <link>https://dev.to/zombiej/ant-design-4-0-is-in-progress-3o8f</link>
      <guid>https://dev.to/zombiej/ant-design-4-0-is-in-progress-3o8f</guid>
      <description>&lt;h2&gt;
  
  
  Recap
&lt;/h2&gt;

&lt;p&gt;It has been 16 months since &lt;a href="https://medium.com/ant-design/announcing-ant-design-3-0-70e3e65eca0c"&gt;December 2017&lt;/a&gt; when Ant Design 3.0 was released. We fixed plenty of bugs and added lots of new features(&lt;a href="https://ant.design/changelog"&gt;changelog&lt;/a&gt;) within 4289 commits, 138 releases, 7675 issues &amp;amp; PRs, that brought us 25375 stars in GitHub. We also released &lt;a href="https://medium.com/ant-design/ant-design-pro-v4-is-here-6f23098ae9d9"&gt;Ant Design Pro 4.0&lt;/a&gt;. Support for TypeScript, blocks, and abstraction of layouts. We want to thank every contributors and your contribution makes Ant Design better and better.&lt;/p&gt;

&lt;p&gt;At the same time, we released Ant Design Pro 4.0. Support TypeScript, Block and Provides Layout component.&lt;/p&gt;

&lt;p&gt;At this moment, we are thinking: Ok then, what's next? What can we do to make Ant Design going further?** It is the time to plan for the Ant Design 4.0**! 🍻&lt;/p&gt;

&lt;p&gt;Following is the detail plan about 4.0. We may adjust some of them since it's still in planning.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌓 About Compatibility
&lt;/h3&gt;

&lt;p&gt;We will remove deprecated props in 4.0, which means deprecated props will be no longer supported. If you're not getting any warning from latest 3.x, it will be seamless to upgrade. Otherwise, there will be hal year maintenace phase for 3.0 after 4.0 is released.&lt;/p&gt;

&lt;p&gt;We know it's troublesome to do upgrades. We're planning to provide compatible package to handle this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Compatible&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ant-design/compatible&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// It works, but will warning in console&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Compatible&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;YourApp&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Compatible&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This package will be available till the end of 3.x maintenance phase.&lt;/p&gt;

&lt;h4&gt;
  
  
  Use latest React API
&lt;/h4&gt;

&lt;p&gt;We have provided React 15 support for a long time. But it seems not necessary from social feedback (There are nearly 0% of issues about React 15), since React has strong compatiblity. To support React 15, we use new API very carefully. This will be not a problem after 4.0 anymore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides Hooks api for related component&lt;/li&gt;
&lt;li&gt;Support Concurrent mode (Still preparing, will continue adjust in 4.0)&lt;/li&gt;
&lt;li&gt;Embrace React 17(wow！~)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Stop IE9/10 support
&lt;/h4&gt;

&lt;p&gt;Ant Design 3.0 spends lots of effort to &lt;a href="https://github.com/ant-design/ant-design/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aclosed+IE"&gt;support old IE&lt;/a&gt;. But according to the industry statistics, usage of IE9/10 get lower and lower with Windows upgrade. We will stop support IE 9/10 in 4.0 (but still support IE 11), which means newer browser feature support will be possible.&lt;/p&gt;

&lt;h4&gt;
  
  
  Other compatible update
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Less 2.x upgrade to Less 3.x&lt;/li&gt;
&lt;li&gt;Icon adjustion&lt;/li&gt;
&lt;li&gt;Mention deprecated&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Reduce size
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Optimize icon size
&lt;/h4&gt;

&lt;p&gt;We use svg icon (&lt;a href="https://github.com/ant-design/ant-design/issues/10353"&gt;why svg?&lt;/a&gt;) after  &lt;code&gt;antd@3.9.0&lt;/code&gt; . We use string name to map the icon, which can not load on demand. We import all the icon file into antd which &lt;a href="https://github.com/ant-design/ant-design/issues/12011"&gt;makes bundle size large&lt;/a&gt;. We will handle this in 4.0.&lt;/p&gt;

&lt;p&gt;Old Icon usage way will be** deprecated**:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Icon&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Icon&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"smile"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt; &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"smile"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Will use import single Icon instead in 4.0 :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Directly import&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;SmileOutline&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antd/icons/SmileOutline&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// If tree-shaking supported&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;SmileOutline&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antd/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;SmileOutline&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt; &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;SmileOutline&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can still use &lt;a href="https://yuque.antfin-inc.com/jilin.jjl/newhire/fndgiy#e8233958"&gt;compatible way&lt;/a&gt; in old way.&lt;/p&gt;

&lt;h4&gt;
  
  
  Remove Draft.js
&lt;/h4&gt;

&lt;p&gt;We use Draft.js in Mention component to confirm popup location, but only a small part functionality of it is used. It seems over cost. We plan to remove Draft.js in 4.0,  and use other light solution instead. At the same time, to distinguish with origin Mention component in 3.0, a new component Mentions will be introduced to avoid api conflict. Also, it supports &lt;a href="https://yuque.antfin-inc.com/jilin.jjl/newhire/fndgiy/edit#e8233958"&gt;compatible way&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Follow Code will not work&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Mention&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Mention&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Added `Mentions` in 4.0&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Mentions&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;antd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Mentions&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  🧭 Performance optimization
&lt;/h3&gt;

&lt;p&gt;We get few &lt;a href="https://github.com/ant-design/ant-design/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+slow+OR+performance+"&gt;performance issue&lt;/a&gt; for large data set from community. We'll make sure some optimization will be done here.&lt;/p&gt;

&lt;h4&gt;
  
  
  Virtual scrolling
&lt;/h4&gt;

&lt;p&gt;Virtual scrolling is a common way to do performance optimization. We're planning to support this natively in components. It may not finish immediately in 4.0 release. Will integrate step by step.&lt;/p&gt;

&lt;h4&gt;
  
  
  Refactor Animation
&lt;/h4&gt;

&lt;p&gt;We did some hack with animation in the past. It works well in most case. We plan to use much pure React way instead of hack one. This update will be in silence, nothing will affect you.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 Components Optimization
&lt;/h3&gt;

&lt;p&gt;We've add many components in 3.0, and will continue in 4.0. These components will come from business scenario, Ant Design Pro and social requirement.  New components process will be same as Ant Design 3.0, we will put related design file in PR and collect it in the official website. Release in each minor version.&lt;/p&gt;

&lt;p&gt;Besides, we plan to refactor some key components to make easier to use. Includes but not only:&lt;/p&gt;

&lt;h4&gt;
  
  
  Form
&lt;/h4&gt;

&lt;p&gt;Form is one of the most usage component. We notice that social have many comments on the API design.&lt;br&gt; We wish to simplify the API in 4.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Form will include data store. No need to use &lt;code&gt;Form.create()&lt;/code&gt; anymore.&lt;/li&gt;
&lt;li&gt;Fom.Item will include field bind. No need to use &lt;code&gt;getFieldDecorator&lt;/code&gt; anymore.&lt;/li&gt;
&lt;li&gt;Form.Item will keep the value, but the validator will be disabled when field removed.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;useForm&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;onFinish&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Do something...&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;

  &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Something like ajax call&lt;/span&gt;
    &lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setFieldsValue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;light&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Form&lt;/span&gt; &lt;span class="na"&gt;form&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;onFinish&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onFinish&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Item&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"username"&lt;/span&gt; &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Input&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Form&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;In the real world, we meets lots of communication between forms (usually in detail configuration). We want to make it easier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useForm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;createContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Form&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;FormContext&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createContext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;FormContext&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;YourForm1&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;YourForm2&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;FormContext&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If you want to follow Form progress, you can &lt;a href="https://github.com/react-component/form/pull/292"&gt;see here&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Table
&lt;/h4&gt;

&lt;p&gt;In the past, we received lots of &lt;a href="https://github.com/ant-design/ant-design/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+table"&gt;Table&lt;/a&gt; feedback. We know that expand and scroll props not works well together. This time, we will focus to fix it. Besides, we will do much on the Table optimization. And easy way to do the layout：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Table&lt;/span&gt;
      &lt;span class="na"&gt;header&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;templateAreas&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`
          name    address     address
          name    building    no
        `&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;cells&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;address&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Address&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;building&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Building&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;no&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;No&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;We also plan to add &lt;a href="https://github.com/ant-design/ant-design/issues/5710"&gt;Summary Footer&lt;/a&gt; to support summary row.&lt;/p&gt;

&lt;h4&gt;
  
  
  New DatePicker
&lt;/h4&gt;

&lt;p&gt;Current DatePicker statifies most requirement. But from &lt;a href="https://github.com/ant-design/ant-design/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+datepicker"&gt;community discussion&lt;/a&gt;, we can dig it more. We will provide rest year picker and ranger picker (&lt;a href="https://github.com/ant-design/ant-design/issues/4524#issuecomment-480576884"&gt;discuss&lt;/a&gt;). And also, we will update the DatePicker design style to enhance user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Continue updating
&lt;/h3&gt;

&lt;p&gt;Besides content above, we also plan to do some continue updating. These will keep updating in 4.0 to enhance development and user experience.&lt;/p&gt;

&lt;h4&gt;
  
  
  🧶 Improve accessibility
&lt;/h4&gt;

&lt;p&gt;Ant Design 3.0 has limited support for accessibility, we plan to adjust the dom structure and add more aria mark to enhance the screen reader experience. Besides, we also prepare to optimize key board interaction.&lt;/p&gt;

&lt;h4&gt;
  
  
  🎯 Developer API standard
&lt;/h4&gt;

&lt;p&gt;We find some  API naming style is little different with others. It's not a problem for Typescript developer, but it's hard to remember otherwise.&lt;br&gt;Thus, we will create a naming standard document which includes current APIs and related naming rules. In new feature, will follow the naming rule to avoid API naming conflict. Also, we welcome community opinions about this in PR.&lt;/p&gt;

&lt;h4&gt;
  
  
  💼 React Strict Mode
&lt;/h4&gt;

&lt;p&gt;If you tried wrap antd component with &lt;code&gt;&amp;lt;React.StrictMode&amp;gt;&lt;/code&gt; , you will get warning. We've already replace some components with new life cycle method. This work will continue in 4.0.&lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Improve developer experience
&lt;/h4&gt;

&lt;p&gt;In the past, we found that some issue comes repeatedly. These issues somehow are usage question. We think we can do something on this (actually already start in 3.0). In development environment, we will warning unexpected status (like invalidate Moment object, prefix/affix adjustment cause dom structure change, etc.). We believe that console is the first place to focus when meet problem. Provides proper tips can help to find the problem. At same time, we will summary other questions into FAQ of each Component document. From the side of maintenance, we can't help on each usage question, but they do exist, particularly with new come developers. FAQ may help to save lots of searching time. If you have interest on this, welcome to help enhancing developer experience with us.&lt;/p&gt;

&lt;h4&gt;
  
  
  🐱 Design Resource
&lt;/h4&gt;

&lt;p&gt;Ant Design is not only a component library. Design is the support power. We will sync update the design resource (Sketch component package, Kitchen tools, Design Token, etc.).  We will also adjust current component style to enhance user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Milestones
&lt;/h3&gt;

&lt;p&gt;Here is our milestones plan. We will create related issue on Github. And also welcome social contributor:&lt;/p&gt;

&lt;h4&gt;
  
  
  Q2
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Mark related API as Deprecated and remove from document.&lt;/li&gt;
&lt;li&gt;Low level component warn update.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Q3
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Create antd 4.0 branch and update the document.&lt;/li&gt;
&lt;li&gt;Components development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Q4
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Release Ant Design 4.0.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Welcome aboard
&lt;/h2&gt;

&lt;p&gt;We will keep you posted during the developing process. Content above may not be final. Thought/advice from community will be more than welcome! Let's make Ant Design 4.0 better!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
