提交 a66d7724 编写于 作者: S simaQ

Merge branch 'master' of https://github.com/ant-design/ant-design

...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
## 何时使用 ## 何时使用
标记了一个(或一组)操作命令,引导用户点击 标记了一个(或封装一组)操作命令,响应用户点击行为,触发相应的业务逻辑
## 如何使用 ## 如何使用
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
- order: 1 - order: 1
使用 `format` 属性自定义您需要的日期定义格式:yyyy/MM/dd 使用 `format` 属性,可以自定义你需要的日期显示格式,如 `yyyy/MM/dd`
--- ---
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
- order: 3 - order: 3
设置可选日期的范围,用 disabled 方法来定义不可选择时间 设置 `disabled` 方法,来确定不可选时段
比如不可选择今天之后的日期。 如上例:不可选择今天之后的日期。
--- ---
......
...@@ -22,7 +22,7 @@ var menu = <Menu> ...@@ -22,7 +22,7 @@ var menu = <Menu>
React.render( React.render(
<Dropdown overlay={menu}> <Dropdown overlay={menu}>
<button className="ant-btn ant-btn-default"> <button className="ant-btn ant-btn-menu">
某按钮 <i className="anticon anticon-down"></i> 某按钮 <i className="anticon anticon-down"></i>
</button> </button>
</Dropdown> </Dropdown>
......
...@@ -21,7 +21,7 @@ var menu = <Menu onClick={onClick}> ...@@ -21,7 +21,7 @@ var menu = <Menu onClick={onClick}>
React.render( React.render(
<Dropdown overlay={menu}> <Dropdown overlay={menu}>
<button className="ant-btn ant-btn-default"> <button className="ant-btn ant-btn-menu">
鼠标移入,点击菜单 <i className="anticon anticon-down"></i> 鼠标移入,点击菜单 <i className="anticon anticon-down"></i>
</button> </button>
</Dropdown> </Dropdown>
......
...@@ -23,7 +23,7 @@ var menu = <Menu> ...@@ -23,7 +23,7 @@ var menu = <Menu>
React.render( React.render(
<Dropdown overlay={menu}> <Dropdown overlay={menu}>
<button className="ant-btn ant-btn-default"> <button className="ant-btn ant-btn-menu">
鼠标移入 <i className="anticon anticon-down"></i> 鼠标移入 <i className="anticon anticon-down"></i>
</button> </button>
</Dropdown> </Dropdown>
......
...@@ -23,12 +23,12 @@ var menu = <Menu> ...@@ -23,12 +23,12 @@ var menu = <Menu>
React.render(<div> React.render(<div>
<Dropdown overlay={menu} trigger="click"> <Dropdown overlay={menu} trigger="click">
<button className="ant-btn ant-btn-primary"> <button className="ant-btn ant-btn-primary ant-btn-menu">
点击触发 <i className="anticon anticon-down"></i> 点击触发 <i className="anticon anticon-down"></i>
</button> </button>
</Dropdown> </Dropdown>
<Dropdown overlay={menu}> <Dropdown overlay={menu}>
<button className="ant-btn ant-btn-default"> <button className="ant-btn ant-btn-menu">
鼠标移入 <i className="anticon anticon-down"></i> 鼠标移入 <i className="anticon anticon-down"></i>
</button> </button>
</Dropdown> </Dropdown>
......
# 基本
- order: 0
最简单的用法。
---
````jsx
var Popover = antd.Popover;
var content = [
<p>内容</p>,
<p>内容</p>,
<p>内容</p>
];
React.render(
<Popover overlay={content} title="标题">
<button className="ant-btn ant-btn-primary">弹出卡片</button>
</Popover>
, document.getElementById('components-popover-demo-basic'));
````
# 位置
- order: 1
位置有四个方向。
---
````jsx
var Popover = antd.Popover;
var text = <span>标题</span>;
var content = [
<p>内容</p>,
<p>内容</p>,
<p>内容</p>
];
React.render(<div>
<Popover placement="left" title={text} overlay={content}>
<button className="ant-btn"></button>
</Popover>
<Popover placement="right" title={text} overlay={content}>
<button className="ant-btn"></button>
</Popover>
<Popover placement="top" title={text} overlay={content}>
<button className="ant-btn"></button>
</Popover>
<Popover placement="bottom" title={text} overlay={content}>
<button className="ant-btn"></button>
</Popover>
</div>, document.getElementById('components-popover-demo-placement'));
````
<style>
.code-box-demo .ant-btn {
margin-right: 1em;
}
</style>
# 三种触发方式
- order: 2
鼠标移入、聚集、点击。
---
````jsx
var Popover = antd.Popover;
var content = [
<p>内容</p>,
<p>内容</p>,
<p>内容</p>
];
React.render(<div>
<Popover overlay={content} title="标题" trigger="hover">
<button className="ant-btn">移入</button>
</Popover>
<Popover overlay={content} title="标题" trigger="focus">
<a href="javascript:;" className="ant-btn">聚焦</a>
</Popover>
<Popover overlay={content} title="标题" trigger="click">
<button className="ant-btn">点击</button>
</Popover>
</div>, document.getElementById('components-popover-demo-triggertype'));
````
'use strict';
var React = require('react');
var Tooltip = require('rc-tooltip');
module.exports = React.createClass({
getDefaultProps() {
return {
transitionName: '',
placement: 'top',
trigger: 'hover'
};
},
render() {
var overlay = <div>
<div className="popover-title">
{this.props.title}
</div>
<div className="popover-content">
{this.props.overlay}
</div>
</div>;
var transitionName = ({
top: 'zoom-down',
bottom: 'zoom-up',
left: 'zoom-right',
right: 'zoom-left'
})[this.props.placement];
return (
<Tooltip placement={this.props.placement}
prefixCls="popover"
renderPopupToBody={false}
transitionName={transitionName}
trigger={this.props.trigger}
overlay={overlay}>
{this.props.children}
</Tooltip>
);
}
});
...@@ -5,3 +5,20 @@ ...@@ -5,3 +5,20 @@
--- ---
点击/鼠标移入元素,弹出气泡式的卡片浮层。
## 何时使用
当目标元素有进一步的描述和相关操作时,可以收纳到卡片中,根据用户交互展现。
`Tooltip` 的区别是,用户可以对浮层上的元素进行操作,因此它可以承载更复杂的内容。
## API
| 参数 | 说明 | 类型 | 默认值 |
|-----------|------------------------------------------|---------------|--------|
| trigger | 触发行为,可选 `hover/focus/click` | string | hover |
| placement | 气泡框位置,可选 `top/left/right/bottom` | string | top |
| title | 提示文字 | React.Element | 无 |
| content | 提示文字 | React.Element | 无 |
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
## 何时使用 ## 何时使用
- 需要告知用户进行时、失败、已完成的等运行状态 - 需要告知用户操作的运行状态,如:进行中、已完成、已失败
- 需要展示操作的百分比时。 - 需要展示操作的进度时。
## 属性参数 ## 属性参数
......
...@@ -4,16 +4,23 @@ var React = require('react'); ...@@ -4,16 +4,23 @@ var React = require('react');
var Tooltip = require('rc-tooltip'); var Tooltip = require('rc-tooltip');
module.exports = React.createClass({ module.exports = React.createClass({
getDefaultProps: function () { getDefaultProps() {
return { return {
placement: 'top' placement: 'top'
}; };
}, },
render: function() { render() {
var transitionName = ({
top: 'zoom-down',
bottom: 'zoom-up',
left: 'zoom-right',
right: 'zoom-left'
})[this.props.placement];
return ( return (
<Tooltip placement={this.props.placement} <Tooltip placement={this.props.placement}
prefixCls="ant-tooltip" prefixCls="ant-tooltip"
trigger={this.props.trigger} trigger={this.props.trigger}
transitionName={transitionName}
overlay={this.props.title}> overlay={this.props.title}>
{this.props.children} {this.props.children}
</Tooltip> </Tooltip>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。 鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。
可用来代替系统默认的 title 提示,提供一个按钮/文字/操作的文案解释。 可用来代替系统默认的 `title` 提示,提供一个`按钮/文字/操作`的文案解释。
## API ## API
......
...@@ -8,6 +8,7 @@ var antd = { ...@@ -8,6 +8,7 @@ var antd = {
Menu: require('rc-menu'), Menu: require('rc-menu'),
Dropdown: require('./components/dropdown'), Dropdown: require('./components/dropdown'),
Progress: require('./components/progress'), Progress: require('./components/progress'),
Popover: require('./components/popover'),
Select: require('./components/select'), Select: require('./components/select'),
confirm: require('./components/modal/confirm') confirm: require('./components/modal/confirm')
}; };
......
{ {
"name": "antd", "name": "antd",
"version": "0.0.1", "version": "0.1.0",
"title": "Ant Design", "title": "Ant Design",
"description": "下一个设计&前端框架", "description": "下一个设计&前端框架",
"homepage": "http://ant-design.github.io/", "homepage": "http://ant-design.github.io/",
......
...@@ -563,6 +563,13 @@ footer ul li > a { ...@@ -563,6 +563,13 @@ footer ul li > a {
margin: 20px 0; margin: 20px 0;
} }
.markdown code,
.markdown kbd,
.markdown pre,
.markdown samp {
font-family: Consolas, monospace;
}
.markdown p, .markdown p,
.markdown pre { .markdown pre {
margin: 1.2em 0; margin: 1.2em 0;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
display: inline-block; display: inline-block;
&-input { &-input {
.ant-input; .ant-input;
cursor: text;
} }
&-icon { &-icon {
position: absolute; position: absolute;
......
...@@ -15,6 +15,15 @@ ...@@ -15,6 +15,15 @@
&-wrap { &-wrap {
position: relative; position: relative;
.anticon-down {
transition: transform 0.2s ease;
}
}
&-wrap-open {
.anticon-down {
transform: rotate(180deg);
}
} }
&-hidden { &-hidden {
...@@ -55,9 +64,13 @@ ...@@ -55,9 +64,13 @@
clear: both; clear: both;
font-size: 12px; font-size: 12px;
font-weight: normal; font-weight: normal;
color: #666666; color: #666;
white-space: nowrap; white-space: nowrap;
a {
color: #666;
}
&:hover { &:hover {
background-color: #ebfaff; background-color: #ebfaff;
} }
...@@ -148,4 +161,4 @@ ...@@ -148,4 +161,4 @@
transform: scaleY(0); transform: scaleY(0);
} }
} }
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
@import "confirm"; @import "confirm";
@import "tabs"; @import "tabs";
@import "tooltip"; @import "tooltip";
@import "popover";
@import "form"; @import "form";
@import "loading"; @import "loading";
@import "progress"; @import "progress";
\ No newline at end of file
@import "../mixins/index";
@popoverPrefixClass: ~"@{css-prefix}popover";
//
// Popovers
// --------------------------------------------------
//== Popovers
//
//##
//** Popover body background color
@popover-bg: #fff;
//** Popover maximum width
@popover-min-width: 177px;
@popover-max-width: 276px;
//** Popover border color
@popover-border-color: #d9d9d9;
//** Popover arrow width
@popover-arrow-width: 4px;
//** Popover distance with trigger
@popover-distance: @popover-arrow-width+4;
//** Popover arrow color
@popover-arrow-color: @popover-bg;
//** Popover outer arrow width
@popover-arrow-outer-width: (@popover-arrow-width + 1);
//** Popover outer arrow color
@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1080;
cursor: auto;
-moz-user-select: text;
user-select: text;
white-space: normal;
font-size: @font-size-base;
line-height: @line-height-base;
font-weight: normal;
text-align: left;
&:after {
content: "";
position: absolute;
background: rgba(255,255,255,0.01);
}
&-hidden {
display: none;
}
// Offset the popover to account for the popover arrow
&-placement-top {
margin-top: -@popover-arrow-width;
padding-bottom: @popover-distance;
&:after {
top: 100%;
left: 0;
width: 100%;
height: 8px;
}
}
&-placement-right {
margin-left: @popover-arrow-width;
padding-left: @popover-distance;
&:after {
top: 0;
left: -8px;
width: 8px;
height: 100%;
}
}
&-placement-bottom {
margin-top: @popover-arrow-width;
padding-top: @popover-distance;
&:after {
top: -8px;
left: 0;
width: 100%;
height: 8px;
}
}
&-placement-left {
margin-left: -@popover-arrow-width;
padding-right: @popover-distance;
&:after {
top: 0;
left: 100%;
width: 8px;
height: 100%;
}
}
&-inner {
max-width: @popover-max-width;
min-width: @popover-min-width;
background-color: @popover-bg;
background-clip: padding-box;
border: 1px solid @popover-border-color;
border-radius: @border-radius-base;
padding: 1px;
box-shadow: 0 0 4px #d9d9d9;
}
&-title {
margin: 0; // reset heading margin
padding: 0 8px;
line-height: 30px;
height: 30px;
background-color: @popover-bg;
border-bottom: 1px solid #e9e9e9;
color: #666;
}
&-content {
padding: 8px;
}
&-descrition {
[icon] {
font-size: 16px;
margin-right: 2px;
line-height: 18px;
}
[icon='warn-circle'] {
color: #F9C35A;
}
}
&-buttons {
text-align: right;
margin-top: 12px;
button {
margin-left: 2px;
}
}
// Arrows
// .popover-arrow is outer, .popover-arrow:after is inner
&-arrow {
&,
&:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
}
&-arrow {
border-width: @popover-arrow-outer-width;
}
&-arrow:after {
border-width: @popover-arrow-width;
content: "";
}
&-placement-top > &-arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-bottom-width: 0;
border-top-color: @popover-arrow-outer-color;
bottom: @popover-distance - @popover-arrow-outer-width + 1;
&:after {
content: " ";
bottom: 1px;
margin-left: -@popover-arrow-width;
border-bottom-width: 0;
border-top-color: @popover-arrow-color;
}
}
&-placement-right > &-arrow {
top: 50%;
left: @popover-distance - @popover-arrow-outer-width + 1;
margin-top: -@popover-arrow-outer-width;
border-left-width: 0;
border-right-color: @popover-arrow-outer-color;
&:after {
content: " ";
left: 1px;
bottom: -@popover-arrow-width;
border-left-width: 0;
border-right-color: @popover-arrow-color;
}
}
&-placement-bottom > &-arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-top-width: 0;
border-bottom-color: @popover-arrow-outer-color;
top: @popover-distance - @popover-arrow-outer-width + 1;
&:after {
content: " ";
top: 1px;
margin-left: -@popover-arrow-width;
border-top-width: 0;
border-bottom-color: @popover-arrow-color;
}
}
&-placement-left > &-arrow {
top: 50%;
right: @popover-distance - @popover-arrow-outer-width + 1;
margin-top: -@popover-arrow-outer-width;
border-right-width: 0;
border-left-color: @popover-arrow-outer-color;
&:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: @popover-arrow-color;
bottom: -@popover-arrow-width;
}
}
}
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
//** Tooltip arrow width //** Tooltip arrow width
@tooltip-arrow-width: 5px; @tooltip-arrow-width: 5px;
//** Tooltip arrow color //** Tooltip distance with trigger
@tooltip-distance: @tooltip-arrow-width+4; @tooltip-distance: @tooltip-arrow-width+4;
//** Tooltip arrow color //** Tooltip arrow color
@tooltip-arrow-color: @tooltip-bg; @tooltip-arrow-color: @tooltip-bg;
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
font-size: @font-size-base; font-size: @font-size-base;
line-height: @line-height-base; line-height: @line-height-base;
opacity: @tooltip-opacity; opacity: @tooltip-opacity;
&-hidden { &-hidden {
display: none; display: none;
} }
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
text-decoration: none; text-decoration: none;
background-color: @tooltip-bg; background-color: @tooltip-bg;
border-radius: @border-radius-base; border-radius: @border-radius-base;
box-shadow: 0 0 4px rgba(0,0,0,0.4); box-shadow: 0 0 4px #d9d9d9;
} }
// Arrows // Arrows
......
...@@ -144,16 +144,6 @@ ...@@ -144,16 +144,6 @@
} }
} }
@-webkit-keyframes loadingCircle {
0% {
-webkit-transform-origin: 50% 50%;
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform-origin: 50% 50%;
-webkit-transform: rotate(360deg);
}
}
@keyframes loadingCircle { @keyframes loadingCircle {
0% { 0% {
transform-origin: 50% 50%; transform-origin: 50% 50%;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册