You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

666 lines
20 KiB

11 years ago
  1. ---
  2. layout : 'default'
  3. css : 'form'
  4. title : 'Form'
  5. description : 'A form is a collection of user input elements'
  6. type : 'UI Collection'
  7. ---
  8. <script src="/javascript/form.js"></script>
  9. <%- @partial('header') %>
  10. <div class="main container">
  11. <div class="peek">
  12. <div class="ui vertical pointing secondary menu">
  13. <a class="active item">Types</a>
  14. <a class="item">Elements</a>
  15. <a class="item">States</a>
  16. <a class="item">Variations</a>
  17. <a class="item">Groups</a>
  18. </div>
  19. </div>
  20. <h2 class="ui dividing header">Types</h2>
  21. <div class="example">
  22. <h4 class="ui header">Form:</h4>
  23. <p>
  24. Forms always include fields, and fields always contain form elements. Fields themselves may also include:
  25. <a href="/elements/input.html">inputs</a>, standard form fields, <a href="/elements/label.html">labels</a>, <a href="/modules/dropdown.html">selection dropdowns</a>, textareas, as well as:
  26. <a href="/modules/checkbox.html">checkboxes</a>, and <a href="/collections/message.html">message blocks</a>.
  27. </p>
  28. <p>Validation messages use <a href="/collections/message.html">messages</a> which are formatted for use inside forms.</p>
  29. <div class="ui ignored warning message">
  30. <p>If you are looking for form validation, you should check out <a href="/modules/form.html">form validation</a>.</p>
  31. </div>
  32. <div class="ui ignored info message">
  33. <p>This example uses a <a href="/elements/segment.html">ui segment</a> to add the padding and background color. This is not required.</p>
  34. </div>
  35. <div class="ui form segment">
  36. <div class="field">
  37. <label>Username</label>
  38. <div class="ui left labeled icon input">
  39. <input type="text" placeholder="Username">
  40. <i class="user icon"></i>
  41. <div class="ui corner label">
  42. <i class="icon asterisk"></i>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="field">
  47. <label>Password</label>
  48. <div class="ui left labeled icon input">
  49. <input type="password">
  50. <i class="lock icon"></i>
  51. <div class="ui corner label">
  52. <i class="icon asterisk"></i>
  53. </div>
  54. </div>
  55. </div>
  56. <div class="ui error message">
  57. <div class="header">We noticed some issues</div>
  58. </div>
  59. <div class="ui blue submit button">Login</div>
  60. </div>
  61. </div>
  62. <h2 class="ui dividing header">Elements</h2>
  63. <div class="example">
  64. <h4 class="ui header">Field</h4>
  65. <p>A field is a form element containing a label and an input</p>
  66. <div class="ui form">
  67. <div class="field">
  68. <label>User Input</label>
  69. <input type="text">
  70. </div>
  71. </div>
  72. </div>
  73. <div class="example">
  74. <h4 class="ui header">Text Area</h4>
  75. <p>A textarea uses the default form element</p>
  76. <div class="ui form">
  77. <div class="field">
  78. <label>User Text</label>
  79. <textarea></textarea>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="example">
  84. <h4 class="ui header">Javascript Checkbox</h4>
  85. <p><a href="/modules/checkbox.html">UI Checkboxes</a> allow a user to select individual options in a form</p>
  86. <div class="evaluated code" data-type="javascript" data-label="true">
  87. $('.ui.checkbox')
  88. .checkbox()
  89. ;
  90. </div>
  91. <div class="ui form">
  92. <div class="inline field">
  93. <div class="ui checkbox">
  94. <input type="checkbox" />
  95. <label>Checkbox</label>
  96. </div>
  97. </div>
  98. <div class="inline field">
  99. <div class="ui slider checkbox">
  100. <input type="checkbox" />
  101. <label>Slider</label>
  102. </div>
  103. <label></label>
  104. </div>
  105. <div class="inline field">
  106. <div class="ui toggle checkbox">
  107. <input type="checkbox" />
  108. <label>Toggle</label>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <div class="example">
  114. <a id="html-checkbox"></a>
  115. <h4 class="ui header">HTML Only Checkbox</h4>
  116. <p>Using checkboxes with HTML only, you must match the <code>for</code> attribute of your label to the <code>id</code> attribute of your checkbox.
  117. <div class="ui form">
  118. <div class="inline field">
  119. <div class="ui checkbox">
  120. <input id="check1" type="checkbox" />
  121. <label for="check1">Checkbox</label>
  122. </div>
  123. </div>
  124. <div class="inline field">
  125. <div class="ui slider checkbox">
  126. <input id="check2" type="checkbox" />
  127. <label for="check2">Slider</label>
  128. </div>
  129. <label></label>
  130. </div>
  131. <div class="inline field">
  132. <div class="ui toggle checkbox">
  133. <input id="check3" type="checkbox" />
  134. <label for="check3">Toggle</label>
  135. </div>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="example">
  140. <h4 class="ui header">Radio Box</h4>
  141. <p>Radio boxes are a type of <a href="/modules/checkbox.html">UI Checkboxes</a> allowing only exclusive choice of options</p>
  142. <div class="evaluated code" data-type="javascript" data-label="true">
  143. $('.ui.radio.checkbox')
  144. .checkbox()
  145. ;
  146. </div>
  147. <div class="ui form">
  148. <div class="grouped inline fields">
  149. <div class="field">
  150. <div class="ui radio checkbox">
  151. <input type="radio" name="fruit" checked />
  152. <label>Apples</label>
  153. </div>
  154. </div>
  155. <div class="field">
  156. <div class="ui radio checkbox">
  157. <input type="radio" name="fruit" />
  158. <label>Oranges</label>
  159. </div>
  160. </div>
  161. <div class="field">
  162. <div class="ui radio checkbox">
  163. <input type="radio" name="fruit" />
  164. <label>Pears</label>
  165. </div>
  166. </div>
  167. <div class="field">
  168. <div class="ui radio checkbox">
  169. <input type="radio" name="fruit" />
  170. <label>Grapefruit</label>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. <div class="example">
  177. <h4 class="ui header">HTML Only Radio Box</h4>
  178. <p>Using checkboxes with HTML only, you must match the <code>for</code> attribute of your label to the <code>id</code> attribute of your checkbox.
  179. <div class="ui form">
  180. <div class="grouped inline fields">
  181. <div class="field">
  182. <div class="ui radio checkbox">
  183. <input id="choice-1" type="radio" name="fruit" checked />
  184. <label for="choice-1">Apples</label>
  185. </div>
  186. </div>
  187. <div class="field">
  188. <div class="ui radio checkbox">
  189. <input id="choice-2" type="radio" name="fruit" />
  190. <label for="choice-2">Oranges</label>
  191. </div>
  192. </div>
  193. <div class="field">
  194. <div class="ui radio checkbox">
  195. <input id="choice-3" type="radio" name="fruit" />
  196. <label for="choice-3">Pears</label>
  197. </div>
  198. </div>
  199. <div class="field">
  200. <div class="ui radio checkbox">
  201. <input id="choice-4" type="radio" name="fruit" />
  202. <label for="choice-4">Grapefruit</label>
  203. </div>
  204. </div>
  205. </div>
  206. </div>
  207. </div>
  208. <div class="no form example">
  209. <h4 class="ui header">Select</h4>
  210. <p>A selection dropdown, a type of <a href="/modules/dropdown.html">ui dropdown</a> can be used to allow for a selection from multiple choices</p>
  211. <div class="evaluated code" data-type="javascript" data-label="true">
  212. $('.ui.selection.dropdown')
  213. .dropdown()
  214. ;
  215. </div>
  216. <div class="ui selection dropdown">
  217. <input type="hidden" name="gender">
  218. <div class="default text">Gender</div>
  219. <i class="dropdown icon"></i>
  220. <div class="menu">
  221. <div class="item" data-value="male">Male</div>
  222. <div class="item" data-value="female">Female</div>
  223. </div>
  224. </div>
  225. </div>
  226. <div class="example">
  227. <h4 class="ui header">Text Block</h4>
  228. <p>Text blocks have special meaning inside a form tag. Any info, error, or warning message blocks found inside a form are hidden by default.</p>
  229. <div class="ui form">
  230. <div class="ui message">
  231. <div class="header">We had some issues</div>
  232. <ul class="list">
  233. <li>Please enter your first name</li>
  234. <li>Please enter your last name</li>
  235. </ul>
  236. </div>
  237. </div>
  238. </div>
  239. <h2 class="ui dividing header">States</h2>
  240. <h3 class="ui header">Form</h3>
  241. <div class="example">
  242. <h4 class="ui header">Loading</h4>
  243. <p>If a form is in loading state, it will automatically show a loading indicator:</p>
  244. <div class="ui loading form segment">
  245. <div class="two fields">
  246. <div class="field">
  247. <label>First Name</label>
  248. <input placeholder="First Name" type="text">
  249. </div>
  250. <div class="field">
  251. <label>Last Name</label>
  252. <input placeholder="Last Name" type="text">
  253. </div>
  254. </div>
  255. <div class="field">
  256. <label>Gender</label>
  257. <div class="ui fluid selection dropdown">
  258. <div class="text">Select</div>
  259. <i class="dropdown icon"></i>
  260. <input type="hidden" name="gender">
  261. <div class="menu">
  262. <div class="item" data-value="male">Male</div>
  263. <div class="item" data-value="female">Female</div>
  264. </div>
  265. </div>
  266. </div>
  267. <div class="field">
  268. <label>Username</label>
  269. <input placeholder="Username" type="text">
  270. </div>
  271. <div class="field">
  272. <label>Password</label>
  273. <input type="password">
  274. </div>
  275. <div class="inline field">
  276. <div class="ui checkbox">
  277. <input type="checkbox" />
  278. <label>I agree to the terms and conditions</label>
  279. </div>
  280. </div>
  281. <div class="ui blue submit button">Submit</div>
  282. </div>
  283. </div>
  284. <div class="example">
  285. <h4 class="ui header">Error</h4>
  286. <p>If a form is in an error state, it will automatically show any error message blocks:</p>
  287. <div class="ui error form segment">
  288. <div class="ui error message">
  289. <div class="header">Action Forbidden</div>
  290. <p>You can only sign up for an account once with a given e-mail address.</p>
  291. </div>
  292. <div class="two fields">
  293. <div class="field">
  294. <label>First Name</label>
  295. <input placeholder="First Name" type="text">
  296. </div>
  297. <div class="field">
  298. <label>Last Name</label>
  299. <input placeholder="Last Name" type="text">
  300. </div>
  301. </div>
  302. <div class="field">
  303. <label>Gender</label>
  304. <div class="ui fluid selection dropdown">
  305. <div class="text">Select</div>
  306. <i class="dropdown icon"></i>
  307. <input type="hidden" name="gender">
  308. <div class="menu">
  309. <div class="item" data-value="male">Male</div>
  310. <div class="item" data-value="female">Female</div>
  311. </div>
  312. </div>
  313. </div>
  314. <div class="field">
  315. <label>Username</label>
  316. <input placeholder="Username" type="text">
  317. </div>
  318. <div class="field">
  319. <label>Password</label>
  320. <input type="password">
  321. </div>
  322. <div class="inline field">
  323. <div class="ui checkbox">
  324. <input type="checkbox" />
  325. <label>I agree to the Terms and Conditions</label>
  326. </div>
  327. </div>
  328. <div class="ui blue submit button">Submit</div>
  329. </div>
  330. </div>
  331. <div class="example">
  332. <h4 class="ui header">Warning</h4>
  333. <p>If a form is in warning state, it will automatically show any warning message block:</p>
  334. <div class="ui warning form segment">
  335. <div class="ui warning message">
  336. <div class="header">Could you check something!</div>
  337. <ul class="list">
  338. <li>You forgot your <b>first name</b></li>
  339. <li>And also your <b>last name</b></li>
  340. </ul>
  341. </div>
  342. <div class="two error fields">
  343. <div class="field">
  344. <label>First Name</label>
  345. <input placeholder="First Name" type="text">
  346. <div class="ui red pointing above ui label">Enter a first name</div>
  347. </div>
  348. <div class="field">
  349. <label>Last Name</label>
  350. <input placeholder="Last Name" type="text">
  351. <div class="ui red pointing above ui label">Enter a last name</div>
  352. </div>
  353. </div>
  354. <div class="field">
  355. <label>Username</label>
  356. <input placeholder="Username" type="text">
  357. </div>
  358. <div class="field">
  359. <label>Password</label>
  360. <input type="password">
  361. </div>
  362. <div class="inline field">
  363. <div class="ui checkbox">
  364. <input type="checkbox" />
  365. <label>I agree to the Terms and Conditions</label>
  366. </div>
  367. </div>
  368. <div class="ui blue submit button">Submit</div>
  369. </div>
  370. </div>
  371. <h3 class="ui header">Form Fields</h3>
  372. <div class="example">
  373. <h4 class="ui header">Error</h4>
  374. <p>Individual fields may contain an error state</p>
  375. <div class="ui form segment">
  376. <div class="two fields">
  377. <div class="field error">
  378. <label>First Name</label>
  379. <input placeholder="First Name" type="text">
  380. </div>
  381. <div class="field">
  382. <label>Last Name</label>
  383. <input placeholder="Last Name" type="text">
  384. </div>
  385. </div>
  386. <div class="field error">
  387. <label>Gender</label>
  388. <div class="ui fluid selection dropdown">
  389. <div class="text">Select</div>
  390. <i class="dropdown icon"></i>
  391. <input type="hidden" name="gender">
  392. <div class="menu">
  393. <div class="item" data-value="male">Male</div>
  394. <div class="item" data-value="female">Female</div>
  395. </div>
  396. </div>
  397. </div>
  398. </div>
  399. </div>
  400. <div class="example">
  401. <h4 class="ui header">Disabled</h4>
  402. <p>Individual fields may be disabled or read only</p>
  403. <div class="ui form segment">
  404. <div class="two fields">
  405. <div class="field">
  406. <label>First Name</label>
  407. <input placeholder="Read Only" readonly="readonly" type="text">
  408. </div>
  409. <div class="disabled field">
  410. <label>Last Name</label>
  411. <input placeholder="Disabled" disabled="disabled" type="text">
  412. </div>
  413. </div>
  414. </div>
  415. </div>
  416. <h2 class="ui dividing header">Variations</h2>
  417. <h3 class="ui header">Forms</h3>
  418. <div class="example">
  419. <h4 class="ui header">Fluid</h4>
  420. <p>A form can take the width of its container</p>
  421. <div class="ui fluid form segment">
  422. <div class="two fields">
  423. <div class="field">
  424. <label>First Name</label>
  425. <input placeholder="First Name" type="text">
  426. </div>
  427. <div class="field">
  428. <label>Last Name</label>
  429. <input placeholder="Last Name" type="text">
  430. </div>
  431. </div>
  432. <div class="ui blue submit button">Submit</div>
  433. </div>
  434. </div>
  435. <div class="example">
  436. <h4 class="ui header">Size</h4>
  437. <p>A form can also be small or large</p>
  438. <div class="ui small form segment">
  439. <div class="two fields">
  440. <div class="field">
  441. <label>First Name</label>
  442. <input placeholder="First Name" type="text">
  443. </div>
  444. <div class="field">
  445. <label>Last Name</label>
  446. <input placeholder="Last Name" type="text">
  447. </div>
  448. </div>
  449. <div class="ui blue small submit button">Submit</div>
  450. </div>
  451. <br><br>
  452. <div class="ui large form segment">
  453. <div class="two fields">
  454. <div class="field">
  455. <label>First Name</label>
  456. <input placeholder="First Name" type="text">
  457. </div>
  458. <div class="field">
  459. <label>Last Name</label>
  460. <input placeholder="Last Name" type="text">
  461. </div>
  462. </div>
  463. <div class="ui blue submit button">Submit</div>
  464. </div>
  465. </div>
  466. <div class="example">
  467. <h4 class="ui header">Inverted</h4>
  468. <p>A form on a dark background may have to invert its color scheme</p>
  469. <div style="background-color: #333333; padding: 15px;">
  470. <div class="ui inverted form">
  471. <div class="ui info message">
  472. <div class="header">We had some issues</div>
  473. <ul class="list">
  474. <li>Please enter your first name</li>
  475. <li>Please enter your last name</li>
  476. </ul>
  477. </div>
  478. <div class="two fields">
  479. <div class="field">
  480. <label>First Name</label>
  481. <input placeholder="First Name" type="text">
  482. </div>
  483. <div class="field">
  484. <label>Last Name</label>
  485. <input placeholder="Last Name" type="text">
  486. </div>
  487. </div>
  488. <div class="inline field">
  489. <div class="ui checkbox">
  490. <input type="checkbox" />
  491. <label>I agree to the terms and conditions</label>
  492. </div>
  493. </div>
  494. <div class="ui blue submit button">Submit</div>
  495. </div>
  496. </div>
  497. </div>
  498. <h3 class="ui header">Fields</h3>
  499. <div class="example">
  500. <h4 class="ui header">Inline</h4>
  501. <p>A field can have its label next to instead of above it.</p>
  502. <div class="ui form">
  503. <div class="inline field">
  504. <label>Last name</label>
  505. <input type="text" placeholder="Full Name">
  506. </div>
  507. </div>
  508. </div>
  509. <div class="example">
  510. <h4 class="ui header">Date</h4>
  511. <p>A field can let users know they are for dates</p>
  512. <div class="ui form">
  513. <div class="date field">
  514. <label>Birthday</label>
  515. <input type="text" placeholder="xx/xx/xxxx">
  516. </div>
  517. </div>
  518. </div>
  519. <h2 class="ui dividing header">Groups</h2>
  520. <div class="example">
  521. <h4 class="ui header">Fields</h4>
  522. <p>Fields can exist together side by side</p>
  523. <div class="ui ignored positive icon message">
  524. <i class="mobile icon"></i>
  525. <div class="content">
  526. <h3 class="header">Responsive Element</h3>
  527. <p>Grouped fields automatically receive responsive styling, swapping to one field per row for mobile.</p>
  528. </div>
  529. </div>
  530. <div class="ui form">
  531. <div class="ui three fields">
  532. <div class="field">
  533. <label>First name</label>
  534. <input type="text" placeholder="First Name">
  535. </div>
  536. <div class="field">
  537. <label>Middle name</label>
  538. <input type="text" placeholder="Middle Name">
  539. </div>
  540. <div class="field">
  541. <label>Last name</label>
  542. <input type="text" placeholder="Last Name">
  543. </div>
  544. </div>
  545. </div>
  546. </div>
  547. <div class="example">
  548. <h4 class="ui header">Fields Grid</h4>
  549. <p>Fields can be aligned to a <a href="/collections/grid.html">ui grid</a></p>
  550. <div class="ui form">
  551. <div class="fields">
  552. <div class="four wide field">
  553. <label>First name</label>
  554. <input type="text" placeholder="First Name">
  555. </div>
  556. <div class="four wide field">
  557. <label>Middle name</label>
  558. <input type="text" placeholder="Middle Name">
  559. </div>
  560. <div class="eight wide field">
  561. <label>Last name</label>
  562. <input type="text" placeholder="Last Name">
  563. </div>
  564. </div>
  565. </div>
  566. </div>
  567. <div class="example">
  568. <h4 class="ui header">Grouped Fields</h4>
  569. <p>Fields can be grouped to show related choices</p>
  570. <div class="ui form">
  571. <div class="grouped inline fields">
  572. <div class="field">
  573. <div class="ui radio checkbox">
  574. <input type="radio" name="fruit" />
  575. <label></label>
  576. </div>
  577. <label> Apples</label>
  578. </div>
  579. <div class="field">
  580. <div class="ui radio checkbox">
  581. <input type="radio" name="fruit" />
  582. <label></label>
  583. </div>
  584. <label> Oranges</label>
  585. </div>
  586. <div class="field">
  587. <div class="ui radio checkbox">
  588. <input type="radio" name="fruit" />
  589. <label></label>
  590. </div>
  591. <label> Pears</label>
  592. </div>
  593. <div class="field">
  594. <div class="ui radio checkbox">
  595. <input type="radio" name="fruit" />
  596. <label></label>
  597. </div>
  598. <label> Grapefruit</label>
  599. </div>
  600. </div>
  601. </div>
  602. </div>
  603. <div class="example">
  604. <h4 class="ui header">Inline</h4>
  605. <p>Multiple fields may be inline in a row</p>
  606. <div class="ui form">
  607. <div class="inline fields">
  608. <div class="field">
  609. <label>Phone Number</label>
  610. <input type="text" placeholder="(xxx)">
  611. </div>
  612. <div class="field">
  613. <input type="text" placeholder="xxx">
  614. </div>
  615. <div class="field">
  616. <input type="text" placeholder="xxxx">
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. </div>