Code Monkey home page Code Monkey logo

ant-design-mobile's Introduction

logo

Ant Design Mobile

Essential UI blocks for building mobile web apps.

npm (tag) GitHub Release Date npm npm jsdelivr gzip size Commit Activity Issues help wanted GitHub Workflow Status (branch) codecov GitHub

$ npm install --save antd-mobile
# or
$ yarn add antd-mobile
# or
$ pnpm add antd-mobile
# or
$ bun add antd-mobile
  • Fast: It is carefully optimized for harsh scenes, without configuration, you can have the best package size and ultimate performance.
  • Customizable: Based on CSS variables, you can reliably and efficiently adjust the appearance of components or create your own themes.
  • Atomic: The function of each component, neither more nor less, is exactly what you need.
  • Fluent: With smooth gestures and delicate animation, it helps the product create the ultimate experience.

You can also play with antd-mobile just in browser with Codesandbox. No need to prepare development environment.

If you found bugs or would like to request some new features, please consider opening an issue.

If you have some question about how to use ant-mobile, you can start a discussion thread.


Thanks to all the contributors of antd-mobile:

contributors

ant-design-mobile's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ant-design-mobile's Issues

0.8

计划

  • dealine 8月26日
  • 发布时间 8月31日

样式

RN组件

web组件

  • Menu增加勾选图标位置/selectIconPosition对齐/align (gitlab 114) @pingan1927 新的视觉稿暂时没有这样的配置
  • InputItem配置项及样式优化(gitlab 113) @pingan1927
  • Tabs 拆分为 SegmentedControl、TabBar、Tabs @silentcloud

website

  • 网站改造、遗留问题优化 @liqi07

测试反馈

0.7遗留

  • rn 框架(router ScrollView) 导致部分组件demo无法工作(RefreshControl/Drawer) @silentcloud

组件样式重构

  1. 按照 antui 样式规范进行重写,设计师会重做视觉稿,并进行细致全面的标注。
  2. 严格按最新的变量规范和标注进行实现。
  3. 使用 components/style/themes/default.less 里的变量完全替换原来的变量文件。

设计师出稿时间点:8.2-8.12


构建体积很大

官网文档有写
构建后总体积:~110KB

但我们实际按需构建后,css有缩小了,但js还有400kb。

Tabs APP型选项卡能自适屏幕大小吗?

本地环境

  • antd-mobile 版本:0.7.x
  • 操作系统及其版本:
  • 浏览器及其版本:谷歌

你做了什么?

<Tabs type="tabbar" mode="dark" defaultActiveKey="1" > <TabPane tab={<span><Icon type="home" />首页</span>} key="1"><div style={{ width: '100%', height:"100%" }}>sdfsdfsdf</div></TabPane> <TabPane tab={<span><Icon type="team" />好友</span>} key="2">选项好友内容</TabPane> <TabPane tab={<span><Icon type="setting" />设置</span>} key="3">选项设置的内容</TabPane> </Tabs>

你期待的结果是:

TabPane 能自适应大小

实际上的结果:

可重现的在线演示

引入之后提示没有改模块 但是在node_modules确实存在

本地环境

  • antd-mobile 版本:0.7.2
  • 操作系统及其版本:osx EI Capitan
  • 浏览器及其版本:谷歌 版本 51.0.2704.103 (64-bit)

你做了什么?

import { Toast } from 'antd-mobile';

你期待的结果是:

使用toast组件能正常调用

实际上的结果:

报错 提示antd-mobile 模块不存在
Module not found: Error: Cannot resolve module 'antd-mobile' in /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/src/containers
resolve module antd-mobile in /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/src/containers
looking for modules in /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules
resolve 'file' antd-mobile in /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules
resolve file
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile is not a file
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.js doesn't exist
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.jsx doesn't exist
resolve 'file' or 'directory' /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile
resolve file
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile is not a file
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.js doesn't exist
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.jsx doesn't exist
resolve directory
directory default file index
resolve file index in /Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index doesn't exist
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index.js doesn't exist
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index.jsx doesn't exist
resolve 'bower component' antd-mobile manifest files using [bower.json]
resolve file
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/src/containers/bower_components/antd-mobile/bower.json doesn't exists
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/src/bower_components/antd-mobile/bower.json doesn't exists
/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/bower_components/antd-mobile/bower.json doesn't exists
/Users/yangyangliang/apps/1mdata-frontend/bower_components/antd-mobile/bower.json doesn't exists
/Users/yangyangliang/apps/bower_components/antd-mobile/bower.json doesn't exists
/Users/yangyangliang/bower_components/antd-mobile/bower.json doesn't exists
/Users/bower_components/antd-mobile/bower.json doesn't exists
/bower_components/antd-mobile/bower.json doesn't exists
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.js]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.js]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.jsx]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile.jsx]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index.js]
[/Users/yangyangliang/apps/1mdata-frontend/xlt-wechat-doctor/node_modules/antd-mobile/index.jsx]
@ ./src/containers/sendDrug.js 39:18-40

