form.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. ---
  2. layout: documentation
  3. doc-tab: elements
  4. doc-subtab: form
  5. ---
  6. {% include subnav-elements.html %}
  7. <section class="section">
  8. <div class="container">
  9. <h1 class="title">Form controls</h1>
  10. <h2 class="subtitle">
  11. All generic <strong>form controls</strong>, designed for consistency
  12. </h2>
  13. <hr>
  14. <div class="content">
  15. <p>The following form controls <strong>classes</strong> are supported:</p>
  16. <ul>
  17. <li><code>.label</code></li>
  18. <li><code>.input</code></li>
  19. <li><code>.textarea</code></li>
  20. <li><code>.select</code></li>
  21. <li><code>.checkbox</code></li>
  22. <li><code>.radio</code></li>
  23. <li><code>.button</code></li>
  24. <li><code>.help</code></li>
  25. </ul>
  26. <p>When combining several controls in a <strong>form</strong>, use the <code>.control</code> class as a <strong>container</strong>, to keep the spacing consistent.</p>
  27. </div>
  28. <div class="columns">
  29. <div class="column is-half">
  30. <label class="label">Name</label>
  31. <p class="control">
  32. <input class="input" type="text" placeholder="Text input">
  33. </p>
  34. <label class="label">Username</label>
  35. <p class="control has-icon has-icon-right">
  36. <input class="input is-success" type="text" placeholder="Text input" value="bulma">
  37. <i class="fa fa-check"></i>
  38. <span class="help is-success">This username is available</span>
  39. </p>
  40. <label class="label">Email</label>
  41. <p class="control has-icon has-icon-right">
  42. <input class="input is-danger" type="text" placeholder="Email input" value="hello@">
  43. <i class="fa fa-warning"></i>
  44. <span class="help is-danger">This email is invalid</span>
  45. </p>
  46. <label class="label">Subject</label>
  47. <p class="control">
  48. <span class="select">
  49. <select>
  50. <option>Select dropdown</option>
  51. <option>With options</option>
  52. </select>
  53. </span>
  54. </p>
  55. <label class="label">Message</label>
  56. <p class="control">
  57. <textarea class="textarea" placeholder="Textarea"></textarea>
  58. </p>
  59. <p class="control">
  60. <label class="checkbox">
  61. <input type="checkbox">
  62. Remember me
  63. </label>
  64. </p>
  65. <p class="control">
  66. <label class="radio">
  67. <input type="radio" name="question">
  68. Yes
  69. </label>
  70. <label class="radio">
  71. <input type="radio" name="question">
  72. No
  73. </label>
  74. </p>
  75. <p class="control">
  76. <button class="button is-primary">Submit</button>
  77. <button class="button is-link">Cancel</button>
  78. </p>
  79. </div>
  80. <div class="column is-half">
  81. {% highlight html %}
  82. <label class="label">Name</label>
  83. <p class="control">
  84. <input class="input" type="text" placeholder="Text input">
  85. </p>
  86. <label class="label">Username</label>
  87. <p class="control has-icon has-icon-right">
  88. <input class="input is-success" type="text" placeholder="Text input" value="bulma">
  89. <i class="fa fa-check"></i>
  90. <span class="help is-success">This username is available</span>
  91. </p>
  92. <label class="label">Email</label>
  93. <p class="control has-icon has-icon-right">
  94. <input class="input is-danger" type="text" placeholder="Email input" value="hello@">
  95. <i class="fa fa-warning"></i>
  96. <span class="help is-danger">This email is invalid</span>
  97. </p>
  98. <label class="label">Subject</label>
  99. <p class="control">
  100. <span class="select">
  101. <select>
  102. <option>Select dropdown</option>
  103. <option>With options</option>
  104. </select>
  105. </span>
  106. </p>
  107. <label class="label">Message</label>
  108. <p class="control">
  109. <textarea class="textarea" placeholder="Textarea"></textarea>
  110. </p>
  111. <p class="control">
  112. <label class="checkbox">
  113. <input type="checkbox">
  114. Remember me
  115. </label>
  116. </p>
  117. <p class="control">
  118. <label class="radio">
  119. <input type="radio" name="question">
  120. Yes
  121. </label>
  122. <label class="radio">
  123. <input type="radio" name="question">
  124. No
  125. </label>
  126. </p>
  127. <p class="control">
  128. <button class="button is-primary">Submit</button>
  129. <button class="button is-link">Cancel</button>
  130. </p>
  131. {% endhighlight %}
  132. </div>
  133. </div>
  134. <hr>
  135. <h3 class="title">Colors</h3>
  136. <div class="columns">
  137. <div class="column is-half">
  138. <p class="control">
  139. <input class="input is-primary" type="text" placeholder="Primary input">
  140. </p>
  141. <p class="control">
  142. <input class="input is-info" type="text" placeholder="Info input">
  143. </p>
  144. <p class="control">
  145. <input class="input is-success" type="text" placeholder="Success input">
  146. </p>
  147. <p class="control">
  148. <input class="input is-warning" type="text" placeholder="Warning input">
  149. </p>
  150. <p class="control">
  151. <input class="input is-danger" type="text" placeholder="Danger input">
  152. </p>
  153. </div>
  154. <div class="column is-half">
  155. {% highlight html %}
  156. <p class="control">
  157. <input class="input is-primary" type="text" placeholder="Primary input">
  158. </p>
  159. <p class="control">
  160. <input class="input is-info" type="text" placeholder="Info input">
  161. </p>
  162. <p class="control">
  163. <input class="input is-success" type="text" placeholder="Success input">
  164. </p>
  165. <p class="control">
  166. <input class="input is-warning" type="text" placeholder="Warning input">
  167. </p>
  168. <p class="control">
  169. <input class="input is-danger" type="text" placeholder="Danger input">
  170. </p>
  171. {% endhighlight %}
  172. </div>
  173. </div>
  174. <hr>
  175. <h3 class="title">Sizes</h3>
  176. <div class="columns">
  177. <div class="column is-half">
  178. <p class="control">
  179. <input class="input is-small" type="text" placeholder="Small input">
  180. </p>
  181. <p class="control">
  182. <input class="input" type="text" placeholder="Normal input">
  183. </p>
  184. <p class="control">
  185. <input class="input is-medium" type="text" placeholder="Medium input">
  186. </p>
  187. <p class="control">
  188. <input class="input is-large" type="text" placeholder="Large input">
  189. </p>
  190. <p class="control">
  191. <span class="select is-small">
  192. <select>
  193. <option>Select dropdown</option>
  194. <option>With options</option>
  195. </select>
  196. </span>
  197. </p>
  198. <p class="control">
  199. <span class="select">
  200. <select>
  201. <option>Select dropdown</option>
  202. <option>With options</option>
  203. </select>
  204. </span>
  205. </p>
  206. <p class="control">
  207. <span class="select is-medium">
  208. <select>
  209. <option>Select dropdown</option>
  210. <option>With options</option>
  211. </select>
  212. </span>
  213. </p>
  214. <p class="control">
  215. <span class="select is-large">
  216. <select>
  217. <option>Select dropdown</option>
  218. <option>With options</option>
  219. </select>
  220. </span>
  221. </p>
  222. </div>
  223. <div class="column is-half">
  224. {% highlight html %}
  225. <p class="control">
  226. <input class="input is-small" type="text" placeholder="Small input">
  227. </p>
  228. <p class="control">
  229. <input class="input" type="text" placeholder="Normal input">
  230. </p>
  231. <p class="control">
  232. <input class="input is-medium" type="text" placeholder="Medium input">
  233. </p>
  234. <p class="control">
  235. <input class="input is-large" type="text" placeholder="Large input">
  236. </p>
  237. {% endhighlight %}
  238. </div>
  239. </div>
  240. <hr>
  241. <h3 class="title">States</h3>
  242. <h4 class="subtitle">Loading</h4>
  243. <div class="columns">
  244. <div class="column is-half">
  245. <p class="control is-loading">
  246. <input class="input" type="text" placeholder="Loading input">
  247. </p>
  248. <p class="control is-loading">
  249. <textarea class="textarea" placeholder="Loading textarea"></textarea>
  250. </p>
  251. </div>
  252. <div class="column is-half">
  253. {% highlight html %}
  254. <p class="control is-loading">
  255. <input class="input" type="text" placeholder="Loading input">
  256. </p>
  257. <p class="control is-loading">
  258. <textarea class="textarea" placeholder="Loading textarea"></textarea>
  259. </p>
  260. {% endhighlight %}
  261. </div>
  262. </div>
  263. <h4 class="subtitle">Disabled</h4>
  264. <div class="columns">
  265. <div class="column is-half">
  266. <p class="control">
  267. <input class="input" type="text" placeholder="Disabled input" disabled>
  268. </p>
  269. <p class="control">
  270. <textarea class="textarea" placeholder="Disabled textarea" disabled></textarea>
  271. </p>
  272. <p class="control">
  273. <label class="checkbox is-disabled">
  274. <input type="checkbox" disabled>
  275. Remember me
  276. </label>
  277. </p>
  278. <p class="control">
  279. <label class="radio is-disabled">
  280. <input type="radio" name="question" disabled>
  281. Yes
  282. </label>
  283. <label class="radio is-disabled">
  284. <input type="radio" name="question" disabled>
  285. No
  286. </label>
  287. </p>
  288. <p class="control">
  289. <button class="button is-primary" disabled>Submit</button>
  290. <button class="button" disabled>Cancel</button>
  291. </p>
  292. </div>
  293. <div class="column is-half">
  294. {% highlight html %}
  295. <p class="control">
  296. <input class="input" type="text" placeholder="Disabled input" disabled>
  297. </p>
  298. <p class="control">
  299. <textarea class="textarea" placeholder="Disabled textarea" disabled></textarea>
  300. </p>
  301. <p class="control">
  302. <label class="checkbox is-disabled">
  303. <input type="checkbox" disabled>
  304. Remember me
  305. </label>
  306. </p>
  307. <p class="control">
  308. <label class="radio is-disabled">
  309. <input type="radio" name="question" disabled>
  310. Yes
  311. </label>
  312. <label class="radio is-disabled">
  313. <input type="radio" name="question" disabled>
  314. No
  315. </label>
  316. </p>
  317. <p class="control">
  318. <button class="button is-primary" disabled>Submit</button>
  319. <button class="button" disabled>Cancel</button>
  320. </p>
  321. {% endhighlight %}
  322. </div>
  323. </div>
  324. <h4 class="subtitle">With Font Awesome icons</h4>
  325. <div class="columns">
  326. <div class="column is-half">
  327. <p class="control has-icon">
  328. <input class="input" type="email" placeholder="Email">
  329. <i class="fa fa-envelope"></i>
  330. </p>
  331. <p class="control has-icon">
  332. <input class="input" type="password" placeholder="Password">
  333. <i class="fa fa-lock"></i>
  334. </p>
  335. <p class="control">
  336. <button class="button is-success">
  337. Login
  338. </button>
  339. </p>
  340. </div>
  341. <div class="column is-half">
  342. {% highlight html %}
  343. <p class="control has-icon">
  344. <input class="input" type="email" placeholder="Email">
  345. <i class="fa fa-envelope"></i>
  346. </p>
  347. <p class="control has-icon">
  348. <input class="input" type="password" placeholder="Password">
  349. <i class="fa fa-lock"></i>
  350. </p>
  351. <p class="control">
  352. <button class="button is-success">
  353. Login
  354. </button>
  355. </p>
  356. {% endhighlight %}
  357. </div>
  358. </div>
  359. <div class="columns">
  360. <div class="column is-half">
  361. <p class="control has-icon">
  362. <input class="input is-small" type="email" placeholder="Email">
  363. <i class="fa fa-envelope"></i>
  364. </p>
  365. <p class="control has-icon">
  366. <input class="input" type="email" placeholder="Email">
  367. <i class="fa fa-envelope"></i>
  368. </p>
  369. <p class="control has-icon">
  370. <input class="input is-medium" type="email" placeholder="Email">
  371. <i class="fa fa-envelope"></i>
  372. </p>
  373. <p class="control has-icon">
  374. <input class="input is-large" type="email" placeholder="Email">
  375. <i class="fa fa-envelope"></i>
  376. </p>
  377. <p class="control has-icon has-icon-right">
  378. <input class="input is-small" type="email" placeholder="Email">
  379. <i class="fa fa-check"></i>
  380. </p>
  381. <p class="control has-icon has-icon-right">
  382. <input class="input" type="email" placeholder="Email">
  383. <i class="fa fa-check"></i>
  384. </p>
  385. <p class="control has-icon has-icon-right">
  386. <input class="input is-medium" type="email" placeholder="Email">
  387. <i class="fa fa-check"></i>
  388. </p>
  389. <p class="control has-icon has-icon-right">
  390. <input class="input is-large" type="email" placeholder="Email">
  391. <i class="fa fa-check"></i>
  392. </p>
  393. </div>
  394. <div class="column is-half">
  395. {% highlight html %}
  396. <p class="control has-icon">
  397. <input class="input is-small" type="email" placeholder="Email">
  398. <i class="fa fa-envelope"></i>
  399. </p>
  400. <p class="control has-icon">
  401. <input class="input" type="email" placeholder="Email">
  402. <i class="fa fa-envelope"></i>
  403. </p>
  404. <p class="control has-icon">
  405. <input class="input is-medium" type="email" placeholder="Email">
  406. <i class="fa fa-envelope"></i>
  407. </p>
  408. <p class="control has-icon">
  409. <input class="input is-large" type="email" placeholder="Email">
  410. <i class="fa fa-envelope"></i>
  411. </p>
  412. <p class="control has-icon has-icon-right">
  413. <input class="input is-small" type="email" placeholder="Email">
  414. <i class="fa fa-check"></i>
  415. </p>
  416. <p class="control has-icon has-icon-right">
  417. <input class="input" type="email" placeholder="Email">
  418. <i class="fa fa-check"></i>
  419. </p>
  420. <p class="control has-icon has-icon-right">
  421. <input class="input is-medium" type="email" placeholder="Email">
  422. <i class="fa fa-check"></i>
  423. </p>
  424. <p class="control has-icon has-icon-right">
  425. <input class="input is-large" type="email" placeholder="Email">
  426. <i class="fa fa-check"></i>
  427. </p>
  428. {% endhighlight %}
  429. </div>
  430. </div>
  431. <hr>
  432. <h3 class="title">Form addons</h3>
  433. <div class="content">
  434. <p>If you want to <strong>attach</strong> controls together, use the <code>has-addons</code> modifier on the <code>control</code> container:</p>
  435. </div>
  436. <div class="example">
  437. <p class="control has-addons">
  438. <input class="input" type="text" placeholder="Find a repository">
  439. <a class="button is-info">
  440. Search
  441. </a>
  442. </p>
  443. </div>
  444. {% highlight html %}
  445. <p class="control has-addons">
  446. <input class="input" type="text" placeholder="Find a repository">
  447. <a class="button is-info">
  448. Search
  449. </a>
  450. </p>
  451. {% endhighlight %}
  452. <div class="content">
  453. <p>You can attach inputs, buttons, and dropdowns <strong>only</strong>.</p>
  454. <p>Use the <code>is-expanded</code> modifier on the element you want to fill up the remaing space (in this case, the input):</p>
  455. </div>
  456. <div class="example">
  457. <p class="control has-addons">
  458. <span class="select">
  459. <select>
  460. <option>$</option>
  461. <option>£</option>
  462. <option>€</option>
  463. </select>
  464. </span>
  465. <input class="input is-expanded" type="text" placeholder="Amount of money">
  466. <a class="button">
  467. Transfer
  468. </a>
  469. </p>
  470. </div>
  471. {% highlight html %}
  472. <p class="control has-addons">
  473. <span class="select">
  474. <select>
  475. <option>$</option>
  476. <option>£</option>
  477. <option>€</option>
  478. </select>
  479. </span>
  480. <input class="input is-expanded" type="text" placeholder="Amount of money">
  481. <a class="button">
  482. Transfer
  483. </a>
  484. </p>
  485. {% endhighlight %}
  486. <div class="content">
  487. <p>Use the <code>has-addons-centered</code> or the <code>has-addons-right</code> modifers to alter the <strong>alignment</strong>.</p>
  488. </div>
  489. <div class="example">
  490. <p class="control has-addons has-addons-centered">
  491. <span class="select">
  492. <select>
  493. <option>$</option>
  494. <option>£</option>
  495. <option>€</option>
  496. </select>
  497. </span>
  498. <input class="input" type="text" placeholder="Amount of money">
  499. <a class="button is-primary">
  500. Transfer
  501. </a>
  502. </p>
  503. </div>
  504. {% highlight html %}
  505. <p class="control has-addons has-addons-centered">
  506. <span class="select">
  507. <select>
  508. <option>$</option>
  509. <option>£</option>
  510. <option>€</option>
  511. </select>
  512. </span>
  513. <input class="input" type="text" placeholder="Amount of money">
  514. <a class="button is-primary">
  515. Transfer
  516. </a>
  517. </p>
  518. {% endhighlight %}
  519. <div class="example">
  520. <p class="control has-addons has-addons-right">
  521. <span class="select">
  522. <select>
  523. <option>$</option>
  524. <option>£</option>
  525. <option>€</option>
  526. </select>
  527. </span>
  528. <input class="input" type="text" placeholder="Amount of money">
  529. <a class="button is-primary">
  530. Transfer
  531. </a>
  532. </p>
  533. </div>
  534. {% highlight html %}
  535. <p class="control has-addons has-addons-right">
  536. <span class="select">
  537. <select>
  538. <option>$</option>
  539. <option>£</option>
  540. <option>€</option>
  541. </select>
  542. </span>
  543. <input class="input" type="text" placeholder="Amount of money">
  544. <a class="button is-primary">
  545. Transfer
  546. </a>
  547. </p>
  548. {% endhighlight %}
  549. <hr>
  550. <h3 class="title">Form group</h3>
  551. <div class="content">
  552. <p>If you want to <strong>group</strong> controls together, use the <code>is-grouped</code> modifier on the <code>control</code> container:</p>
  553. </div>
  554. <div class="example">
  555. <div class="control is-grouped">
  556. <p class="control is-expanded">
  557. <input class="input" type="text" placeholder="Find a repository">
  558. </p>
  559. <p class="control">
  560. <a class="button is-info">
  561. Search
  562. </a>
  563. </p>
  564. </div>
  565. </div>
  566. {% highlight html %}
  567. <div class="control is-grouped">
  568. <p class="control is-expanded">
  569. <input class="input" type="text" placeholder="Find a repository">
  570. </p>
  571. <p class="control">
  572. <a class="button is-info">
  573. Search
  574. </a>
  575. </p>
  576. </div>
  577. {% endhighlight %}
  578. <div class="content">
  579. <p>Add the <code>is-expanded</code> modifier on the control element you want to <strong>fill up the remaining space</strong>.</p>
  580. </div>
  581. <hr>
  582. <h3 class="title">Horizontal form</h3>
  583. <div class="content">
  584. <p>If you want a <strong>horizontal</strong> form control, use the <code>is-horizontal</code> modifier on the <code>control</code> container, in which you include:</p>
  585. <ul>
  586. <li>
  587. <code>control-label</code> for the side label
  588. </li>
  589. <li>
  590. <code>control</code> for the input/select/textarea container
  591. </li>
  592. </ul>
  593. <p>You can of course use <code>is-grouped</code> or <code>has-addons</code> for the child elements.</p>
  594. </div>
  595. <div class="control is-horizontal">
  596. <div class="control-label">
  597. <label class="label">From</label>
  598. </div>
  599. <div class="control is-grouped">
  600. <p class="control is-expanded">
  601. <input class="input" type="text" placeholder="Name">
  602. </p>
  603. <p class="control is-expanded">
  604. <input class="input" type="email" placeholder="Email">
  605. </p>
  606. </div>
  607. </div>
  608. <div class="control is-horizontal">
  609. <div class="control-label">
  610. <label class="label">Subject</label>
  611. </div>
  612. <div class="control">
  613. <div class="select is-fullwidth">
  614. <select>
  615. <option>General enquiry</option>
  616. </select>
  617. </div>
  618. </div>
  619. </div>
  620. <div class="control is-horizontal">
  621. <div class="control-label">
  622. <label class="label">Question</label>
  623. </div>
  624. <div class="control">
  625. <textarea class="textarea" placeholder="Explain how we can help you"></textarea>
  626. </div>
  627. </div>
  628. {% highlight html %}
  629. <div class="control is-horizontal">
  630. <div class="control-label">
  631. <label class="label">From</label>
  632. </div>
  633. <div class="control is-grouped">
  634. <p class="control is-expanded">
  635. <input class="input" type="text" placeholder="Name">
  636. </p>
  637. <p class="control is-expanded">
  638. <input class="input" type="email" placeholder="Email">
  639. </p>
  640. </div>
  641. </div>
  642. <div class="control is-horizontal">
  643. <div class="control-label">
  644. <label class="label">Subject</label>
  645. </div>
  646. <div class="control">
  647. <div class="select is-fullwidth">
  648. <select>
  649. <option>General enquiry</option>
  650. </select>
  651. </div>
  652. </div>
  653. </div>
  654. <div class="control is-horizontal">
  655. <div class="control-label">
  656. <label class="label">Question</label>
  657. </div>
  658. <div class="control">
  659. <textarea class="textarea" placeholder="Explain how we can help you"></textarea>
  660. </div>
  661. </div>
  662. {% endhighlight %}
  663. </div>
  664. </section>