grid.stories.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. import React from 'react';
  2. import './demo.scss';
  3. import { Col, Row } from '../index';
  4. export default {
  5. title: 'Grid'
  6. }
  7. export const GridDefault = () => (
  8. <div>
  9. <Row>
  10. <Col span={24}>col-24</Col>
  11. </Row>
  12. <Row>
  13. <Col span={12}>col-12</Col>
  14. <Col span={12}>col-12</Col>
  15. </Row>
  16. <Row>
  17. <Col span={8}>col-8</Col>
  18. <Col span={8}>col-8</Col>
  19. <Col span={8}>col-8</Col>
  20. </Row>
  21. <Row>
  22. <Col span={6}>col-6</Col>
  23. <Col span={6}>col-6</Col>
  24. <Col span={6}>col-6</Col>
  25. <Col span={6}>col-6</Col>
  26. </Row>
  27. </div>
  28. );
  29. export const GridWithGutter = () => (
  30. <div className="gutter-example">
  31. <p>横向间距16</p>
  32. <hr />
  33. <Row gutter={16}>
  34. <Col className="gutter-row" span={6}>
  35. <div className="gutter-box">col-6</div>
  36. </Col>
  37. <Col className="gutter-row" span={6}>
  38. <div className="gutter-box">col-6</div>
  39. </Col>
  40. <Col className="gutter-row" span={6}>
  41. <div className="gutter-box">col-6</div>
  42. </Col>
  43. <Col className="gutter-row" span={6}>
  44. <div className="gutter-box">col-6</div>
  45. </Col>
  46. </Row>
  47. <p>横向间距16,纵向间距48</p>
  48. <hr />
  49. <Row gutter={[16, 48]}>
  50. <Col className="gutter-row" span={6}>
  51. <div className="gutter-box">col-6</div>
  52. </Col>
  53. <Col className="gutter-row" span={6}>
  54. <div className="gutter-box">col-6</div>
  55. </Col>
  56. <Col className="gutter-row" span={6}>
  57. <div className="gutter-box">col-6</div>
  58. </Col>
  59. <Col className="gutter-row" span={6}>
  60. <div className="gutter-box">col-6</div>
  61. </Col>
  62. <Col className="gutter-row" span={6}>
  63. <div className="gutter-box">col-6</div>
  64. </Col>
  65. <Col className="gutter-row" span={6}>
  66. <div className="gutter-box">col-6</div>
  67. </Col>
  68. <Col className="gutter-row" span={6}>
  69. <div className="gutter-box">col-6</div>
  70. </Col>
  71. <Col className="gutter-row" span={6}>
  72. <div className="gutter-box">col-6</div>
  73. </Col>
  74. </Row>
  75. <p>横向间距16,纵向间距24</p>
  76. <hr />
  77. <Row gutter={[16, 24]}>
  78. <Col className="gutter-row" span={6}>
  79. <div className="gutter-box">col-6</div>
  80. </Col>
  81. <Col className="gutter-row" span={6}>
  82. <div className="gutter-box">col-6</div>
  83. </Col>
  84. <Col className="gutter-row" span={6}>
  85. <div className="gutter-box">col-6</div>
  86. </Col>
  87. <Col className="gutter-row" span={6}>
  88. <div className="gutter-box">col-6</div>
  89. </Col>
  90. <Col className="gutter-row" span={6}>
  91. <div className="gutter-box">col-6</div>
  92. </Col>
  93. <Col className="gutter-row" span={6}>
  94. <div className="gutter-box">col-6</div>
  95. </Col>
  96. <Col className="gutter-row" span={6}>
  97. <div className="gutter-box">col-6</div>
  98. </Col>
  99. <Col className="gutter-row" span={6}>
  100. <div className="gutter-box">col-6</div>
  101. </Col>
  102. </Row>
  103. </div>
  104. );
  105. export const GridWithOffset = () => (
  106. <div>
  107. <Row>
  108. <Col span={8}>col-8</Col>
  109. <Col span={8} offset={8}>
  110. col-8
  111. </Col>
  112. </Row>
  113. <Row>
  114. <Col span={6} offset={6}>
  115. col-6 col-offset-6
  116. </Col>
  117. <Col span={6} offset={6}>
  118. col-6 col-offset-6
  119. </Col>
  120. </Row>
  121. <Row>
  122. <Col span={12} offset={6}>
  123. col-12 col-offset-6
  124. </Col>
  125. </Row>
  126. </div>
  127. );
  128. export const GridWithPullPush = () => (
  129. <div>
  130. <Row>
  131. <Col span={18} push={6}>
  132. col-18 col-push-6
  133. </Col>
  134. <Col span={6} pull={18}>
  135. col-6 col-pull-18
  136. </Col>
  137. </Row>
  138. </div>
  139. );
  140. export const GridWithTypeFlex = () => (
  141. <div>
  142. <p>sub-element align left</p>
  143. <Row type="flex" justify="start">
  144. <Col span={4}>col-4</Col>
  145. <Col span={4}>col-4</Col>
  146. <Col span={4}>col-4</Col>
  147. <Col span={4}>col-4</Col>
  148. </Row>
  149. <p>sub-element align center</p>
  150. <Row type="flex" justify="center">
  151. <Col span={4}>col-4</Col>
  152. <Col span={4}>col-4</Col>
  153. <Col span={4}>col-4</Col>
  154. <Col span={4}>col-4</Col>
  155. </Row>
  156. <p>sub-element align right</p>
  157. <Row type="flex" justify="end">
  158. <Col span={4}>col-4</Col>
  159. <Col span={4}>col-4</Col>
  160. <Col span={4}>col-4</Col>
  161. <Col span={4}>col-4</Col>
  162. </Row>
  163. <p>sub-element monospaced arrangement</p>
  164. <Row type="flex" justify="space-between">
  165. <Col span={4}>col-4</Col>
  166. <Col span={4}>col-4</Col>
  167. <Col span={4}>col-4</Col>
  168. <Col span={4}>col-4</Col>
  169. </Row>
  170. <p>sub-element align full</p>
  171. <Row type="flex" justify="space-around">
  172. <Col span={4}>col-4</Col>
  173. <Col span={4}>col-4</Col>
  174. <Col span={4}>col-4</Col>
  175. <Col span={4}>col-4</Col>
  176. </Row>
  177. </div>
  178. );
  179. const DemoBox = props => <p className={`height-${props.value}`}>{props.children}</p>;
  180. export const GridWithFlexChildVerticalAlign = () => (
  181. <div className="demo5">
  182. <p>Align Top</p>
  183. <Row type="flex" justify="center" align="top">
  184. <Col span={4}>
  185. <DemoBox value={100}>col-4</DemoBox>
  186. </Col>
  187. <Col span={4}>
  188. <DemoBox value={50}>col-4</DemoBox>
  189. </Col>
  190. <Col span={4}>
  191. <DemoBox value={120}>col-4</DemoBox>
  192. </Col>
  193. <Col span={4}>
  194. <DemoBox value={80}>col-4</DemoBox>
  195. </Col>
  196. </Row>
  197. <p>Align Center</p>
  198. <Row type="flex" justify="space-around" align="middle">
  199. <Col span={4}>
  200. <DemoBox value={100}>col-4</DemoBox>
  201. </Col>
  202. <Col span={4}>
  203. <DemoBox value={50}>col-4</DemoBox>
  204. </Col>
  205. <Col span={4}>
  206. <DemoBox value={120}>col-4</DemoBox>
  207. </Col>
  208. <Col span={4}>
  209. <DemoBox value={80}>col-4</DemoBox>
  210. </Col>
  211. </Row>
  212. <p>Align Bottom</p>
  213. <Row type="flex" justify="space-between" align="bottom">
  214. <Col span={4}>
  215. <DemoBox value={100}>col-4</DemoBox>
  216. </Col>
  217. <Col span={4}>
  218. <DemoBox value={50}>col-4</DemoBox>
  219. </Col>
  220. <Col span={4}>
  221. <DemoBox value={120}>col-4</DemoBox>
  222. </Col>
  223. <Col span={4}>
  224. <DemoBox value={80}>col-4</DemoBox>
  225. </Col>
  226. </Row>
  227. </div>
  228. );
  229. export const GridWithFlexOrder = () => (
  230. <div>
  231. <Row type="flex">
  232. <Col span={6} order={4}>
  233. 1 col-order-4
  234. </Col>
  235. <Col span={6} order={3}>
  236. 2 col-order-3
  237. </Col>
  238. <Col span={6} order={2}>
  239. 3 col-order-2
  240. </Col>
  241. <Col span={6} order={1}>
  242. 4 col-order-1
  243. </Col>
  244. </Row>
  245. </div>
  246. );
  247. export const GridBootstrap = () => (
  248. <div>
  249. <Row>
  250. <Col xs={2} sm={4} md={6} lg={8} xl={10}>
  251. Col
  252. </Col>
  253. <Col xs={20} sm={16} md={12} lg={8} xl={4}>
  254. Col
  255. </Col>
  256. <Col xs={2} sm={4} md={6} lg={8} xl={10}>
  257. Col
  258. </Col>
  259. </Row>
  260. <Row>
  261. <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}>
  262. Col
  263. </Col>
  264. <Col xs={{ span: 11, offset: 1 }} lg={{ span: 6, offset: 2 }}>
  265. Col
  266. </Col>
  267. <Col xs={{ span: 5, offset: 1 }} lg={{ span: 6, offset: 2 }}>
  268. Col
  269. </Col>
  270. </Row>
  271. </div>
  272. );