可重现的在线演示

0.7.2 webpack 中报错

本地环境

  • antd-mobile:0.72
  • webpack: ^1.13.1,
  • node: 6.3.1

报错信息

ERROR in .//react-hot-loader!.//babel-loader!./src/containers/ArtisanList/index.jsx
Module not found: Error: Cannot resolve module 'antd-mobile' in /Users/admin/Workspace/asm_wx_fe/src/containers/ArtisanList
@ .//react-hot-loader!.//babel-loader!./src/containers/ArtisanList/index.jsx 15:18-40

出错代码

import { ListView, Toast } from 'antd-mobile'

目测是 package.json 文件中没有添加 main 字段, 添加以下字段到 package.json 后可以使用

"main": "dist/antd-mobile.js",

使用 npmcnpm 皆出现此问题

List API 调整

List

<List>
  <List.Header />
  <List.Body>
    <List.Item />
    <List.Item />
  </List.Body>
</List>

改成 =>

<List title="原来的 header">
  <List.Item />
  <List.Item />
</List>

List.Item

<List.Item>
  <div>
    垂直居中对齐
    <div className="am-list-brief">辅助文字内容</div>
  </div>
</List.Item>

改为:

// 去掉 `.am-list-brief`,改为 description
<List.Item description={} extra={} arrow={} >

// 此用法保持不变
<List.Item>
  <InputItem />
</List.Item>

去处 swipeAction,增加 ListActionItem

<ListActionItem actions={}/>

babel-plugin-antd 设置问题

设为此

{
 "plugins": [["antd", { style: "css", libraryName: "antd-mobile" }]]
}

报错:
image

把设置中的 style: "css" 改为 style: true ,正确

安装的时候报错

npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit at ChildProcess.exithandler (child_process.js:202:12)
npm WARN addRemoteGit at emitTwo (events.js:100:13)
npm WARN addRemoteGit at ChildProcess.emit (events.js:185:7)
npm WARN addRemoteGit at maybeClose (internal/child_process.js:850:16)
npm WARN addRemoteGit at Socket. (internal/child_process.js:323:11)
npm WARN addRemoteGit at emitOne (events.js:90:13)
npm WARN addRemoteGit at Socket.emit (events.js:182:7)
npm WARN addRemoteGit at Pipe._onclose (net.js:475:12)
npm WARN addRemoteGit git+https://github.com/dancormier/react-native-swipeout.git#master resetting remote C:\Users\1\AppData\Roaming\npm-cache_git-remotes\git-https-github-com-dancormier-react-native-swipeout-git-master-decd8cbf because of error: { [Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit ]
npm WARN addRemoteGit killed: false,
npm WARN addRemoteGit code: 1,
npm WARN addRemoteGit signal: null,
npm WARN addRemoteGit cmd: 'git -c core.longpaths=true config --get remote.origin.url' }

npm install 报错并卡住

npm install antd-mobile --save

npm WARN addRemoteGit at Socket. (internal/child_process.js:323:11)
npm WARN addRemoteGit at emitOne (events.js:96:13)
npm WARN addRemoteGit at Socket.emit (events.js:188:7)
npm WARN addRemoteGit at Pipe._handle.close as _onclose
npm WARN addRemoteGit killed: false,
npm WARN addRemoteGit code: 1,
npm WARN addRemoteGit signal: null,
npm WARN addRemoteGit cmd: 'git -c core.longpaths=true config --get remote.origin.url' }
fetchMetadata -> vacuum-f - |#################-----------------------------------------|

旧版本苹果手机grid异常

官方演示demo

  • antd-mobile 版本:0.7.2
  • 操作系统及其版本:ios7.1.2
  • 浏览器及其版本:ios7.1.2

你做了什么?

进入grid demo

你期待的结果是:

正常显示

实际上的结果:

布局变形,元素文字越多变形越厉害,并且单击事件失效

可重现的在线演示

官方的就有问题

image

import { TextareaItem } from 'antd-mobile' 异常

本地环境

  • antd-mobile 版本: "^0.7.2"
  • 操作系统及其版本:OSX 10.11.5
  • react native 版本:"^0.30.0"

你做了什么?

import { TextareaItem } from 'antd-mobile',同时已安装 babel-plugin-antd ,并配置 .babelrc :

{
  "plugins": [
    ["antd", {
      style: 'css',  // 'less',
      libraryName: 'antd-mobile',
    }]
  ]
}

你期待的结果是:

像官网一样正常显示

实际上的结果:

Screen Shot 2016-08-06 at 18.27.38.png

mobile demo 切换改变 router


现在 点击下边的按钮,url 不会更新,需要更新掉,不然刷新页面就又回到了切换前的页面。

在react native-android下 warning Button 无效,Toast 无法找到图片资源

本地环境

  • antd-mobile 版本:0.7.3
  • 操作系统及其版本:osx 10.11.6 / react native: 0.31.0 / react : 15.2.1 / android : 4.4+
  • 浏览器及其版本:无(react native端)

你做了什么?

引入了Toast和Button,并执行:
<Button type='warning' onClick={()=>Toast.fail('xxxx')}>click</Button>

你期待的结果是:

显示warning button,点击后显示一个toast 提示。

实际上的结果:

1,Warning Button显示不正常, �警告信息为:“Failed prop type�, invalid prop type of value 'warning' supplied to Button, expected one of ['primary', 'default']”

2,Toast显示错误,错误信息:‘Require unknown module './images/success.png' ....’

可重现的在线演示

使用mobile demo,引入以下代码即可重现:
<Button type='warning' onClick={()=>Toast.fail('xxxx')}>click</Button>

node 无法 require 包进行服务端渲染

因为需要对 .web.js 后缀进行处理,以及 .web.js 中直接 require 了 less 文件等。
导致服务端的node无法直接require 此包进行服务端渲染。

不知道后续会考虑针对 服务端渲染 进行相关的处理吗?

uploader同一张图片不能再次选择

本地环境

  • antd-mobile 版本:0.7.2
  • 操作系统及其版本:osx 10.11.6
  • 浏览器及其版本:chrome 51.0

你做了什么?

uploader组件,同一张图片,选择后删除,不能再次选择,没有触发onchange事件,官网示例有同样问题

你期待的结果是:

能再次选择

实际上的结果:

不能再次选择

可重现的在线演示

同一张图片,选择后删除,不能再次选择,没有触发onchange事件

RN 组件 demo 展示方式

使用专门的 App 进行预览,用对应版本 App 扫描 demo 的二维码即可。

App

所有 demo 都打包进一个 bundle,App 每次打开都会尝试更新最新的 demo,二维码只是作为一个索引。

Note: 每发布一个不兼容版本的 antd-mobile,都需要发布一个对应版本的 App 用于预览 demo。

网站

每个组件的 demo 代码分别放在两个 Tab 中,一个是 web 版的代码,另外一个是 RN 版的代码。RN 版 的 Tab 里,右侧用于动态演示的部份改为二维码,使用 App 扫描后可以预览 demo。

高清化方案讨论

代码写 rem

  • 是否将样式单位切换成rem。
  • 假设rem化,约定1rem换算成多少px?
  • AntUI最近实现的代码里约定了1rem=100px
  • 也有部分实现是约定1rem=页面宽度/10,这是为了以后更好地兼容vwvh
  • 今天晚上MR大团队内的代码时,发现有通过mediaQuery设置1rem=18px1rem=20px等等的。然后业务代码的样式使用rem单位。
  • 也可以约定1rem=16px,这个html是默认的font-size

还有一个问题,组件代码的1px高清方案是基于initial-scale=1这样的viewport设置的,一旦使用rem,用户可能就会使用initial-scale=1/dpr的高清方案,这个时候,组件的1px可能就变为1/dpr^2了,需要考虑这种情况吗?

关于是否使用rem,1.0版我们总结一个最后方案吧。越早确定约好

代码写 px

按照 750 设计稿的标注写 px ,由工具转换成: https://github.com/ant-tool/postcss-plugin-px2rem ,然后经过一些动态页面设置: http://yiminghe.me/lab/playground/2016-exams/6.html 等比缩放.

fastclick

kitchen-sink 加入

https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.