From 0f3a073b8dca534e78c09b71999d5a2632e2245d Mon Sep 17 00:00:00 2001
From: Mark Otto <markdotto@gmail.com>
Date: Mon, 30 Jan 2012 21:15:57 -0800
Subject: [PATCH] *really* refactor the buttons and update them all over the
 docs

---
 docs/assets/bootstrap.zip                | Bin 52308 -> 52307 bytes
 docs/assets/css/bootstrap.css            | 122 +++++++++++------------
 docs/assets/css/docs.css                 |   6 +-
 docs/base-css.html                       |  68 ++++++-------
 docs/components.html                     |  24 ++---
 docs/download.html                       |   8 +-
 docs/index.html                          |   4 +-
 docs/javascript.html                     |  30 +++---
 docs/templates/pages/base-css.mustache   |  68 ++++++-------
 docs/templates/pages/components.mustache |  24 ++---
 docs/templates/pages/download.mustache   |   8 +-
 docs/templates/pages/index.mustache      |   4 +-
 docs/templates/pages/javascript.mustache |  30 +++---
 examples/fluid-reverse.html              |   2 +-
 examples/fluid.html                      |   2 +-
 examples/hero.html                       |   2 +-
 less/button-groups.less                  |  10 +-
 less/buttons.less                        |  52 +++++-----
 18 files changed, 232 insertions(+), 232 deletions(-)

diff --git a/docs/assets/bootstrap.zip b/docs/assets/bootstrap.zip
index 930c0193771388436ce2fdf0d88dea3bec6f7bf6..55b71b927eff8660ef284fd2b2883b1dcb1d2ae1 100644
GIT binary patch
delta 11885
zcmZ8{19T<bwsqVwI<{>)>2z${?AXbPPuQ_-TOD?6+crA3{inZs?|bk5HAd}mYOb|v
z?!9)6Q>*4!b1C4nDd6x5(%=xVAb$_q(pY$6Qa=Ety#MFv;syr-3h@960s?{dY5XrY
z1#+l=xy47t;-b)&3Vh3W-#H^-0s#r+0|mj2k2S+ZG<I@QRe=Ek|Lf=nsF^~;0j9g)
zrnQ;yq=hKy>AKlQFZDa_6hy2P53S7(b%6B83b(Poa=xkusQ{MVO3_nv?_#1RX<tf^
z7HRjDhQ0Mp>#XKyW+$kI*{mx}k2z|S+#(<PFoi|XJ%7ASAnqQtp%?}zUi`Szri{WK
zr~^n`U>E%il=$;J%BiM;2f3Ji2y{){+L7c#Mpty*n;{X!<Ypb^<E#izj|Oa|ubjqO
z9OI$*fFpAQ;lKERKG86dy+RQ+2?t$Gr*OnH@Us5lc0yGdH(WsFG^=!mAX7j|p-K(5
z2-8m)YGxCrOeK-T-HySmAbu$vV;RJiBZb#)rl$}f8@A=_PRa}vG}I)b2GZ>6D`uL%
z${USyR2S!L29}RoJOS>vQ!6Yq%S>gZ3A`5SnM1fro;W8KauLjBb?pYos5M)2i~1$U
zc)KqGyw!AJrKx<SrYydlN=Pn*uCslKn|2l-!Ly?X$DXYcf^4Ox$H3*527+k~1pS(<
zohQlah+4OeXWJuONGHpv1v-CD#1!+Jg33-+$p+ausisrt3)gMBy}rbnX=zfEG=W%X
zE5zA{*^?tWMW>-du{Cri2cP(f2-!J}yT+O+tL7MpLoj43)mc)xX-e7-!`T;1uPpKx
z6IRU?(+Z1w!*s@^E1%l>=)P>Cv$(uCSJ68P3&P<v>6O9U&A^xMz!?VVh63GdCaD#2
z^A7<2faI%o)><f}pA-&TyDCncb1DzrVQml-;kOB)Tn3(WvI!%iKRh$-;Kb{;>PN1%
z8H~HSwGqp~Y$F&JY?>3|JMuA3l8VF4c^>f@(I(^M2fI^tJ>JCJ$%R^u4DMLu2Vd(y
zS~aSB`ky)J4(3|)fW-)mB`zd!E{S|}r?shcX1?{k{<;Zq_W0zv)aPC`7l9ilFS-Jn
z3$teoW7zuo{V(H==`u-ov5%-Gx=Jdwf0K6dnY7{Oe<f|<Gieo{NgHnYOq$rszL6-O
z!cBVYolpG4T7%PBOe(cRhx^Je`%zcFLh#{%RbvOVNRz}0fK<i)>MmZQk9iyKIS{TV
z%TjP~gYs(=*}cleemL$mT_Im)(?Lc#9xjG0C~jls%G||hYIvn7=b3vaBcfHU<D5y5
z6$>WsaMssnSu2g69>t!XC9gla&aNISz48161VDF{sRfq?RZR0Se$N#`J7I&oIK4mE
z=nAcJ8i#VXol)lxYp$8iF|l7@8Y_Hy)=kjId&R>Kn4rAjxXc06JzIm4pcn;scw$N9
zxurW9&Zh$)-K3FxBeY587)RIqWxCH+L?wpiI3}YJ^m6|3<So>ik)-VVtP#okmu{NR
zgTPV8TQ`Sf)2QVAt<USUK6Xoya~tEqRk1S4GqF622rORVagn6MA``eI3z*aqasJnU
zI6p-bw%>-GIlq0@YGKETKw007mVIG;K^GUhM0NCUwRZKoqP||YE$pYF^{;8~6zW#_
zC=&SW?`$eLJkyiX_3tiuhW2pRXK>;|0||qZ9V)SKu6}b9UvcOObfV784he9I?$4bz
zkvEgrN*etZaO0nuqTt+!W_u$=v$3xLo9QcpmpIxWJPYSELwZSz-mb2{exyy^z#Xal
zY0F}xVWOH_rJXMS4Fc|bw2mVq4$m$!M&PDi%$^sJzgWB-)L^5yS1L|o*P%mZ37i-R
zc;ww(OuJp?yn1f1rr2cwYxjy_kha{fB=irL{8G{|JTOJkev`WFrD^Rdovxr>ZJW_t
zZox-J=a&$kFc6Ex!^`C)FgMm>6N{>%pQ>_UK(X_+=ef+F4VK=|t2O7TXy{=sd}LL(
zW<xwgY7t)P=Q<x<?H$c1!s&aiB9Li(`*#;lEEu@5A&@YG7s`30fu#_;1H<(Dbz$4v
z*VwEWxn<A6yl&#-dwxsNeNUH@85f(W!0ri0WB#)K=%R(-1<xH?D+=y$Vykn8NZ?oR
zNKUiY2fgVkP?@u=U>Uoa9E#Bt{+=VpXK$+836t{QIu`*aPdaS84(p?qO+Y((vkC;_
zE_dMS0$|d0DRG9q7)#ym<$Fy)=`rjX;f9%Z73ZXBp&k%STY~R5a9a)JPG7Xh=Roa`
z?D7Qb6gV9I#fgK#^dWwA-k0|vK(&kl`!59h^=l0^BdYIGzl<!Q2j}X|_%OgWJ}A!f
za3}AvT)J{4N#coyTbd6-5`o79Y@lN^iX}*sxLn|jeMHFm3{^q7@Rh^yAGbiKD`O>J
z!19^M4vRD}*+=9NZZcf?vJur%VpRBJmUi<OYe2?U2PuI`w505Lr?<~doNO%u?uyh6
z6dabCOmdPRS~Gdi9|$-<XE-hSUu8AZLa06B-$2vOtAHK+cID2$B7vpcPvrY3j>c`B
z%v}*a{N`H@<lueDC&yU7;}moQ8aMl(?+~%QnoNxqB7G~rQ;``Yi_(%AT?8#z5a;c3
z9U?|VtS0$|C^z8Go?#dWeCx1Ut_s3i036YxTqsTLgHZvFELu2<a4RdJXpe%O(2Fl5
zT$6kVwfo8`UcxWu(1EVQ+|B9>tfwPtULl!TtEw(`Fr?kH*kuD@2<s`jN{d-)a)YCL
z>)Fh_%HJY~uG>8NN)UzDUFE}!Zq)Z~DHnA|M5HlE74OfiwN>tnb7UQ3$pR|;$xv$M
zEi7G0n3Q!cnY%l)>f#AR%#t2`7IMiHy;#zf04aV)SmLBA$UuA*{<$YPIP5J0tK}w|
z1C4_jGM`B7sJ$M7Og-9oWQ-r$%SpAgtJEZ7M|nB#K=0TA4V7?KKFf760@1F$MUolW
z5$~}!)$f(lB?y^8%h(cu<{w|$xz@Vm&UcbxcN0sH44V+SRH?LW3_KqA3}GDkD-f#t
z_i*5=$0hRmVu1Nh?F0Dyr*8O$I=nk1rR<gw9cMiUU4xZ|o6j3dcaekC?=0=i=V}Zf
zpSxmg^UAYYvjL?NI^kmS;`#f7P|4OVQXq#XITdB)qztM0wxcb<a>AwkjsD8Injc>c
ztv#~};J#)!w}by7n%aBbH)F6DRlW10miJ2H73RDz4w&aknWSRpNJ%i9Hk#>%_bl7Q
zxF<&^-LM|ok8~#Y3K!TPyLt#m15$d_xwWJcrNgX{EqCjFRO+NBOsFB`QZsQeL90e{
znaqw7Q;dFuiGL~jg)bkmOC7dP{^R#1&SRx6brV0l`W$z26H(7Rs*yt^<%d#&9|xG;
zPa2q}ufUOd?!=$Ax<hj)4-9=sf54mY{J&>9pe(#DwkZ{&owj9YdSHBMSS&8p{iRjB
zb80-rL(w<HPb{_<Xr8+2R^{+B&tc3(?r}QD1l-4}v7p(n<`7|C6B7eXM7+U2z;Z<U
zooeux6X-zBLR*%w&p9%A7NgLYJj-@){}_**xB*};tc)E&hL5<lG|nl_Zsy|X_M0Cx
z1+jP4MGm(M0IfoE%xwR6!kFE?=-1Pq{zR>~I23N?RR&Eht{h-X4Q$BIk<zRVBOBzA
z!M_=03HtfTG>q)2Y2GT*Zd$_U6>JX@qs}wR{czAJvSH^gP+C_v4b*khzq$^b5F+!V
zevb#<gTWN(eQcq+MEz((5Zu?316J(V5sB*Y3kkj)X_e%t5g}G#w^(Q6kA~fioqSN0
zJwO62$R4#F==C-sb$fI#2aCqaTDN-0{LrTpJjq^p{Lf3e9ui)oVdhO?DTQ?zlDQ(q
z^qRh>iz%`VOyuggASicZ?{VT7?(xOmOV<EpAWk5JK#n5dGWFtzU01rOk{*~-ahB1)
zTt%QvZB5xti0-}Xsmq3(E0?bOjG37tK6P`u$Nbg=BOKG|q7sKe?q&L}Oc@4t0)rwj
zQbXY!in&=_bPujW!U`e?iniV`z0&rou*do~Wl^0X+G38#&JO69n1LrI1l8h_K(YZ!
z|Ln^mbNPJ+!$AF$e=pS^-qjj4HY2+a83w@)H9zO+NlSI0H`YEMig_L%4*^Xk_o&j{
z{*OsV7D^e)1@v6=RZFnadn;<50S^`j=fqpmK_I1;f~Gz0X6%i%eD`60sq!#3eE^PF
zJ32&mO0SxLmv$MUPuYW52a$>W5zh`VV1uA)8a_JdyQMUWR3DXm?t$wYF`W7d#QcFJ
z<mKJsx6_(-M8t75214bfB4Goum;h#>1B*%X$#@%97Yiwt_A8Finw924(WG516KI*=
z5=cLw^Q()b>xvXZ%4kG3j&LAzG8j+XGXQv&2Mbm|Fa(Qw(Jy^TZkLgXoKtXsE%{u(
zP`4OY@-^4Xf)r3|mG7*q3v92xGWTZ|p!eUqUB#S;1{E!cqFIE|ZL%-!VytA-o=jx2
zZQKr!m>SwXF^*(hcZ4j3W)LL1;JwpV*M&4y#2wo>Xb#r=i5TU9eWO@Q4jYvcv?OuI
zdMgRtT=d+|GQ-?sYwfCQJXz}oD(r&)AT(fShlc2fPoMH8!~Q5kR05Ufyf=)#<-o65
zwIrc+fo9~#rkLk824k#{G}xz4QXsZB%}L1c%RPtekU`Ew!G!cKuRXxyo4u%)Z>bXS
zLR~j^TFmiRFn}yt3>ny(h9#_M!w7W{iqSEH*PTN_6nV264Jkg4l_5m|A}UOlq8Erp
zTM0wSXn4m^Ud+Z|2Rdx6lH)i*4xh5v@AkDlfoY9(9%@i^e*fs=5b|oq2p)ip07Y64
zawNIpng;!RV;UG!=sPImn#|qUBDd+krT%*R2?ZXcE^OEAc<S*3G2=NT?)iq`$z?<m
zX`t%|UoDN#@(++yeZpRT;9#H4Cc^rt6F!lrZHMUX{BNo=ankCp$i;@-q^$=$xt)mE
zjUy$ZgCaNmg+;hRdhEHHi8{+aVMjCi{;;!CF!GR5#3&PY&E-v?&Gp3YWUY;S#zToP
z!`dNrOg6aa1ZQ!cWs--7AZOo<Yo<Eu!Zs*_3}h^!`A*(u>^oc;ftrh!{WQ?-<ymRb
zgXN53^vZ=K0?x|DI6vL=rK{@_uH}-6*;36M%3O_>2OAD73^w^S?D2;l*naWpc%D!Y
zpH}T#7oO4uL+~2=Z9nQya2XeA_9niDF<D_S<PS$Pg+4m9Jy!X>K6&&-dMdhgOkGT0
zsUB#09Wbs;99yk21D$b6-gYjD2;RW1kXK~6STtmxdFRZv#ypo#Zv#*^K?QW7icxoJ
zI|aBPoFm+L7U(bZDCfC(DlW{ZVSZJgV6dW-htc9CfSapUYbRaEB|QwFZD!v}Fo0nb
zU6#{l#mbs;xY%j=%~4|{furDR<pl5!5?zR5WOqhzYtG^h00-((d83~DWW#H}qUJc9
z^wj_9D=`0J%v`LqSW$XmFC}M}?!aCv&<vRj(P~Z!JLF&<&}|~jBdQt@Y9)ukT&|EC
zHJ7Zpz;>6f6{JZK&GLnayTqo&htO$=38E-7zrG1K39W>*yWL_GdGW&JMtDKd;@v5l
zm}?CY?V=1<7r6EjhG4fCx1+yVf6dX+{>$sC@i&bmlU);+y|J2RnFI8N?r<h3S^^9{
z&+KGHv`)s|#N8x;RQEBu*6_Wy(i=wciZ|1OZWb#4WE_>h)~X}m5TmJ<OiSE|C^)Lm
z01-d58;>V$$NIhbP;5!*W>T0zvD2^$ST}+UPbRMY0bHOUqF=tDr2TTd913~qf3)!6
z^BXe<jy_n^7@_rkUHkRJB+|CtPP-BPj*tBg!-dTidtd9T2j>#z3SgqW+t&BdG4l9G
z0)N3{S~bzfdtdLSw8zUz0Nlj4i?K!1KRxK;ZM)t|lx!i3so-qeV=b#z2~w$`dRU?L
zh3SusIIus2XSP^2j8`~UGxmo^)lp1Xqx8>~En^a1JofQ&C`9J8mhO*N^&-;axmg!_
z2P{+A+hTRi&7bE(Fy7|$0Q#@_F;sg#yNWDct2Q83Bw$!5n_u>?x|taw3PB!%YR2H(
zYY^HgTjA`ziEngW&-uQ{jMHzGeHLpH2h@<*+CW^4^rw-v{;n%y{PM3nDyP1aA9c@g
zhaM9nyUn&MG8XQ~&Eo<F^?g_#FD<}e^&TXMQw}3b+9*EI(wCuW;MDk)@s-1-$>0u2
zn?H`)jLe#`dHS_Zi9JK4mK8`^yJDePzkCnVEht5<0PZ`P#+J=HZPLdHI{zZ%2tQ|!
z8?a9(9{*rr4n*rpKY_bPQhrJCwfE<T9AE}FSg>DG{<(pgl3((UgR<SBf;;n8?5{YW
zB<Hb$i^P2dL-5n6P^NiWOwMt4%9iRdl{1zHJL80Q$3ygyR|@Q`d1%co8Ud5WW7c|&
zAKinraw(9zW0sk2MzMDJ&zdls%))jfFokZ0^ola1zMw=zOR-(DK)m+P*CU5R&h3sE
ziBTo`*d#s~ObhjjY(LsMpL$$a7EL-J#(>f9hz}4=;yV72KFzimJGEye0(rpg7ej^s
zqC4b3&ebWgk=G&5N)alEr>J`q_k_Hmk4aA<WaIw%1G}c{W~WU_A7Kz&TqiD1AQQk@
zsJyi6mrjxCSYT+HSyF-f)s~^J_bWctjGTmfKr0NqNi`F9#+J%aU&bZ3`e0VB!0yUY
z{LF!N>SO~&-$XInULTL_rc3`z7McV<$kr(PoDV=--pYI2(A7wmz8JwV5yxtgmSg{X
zRC)P+cEzUTw?XPnvX8+itM|S;5QltL_z4|Sd)|6EShseGzG#yaH&n1YD-kV`zr19_
zWHQQR+;lQZxD)0f=v4DldzzFYpz>TGFq)O2(A>g|KMEhd?KgQowY>Qp8?3<8N}dbl
zqg!Od&nWtXS$dV*be3w7j%Zd3%7>L-KWkp)wt|u(H_^KyY9BJIDr%t5KP4|)|EN+W
zwca%oTYow8y{Y!zDBg!@)CbET&@AzZ&&udn{|Tx=e34?+roJ~9I+*g&xfSl_yGYEY
z_3zo})K7IMWs6*ty_>d-Q}*&xb&<XNN8ZVW(Mz(Fy^IUag~>wtWl`5kcRqUhZtD8M
z(h78Kcw%Y&SOKydj&QD?9aAuFuih@4=;9~fD-gB^$UdTAQh#{E05Y@aeTrLeasuT(
za>3^$SiZv}@^wwEzn{m3;u7~&I(x-ybHb7~jB2Fo!QvJ5z<->;D}t{#As9hvComE_
zJ{L-{bEhZUI0T-}>e`ZG7wORR96$}=B7sjmHE1JZ5&(xrCAvKD)}V=6@x2J<vly85
zY|i4{tZ`zxNT*}!VWh-L29ZIVju3TiAcTAKEYKvsIR_nzV_A^wT&MJBI?Tpa#aB23
zgQj&u{QDs2B^<H~N^1@^5#mz-&<!T#KWB<txM*0~9&I}(YT;oRA41$RO;K9f5G)qI
z+YiHws{)hM<13&W5y$a7b+(OHF!d;L6~UF996<A-3M>(PdHare@J3Wl3?tmMr>p~(
zBh!~7`zzd!{P6e(DwTh@k)t7G>KoQ)wSgmnK32gUFaDw<Knf+c*F9cFhj>t6yF2xu
znO0@TS}p<3FQU$xAC{J`o-=`AAjR%-U{TxO?;8}CnQH<j8QQYl>GyYQa-f$LiaamU
zkoAup3f&6dc%b~x!(Zi^w~<Y(&t2OQe7H-bEBg`@vs6-$K@EN)O%HSxtABw16`cPH
z&(NQ`w7|DPrvhsrJqSoLIw%O?Uw!$jjfE}4e{0Nj;>`S5z+w-p5KL43uSp&v18mOH
z;&cb3G$zliqPtIM`bkUp!YZp}R_~*v(lbStu*OO>8z)<q{x9Ao>~DES|47U$9_x$(
z?MF2d7OTdwannMBA_N$B$v!zNY}>(Nv4%-0%<J<;scH*R^mw1e!dY;2$#){}vNP!;
zyzc~XM^ZpXO=hr6@uH)8rWl)R<!>KrzvL_g<hC%|!ww{mhrqo3p4?qM`mznH!q5Uc
zy1aaBSAa?*n5!<zOpIM;6jis8_6xrdSaYzQ+ZEF)=%kd;MJ(F%cwRw}5oWsj*qao!
z(Zlg<DB#m=9Rb2#DU*O!-pYnn2XU;HxHOg@=>0&HKd0-ewFrZrii5k<!iw*yK5n4A
zib-b6p|#e<nM+8>h#0<|4vny1Tv7B^l>;*S_D#J`!s4fny7m7m%wdZ&5qY<Pa{jf#
zp?Pw`@xgMC@zCUa8I(U`+($?y$%Z}XcPWMYzxkfmS*P~xs%fsC@gY0~&wCJTwEk+r
z1pvp=R1}o+%BZ3+=6TEZzRnxYUAZwbmesOJtC%ha<k58dpW7udCT+i#qpBK>EJzBo
z7RdGHl_|C7(YPByrxx@1_u1Cy1X3fba_ghUxN~eyF6NV|ioF;UHoDh_JmizzA+Djs
z(Uek4s-lTYALFY!N**&EyR{`Jt7xW?mjY`~g(MRVgdPCs12>N+=_)oSnuYKhl{7HY
zr82j$r6yl67y+6Pes_EmMpSttJ`~?(&s<Y&#fJ|`HpVfTUt+{G<HYh!Za+y_K1r}Y
zNk$JpNrn&qMWXmglK;tp{g;DNlfKvFZhn}mCU9O-7)~<t=RQ!S&;wHSx(}H}-W?*;
zy(#PuF|uk$Md8-MvQKh!-0a^!Ie+hvhm(F+0V%nQE_~wRxU@KBQHT1B4Mp<g48;7X
zK~Hz?#6nF+no)uTWf%-+VE!A4CPOC=_Zc9*>pad_`wN-D@}8t#cY=&B$v#cM_bkSP
z@=P?zr#L)u65wVe>Oq;E!6C!;qX{1uy=%Xx6fSkWBWpWfCKjzuy^X@-Ymv_alA03*
z2SX-=DM!_HTuH5$EPhO4bQ<sQ$hd+C2k{Wa+daj>Q>wk#yx#`i7g4c<-vXvwIq5Lr
z#=q~H1H=`-p3|E{1%jmy+32dTR`~I@HHJrDo&{}z5&`*Wpx7!hiN60@eDcUzMTv6;
zvSkvS^`H<k<3{?srF=tqTJ&rh>8`iB2tYzbRi|tLOeM#dp&)v-HZ#4W46(E?hcrqL
z4tEa#^hS~NbZVa-(1?X9m2}YP5GB^HUv2dtTfMi>@B4Mv&vTGkytmKpgNmo4CNNX;
zgMHIcYJpA|S;Sjr{rsX`#0IRrc?NKxDa*MOF@6J)DqN)CKg-;)gD?T3@v{3_qtFCT
zB8JS}y#vQHUB{<a2Qgoa7}P^Uu$AH&4<E0@6W{G<A0x3z=h+yQjAdrd2PR^_yFuWJ
zcQOJxPI1ff-^jRTF&K|2ue`z-rDRybo7n64P=TORJdlCaqacQaF8WY-IxY||>zoOF
zm}peFo+08%(Dm#BI2YbDNr>67_Fk14P;_P`%UtDQML~wn0fC<674<I=C?Uz$`h`L9
z_cMW$S-It3SM!EuF|SiG&(ekjmCw^ACm}027erihbi8a@)!o!DgHk-!i5uHk)pFP-
ze*&qWB$PU+7FvUX1iJOXTM*t>wOF)yZHMf3o|ulwC@Hd_jCJH41xsN@Sjqy4@aNC6
z3FDWe5X!xD_dIW~tIw)5&PXG8L9_8iDV8l$_xaPjw7*P19d?88_iR7La$QWI-ri|p
z*9-`Q6LWQnDo!Lq37TFYtR^8d+-Rluc>)LRc9$OHoDpy9n|o^%U#YyXJO5~2P=SEu
zVZ@(XbqR*PgOpnhic+-YKu|x6COTJ)fZlyaXKt%FcU=vRuC4cYuyo?j4mTTQ#4!+P
z3lhb#a#LaT)(mT*U_WFKrCxadqoNOeiyjZJx{+klXqxs%M{Rz8A$a(pbe$t~=oHuy
zN_XcIH-^2z=disci-y>bRs3y<66>sE@&H^$n5haIoDIrYEox^8PpYQ0?Iovweb?q5
zvO@r>sU*#zpZi#H%kqeUb8fUHz4{yWB}EOde<S4@+nDQt*Kv6%+D~qz%j}$&^ziH|
z_pKGe_o&Q@dGubtlcp%&>!Emp+J2z@cT*RVpZ*=#HkWH|pp1<wsV_wv8l<`^uzE3U
zUx&hDh2y*|u)oDV_=8eF#SCK^wm}wn$n|0wuZ<+L9lk%U=?diIHEs5eyv7A=Ftl#E
zI$%^9`+6GXo>&7A`}LGAxdNsqg0R?47I)|!P!T!De=$r!i;k*OPyI<-(C7zhac<%F
ztz~kL_;6a1VK%Q@4%1<oqQX&<E96MR$ukdl#4x~v#)=jl(VULP&=~xZ^kK@wb14<o
z40!7|)!Hx7_P^H^)Rc6z$}LYPRZpPB7$=?2V5#`UbUUfV($XT+pU+Te9G{9}BK&4l
zk^3d-M#0w<1`+$bd|aV%hZ`4Yq83VKE;Ah1YE1=gnJzbLqc|_`S9>TDmI9&x%NYtb
zGBZu;TqfmB*^yBfe|#^X>$Qu`i8k6RvZ!5-rFk~F!g&x0)%8WzoD}{$ctAxfv`~c-
zbUkCm(-Fy4m%|FreToa4Ad?IWPc%+d4p;Zudv;ZZPapK^8lHM1yOA-_<*vug%kmhk
zi|(K()s`VVUQfB#&^lYPEU^p6IWp=*D3Ub4jMI4eD12kflM>Rb)d?^0a%F#p012Kq
zlgKm@j%L&}6k>0QX{SL$-DS*H>|uYJ*Eq*>ZIWJ5_|HZ#J@3in8&mY>1JOj|uvi<a
zCm^Jy_7USgfq4Akr?m@2FeqCWwD#W<fYgNueAqACb3(YANc%a^K}s`)=H*g#lpl+X
z$jtlBJMtit#<J!l^%`-_-wF;0yhtr5@}4B?pYHepP#NC$<cQ!QxY+leG_h#BNPQ&s
zn(P>>bZaI|QDCm<!p<`$rO(Uz;Z4wvNmdwTpKwW12Y0OAUfcpy+2)GrX>e7UwcB}?
z)ww`X?^RWKg;>{bh<o+W5zWSCBApo=X7IIt8Y{tmP<$s55d>`qUAIz!bq2;tvXa2G
zPL7Clf>%CvYmMq+xa2zZ1O4<{MWD_0(P+M5fvBX=@i5?&E~_lD4wi4;?xAYN%kQOo
z9lo62_I>Z&fDr@M>{sp}YCuzFVlVRdt$ev)>Cv{((k5VC0>qg2Y=j(UJw`<HqJ%UJ
zU($)S|Ji_?$lEpVHw>AyJUs+yVHwfbcWIn3C5E{&sIAc!Mu9nB>+m1o+>`Z8>tejm
zU!-QM1@DbV0Q=d6abP)Rsn^*Hk<%hek;2h7X(GH^Nf86A&i)lFc`f9AadO&ncFXN3
zZZSY!H88hth4V^Gi%BTdpHSYM;->$`;s9ozCV-`wtll}*)6YB?;QjC@b7J$O{4GT-
zhX6F=-IYEq`Y`klgW8Y)Z_@nWczGx0{ENRh8{)gBPPlsf`OBW2Y^rKJ9By8OwetD+
zrM0k-FoHV}H!Kkp+?oM{i7XPFI@icjRFRD>Qdv&_E#nX#3lm{%J6q@;PGt^}c3!-<
z29?oO%Z5C4vps+z#!N7NPuBrCcErxSt{3M6%X?OH<$FSw{Esze|5WBJq8&O_ZUWD5
zW?%(FibUDaV~k8QDWo&IQ=sk=>A1wr83jLoBi+jZnfBf*R85|8hng8qT(TrQVpx+l
zdK-HDD9K{G>K4&(aAg;CeW#133>qof8fnm0S(0!L@UicMM}7BBy(($$9$|E{jHx;t
z&gpu<ypy|i?-~Bsl?-Sb42EmXMoAa30{|)%c~TxfW`3Zc$jK4}C}nKkrRSMkA3!9k
z(V}VrMSY=m@5>&y-aO%^;!crzS{=GI1@V}57W*AU{3e`AbAw!Gg`EIj5Tq{r-la2U
zXUVDIZi^7c2!RFqUOxvxq-StpnTO$K^o8(Xrz9U|rYCV^nme0H)^M~>n`%Zh2&NbM
z?X}y9$}0IIlAy$SF<S5yLvTs<M)zZUeTOK4WEsIH^(N7`1;0mt;w=OkVMZXZJT#9C
zif)+h9oG{4`)EIuB}4^78{8=;9}F#XSz$zK<_`!+9GSG)Zqe6@hOTv;_-*aXC*2Vn
zh|&qwZ^g!vJ_J~2YL@!2F$1iy9=IKHMd2AF9lYSHwrRMH?Gf^#24BFKn+|`C)Sk8i
zduUoS5l}tMq$*OWuhtt`$L&7`Z0+KaK)k?eQ9$72bsO*LA!2myqT`&^@B6`tlaf(H
z6ptHj$S!0<oCZvkG{jb1C7<!3YXCHrO9Tu}YP;vrFScw=boY~IBMytR=N%p#Zk6!A
zhR=;Nvb)cwI~aq?0`EOo78h~pXcrEERP=IBcc>a-!ydha1$V-I&4N*(8pdUW?#NQv
zP!P*~u~9#S7nQub=5cHBTM)mj=we^@+N@HHfDZD%wpatARI@h@IP7^7$&c}twi9N4
zv^pttA4{H+bS@)N8+>av2T@qhO8~u7S2^#DHNjl66NZa>gZz4B<934Gvn~4r7`vOm
zo|O1RSR&Ej^8LIqBF%?nP}g^;10K0>ooiba55Nl-N(wOH4`qdM5*ISfO5gF;)MwP#
z{Pk*_`C~qzrF_jjE!g7FpY8mca?ZgsUD|vv9UT@ydI9|;h#8E5+p4?Ydt|{o-Qb#H
zTJYX{sDj?ofa#FBdlww1894<S5X=jdGNbbFZbXVf9fD^*K}9fXQ1G@vUij)XGYx8n
zDKPy@&wbJ{o$jsG>o}X-{Dv}9q<YkkES(2y4}GgiR{3G8GfA_&86%;=Kwk%<AuLpb
ziTxED$+2b__IOX<3ySB|$rTt7{VW{M03@ODuWv12`l=cIfOp5~`i{m4U~n!}%usON
zE7xAHqF%!E<qnR^voIw^roF|}VV~l9x`^VdpMOL3L8vlBU`4ePu6l<@X!Xszifp-M
zYQv}an?NwGdUaT2SsatmvU=8ge$Rc7&W)()zf904=+-|g{~QBYUyJ@4EDHjLrwxYu
zjUb_wF9KhD%!8r!VaOvBh?m~_(IeYf(e%DZP}fz@v}to#jOmz%%m^s8j7ZgFgB5i0
z`;C7qtCwhVfrtwdha0G44sx}?>pI&7^1XIGxzsK2?Pu{pJ<whGD@biQ?+^2nS-8B3
zw@6IaNRAYjIjw;veWDa-nh=ZD2i<liG1^cZDH;|04=M_+Ga}1Upze&M*iL^B=63!v
zd~4Y85ONznUJrn|84`rys`rNEWx3fiiyXbbb826#PgR>#(@xtdK!17lmO#*uK)jtr
zI5^m7V0MqLFfW;bW>t*_%C}Ml9z?qo3*>vLm+lBegP!{N3D#@M#V=d^fP3Fe+v~H<
za&Ogf=R&dJ3=|P|;E^0~|Ld6d-fAhrEIw?7gj$s+3a}#)eM>{TQPnX0YN_9P$hWA{
z`(Yz%rO4^*?C7(sGWTVXpVsPXUvgc&3u_y#TKr5lW2X-L3SI`K+Dt?3tR)Mgl4lda
z@8XIIhM&~fUp+&&!kmK_^yALs&zmT0z;H1OTdheuA{?xN)USys{-i#!&C!IBD>7cG
zyz+a}3v)I>pqDSig5Jq@8N`fKWfE``JiWz8`7y2gqE4N?ZAivwOsDgJ{j2G)l@bI=
zpY!lP3N`q_Yu5D-Ug9yloEiN>xC$P4c_WRYA3NC{NErF^yB>|FN%2f1=!UIIpd}d$
zv5fZ5McPb2`sjle3)Z5qp})mj4sE|K+#sqyB*X+d2albAua#aOg*fOY{Qj7Vd~0}Y
zva2<AfO!;h?JbcHBK)zMaIoXJJNOiX=r)&lRGm{fJmyX{X&~?xytRhOusa%;ZIQ=0
z>*&`#84^#F$D8~L$dC?B*?9_P|G+<(VUFM(C=~VpiclpZN;<Sj585YYFyIH2>|S;F
zN(bMsGwJY%EN@76kgn}yZ>I}RT)YQioNGDyV|O|fCcz8xAq#;gPC)Sn)(9Lvw0T@y
z^^!M|g}J0ed(JYYRsZIGfPy_Jx7UvN+QDlt4xL?4luek3CJwjx`DqTb`Ol|0rhsPJ
z+bghy$}{7#**4XaVZcp63<IQG^?d>%*EaM46wS_*8~K!#oj9zbK8Vk?Hfr+pHJr2c
ze&3_kH%ejFg~26=zT-NmQc;NvGUQ{_o%ZmT((#SFj;PEUXP6#pm%&5d7{OS3YtFug
zfeyng0+V5&Ps+q>o7*kgguuIRSRJa;gf)=U&+oKQazchEkukUVqe8akAXd;q`jmQa
zaydrOls4py(NHdQKB6ha*w!a?xq)&v6CBMQ;O%$fpqqW#mqJqnVi}6jw}MY%aI$c%
z(r77#6U{*YJ|V<oz{?N0?~XG*2<d&K7q&hgugfw)`hmE1(9uv%CGb(H3rK|8TmicL
zeI4~~tR$MEVifSZopYF*C~m^1*+GqS2K*_v9sV3QmtgC^&&jt<!Lrjgp44Np^FKt3
zFxI)Wc>Q5rm0SBESVvFoGr+n!L4zPzclI4W`eBg2j(&t7CF_oLdXodMV|;S+&w<^|
zjr!u>CFT4~tPY=Eaqd_bYkdQj3^#jX3rH@ko;Br9e(sgbL|j^0273Q={LSZH$xifs
zJ`s98j!A`@@pW{b296lj{hPe3qy8P^W1D7w>{xHq*W*6NPJr2jYirB!=)0`&?zTSz
zp|~#OMccAon&=2n|9E-13hbF(>2wq??i;9tQf$Z?ipyPMKLKPbus9t+5or}t)*R8r
zV9eKohK>Ro4G#{IsSDadvvErfUX{S%?MpB=(#W;5b<Y9ju(yfdQU`l!RpfVhz>f5;
ztB}m=du*5@1X5lYcu*SOAcUFJD!;uAvIQUj?eb9{F0el#Y$G7rZ_$T%o+WWqp6(yx
z6H;hj`c4uSPGW`*oGT<P8>nTzmWvIq@&^@>!P@TLm`lvBbn+e+mx#6g&4n7c{V^pf
zgE!`32vrvqVXz=+{uH_#Wq64J1B*>%OSjczSAQOcAJtKFc0?QZ{8AF7-mmNsFuzB#
z#}<KIG?xJ51H>Ba5U^?yu(EJ^AU8*{F4vyds5O$>@=bdM?jZZ%=Z6>WHFxE2XmMJh
z;Qc}6y|Nw*;zg6?Z_gTeuYw7AoZ|Q254qb4w-G!Bn=bAk=q9dZaK*~UwW|13ZVzM_
z+q5<A?(&=XyIH+F-Cgd3J))D3AJ?&ERrjFreT}nzr4IUJoI93eTfb>!&3T{WHtkfJ
zRmpF@0TrZS|5vq*-_zrV`rAtE2dJae*ZcxTTN>|g#{KWs;ks_KdFW3lRsj#m!sZ9#
z|1=Bx1O9du|8?H76aL5fGoISs9r-U*;LHCX=)l+WAIKz@>>rl@jVq63`ZrRy9eYCb
zH*TVq?LQE7T|3%eXmF4b%nuOnGmIIJGz9e*!5m`!7lM!QUp>w7u0!nq*YH1Lbo}BF
z_rDE)<C%x?Ko{fXh8e&<=i)Pr{};;~#shOPi<ck9iLWq&hlKpw5d9xc&c7_568HZc
zh#*-1{*4UsC=_l70%Bxm=j`O{XlT#)uN?g+{-1kmj^KgM+JVGh*)jgljsG!>ej1W}
z{~Ac+5k_JD&oVjwe@cY^qEwIlzm%3vpS$wO_`j<O8^r_9iUo<^ti^({{Os@kFXPdt
YvAg!Kk?8MqKBMTzh@qMW|1RnO0WHt%Z2$lO

delta 11868
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

diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css
index c377d6f976..ec8a5f3ff6 100644
--- a/docs/assets/css/bootstrap.css
+++ b/docs/assets/css/bootstrap.css
@@ -1700,7 +1700,7 @@ table .span12 {
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
-.btn.active, .btn:active {
+.btn-active, .btn:active {
   background-image: none;
   -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
   -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -1710,7 +1710,7 @@ table .span12 {
   color: rgba(0, 0, 0, 0.5);
   outline: 0;
 }
-.btn.disabled, .btn[disabled] {
+.btn-disabled, .btn[disabled] {
   cursor: default;
   background-image: none;
   background-color: #e6e6e6;
@@ -1720,7 +1720,7 @@ table .span12 {
   -moz-box-shadow: none;
   box-shadow: none;
 }
-.btn.large {
+.btn-large {
   padding: 9px 14px;
   font-size: 15px;
   line-height: normal;
@@ -1728,38 +1728,38 @@ table .span12 {
   -moz-border-radius: 5px;
   border-radius: 5px;
 }
-.btn.large .icon {
+.btn-large .icon {
   margin-top: 1px;
 }
-.btn.small {
+.btn-small {
   padding: 5px 9px;
   font-size: 11px;
   line-height: 16px;
 }
-.btn.small .icon {
+.btn-small .icon {
   margin-top: -1px;
 }
-.btn.primary,
-.btn.primary:hover,
-.btn.warning,
-.btn.warning:hover,
-.btn.danger,
-.btn.danger:hover,
-.btn.success,
-.btn.success:hover,
-.btn.info,
-.btn.info:hover {
+.btn-primary,
+.btn-primary:hover,
+.btn-warning,
+.btn-warning:hover,
+.btn-danger,
+.btn-danger:hover,
+.btn-success,
+.btn-success:hover,
+.btn-info,
+.btn-info:hover {
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   color: #ffffff;
 }
-.btn.primary.active,
-.btn.warning.active,
-.btn.danger.active,
-.btn.success.active,
-.btn.info.active {
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active {
   color: rgba(255, 255, 255, 0.75);
 }
-.btn.primary {
+.btn-primary {
   background-color: #006dcc;
   background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
   background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
@@ -1773,17 +1773,17 @@ table .span12 {
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-.btn.primary:hover,
-.btn.primary:active,
-.btn.primary.active,
-.btn.primary.disabled,
-.btn.primary[disabled] {
+.btn-primary:hover,
+.btn-primary:active,
+.btn-primary.active,
+.btn-primary.disabled,
+.btn-primary[disabled] {
   background-color: #0044cc;
 }
-.btn.primary:active, .btn.primary.active {
+.btn-primary:active, .btn-primary.active {
   background-color: #003399 \9;
 }
-.btn.warning {
+.btn-warning {
   background-color: #faa732;
   background-image: -moz-linear-gradient(top, #fbb450, #f89406);
   background-image: -ms-linear-gradient(top, #fbb450, #f89406);
@@ -1797,17 +1797,17 @@ table .span12 {
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-.btn.warning:hover,
-.btn.warning:active,
-.btn.warning.active,
-.btn.warning.disabled,
-.btn.warning[disabled] {
+.btn-warning:hover,
+.btn-warning:active,
+.btn-warning.active,
+.btn-warning.disabled,
+.btn-warning[disabled] {
   background-color: #f89406;
 }
-.btn.warning:active, .btn.warning.active {
+.btn-warning:active, .btn-warning.active {
   background-color: #c67605 \9;
 }
-.btn.danger {
+.btn-danger {
   background-color: #da4f49;
   background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
@@ -1821,17 +1821,17 @@ table .span12 {
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-.btn.danger:hover,
-.btn.danger:active,
-.btn.danger.active,
-.btn.danger.disabled,
-.btn.danger[disabled] {
+.btn-danger:hover,
+.btn-danger:active,
+.btn-danger.active,
+.btn-danger.disabled,
+.btn-danger[disabled] {
   background-color: #bd362f;
 }
-.btn.danger:active, .btn.danger.active {
+.btn-danger:active, .btn-danger.active {
   background-color: #942a25 \9;
 }
-.btn.success {
+.btn-success {
   background-color: #5bb75b;
   background-image: -moz-linear-gradient(top, #62c462, #51a351);
   background-image: -ms-linear-gradient(top, #62c462, #51a351);
@@ -1845,17 +1845,17 @@ table .span12 {
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-.btn.success:hover,
-.btn.success:active,
-.btn.success.active,
-.btn.success.disabled,
-.btn.success[disabled] {
+.btn-success:hover,
+.btn-success:active,
+.btn-success.active,
+.btn-success.disabled,
+.btn-success[disabled] {
   background-color: #51a351;
 }
-.btn.success:active, .btn.success.active {
+.btn-success:active, .btn-success.active {
   background-color: #408140 \9;
 }
-.btn.info {
+.btn-info {
   background-color: #49afcd;
   background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
@@ -1869,14 +1869,14 @@ table .span12 {
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-.btn.info:hover,
-.btn.info:active,
-.btn.info.active,
-.btn.info.disabled,
-.btn.info[disabled] {
+.btn-info:hover,
+.btn-info:active,
+.btn-info.active,
+.btn-info.disabled,
+.btn-info[disabled] {
   background-color: #2f96b4;
 }
-.btn.info:active, .btn.info.active {
+.btn-info:active, .btn-info.active {
   background-color: #24748c \9;
 }
 button.btn, input[type="submit"].btn {
@@ -2008,15 +2008,15 @@ button.btn.small, input[type="submit"].btn.small {
   opacity: 1;
   filter: alpha(opacity=100);
 }
-.primary .caret,
-.danger .caret,
-.info .caret,
-.success .caret {
+.btn-primary .caret,
+.btn-danger .caret,
+.btn-info .caret,
+.btn-success .caret {
   border-top-color: #ffffff;
   opacity: 0.75;
   filter: alpha(opacity=75);
 }
-.btn.small .caret {
+.btn-small .caret {
   margin-top: 4px;
 }
 .alert {
diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css
index 026872a345..a5ad9631ad 100644
--- a/docs/assets/css/docs.css
+++ b/docs/assets/css/docs.css
@@ -73,7 +73,7 @@ hr.soften {
   line-height: 36px;
   color: #333;
 }
-.jumbotron .btn {
+.jumbotron .btn-large {
   font-size: 20px;
   font-weight: normal;
   padding: 14px 24px;
@@ -440,7 +440,7 @@ hr.soften {
 
 /* Giant download button */
 .download-btn {
-  margin: 36px 0 108px.i;
+  margin: 36px 0 108px;
 }
 .download p,
 .download h4 {
@@ -455,7 +455,7 @@ hr.soften {
 .download p {
   margin-bottom: 18px;
 }
-.btn.xlarge {
+.download-btn .btn {
   display: block;
   width: auto;
   padding: 19px 24px;
diff --git a/docs/base-css.html b/docs/base-css.html
index 5df63b917d..ddbbad174c 100644
--- a/docs/base-css.html
+++ b/docs/base-css.html
@@ -832,11 +832,6 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
         <td><code>.form-vertical</code> <span class="muted">(not required)</span></td>
         <td>Stacked, left-aligned labels over controls</td>
       </tr>
-      <tr>
-        <th>Horizontal</th>
-        <td><code>.form-horizontal</code></td>
-        <td>Float left, right-aligned labels on same line as controls</td>
-      </tr>
       <tr>
         <th>Inline</th>
         <td><code>.form-inline</code></td>
@@ -847,6 +842,11 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
         <td><code>.form-search</code></td>
         <td>Extra-rounded text input for a typical search aesthetic</td>
       </tr>
+      <tr>
+        <th>Horizontal</th>
+        <td><code>.form-horizontal</code></td>
+        <td>Float left, right-aligned labels on same line as controls</td>
+      </tr>
     </tbody>
   </table>
 
@@ -955,7 +955,7 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">Save changes</button>
+            <button type="submit" class="btn btn-primary">Save changes</button>
             <button type="reset" class="btn">Cancel</button>
           </div>
         </fieldset>
@@ -1048,7 +1048,7 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">Save changes</button>
+            <button type="submit" class="btn btn-primary">Save changes</button>
             <button type="reset" class="btn">Cancel</button>
           </div>
         </fieldset>
@@ -1172,7 +1172,7 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">Save changes</button>
+            <button type="submit" class="btn btn-primary">Save changes</button>
             <button type="reset" class="btn">Cancel</button>
           </div>
         </fieldset>
@@ -1215,28 +1215,28 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
         <td>Standard gray button with gradient</td>
       </tr>
       <tr>
-        <td><a class="btn primary" href="#">Primary</a></td>
-        <td><code>.primary</code></td>
+        <td><a class="btn btn-primary" href="#">Primary</a></td>
+        <td><code>.btn-primary</code></td>
         <td>Provides extra visual weight and identifies the primary action in a set of buttons</td>
       </tr>
       <tr>
-        <td><a class="btn info" href="#">Info</a></td>
-        <td><code>.info</code></td>
+        <td><a class="btn btn-info" href="#">Info</a></td>
+        <td><code>.btn-info</code></td>
         <td>Used as an alternate to the default styles</td>
       </tr>
       <tr>
-        <td><a class="btn success" href="#">Success</a></td>
-        <td><code>.success</code></td>
+        <td><a class="btn btn-success" href="#">Success</a></td>
+        <td><code>.btn-success</code></td>
         <td>Indicates a successful or positive action</td>
       </tr>
       <tr>
-        <td><a class="btn warning" href="#">Warning</a></td>
-        <td><code>.warning</code></td>
+        <td><a class="btn btn-warning" href="#">Warning</a></td>
+        <td><code>.btn-warning</code></td>
         <td>Indicates caution should be taken with this action</td>
       </tr>
       <tr>
-        <td><a class="btn danger" href="#">Danger</a></td>
-        <td><code>.danger</code></td>
+        <td><a class="btn btn-danger" href="#">Danger</a></td>
+        <td><code>.btn-danger</code></td>
         <td>Indicates a dangerous or potentially negative action</td>
       </tr>
     </tbody>
@@ -1261,24 +1261,24 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
       <h3>Multiple sizes</h3>
       <p>Fancy larger or smaller buttons? Have at it!</p>
       <p>
-        <a href="#" class="btn large primary">Primary action</a>
-        <a href="#" class="btn large">Action</a>
+        <a href="#" class="btn btn-large btn-primary">Primary action</a>
+        <a href="#" class="btn btn-large">Action</a>
       </p>
       <p>
-        <a href="#" class="btn small primary">Primary action</a>
-        <a href="#" class="btn small">Action</a>
+        <a href="#" class="btn btn-small btn-primary">Primary action</a>
+        <a href="#" class="btn btn-small">Action</a>
       </p>
     </div>
     <div class="span4">
       <h3>Disabled state</h3>
-      <p>For disabled buttons, use <code>.disabled</code> for links and <code>:disabled</code> for <code>&lt;button&gt;</code> elements.</p>
+      <p>For disabled buttons, use <code>.btn-disabled</code> for links and <code>:disabled</code> for <code>&lt;button&gt;</code> elements.</p>
       <p>
-        <a href="#" class="btn large primary disabled">Primary action</a>
-        <a href="#" class="btn large disabled">Action</a>
+        <a href="#" class="btn btn-large btn-primary btn-disabled">Primary action</a>
+        <a href="#" class="btn btn-large btn-disabled">Action</a>
       </p>
       <p>
-        <button class="btn large primary disabled" disabled="disabled">Primary action</button>
-        <button class="btn large" disabled>Action</button>
+        <button class="btn btn-large btn-primary disabled" disabled="disabled">Primary action</button>
+        <button class="btn btn-large" disabled>Action</button>
       </p>
     </div>
     <div class="span4">
@@ -1491,8 +1491,8 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
           <a class="btn" href="#"><i class="icon align-justify"></i></a>
         </div>
         <div class="btn-group">
-          <a class="btn primary" href="#"><i class="icon white user"></i> User</a>
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-primary" href="#"><i class="icon white user"></i> User</a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#"><i class="icon pencil"></i> Edit</a></li>
             <li><a href="#"><i class="icon trash"></i> Delete</a></li>
@@ -1504,13 +1504,13 @@ For example, &lt;code&gt;section&lt;/code&gt; should be wrapped as inline.
       </div>
       <p>
         <a class="btn" href="#"><i class="icon refresh"></i> Refresh</a>
-        <a class="btn success" href="#"><i class="icon white shopping-cart"></i> Checkout</a>
-        <a class="btn danger" href="#"><i class="icon white trash"></i> Delete</a>
+        <a class="btn btn-success" href="#"><i class="icon white shopping-cart"></i> Checkout</a>
+        <a class="btn btn-danger" href="#"><i class="icon white trash"></i> Delete</a>
       </p>
       <p>
-        <a class="btn large" href="#"><i class="icon comment"></i> Comment</a>
-        <a class="btn small" href="#"><i class="icon cog"></i> Settings</a>
-        <a class="btn small info" href="#"><i class="icon white info-sign"></i> More Info</a>
+        <a class="btn btn-large" href="#"><i class="icon comment"></i> Comment</a>
+        <a class="btn btn-small" href="#"><i class="icon cog"></i> Settings</a>
+        <a class="btn btn-small btn-info" href="#"><i class="icon white info-sign"></i> More Info</a>
       </p>
     </div>
     <div class="span4">
diff --git a/docs/components.html b/docs/components.html
index 1d70ac4766..eb876572d6 100644
--- a/docs/components.html
+++ b/docs/components.html
@@ -198,7 +198,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#">Action <span class="caret"></span></a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">Action <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -208,7 +208,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn danger dropdown-toggle" data-toggle="dropdown" href="#">Danger <span class="caret"></span></a>
+          <a class="btn btn-danger dropdown-toggle" data-toggle="dropdown" href="#">Danger <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -220,7 +220,7 @@
       </div>
       <div class="btn-toolbar">
         <div class="btn-group">
-          <a class="btn success dropdown-toggle" data-toggle="dropdown" href="#">Success <span class="caret"></span></a>
+          <a class="btn btn-success dropdown-toggle" data-toggle="dropdown" href="#">Success <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -230,7 +230,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn info dropdown-toggle" data-toggle="dropdown" href="#">Info <span class="caret"></span></a>
+          <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#">Info <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -275,8 +275,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn primary" href="#">Action</a>
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-primary" href="#">Action</a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -286,8 +286,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn danger" href="#">Danger</a>
-          <a class="btn danger dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-danger" href="#">Danger</a>
+          <a class="btn btn-danger dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -299,8 +299,8 @@
       </div>
       <div class="btn-toolbar">
         <div class="btn-group">
-          <a class="btn success" href="#">Success</a>
-          <a class="btn success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-success" href="#">Success</a>
+          <a class="btn btn-success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
@@ -310,8 +310,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn info" href="#">Info</a>
-          <a class="btn info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-info" href="#">Info</a>
+          <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">Action</a></li>
             <li><a href="#">Another action</a></li>
diff --git a/docs/download.html b/docs/download.html
index e2cc508362..38ebee85f7 100644
--- a/docs/download.html
+++ b/docs/download.html
@@ -91,7 +91,7 @@
 
 <section class="download" id="components">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">Toggle all</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">Toggle all</a>
     <h1>
       1. Chose components
       <small>Get just the CSS you need</small>
@@ -147,7 +147,7 @@
 
 <section class="download" id="plugins">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">Toggle all</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">Toggle all</a>
     <h1>
       2. Select jQuery plugins
       <small>Quickly add only the necessary javascript</small>
@@ -216,7 +216,7 @@
 
 <section class="download" id="variables">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">Reset to defaults</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">Reset to defaults</a>
     <h1>
       3. Customize variables
       <small>Optionally modify Bootstrap without a compiler</small>
@@ -315,7 +315,7 @@
     </h1>
   </div>
   <div class="download-btn">
-    <a class="btn xlarge primary" href="#">Customize and Download</a>
+    <a class="btn btn-primary" href="#">Customize and Download</a>
     <h4>What's included?</h4>
     <p>Downloads include compiled CSS, compiled and minified CSS, and compiled jQuery plugins, all nicely packed up into a zipball for your convenience.</p>
   </div>
diff --git a/docs/index.html b/docs/index.html
index 66cc0ee48b..71c2970a05 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -81,8 +81,8 @@
     <h1>Bootstrap, from Twitter</h1>
     <p>Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.</p>
     <p class="download-info">
-      <a href="https://github.com/twitter/bootstrap/" class="btn primary large">View project on GitHub</a>
-      <a href="assets/bootstrap.zip" class="btn large">Download Bootstrap</a>
+      <a href="https://github.com/twitter/bootstrap/" class="btn btn-primary btn-large">View project on GitHub</a>
+      <a href="assets/bootstrap.zip" class="btn btn-large">Download Bootstrap</a>
     </p>
   </div>
 
diff --git a/docs/javascript.html b/docs/javascript.html
index 4297fe6521..2789198e65 100644
--- a/docs/javascript.html
+++ b/docs/javascript.html
@@ -214,7 +214,7 @@
                 <p>One fine body…</p>
               </div>
               <div class="modal-footer">
-                <a href="#" class="btn primary">Save changes</a>
+                <a href="#" class="btn btn-primary">Save changes</a>
                 <a href="#" class="btn">Close</a>
               </div>
             </div>
@@ -239,11 +239,11 @@
               <p><a href="#" class="tooltip-test" title="Tooltip">This link</a> and <a href="#" class="tooltip-test" title="Tooltip">that link</a> should have tooltips on hover.</p>
             </div>
             <div class="modal-footer">
-              <a href="#" class="btn primary">Save changes</a>
+              <a href="#" class="btn btn-primary">Save changes</a>
               <a href="#" class="btn" data-dismiss="modal" >Close</a>
             </div>
           </div>
-          <a data-toggle="modal" href="#myModal" class="btn primary large">Launch demo modal</a>
+          <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-large">Launch demo modal</a>
 
           <hr>
 
@@ -292,7 +292,7 @@
     &lt;p&gt;One fine body…&lt;/p&gt;
   &lt;/div&gt;
   &lt;div class="modal-footer"&gt;
-    &lt;a href="#" class="btn primary"&gt;Save changes&lt;/a&gt;
+    &lt;a href="#" class="btn btn-primary"&gt;Save changes&lt;/a&gt;
     &lt;a href="#" class="btn"&gt;Close&lt;/a&gt;
   &lt;/div&gt;
 &lt;/div&gt;
@@ -802,7 +802,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
           <h2>Example hover popover</h2>
           <p>Hover over the button to trigger the popover.</p>
           <div class="well">
-            <a href="#" class="btn danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">hover for popover</a>
+            <a href="#" class="btn btn-danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">hover for popover</a>
           </div>
           <hr>
           <h2>Using bootstrap-popover.js</h2>
@@ -917,7 +917,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
             <h4 class="alert-heading">Oh snap! You got an error!</h4>
             <p>Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.</p>
             <p>
-              <a class="btn danger small" href="#">Take this action</a> <a class="btn small" href="#">Or do this</a>
+              <a class="btn btn-danger small" href="#">Take this action</a> <a class="btn small" href="#">Or do this</a>
             </p>
           </div>
           <hr>
@@ -983,7 +983,7 @@ $('#my-alert').bind('closed', function () {
              <tr>
                <td>Stateful</td>
                <td>
-                  <button id="fat-btn" data-loading-text="loading..." class="btn primary">
+                  <button id="fat-btn" data-loading-text="loading..." class="btn btn-primary">
                     Loading State
                   </button>
                 </td>
@@ -991,16 +991,16 @@ $('#my-alert').bind('closed', function () {
              <tr>
                <td>Single toggle</td>
                <td>
-                  <button class="btn primary" data-toggle="button">Single Toggle</button>
+                  <button class="btn btn-primary" data-toggle="button">Single Toggle</button>
                 </td>
              </tr>
              <tr>
                <td>Checkbox</td>
                <td>
                   <div class="btn-group" data-toggle="buttons-checkbox">
-                    <button class="btn primary">Left</button>
-                    <button class="btn primary">Middle</button>
-                    <button class="btn primary">Right</button>
+                    <button class="btn btn-primary">Left</button>
+                    <button class="btn btn-primary">Middle</button>
+                    <button class="btn btn-primary">Right</button>
                   </div>
                </td>
              </tr>
@@ -1008,9 +1008,9 @@ $('#my-alert').bind('closed', function () {
                <td>Radio</td>
                <td>
                   <div class="btn-group" data-toggle="buttons-radio">
-                    <button class="btn primary">Left</button>
-                    <button class="btn primary">Middle</button>
-                    <button class="btn primary">Right</button>
+                    <button class="btn btn-primary">Left</button>
+                    <button class="btn btn-primary">Middle</button>
+                    <button class="btn btn-primary">Right</button>
                   </div>
                </td>
              </tr>
@@ -1158,7 +1158,7 @@ $('#my-alert').bind('closed', function () {
           <h3>Markup</h3>
           <p>Just add <code>data-toggle="collapse"</code> and a <code>data-target</code> to element to automatically assign control of a collapsible element. The <code>data-target</code> attribute accepts a css selector to apply the collapse to. Be sure to add the class <code>collapse</code> to the collapsible element. If you'd like it to default open, add the additional class <code>in</code>.</p>
           <pre class="prettyprint linenums">
-&lt;button class="btn danger" data-toggle="collapse" data-target="#demo"&gt;
+&lt;button class="btn btn-danger" data-toggle="collapse" data-target="#demo"&gt;
   simple collapsible
 &lt;/button&gt;
 
diff --git a/docs/templates/pages/base-css.mustache b/docs/templates/pages/base-css.mustache
index 433a18c885..c000c9c88c 100644
--- a/docs/templates/pages/base-css.mustache
+++ b/docs/templates/pages/base-css.mustache
@@ -756,11 +756,6 @@
         <td><code>.form-vertical</code> <span class="muted">({{_i}}not required{{/i}})</span></td>
         <td>{{_i}}Stacked, left-aligned labels over controls{{/i}}</td>
       </tr>
-      <tr>
-        <th>{{_i}}Horizontal{{/i}}</th>
-        <td><code>.form-horizontal</code></td>
-        <td>{{_i}}Float left, right-aligned labels on same line as controls{{/i}}</td>
-      </tr>
       <tr>
         <th>{{_i}}Inline{{/i}}</th>
         <td><code>.form-inline</code></td>
@@ -771,6 +766,11 @@
         <td><code>.form-search</code></td>
         <td>{{_i}}Extra-rounded text input for a typical search aesthetic{{/i}}</td>
       </tr>
+      <tr>
+        <th>{{_i}}Horizontal{{/i}}</th>
+        <td><code>.form-horizontal</code></td>
+        <td>{{_i}}Float left, right-aligned labels on same line as controls{{/i}}</td>
+      </tr>
     </tbody>
   </table>
 
@@ -879,7 +879,7 @@
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">{{_i}}Save changes{{/i}}</button>
+            <button type="submit" class="btn btn-primary">{{_i}}Save changes{{/i}}</button>
             <button type="reset" class="btn">{{_i}}Cancel{{/i}}</button>
           </div>
         </fieldset>
@@ -972,7 +972,7 @@
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">{{_i}}Save changes{{/i}}</button>
+            <button type="submit" class="btn btn-primary">{{_i}}Save changes{{/i}}</button>
             <button type="reset" class="btn">{{_i}}Cancel{{/i}}</button>
           </div>
         </fieldset>
@@ -1096,7 +1096,7 @@
             </div>
           </div>
           <div class="form-actions">
-            <button type="submit" class="btn primary">{{_i}}Save changes{{/i}}</button>
+            <button type="submit" class="btn btn-primary">{{_i}}Save changes{{/i}}</button>
             <button type="reset" class="btn">{{_i}}Cancel{{/i}}</button>
           </div>
         </fieldset>
@@ -1139,28 +1139,28 @@
         <td>{{_i}}Standard gray button with gradient{{/i}}</td>
       </tr>
       <tr>
-        <td><a class="btn primary" href="#">{{_i}}Primary{{/i}}</a></td>
-        <td><code>.primary</code></td>
+        <td><a class="btn btn-primary" href="#">{{_i}}Primary{{/i}}</a></td>
+        <td><code>.btn-primary</code></td>
         <td>{{_i}}Provides extra visual weight and identifies the primary action in a set of buttons{{/i}}</td>
       </tr>
       <tr>
-        <td><a class="btn info" href="#">{{_i}}Info{{/i}}</a></td>
-        <td><code>.info</code></td>
+        <td><a class="btn btn-info" href="#">{{_i}}Info{{/i}}</a></td>
+        <td><code>.btn-info</code></td>
         <td>{{_i}}Used as an alternate to the default styles{{/i}}</td>
       </tr>
       <tr>
-        <td><a class="btn success" href="#">{{_i}}Success{{/i}}</a></td>
-        <td><code>.success</code></td>
+        <td><a class="btn btn-success" href="#">{{_i}}Success{{/i}}</a></td>
+        <td><code>.btn-success</code></td>
         <td>{{_i}}Indicates a successful or positive action{{/i}}</td>
       </tr>
       <tr>
-        <td><a class="btn warning" href="#">{{_i}}Warning{{/i}}</a></td>
-        <td><code>.warning</code></td>
+        <td><a class="btn btn-warning" href="#">{{_i}}Warning{{/i}}</a></td>
+        <td><code>.btn-warning</code></td>
         <td>{{_i}}Indicates caution should be taken with this action{{/i}}</td>
       </tr>
       <tr>
-        <td><a class="btn danger" href="#">{{_i}}Danger{{/i}}</a></td>
-        <td><code>.danger</code></td>
+        <td><a class="btn btn-danger" href="#">{{_i}}Danger{{/i}}</a></td>
+        <td><code>.btn-danger</code></td>
         <td>{{_i}}Indicates a dangerous or potentially negative action{{/i}}</td>
       </tr>
     </tbody>
@@ -1185,24 +1185,24 @@
       <h3>{{_i}}Multiple sizes{{/i}}</h3>
       <p>{{_i}}Fancy larger or smaller buttons? Have at it!{{/i}}</p>
       <p>
-        <a href="#" class="btn large primary">{{_i}}Primary action{{/i}}</a>
-        <a href="#" class="btn large">{{_i}}Action{{/i}}</a>
+        <a href="#" class="btn btn-large btn-primary">{{_i}}Primary action{{/i}}</a>
+        <a href="#" class="btn btn-large">{{_i}}Action{{/i}}</a>
       </p>
       <p>
-        <a href="#" class="btn small primary">{{_i}}Primary action{{/i}}</a>
-        <a href="#" class="btn small">{{_i}}Action{{/i}}</a>
+        <a href="#" class="btn btn-small btn-primary">{{_i}}Primary action{{/i}}</a>
+        <a href="#" class="btn btn-small">{{_i}}Action{{/i}}</a>
       </p>
     </div>
     <div class="span4">
       <h3>{{_i}}Disabled state{{/i}}</h3>
-      <p>{{_i}}For disabled buttons, use <code>.disabled</code> for links and <code>:disabled</code> for <code>&lt;button&gt;</code> elements.{{/i}}</p>
+      <p>{{_i}}For disabled buttons, use <code>.btn-disabled</code> for links and <code>:disabled</code> for <code>&lt;button&gt;</code> elements.{{/i}}</p>
       <p>
-        <a href="#" class="btn large primary disabled">{{_i}}Primary action{{/i}}</a>
-        <a href="#" class="btn large disabled">{{_i}}Action{{/i}}</a>
+        <a href="#" class="btn btn-large btn-primary btn-disabled">{{_i}}Primary action{{/i}}</a>
+        <a href="#" class="btn btn-large btn-disabled">{{_i}}Action{{/i}}</a>
       </p>
       <p>
-        <button class="btn large primary disabled" disabled="disabled">{{_i}}Primary action{{/i}}</button>
-        <button class="btn large" disabled>{{_i}}Action{{/i}}</button>
+        <button class="btn btn-large btn-primary disabled" disabled="disabled">{{_i}}Primary action{{/i}}</button>
+        <button class="btn btn-large" disabled>{{_i}}Action{{/i}}</button>
       </p>
     </div>
     <div class="span4">
@@ -1415,8 +1415,8 @@
           <a class="btn" href="#"><i class="icon align-justify"></i></a>
         </div>
         <div class="btn-group">
-          <a class="btn primary" href="#"><i class="icon white user"></i> {{_i}}User{{/i}}</a>
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-primary" href="#"><i class="icon white user"></i> {{_i}}User{{/i}}</a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#"><i class="icon pencil"></i> {{_i}}Edit{{/i}}</a></li>
             <li><a href="#"><i class="icon trash"></i> {{_i}}Delete{{/i}}</a></li>
@@ -1428,13 +1428,13 @@
       </div>
       <p>
         <a class="btn" href="#"><i class="icon refresh"></i> {{_i}}Refresh{{/i}}</a>
-        <a class="btn success" href="#"><i class="icon white shopping-cart"></i> {{_i}}Checkout{{/i}}</a>
-        <a class="btn danger" href="#"><i class="icon white trash"></i> {{_i}}Delete{{/i}}</a>
+        <a class="btn btn-success" href="#"><i class="icon white shopping-cart"></i> {{_i}}Checkout{{/i}}</a>
+        <a class="btn btn-danger" href="#"><i class="icon white trash"></i> {{_i}}Delete{{/i}}</a>
       </p>
       <p>
-        <a class="btn large" href="#"><i class="icon comment"></i> {{_i}}Comment{{/i}}</a>
-        <a class="btn small" href="#"><i class="icon cog"></i> {{_i}}Settings{{/i}}</a>
-        <a class="btn small info" href="#"><i class="icon white info-sign"></i> {{_i}}More Info{{/i}}</a>
+        <a class="btn btn-large" href="#"><i class="icon comment"></i> {{_i}}Comment{{/i}}</a>
+        <a class="btn btn-small" href="#"><i class="icon cog"></i> {{_i}}Settings{{/i}}</a>
+        <a class="btn btn-small btn-info" href="#"><i class="icon white info-sign"></i> {{_i}}More Info{{/i}}</a>
       </p>
     </div>
     <div class="span4">
diff --git a/docs/templates/pages/components.mustache b/docs/templates/pages/components.mustache
index 2144789663..e61d83152d 100644
--- a/docs/templates/pages/components.mustache
+++ b/docs/templates/pages/components.mustache
@@ -122,7 +122,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Action{{/i}} <span class="caret"></span></a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Action{{/i}} <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -132,7 +132,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn danger dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Danger{{/i}} <span class="caret"></span></a>
+          <a class="btn btn-danger dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Danger{{/i}} <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -144,7 +144,7 @@
       </div>
       <div class="btn-toolbar">
         <div class="btn-group">
-          <a class="btn success dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Success{{/i}} <span class="caret"></span></a>
+          <a class="btn btn-success dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Success{{/i}} <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -154,7 +154,7 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn info dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Info{{/i}} <span class="caret"></span></a>
+          <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#">{{_i}}Info{{/i}} <span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -199,8 +199,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn primary" href="#">{{_i}}Action{{/i}}</a>
-          <a class="btn primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-primary" href="#">{{_i}}Action{{/i}}</a>
+          <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -210,8 +210,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn danger" href="#">{{_i}}Danger{{/i}}</a>
-          <a class="btn danger dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-danger" href="#">{{_i}}Danger{{/i}}</a>
+          <a class="btn btn-danger dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -223,8 +223,8 @@
       </div>
       <div class="btn-toolbar">
         <div class="btn-group">
-          <a class="btn success" href="#">{{_i}}Success{{/i}}</a>
-          <a class="btn success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-success" href="#">{{_i}}Success{{/i}}</a>
+          <a class="btn btn-success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
@@ -234,8 +234,8 @@
           </ul>
         </div><!-- /btn-group -->
         <div class="btn-group">
-          <a class="btn info" href="#">{{_i}}Info{{/i}}</a>
-          <a class="btn info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
+          <a class="btn btn-info" href="#">{{_i}}Info{{/i}}</a>
+          <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
           <ul class="dropdown-menu">
             <li><a href="#">{{_i}}Action{{/i}}</a></li>
             <li><a href="#">{{_i}}Another action{{/i}}</a></li>
diff --git a/docs/templates/pages/download.mustache b/docs/templates/pages/download.mustache
index 4cc3244f50..9160e895bd 100644
--- a/docs/templates/pages/download.mustache
+++ b/docs/templates/pages/download.mustache
@@ -15,7 +15,7 @@
 
 <section class="download" id="components">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">{{_i}}Toggle all{{/i}}</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">{{_i}}Toggle all{{/i}}</a>
     <h1>
       {{_i}}1. Chose components{{/i}}
       <small>{{_i}}Get just the CSS you need{{/i}}</small>
@@ -71,7 +71,7 @@
 
 <section class="download" id="plugins">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">{{_i}}Toggle all{{/i}}</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">{{_i}}Toggle all{{/i}}</a>
     <h1>
       {{_i}}2. Select jQuery plugins{{/i}}
       <small>{{_i}}Quickly add only the necessary javascript{{/i}}</small>
@@ -140,7 +140,7 @@
 
 <section class="download" id="variables">
   <div class="page-header">
-    <a class="btn small pull-right toggle-all" href="#">{{_i}}Reset to defaults{{/i}}</a>
+    <a class="btn btn-small pull-right toggle-all" href="#">{{_i}}Reset to defaults{{/i}}</a>
     <h1>
       {{_i}}3. Customize variables{{/i}}
       <small>{{_i}}Optionally modify Bootstrap without a compiler{{/i}}</small>
@@ -239,7 +239,7 @@
     </h1>
   </div>
   <div class="download-btn">
-    <a class="btn xlarge primary" href="#">{{_i}}Customize and Download{{/i}}</a>
+    <a class="btn btn-primary" href="#">{{_i}}Customize and Download{{/i}}</a>
     <h4>{{_i}}What's included?{{/i}}</h4>
     <p>{{_i}}Downloads include compiled CSS, compiled and minified CSS, and compiled jQuery plugins, all nicely packed up into a zipball for your convenience.{{/i}}</p>
   </div>
diff --git a/docs/templates/pages/index.mustache b/docs/templates/pages/index.mustache
index 5ef0c680a8..f7cadc0814 100644
--- a/docs/templates/pages/index.mustache
+++ b/docs/templates/pages/index.mustache
@@ -5,8 +5,8 @@
     <h1>{{_i}}Bootstrap, from Twitter{{/i}}</h1>
     <p>Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.</p>
     <p class="download-info">
-      <a href="https://github.com/twitter/bootstrap/" class="btn primary large">{{_i}}View project on GitHub{{/i}}</a>
-      <a href="assets/bootstrap.zip" class="btn large">{{_i}}Download Bootstrap{{/i}}</a>
+      <a href="https://github.com/twitter/bootstrap/" class="btn btn-primary btn-large">{{_i}}View project on GitHub{{/i}}</a>
+      <a href="assets/bootstrap.zip" class="btn btn-large">{{_i}}Download Bootstrap{{/i}}</a>
     </p>
   </div>
 
diff --git a/docs/templates/pages/javascript.mustache b/docs/templates/pages/javascript.mustache
index f8fdec8eac..9b787fb1ba 100644
--- a/docs/templates/pages/javascript.mustache
+++ b/docs/templates/pages/javascript.mustache
@@ -138,7 +138,7 @@
                 <p>{{_i}}One fine body…{{/i}}</p>
               </div>
               <div class="modal-footer">
-                <a href="#" class="btn primary">{{_i}}Save changes{{/i}}</a>
+                <a href="#" class="btn btn-primary">{{_i}}Save changes{{/i}}</a>
                 <a href="#" class="btn">{{_i}}Close{{/i}}</a>
               </div>
             </div>
@@ -163,11 +163,11 @@
               <p>{{_i}}<a href="#" class="tooltip-test" title="Tooltip">This link</a> and <a href="#" class="tooltip-test" title="Tooltip">that link</a> should have tooltips on hover.{{/i}}</p>
             </div>
             <div class="modal-footer">
-              <a href="#" class="btn primary">{{_i}}Save changes{{/i}}</a>
+              <a href="#" class="btn btn-primary">{{_i}}Save changes{{/i}}</a>
               <a href="#" class="btn" data-dismiss="modal" >{{_i}}Close{{/i}}</a>
             </div>
           </div>
-          <a data-toggle="modal" href="#myModal" class="btn primary large">{{_i}}Launch demo modal{{/i}}</a>
+          <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-large">{{_i}}Launch demo modal{{/i}}</a>
 
           <hr>
 
@@ -216,7 +216,7 @@
     &lt;p&gt;{{_i}}One fine body…{{/i}}&lt;/p&gt;
   &lt;/div&gt;
   &lt;div class="modal-footer"&gt;
-    &lt;a href="#" class="btn primary"&gt;{{_i}}Save changes{{/i}}&lt;/a&gt;
+    &lt;a href="#" class="btn btn-primary"&gt;{{_i}}Save changes{{/i}}&lt;/a&gt;
     &lt;a href="#" class="btn"&gt;{{_i}}Close{{/i}}&lt;/a&gt;
   &lt;/div&gt;
 &lt;/div&gt;
@@ -726,7 +726,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
           <h2>{{_i}}Example hover popover{{/i}}</h2>
           <p>{{_i}}Hover over the button to trigger the popover.{{/i}}</p>
           <div class="well">
-            <a href="#" class="btn danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">{{_i}}hover for popover{{/i}}</a>
+            <a href="#" class="btn btn-danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">{{_i}}hover for popover{{/i}}</a>
           </div>
           <hr>
           <h2>{{_i}}Using bootstrap-popover.js{{/i}}</h2>
@@ -841,7 +841,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
             <h4 class="alert-heading">{{_i}}Oh snap! You got an error!{{/i}}</h4>
             <p>{{_i}}Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.{{/i}}</p>
             <p>
-              <a class="btn danger small" href="#">{{_i}}Take this action{{/i}}</a> <a class="btn small" href="#">{{_i}}Or do this{{/i}}</a>
+              <a class="btn btn-danger small" href="#">{{_i}}Take this action{{/i}}</a> <a class="btn small" href="#">{{_i}}Or do this{{/i}}</a>
             </p>
           </div>
           <hr>
@@ -907,7 +907,7 @@ $('#my-alert').bind('closed', function () {
              <tr>
                <td>{{_i}}Stateful{{/i}}</td>
                <td>
-                  <button id="fat-btn" data-loading-text="loading..." class="btn primary">
+                  <button id="fat-btn" data-loading-text="loading..." class="btn btn-primary">
                     {{_i}}Loading State{{/i}}
                   </button>
                 </td>
@@ -915,16 +915,16 @@ $('#my-alert').bind('closed', function () {
              <tr>
                <td>{{_i}}Single toggle{{/i}}</td>
                <td>
-                  <button class="btn primary" data-toggle="button">{{_i}}Single Toggle{{/i}}</button>
+                  <button class="btn btn-primary" data-toggle="button">{{_i}}Single Toggle{{/i}}</button>
                 </td>
              </tr>
              <tr>
                <td>{{_i}}Checkbox{{/i}}</td>
                <td>
                   <div class="btn-group" data-toggle="buttons-checkbox">
-                    <button class="btn primary">{{_i}}Left{{/i}}</button>
-                    <button class="btn primary">{{_i}}Middle{{/i}}</button>
-                    <button class="btn primary">{{_i}}Right{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Left{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Middle{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Right{{/i}}</button>
                   </div>
                </td>
              </tr>
@@ -932,9 +932,9 @@ $('#my-alert').bind('closed', function () {
                <td>{{_i}}Radio{{/i}}</td>
                <td>
                   <div class="btn-group" data-toggle="buttons-radio">
-                    <button class="btn primary">{{_i}}Left{{/i}}</button>
-                    <button class="btn primary">{{_i}}Middle{{/i}}</button>
-                    <button class="btn primary">{{_i}}Right{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Left{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Middle{{/i}}</button>
+                    <button class="btn btn-primary">{{_i}}Right{{/i}}</button>
                   </div>
                </td>
              </tr>
@@ -1082,7 +1082,7 @@ $('#my-alert').bind('closed', function () {
           <h3>{{_i}}Markup{{/i}}</h3>
           <p>{{_i}}Just add <code>data-toggle="collapse"</code> and a <code>data-target</code> to element to automatically assign control of a collapsible element. The <code>data-target</code> attribute accepts a css selector to apply the collapse to. Be sure to add the class <code>collapse</code> to the collapsible element. If you'd like it to default open, add the additional class <code>in</code>.{{/i}}</p>
           <pre class="prettyprint linenums">
-&lt;button class="btn danger" data-toggle="collapse" data-target="#demo"&gt;
+&lt;button class="btn btn-danger" data-toggle="collapse" data-target="#demo"&gt;
   {{_i}}simple collapsible{{/i}}
 &lt;/button&gt;
 
diff --git a/examples/fluid-reverse.html b/examples/fluid-reverse.html
index aa2a77489f..2812e21527 100644
--- a/examples/fluid-reverse.html
+++ b/examples/fluid-reverse.html
@@ -60,7 +60,7 @@
           <div class="hero-unit">
             <h1>Hello, world!</h1>
             <p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
-            <p><a class="btn primary large">Learn more &raquo;</a></p>
+            <p><a class="btn btn-primary btn-large">Learn more &raquo;</a></p>
           </div>
           <div class="row-fluid">
             <div class="span4">
diff --git a/examples/fluid.html b/examples/fluid.html
index 738c520581..57ee5b0918 100644
--- a/examples/fluid.html
+++ b/examples/fluid.html
@@ -82,7 +82,7 @@
           <div class="hero-unit">
             <h1>Hello, world!</h1>
             <p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
-            <p><a class="btn primary large">Learn more &raquo;</a></p>
+            <p><a class="btn btn-primary btn-large">Learn more &raquo;</a></p>
           </div>
           <div class="row-fluid">
             <div class="span4">
diff --git a/examples/hero.html b/examples/hero.html
index 1fa39922f0..f6d97481c9 100644
--- a/examples/hero.html
+++ b/examples/hero.html
@@ -56,7 +56,7 @@
       <div class="hero-unit">
         <h1>Hello, world!</h1>
         <p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
-        <p><a class="btn primary large">Learn more &raquo;</a></p>
+        <p><a class="btn btn-primary btn-large">Learn more &raquo;</a></p>
       </div>
 
       <!-- Example row of columns -->
diff --git a/less/button-groups.less b/less/button-groups.less
index 7367103caa..4b0523df29 100644
--- a/less/button-groups.less
+++ b/less/button-groups.less
@@ -130,10 +130,10 @@
 
 
 // Account for other colors
-.primary,
-.danger,
-.info,
-.success {
+.btn-primary,
+.btn-danger,
+.btn-info,
+.btn-success {
   .caret {
     border-top-color: @white;
     .opacity(75);
@@ -141,7 +141,7 @@
 }
 
 // Small button dropdowns
-.btn.small .caret {
+.btn-small .caret {
   margin-top: 4px;
 }
 
diff --git a/less/buttons.less b/less/buttons.less
index ce725cd4b0..48cfa7560d 100644
--- a/less/buttons.less
+++ b/less/buttons.less
@@ -44,7 +44,7 @@
 }
 
 // Active state
-.btn.active,
+.btn-active,
 .btn:active {
   background-image: none;
   @shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
@@ -56,7 +56,7 @@
 }
 
 // Disabled state
-.btn.disabled,
+.btn-disabled,
 .btn[disabled] {
   cursor: default;
   background-image: none;
@@ -70,23 +70,23 @@
 // --------------------------------------------------
 
 // Large
-.btn.large {
+.btn-large {
   padding: 9px 14px;
   font-size: @baseFontSize + 2px;
   line-height: normal;
   .border-radius(5px);
 }
-.btn.large .icon {
+.btn-large .icon {
   margin-top: 1px;
 }
 
 // Small
-.btn.small {
+.btn-small {
   padding: 5px 9px;
   font-size: @baseFontSize - 2px;
   line-height: @baseLineHeight - 2px;
 }
-.btn.small .icon {
+.btn-small .icon {
   margin-top: -1px;
 }
 
@@ -96,47 +96,47 @@
 
 // Set text color
 // -------------------------
-.btn.primary,
-.btn.primary:hover,
-.btn.warning,
-.btn.warning:hover,
-.btn.danger,
-.btn.danger:hover,
-.btn.success,
-.btn.success:hover,
-.btn.info,
-.btn.info:hover {
+.btn-primary,
+.btn-primary:hover,
+.btn-warning,
+.btn-warning:hover,
+.btn-danger,
+.btn-danger:hover,
+.btn-success,
+.btn-success:hover,
+.btn-info,
+.btn-info:hover {
   text-shadow: 0 -1px 0 rgba(0,0,0,.25);
   color: @white
 }
 // Provide *some* extra contrast for those who can get it
-.btn.primary.active,
-.btn.warning.active,
-.btn.danger.active,
-.btn.success.active,
-.btn.info.active {
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active {
   color: rgba(255,255,255,.75);
 }
 
 // Set the backgrounds
 // -------------------------
-.btn.primary {
+.btn-primary {
   .buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 20));
 }
 // Warning appears are orange
-.btn.warning {
+.btn-warning {
   .buttonBackground(lighten(@orange, 15%), @orange);
 }
 // Danger and error appear as red
-.btn.danger {
+.btn-danger {
   .buttonBackground(#ee5f5b, #bd362f);
 }
 // Success appears as green
-.btn.success {
+.btn-success {
   .buttonBackground(#62c462, #51a351);
 }
 // Info appears as a neutral blue
-.btn.info {
+.btn-info {
   .buttonBackground(#5bc0de, #2f96b4);
 }
 
-- 
GitLab