From c6badd6a90bb381111aa1bc15d75c612ab89576c Mon Sep 17 00:00:00 2001 From: Anton Schubert <ischluff@mailbox.org> Date: Tue, 29 Aug 2017 20:58:39 +0200 Subject: [PATCH] add basic frame, basic login page --- assets/fonts/config.json | 68 ++-- assets/fonts/iconfont.eot | Bin 8952 -> 9608 bytes assets/fonts/iconfont.svg | 8 + assets/fonts/iconfont.ttf | Bin 8784 -> 9440 bytes assets/fonts/iconfont.woff | Bin 5540 -> 6016 bytes assets/fonts/iconfont.woff2 | Bin 4648 -> 5056 bytes assets/images/cms_logo.png | Bin 0 -> 1139 bytes assets/images/cms_logo_dark.png | Bin 0 -> 1139 bytes assets/images/cms_logo_white.png | Bin 0 -> 1070 bytes assets/images/placeholder_image.jpg | Bin 0 -> 5695 bytes assets/images/userprofile_placeholder.png | Bin 0 -> 1668 bytes cms_template/bearbeitungsmaske.html | 91 ----- conf/init.json | 6 +- src/app.less | 37 +- src/app.vue | 4 +- src/components/login.vue | 107 ------ src/components/my-form.vue | 14 +- src/components/my-input.vue | 27 +- src/components/sidebar.vue | 448 +++++++++++----------- src/components/topbar.vue | 16 +- src/icons.less | 6 +- src/main.js | 3 +- src/mixins.less | 13 +- src/variables.less | 22 +- src/views/{foo.vue => contentdemo.vue} | 28 +- src/views/forms/formdemo.vue | 90 +++++ src/views/forms/login.vue | 184 ++++++++- 27 files changed, 661 insertions(+), 511 deletions(-) create mode 100644 assets/images/cms_logo.png create mode 100644 assets/images/cms_logo_dark.png create mode 100644 assets/images/cms_logo_white.png create mode 100644 assets/images/placeholder_image.jpg create mode 100644 assets/images/userprofile_placeholder.png delete mode 100644 src/components/login.vue rename src/views/{foo.vue => contentdemo.vue} (97%) create mode 100644 src/views/forms/formdemo.vue diff --git a/assets/fonts/config.json b/assets/fonts/config.json index 3cf5182..816b468 100644 --- a/assets/fonts/config.json +++ b/assets/fonts/config.json @@ -214,6 +214,46 @@ "ion-log-out" ] }, + { + "uid": "f51722ab422ad49cb9807c0ec25298b6", + "css": "arrow-up", + "code": 62424, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M587.9 687.5L312.5 394.5 37.1 687.5 0 646.5 312.5 312.5 625 646.5Z", + "width": 625 + }, + "search": [ + "ion-ios-arrow-up" + ] + }, + { + "uid": "208eec9541a701370b5b539c522b23c2", + "css": "arrow-down", + "code": 62416, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M587.9 312.5L625 353.5 312.5 687.5 0 353.5 37.1 312.5 312.5 605.5Z", + "width": 625 + }, + "search": [ + "ion-ios-arrow-down" + ] + }, + { + "uid": "8b80d36d4ef43889db10bc1f0dc9a862", + "css": "user", + "code": 59393, + "src": "fontawesome" + }, + { + "uid": "f2aa28a2548ed3d2be718d087b65ee21", + "css": "key", + "code": 59394, + "src": "fontawesome" + }, { "uid": "efb8e2c22ada5ce5b02631e8b4be473d", "css": "ion-alert-circled", @@ -3812,20 +3852,6 @@ "ion-ios-arrow-back" ] }, - { - "uid": "208eec9541a701370b5b539c522b23c2", - "css": "ion-ios-arrow-down", - "code": 62416, - "src": "custom_icons", - "selected": false, - "svg": { - "path": "M587.9 312.5L625 353.5 312.5 687.5 0 353.5 37.1 312.5 312.5 605.5Z", - "width": 625 - }, - "search": [ - "ion-ios-arrow-down" - ] - }, { "uid": "758672cdc1824ed73456f753a5bb108c", "css": "ion-ios-arrow-forward", @@ -3896,20 +3922,6 @@ "ion-ios-arrow-thin-up" ] }, - { - "uid": "f51722ab422ad49cb9807c0ec25298b6", - "css": "ion-ios-arrow-up", - "code": 62424, - "src": "custom_icons", - "selected": false, - "svg": { - "path": "M587.9 687.5L312.5 394.5 37.1 687.5 0 646.5 312.5 312.5 625 646.5Z", - "width": 625 - }, - "search": [ - "ion-ios-arrow-up" - ] - }, { "uid": "dcf773d95d00f32634a80bf8dfd72927", "css": "ion-ios-at-outline", diff --git a/assets/fonts/iconfont.eot b/assets/fonts/iconfont.eot index f19d4c1db80f458d2c4602aa38e628a7b24f3f1d..2d36af5a3c69134771b852dd33a0b4d09a90916a 100644 GIT binary patch delta 1389 zcmZ{jUrbwd6vxl`{qDVmw(_Uk-U}V+pnv$=!oYItV(r+HAxuJCLI`X#T3CT?ly-%U z%`KD|A8<Z6c3<|O*`k;jGzN!0XndG+*$|^4n<OkG#s^J!n28KD3z@Cwa;I<h_VfFm zbACOy=luRWJ~;i7H0=lY#Wy2qg6^8?n`wPJV*$XI0ib6f5lh|vvRo$rBLKENaCW>x zTFD6jrHeFQF_;=kT$;JuNB%m1Ej1JyOHsUt{F|hCLnG%0E5Dj0Q=p-+dpI6DUhuAE z1)$_H1+`%cSf1yD0P-I4eZz_IbNhbm$^A`%ZVGgdBnM*kp~gw_sQ?HhV&_tL*hb0n zPvlpO#uD*c?>nhLd5a4CA(b2(pMSWv3ZUMm`6sD#JoVfD`mgETz4~=LidOvz4%Kc0 z(k#Fh@Et2aYNaN(K>(vMA5@SftTX*nri#m(_cvGdSypLV-n_TDx}|K5=5l%y_j-|j zS@XY79nhm&xz|<<4k!Vt5~YPE&M*UZ<L}KP$e<Zoza5O=`cr_B{S>MY{`k&>YJ-hk zCLoeFn1Dq3f(g(jZnT>~9>Ak(CXi2>`H%*}X!_B&CSW6dU}BWFS!x2$kX|%_0@7s@ zC?vgSV(j?leG@1qr42BkwqZ*#p#^}gQ4<ET&ctgO>Mi#fTjF+bf*bs;9uQGXazp`> zATS|GE5MTUp1~5exL9qLL|46Emb{gos+Lfct4edY+0D5uc^Xi2BU@@~%KDnxtfh6) zV8_y-x&u|^dGB2O{B_}tPu@Hj>Ftf|>F$ZtV0(L2w7UmyW_l+l=cgDoXB2XUe@ula z&<2NFyBrqAabF8#JQA+qBGW2dTo8p9X?y6%@C0y1-%~)bl(Fn6!E3-ok#z%OVlRkH z>~wk?{Uv^fMch@7p(>B$l+`M)M{+YQ9I95HZPqd<OBPQ9Yq6*bb>*o>8jQ}+jZWF3 zhN~N}5kp$Ic{jQ_E=P|<ZE9(tl|_z4(5kAzD6VN%QE|Am3x#!MN@4b`{*y=3C+EIM zcihnm?208{vsxsV8qi!U6pTiLs%mTPjj{uErK&BOt)I=;&>@$ymJ3C}KoOqpNFVE) z8^Q4-C;IPFzQbN<)le!^0wLeRd*X(*j-6&MI&snh0}R%qnvY>*o&M}%_O2gg=Bmx! zz^>Zt8h}1s^h)E-0sk*YFmn9)Se;Kf+26Ad{kRvO`vCpfwOZ`T-hhQ)i&9wLH|5e_ zEsXpLHf~%BSoywx@4u?29N}W85$D%)IkrSfwm$C&9Ac+w7bZ*$o72VM0V9z<U2p|` zcnNQ@%e+SL30H-6(JtPRqS94qURsoXmj1E~Tjq9dq;o+jv2k?j9>r6JB`Bj46_Cc_ zvGl;OaAqu?=BMK4^-d-3JD!{vwZ_uv<V0{JJ~(bO&Gd<(;qg4vK9kbFQPhP8%5M8V DIQlvM delta 749 zcmZXSO=uHA6vzLwyV-p9Be5ybDkjmQU@C$oYE@9EP!vn_P%BDxn{Kj&d@M<5st7?( zML`UMCl4)Bp`eH~p2So1U=c-HiYPr51P=<0jinSNzReun;Wz*Jzc;({-mp{WHqWS= zVIUSRt5IcSW7uClb+6P0uo!@$cv>@4&ko-vKL<$j@rgoEU2Z5q=TXWB6J|1fxBTET z`C-6qCbhgt@pkfuNFB-4jYOh&b045w1zH9ST^nnC^fUo@XDJ^wC}2M>kCI;@zt>0? zCVTsa8h-&FdGx2Uac$TBPzU*bYeQO_G}(FgCV7K=Fr%gQ>SMo^pP~XknAv=xRNtbP z{ZtS>n>pS5cKX0;AoPyUuq({R|FC5DDi~#f70At1gw#b%u0p{JiU(;Z{JGS{miU|$ zVvGEv)V-TE<5uqf5k{ErkoVB%RDMC;;@4$o$<sXJQ*&-!%6D2?fB|a@0!TouOF&hi zc2Gc-pmtIK8|i=mD)4Js06Xau0UV@n1aOjmiCGgJMvbip1aOny5`fBEUlgE)bV-0# zpx!9}{R#Dq0PXy&ZMyQ%{?o<heU~c7wq@B)|M14hwYC$#;g*|?Ex+%j-T+dGzwJ2U z^jdLwrqSRYf25BUsdqxAhUAE~k)A=k#1HmLx+o9IRmG=7l{K4TtJ=QW*3?mT*19Zs zD|h^EnR)sBK-d8_uWPxu!50F0cS=tb+*&S|E%xNblSaW6&!)1uo}!i+b7ZuM@uXJJ KQAunMd;S6NMzwwb diff --git a/assets/fonts/iconfont.svg b/assets/fonts/iconfont.svg index 05b329f..286e0dc 100644 --- a/assets/fonts/iconfont.svg +++ b/assets/fonts/iconfont.svg @@ -8,6 +8,10 @@ <missing-glyph horiz-adv-x="1000" /> <glyph glyph-name="search" unicode="" d="M643 386q0 103-73 176t-177 74-177-74-73-176 73-177 177-73 177 73 73 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 153-31 125-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" /> +<glyph glyph-name="user" unicode="" d="M714 69q0-60-35-104t-84-44h-476q-49 0-84 44t-35 104q0 48 5 90t17 85 33 73 52 50 76 19q73-72 174-72t175 72q42 0 75-19t52-50 33-73 18-85 4-90z m-143 495q0-88-62-151t-152-63-151 63-63 151 63 152 151 63 152-63 62-152z" horiz-adv-x="714.3" /> + +<glyph glyph-name="key" unicode="" d="M464 564q0 45-31 76t-76 31-76-31-31-76q0-23 11-46-23 11-47 11-44 0-76-32t-31-76 31-75 76-32 76 32 31 75q0 24-10 47 23-11 46-11 45 0 76 31t31 76z m475-393q0-9-27-36t-37-28q-5 0-16 9t-20 19-22 22-13 14l-54-53 123-123q15-16 15-38 0-23-21-45t-46-22q-22 0-37 16l-375 374q-98-73-204-73-91 0-148 57t-57 149q0 89 53 174t138 139 175 53q91 0 148-58t57-148q0-105-73-203l198-199 54 54q-2 2-14 14t-23 21-18 21-9 15q0 10 27 37t37 28q7 0 13-6 3-3 26-25t45-44 49-48 40-44 16-23z" horiz-adv-x="1000" /> + <glyph glyph-name="menu" unicode="" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" /> <glyph glyph-name="chatbox" unicode="" d="M148 69c-82 0-148 60-148 138v409c0 78 66 140 148 140h516c82 0 149-62 149-140v-409c0-78-67-138-149-138h-8v-125s-154 105-168 115-13 10-41 10h-299z" horiz-adv-x="812.5" /> @@ -30,10 +34,14 @@ <glyph glyph-name="compass" unicode="" d="M438 399c25 0 48-24 48-49s-23-49-48-49-49 24-49 49 23 49 49 49z m0 389c240 0 437-198 437-438s-197-438-437-438-438 198-438 438 197 438 438 438z m95-534l166 358-357-166-166-358z" horiz-adv-x="875" /> +<glyph glyph-name="arrow-down" unicode="" d="M588 538l37-41-312-334-313 334 37 41 276-293z" horiz-adv-x="625" /> + <glyph glyph-name="arrow-left" unicode="" d="M375 625l-293-275 293-275-41-37-334 312 334 313z" horiz-adv-x="375" /> <glyph glyph-name="arrow-right" unicode="" d="M0 625l41 38 334-313-334-312-41 37 293 275z" horiz-adv-x="375" /> +<glyph glyph-name="arrow-up" unicode="" d="M588 163l-275 293-276-293-37 41 313 334 312-334z" horiz-adv-x="625" /> + <glyph glyph-name="color-wand" unicode="" d="M273 540l500-502-66-67-500 502z m-31 64v125h63v-125h-63z m0-398v125h63v-125h-63z m180 234v62h125v-62h-125z m59 191l-88-88-45 43 88 90z m-415 0l45 45 88-90-45-43z m0-326l88 88 45-43-88-90z m-66 135v62h125v-62h-125z" horiz-adv-x="773.4" /> <glyph glyph-name="navigate" unicode="" d="M406 756c225 0 407-181 407-406s-182-406-407-406-406 181-406 406 182 406 406 406z m0-656l188 438-438-188h250v-250z" horiz-adv-x="812.5" /> diff --git a/assets/fonts/iconfont.ttf b/assets/fonts/iconfont.ttf index 850d4bf8e6af75aa955b1965e2d9d98061745f2c..3d01185e6f1b09ed15f42beefbbe80dd31720f1a 100644 GIT binary patch delta 1406 zcmZ`&T})GF7=GXH{FMHTLOJazg>+CTKcy|o%Bg0xGBX(%LuS$tK$opR`BC~~so)O* zv+QQx4D5{;OE4QI3)=;g?PAL=j2cCjEksA6Az8dx!i7sL#l;X;_8yMg-Fo_b&-1=t z-gBP!`&oPUY3FRsj1B<b2Y~K@cr<nQhf0a!uK?K2z(l4>T;JsZ>?<^1HIy2TUzwZj zrFav-m>Q0brzl@S@h#$_;js%t)juwf<Y_QRMq<&y;?H&K0A(*Jsf<uU_ck{KAnl{L zb|juTfB4t#-M=Xjp+saXIS_3MG*44Z2EZGSo=@QkBNa=(QCyXX#$&g?u#!P(n+*Pv zN{(lio^3n^knhs`t5iCc`s1CZpXl8^b1zS#AsfNrqdR~!39t>^p7IhKsK*`PLG7y+ zsz~vh?D>OSMb4i)l<U}<-@37NXX{Dco}bFE<saoAXJ28pu$F&F%E{c>>x{2Ks%-e* z#{=|a`&o^#6f95%WE#cn9NVE<{ftR9q}d`tbF`p)P?MXl0gUu(kY{-QKm)mjT!jV@ zi2WKsBtE18XjgL`8lVVZYhDBBiEqrP1AUQ}Ve5_tFcLq}0Aw$3*8p!2PicT+;x!Fm zCVr?vJp%bh8laSzc0>g=4%;>jv;?r7&;Tf9`}p}8>TUO1w#u2n3Qlmhxj;Z6$szKX z1fKCpS^<`%_Y9TErKNI<C^(wjl2}vis%s5|IoZ|{Y;kg&B)a^lIFYTk?=RHuZ#URI zVPEI!G0%~@%A(JvzPreO{LLpvLp?pAeUa`^19o)Og(KZ~Yo=#<dg(Hw=2RnBxv$BH z4cg&ETbD)0I6U0S7#9jQZ~{}R92_t3@6q<qA>!h|G5VhY%B9q0M-e^(CI~D7j0rs; zFyXkhrrBNQw&;Y4CJfZMM5`p%)wo0_Q-Xnd+gmNl3`(NT<!7xr*+yNt>X8PuGjyU= z(#gSkKQ?1P3AVh6P7c??ePN?)_qMUnsSp}u*%!tQ#UR)$4&{>BQ*JXCKJ7n!GJSgS z`*i0$rPyTC=@o-cbjV)C!2-T;*eA=zww^FM;<3xdaG_~Iub@S;v(`%`K5q$5bf!=B zE{<WQZ?ykD)muzvgMwnY%^Rp)e!=Gq9(I;F=){T34A9qvvL1uTj=Kvhh5K%ln4__9 z6T2D<8vxm-<`0_p4)}jHyjtVdW4)eg3V#-!x$z(#_!8ZPjYjM$+=S&&NeU}_FFUdy znnN$Z$f=hC)_?9l_%CNyN`s|VHP2n&-DRu9q_ag9?=g0kc41P3syVtCoL4QRUl&}( zTD*d{*(}$<*Yel+O~EAG6T{*)aY<Yee;5DKjp!ElZlrZNVKH)O&0e&+%CQV3w4x2f z@mMrHFv6c3kEOXYu?yJ+YwW;aax!6vrqjtu-&kxYW7K4Nba*6Fr0H`h!$5K@nf6Ua U6N5#G=)~x7G!t9)+gzr90Q^BpX#fBK delta 757 zcmZXSO=uHA6vzMjkxiQPD<O%2R+^-Wf@u*fRjNG{a)<|uiqsZG*(RH8As@>oG*t@0 zn|Ny6qlehif}jU6o<uyf7e$29QlzB^DJVTy$R<&WAn|SH=nlX6&;Pv{=DlIRUEPc> z4VHQU?mB>}ct+OJuP!_y{{rCO#ODh^X{RLu{!5e(Cbd-NNqK38{50UwQgU9ScrW?$ zq>fbjK{8o<cm@#f0$njxkrUm|UM2zeD&<F23fM0Tv*h>5pHef0g^{tT)?dIw9?^6z zE}uLb@{*5Q8#3~O#$9tAlUK<HvvNjRU-4P_$5h}KEtfBpnt$l9j|#$9O;@z<6X)Io zp^xR`JDkV3#ib?=z)=#|htOU{NS)N<0Yto}c#sD5c!=63v(Fqh$IV#1QeUfY)OQ<! z#$sdpDIc<LHT}(Ot7R<n0|Q+9h;{7$5k}b1`9Zo#sxI?9S3+m|^3C?#eyl@UT7Uyx z$p8<SeGDoO<}kx5%p7OHMjB&40_qh8?4)Z9I7l}b=penZOA}#r+z2q>B3)!y<u$e# z=px-_pc`oV8K6I;nPs5YSP?7LBk9O#I6b$kWlxUl_f7x4cfaS#FSvwuV>_Qms5gL= zH~PI7JKR=Wcuwz^@J7bCBK1xP)Q}LdHqtkVxA@7u<8KO+!n)`YN5z^=wXNIsY&B_C zTD2Yv?&_Y`C2(%z$BD25QeKhuxN3v~%IUO{EVyJ{&lQLCxs+OP#&hYMK2(&m2}f3* OpG(OF1=SCMaOXchWW!zn diff --git a/assets/fonts/iconfont.woff b/assets/fonts/iconfont.woff index 45b941ddc3c78542c35c795181435ae8bcc82065..1314ef47c612cbc3a52675bb79e68512724283f8 100644 GIT binary patch delta 3891 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 delta 3411 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 diff --git a/assets/fonts/iconfont.woff2 b/assets/fonts/iconfont.woff2 index 11a3158ac14a8fda85598e06f4233426a05ffc5e..c7e311dbda27a516029f944efcdcdf6361309117 100644 GIT binary patch literal 5056 zcmV;x6F=;CPew8T0RR91029Cf4*&oF03_f50265d0RR9100000000000000000000 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 WG@Ex?*Z*soT4(&zXd~er#n=Sh;<5w) literal 4648 zcmV+@64&i_Pew8T0RR9101_ww4*&oF03uKT01?js0RR9100000000000000000000 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 diff --git a/assets/images/cms_logo.png b/assets/images/cms_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..52092859fb76b948a309f2bbf7d06ff47adf08c8 GIT binary patch literal 1139 zcmV-(1dRKMP)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$6-h)vRCwC#oLfi~Q5eV1ZfjauMkbY* z-JvDAQZLm*RMtX)1zpIBB-E~Sk*L6+m!QHBf+$TQyI5p&@g=sRi0JZSQ4hJ531MJH zfl1j#U8nzP&eF8(%!;0M&(3}y{5adr?l|+?GiS~>=bRjxrZKm-#KjnM0*!Sse4fH~ zd~XF_9sn)C&tfzB2+rf2P6uyviPGQA6C4MoGJC`v{NOWDZicAN{{-O;t(!aj!R!_J zpdVNtc*Dskf@2+O(q0l|9l0dPI=+)2>*ydsT?`ULf=CbvB0(gG1d$*TL=h1|iFOy{ z>f!f)i?R)LM)+7Y@q;GDlAw#=fe@ud_*nhoc!z-zAQg-RZZHF6DksS2DQtFoOPYJR z*1rw$UJ4iu_#@K=V7?GZjkE|pXz&u80XbkYC;(4MQ0Vv!%E4@~1l%V<=5b40cB@P- zPwEGWxXSb)s^cWcJbr;)U>WP;kX5|)q^rR!@PP!GM=h8O8cC3OG=PPMjDQ4%=<NDX ztRX?xl5U_lNrJ3nC-^8{cS^~{kcVZUm?CbOk<RA(f>uxi+9OblI&eO`3vk8w#Gt3y z{AzHlmw)Nk;1Q?*k0nd0f~12Ymy>ddX;HWoCW1U6shr7wKC~OWlO?D<%I!v;$k<aP z)}lKovhCDJPY2f}UuyMsyNmG$WCgNzhIYtl$J_i-Fi7@J?IdV0GfbT$L7^jy1X;%< zFpvb9#~3h{1X)K039^n%l>|Ac2E|?sS4q%U1qC@&64a=mpl>P(YEn>8i)w;YlhmM$ zAfKo33yM0$1l6fjgZ_F_NX{qlLN!4T6%tgfS{uaU8mL!54uAZ6SjB9f&zRVvfS@Aq zUdE1$tDa@`r0;@LQIx}ne~M-8%<U~njzp@l72J!09Nq>lk|<}q@lutYi+RAMUX;V9 zA<tuS*YEQ=jroCpxFjDiUktmJ>GJ|NF@0+8P^K@|@9EIAQ#8bU{QMa>C+=FZV;eK9 zdUi$Vm#q|VG5q<=5N23O+|5W}`q=y%abu7kxV)C4m;jzfT2LT<iW5>k#8}t~!*Ty> zgRt=kNMi9FeD>?8;I=vNVjn1tS2L&_%Ta8%>L~IAZv#G<6Nhr9p|~8bCmmRjQi(4t zjw3(3&%<YPB!&}YY^=SIlpP0hc+GhN(n4%=h3hEZgrou+%ULPXlQfg<1G>_aE`y}A zAl*h{_!_b@PzCy1e6Au`P_oGfb3rX66@i2p7Q;t6_JCI`{5+xy$mWZK1+`jyflqHc z1ezdeKgcxP0UY9ws|XK1C1wZHM_>3!r-qSJ%7UiQ1RA4_OkV}Vt6-Z+W1cSTJ0Yf+ z|2Kh5pPH*;_(f`yB?R$-g&LE5Fi9l4r8uYC!5jYwFaS7I>vLU5mF@rl002ovPDHLk FV1lk92B81| literal 0 HcmV?d00001 diff --git a/assets/images/cms_logo_dark.png b/assets/images/cms_logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3b757f3f19dbfe78cd1042edf8a325fec18dc25b GIT binary patch literal 1139 zcmV-(1dRKMP)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$6-h)vRCwC#oLg)RQ5=WQuB{fOqFOXn zED|cN;RO$ZA|XNI5=Au9)-^7PAgRQQ1gRH^&}u|oN>p6>A}%2!E-xiK*rM7<B~>M< zhPt%fj^D|gjj`F8-Lz-gv$OwS^5v|Z-RaD?GiT13bB0UPG?wbk^f1QUKw}Z6vDVjy z@2$Yg1E3lBS#+kC;5_!}bnrrtDE*z>!O>tcb4F(22cM2|GemX#CkSt7om}Zp=B(s_ zK45*|4L73%XC02Dy(GvwIV8wBKS+>u+DTA^AweXF1d$*TM1n{V2_iuhTLi^BU67}X z-~S`ZR?uPdwrb)BjgKZl7r{dzO0#)e{bGBEfMFmR3<u-EG?1a3pvGEXQ>r(!shf}b zcOl+O0wV#xWjYVc6(XsU7U6>iufQ3Q4JLwo@Qeh7&KFPuW`f1w0SPkCEpghdGC4h| z9VBv<=|fb<NsxJdgI!=5i*U#)R$I~)U<UX|g3RLsvq3!xGEW_tZ|D(_pb(ASDimu- zkhP>6C{B_f>+A%d#On?zeKGXI(oswjmrT2R^Swa}s03{`97XNeAKnDGV!UI})!zJS zaIBku={MjpC<RX>ODcz?gQ71d<rLF;;8Yj~a)qQ4Cjb7>Ztz}~ptc^aH*!UfJxStG zbQi@^Csoo@!F9=}T8-1LV*CbKzO0p@9&$VJGJg~dkiAkT2^z=@Q|Cxf=wy)~>r4Rs zNsxI)0WS%%PC5y)PKHW?Tyz9QUxunA=$nFqTq+5wS5VM*l>{{?D5zOAL8?irQ$|o@ zt?w&}YQ+Rqt8@hMR4F9qGkB?*phpS`s!**C;<*ND6p+Jj{~lJcH_vBGY*9c^0r((e zMaHL|WwoU5fm1ywhY$Z0%34{fH#5<WuEthyzX#;-I>RIb)2cs_eelB5<i2<?w09 zbC}%c_xYU0yud#^k~f$?47--;^8z<9eQNGtra!FT)uCy(sEGOa`EzhiT(x9p8#6rh z?6K*WEfa7t{Qk@!W_XgglZj*c*!){@VUQl2UQ1An1uyIt6v!{JL&`^tg`F^L_rE#_ z3y**V7Te*oUq=Mj&4CyDKvArk!NIW{#dfQPBJbdBzz4HqP|g$-m&3KB0}rH>;R_36 z$PaJx@Yx*k;RG2g>)VjDGzR4GBj+hd39-x*uAz7nlJXraXQk+#q?j!47fDOH7?RF{ zGzW>{&yW>^a?sb}bEUz85=}ms1ALHF0OF!p3?J#(175T6^N22>H(wYmsKw$7e0tj< z&;UvML5AT9;1YjaMR@p>m>o<Xec?Nu97awN3z|X`sEjr;{V5oJ2)3G3=4ryd8)6Fi ze-p^`skth~FS<5aLJ%KVs5I#hCWy{%5%%d$@WQ_W3;@xD-O8Z=?A8DP002ovPDHLk FV1n#I1)l%_ literal 0 HcmV?d00001 diff --git a/assets/images/cms_logo_white.png b/assets/images/cms_logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa0d3c8a53a9c98b33a3ff80d830687cfad09d9 GIT binary patch literal 1070 zcmV+}1kwA6P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#&`Cr=RCwC#n_EZ}Q5eV1Zfn|AyNDIF zU5O&--b3X>bcccpGU!GH+KniqsKDMU>Lm!f7-Z6g3c3(P1w}-cmy#YTGYi5(i;R@Y zN?oV_X}*nVab_3yjC*$W`@;{{y&PwM&YU^lnKM4aFa#0+e(?8~7}E@vg1w*tghX<t z6Hx|EM7|iHpP_bs!Qo(>@J6PC$zUUBjTB_Gv(ZN3trUPRV0HKjzu-h>71+gsoU@h% zIp;eIa!v~iiZLvR1+gF&#DZ853t~Ymh~tW&bgv5v#QFK(^s`A=CYfA{LI2S7WD;}+ z+#^wj%i9{F?acxGK_4&(j0O`yP)9*uiH^+cHlE7_LxeeHIt$Dsk#WaIllERqHdqYS zfvN5I{9`c9%V)9ApoG5U0&tg4^Y*zxhut!p!;{BBluN?AM0J=2+2<E1r2eUq1=;5s zm;&CjAp5)oxuAvx*{2%Jwp0WxsEt&B<t)fKS3offa?UnTOOIPs)nWs|SUP38UCnm} zKfn`Vu1!*%78(Lvu+A97TZ`=ghdTH_{R%t)rQo3p?Y|J_x~B{khgc#i-BBQ)B$WvD z^F!Og8&!Q!bAtPge5$-N6}EXBEb>w(Jpo)++~!-aoyFt?*?NWT`Mr3WKLC2FZq!SH zvV>*n91ChYb6Ajb#(*9y$UZ~CFcuWO{9!>33F;)s$9qunrJqiM>NOPP(@9W`hJwE7 zB<Q1tf*N!aq?@E_odnf^D$N8{=_E*|LL)h!z%$(h-PcIaHPwBPiUm}1a{IY3C%O|E zIsH2lyi>H}w5r;J<cf(+8tgqqisT4kxrC*130`pmMaj!QxeD9sF6g#Qm8HgJa3=wB zWFI(JVS6LMKDTPI`QTg!%8|>EX9%_T@5?of1#TQ-)~o~@gt;`guP|@ckN48FpE_cB z{ro97O=m6Dk?R<H({{VQ3|NW@(jRPzv#m5?UYoC^6N4LB2(E*2FiAcUaQP7UNna=# zBKOcEmhJwp586-TnN*Hk{W>_ZZw^1$4UVO-oF!n3Q>h^fyft7&3d$J|&PS`o!Z)Ox z1@lr!jvVvI)g0;31X(-lo5HgE!{d9-BVpe75}81>f#Ox6cD00V$)oZl+vfFdv5cgT zgHvFDhs5O2_qqtWI=rv+-y=Ct1eJz;>Om1mqxU8wazMNj)EUuJX8mmVL3s=x`~voX zV8kER6}f#`U@NFKV#`tBw+afE8nVMGq+PJdrZbm^S}$-C9HhEP*SnrWRNCZGWiBrT oeXywqGpN{=<G@>yFa8l=0DZoNu^P*XH~;_u07*qoM6N<$f>Z16t^fc4 literal 0 HcmV?d00001 diff --git a/assets/images/placeholder_image.jpg b/assets/images/placeholder_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..844b8bad81b985189ed51c68a82d1e40dae878f8 GIT binary patch literal 5695 zcma)9c{o(>+dpGpCR?JiG?pxdF~g88+Zd#=WtU|zvNViYtY1RNo{>Gt8VMz0&}Ls# zL}82)L-x=vdDZ(}et-PF@Acl-b)M^a?sI=W_x;?@=bY=Dy@|b9;IL7suQvdgnw|hS zfPZXn72rpbJ^jM~5WuqUMghRyEHl)HM8a!Ap#elCj8~usR>?CE2MxvGp)e(7D4?wy zipO~RV@VJX>;>Nd9m$QhCz23fFC9sH1X>x5H^ln*nuHUu=fcfxJj4AxHM}HsPeZgr zHA8WD9F~NEgyJp+5H&+}B!81@?$3X@p^}i_AtZktN&R10Ar5Fuh+!ZB3qdF$6g`#U zFo?Q_5)6S*SBEP=;L0#ns4@%+Q&EIzXsW7eDl0?&G|ByJ1TSw*Yb5H=T>C2>$v-z0 z5)z^mqM{T?xB!J|XlOu{;ZQhSaX&(l7#2XngenFQrT$_-Vu_vvUp&b-FaYw45#td^ zCh17-SNgwOz~TR<{ja_Hk3cl~{|?3Bel_4XEs<o6{iojlN=&o~!(*Y=SYjZV;ECN2 zm-+?9YZ?-;7*Zg?CNS{gUtP5H2_yv)eFE_iL&M))gUH$Y26zRA5aoYk&}dE503rz! z;E6Rw>PYUhDEaz&X(CZZsz!!thDN8<kT95$+9{O2DoRydLm!6FH-sCi|Aj>cdXjP2 z0McJruYa(}f5rZi0}j8R8HpwM24lTYgg_kR_qH{C|GgIdf93lV>-F!o82l?1x?c?R z*Wv!hVgKdYSJ1EN-_qS*{4IWLz`o)M`_kT92Y7x97Vvty{|JHhXh0mm!u-qjM;11g z{fnKIg@u)!gN==yjg5nggLB_FxVXT-Y=1m(01W2;WrBYjh=rAvgPntyi;Gu~hll5H z|Nnck_Y~mg0Q3PYGl(Bx;s-JFgZ8?BasXgr27y5Tya8C*m{{03_I<!F|9{+JW?^Mw z13>J2027Fbg_)Iwjgy)67Y@Y4%+CTy2(ZEqvguo4Bn5-uQtXs^gZnCnVoKVr39&?k z+DHT0qeB|S!4H6#nOH#F%q&dIzjJ~BekKWKn7#mu)dx&a45g%A5`K`iePq@^N=0x} zm5|A{HwA#1LHi{$^8>m7=!J_ByBQhHxV>n~E=ga*T1y4SKgY7agD-h}#8~raM08Pe zs=?=ES$3&2KZ%Wl2u7Pq;-nPS*IGrSo7)P^!X#8pe4VtJs3P6g`ZU@u+?agRn?AH6 zn2GXCXE*bfM>1k<nkp>i&unh?roV5G!4}Kqf3K{advnuwvZ6^XCrPYV`tqIg_n$Uy zKd#tnu$Sm<bbs9(`>B)-gw4G&7*+m+_9d<3jaM!G!Mn-wrp=zdEkfC1!~7pD!^}rN z94=B9t~Dy_dDz;LF%duFA{C*y@J7IuLdev9Cm&mon`~!1PR|<@WAAwbPmJ%pbB;o@ zcf$(lhwoI5hDl~l%@pJp8M8&duo(+l?b6+4z1<O%P5qeb%1<tsaQGNMPNN0FxlKod zHDkXWk!tQ^GN;_of~{q@+1D;nNrQ<?ing~*UED^mqaXG}7JW6}8cwUO@hCw71(vbA z{0T-Wc9>i6VmC{vsQL-l?aq{2(f5)ZU)(CljGS}I;4xG-cepMxKa|&?VvF&jq399! zoB}h25*sOKzht(uTMq|fZ59mAtx|3_@a_Q@U9!Ly7XFdKy(Fj6_uMCaHaxRkefkM$ zdiFM+=4E*{wroY8{(#Abiz5r~ITSR$7O_~oO(lwqUB3`LIIP`CP#rbLk=}F9&CMlU zq7F?zUixE%r)UbN*qr}`Q`U6W*&)BqCF}mJ+Xne-6T;Srogp880|eN<1s^@aGl}oK zqj2)24Mv{tsduAD`^$*<P6s-Tb3RY2pM23yQnK(6Z%u(0yZbxiblLMW!>2DS>&}WE z<jbpB{~pjkH&skODj!>ySeFQO${sx$e_dBmU)Nat0@+XGP6B}?=t5xcZun@I--#wh zvvc6K(+n=7e9dbtxG-^|`k_UYJmR*kWCi;+Hu<_^ickd;8hz5OQ+5t}S+i`UV*@j- zbiAO)C&a!en5tN+!<P#ZN@lfzoTI#)f_L}buw;@2;t7+7xWm5Lwx)G@B(<Dx7MQkg z)5v2?=FiOpU6|u+4&~9<dI~MKq7;?2QtG50V5<-2uL5I7N2zWL>f!4<g#K_<2bt}r zhq;m}ch2YX7^)~Uzhx0D_8|Is7(II4a1bsQ?_9GDy{~XBuqo}`5yjHDBveJg>_{Vk zLRURfDJf<ax!RALUqE)h*9Gss_g=N94|K21e?oJk2_L?r)jqi>SkX<TBu|hQh#gyx zIGKejt-H!ON{2lPex7XGEgP+#mTEH_D$B7upX8}$WZW9@9>4LamYy20qG*2cN7#1v z1(R%-(C4Cfr>RFXMHuU0$`W`gQFcP^l;x}zEkhO}y8ZJEc)eaCjqkZz+fPi*YX3K$ zBB!n+ek!BqZybAc<^ZDNkBQ;yuC!%Mnz*Baw&R$(STA|%u6JYW^xI517N2&T>g==g zZmP0FJgyrd2?`EbU{K;|zs=j7r(MoeP?47JmfXqT*%|byl;pdWv4rk+qwv`J%w(Q2 zG^%#;%@yb$VTC@<r;QKYt}h+a^jr{Uh>t7mc-42k$B?qSOkxJ&12C+ps3i?=tyAJ! z<W1NYeS-Y8FQJP_C@v)~=*f4cO(}9~W5Tmi&FclX;U*<%2DvXz4CobmZh$xQ{xF(@ zyo5(x)Q(D|<Ufl*Z$rJOA(I<n%mJC4DUTlAOEc<H#YmrT9;=rJ!m=2Xo$6~H!Tqln z6ceM2{6YY5t1Ls<>7xCvM8M~aK^!sg@F%|W#}W@`npQ*=CUEOsOBkmOh3@8f3iITt zr~RDq&3?e+;iW&A?$KBa>)nWQV(b(&i0uK{DKV1kv|DuB!Z>$C_CU4BaVg~kzDZWo zt~oV+c<l*tsC1IVas5}j#~#gy-G7d6%6UhRyVirX;j%nvdx^9MaOiw(fu>C_34oH) zPw`fIfG?jEso4qd$VACk?PS>+jDfYMo|wyUPOFUijp0A8)#@Hd7LAecp#8{=aQU%o zdb*;~D|o!>Y-@I$g^it6xqN!|c2KXIhfHw%y-*%Xx(@U#e<O8N@MYBf#|{Df*<Rcq zK5acaAqV2%jg*f$GgNANYHLA1>$t7W`nmA<2d{-ymo-(3T+dc+>g4|%@=d?e4{8%K zeH_?)y)B&EJDnjeDP16kscsPOJp{?#F>Y4+5iEkHM!$v_h2CU+;lv|a5g}IR_$4JG zvg_p3$Q6YuK;9{JrRp*RaaYu)=q<OmRktradAvz$MT^_FX$MQWs9`jHVp-49(007? zUhdmd;t0WBE%E|#es~YK)N#CckxL>{?`{ijTmOhWB!jhIk8;e^a?0pL#UcOR2CxHF z@!8gnOk{DmjanYGPOW_MTZ(A5cOwsv{_<R}+6B~L<6HG1)=pw`F6PXQ2QK4vg)2%m z?-yO_PE|BduOg}kQi%_OYGSj7D!7@89K{F1e-8J|eK|G|;RX(Sg-a$L8WB6P%}!pP zxp^h9;Z4~C`XQmr>E2}-_i<SZM3${{pQ%hfzE0!Y4_uYW4&`|#?_-nAW=0sq#c0Gu zzinz77qMucLaj3-=Fm%{d!?|MMpkFH$A}wN-L#O44%-Ic>EYcK0orAIhox^?<d?$4 zGtlmjpcG>%sc1)&$~-?S12*z^*o(msvF>}3s-35wm-gR-TQmi0t+#{K)N}1EXBzz| zG_HP5FeeX!`qBcP!OD7yiMSxUwk~s)l-E`8_WaSS12*~}^qRG5-+jS7sduuV>J<!G z_tmp;78Q0}w$|yGd{v15c#)R+R&SKoEV6|JJ;N->HflsWt_}rEWq|j*(thPZ5{Ov# z<U%3FW#y-{gM#w3a7~ew`A^Z|&UGwHr4dtCChzhd2;JFrT*B#dPv#!l^1)p|wLAzC zi%XZVNwVlN^ZBNK<4#_cAJ0Yr@5#)h(Q#(&8`i3w$4xHU!{`d13kD@>+jR5lGpkRi zX2=O7JU%=Y5>&`j_t?dMUa3bflRpAI%0UZykkR^7!HPjiukHs|c#$E|0|OmJrw@Z` zO%jVP@gtoHN~a(n0)*wMuE^oXMJ96v!pW%xjrs9Bj$_z2m(RRVYk&595+SeQp1N+b zc0WK^h(9h>fv|k8V%*y=%w)Lw%-0L?YKvbyWI{jPA4$yOy1XvpcFt*ymX~f4qA%B! zW6*0>9u!kv9Sui7{OU3+B1K`@6uB1(WVPYq!=&36clCqrx$y_`IrlMqMheiZSSK;o zyjo@@n>p9F6RvBunBgO-zP)!kOCp6it})t4!st&rPwZAl(A?}ZID@)xM_-$v<`bti zldDc|T((y_Yz{r*BbhI*bE0l4z@bzE^C<nKfB!4`E%(p27A!v$t}uiJJ$j082xe+3 z+gy(-%a@S(q)^}Lk|19){`sNL%am!TBCdqvu?^uV$0wNG5nG?K$;r42p-$}mk~~VL z%fXeb+D`n0iHf39@02~@7?D%uQ1If?b}7i|UTJY@!R1dyg26@8Plei3#BbK|wqH1F zE@+a%HpxPvpMRqVNjp+zk+?dWV2dN&D(j(^v=k1RCtk}nCb$JTb+ba7qAo&rHN%-D za$1YxlD+L+{Lk%7M-_%Gu3{Eu>B+9GVWY#(%{XQ}RSt?0`Y2LXwpo5+aUk20wa$o% z{1;#oH2rEulYH{bT3rpcwYdlpr+`$b(pXVQ=71cK$SFxu5Ye=M!pY4v9cOYk1Uevy zOU&RBcm;PYSEEG^StI7fvr`+J^;)00Kf5zfnowLTM<qxbO(R?oOj7LfqAt%G>B@`c zIn$yt*F<8RqMZ}(UTrw^j5-Y-cQb*+7JR>ODc#?BqMU^KIEun#ee*ULJUpg##s*e7 z>GaNg#jodh8V9uVM{UY?b{`Zp_&RaPVM<#qM9A*tHJ^4VcwTybR=qS#n!PUa+uSQ9 zinVLGeY;2dQL~B=$EI%(;gPKL(9%r!8^IUgHkGmike{gtxs^znI;%OkJW8h5d)MaH zr4(vFg}sOa8~2@1hmsS1Y)x!w`D0r811+z)0zQ|{Zhfz3%+54$+#3_x^lWns*wN07 zxOkU*ge*})6rJ7w>OWX$mUeo{f{%DAhm2X$J`l!w)@59r6+F{wM<ZFz-dM1zlMl?J zsg*J{-|*y`7a;aAiiFd*ELpcoUfRtXld`%w5FD(GX(5V&x>m)rv=5ZBbnYZ6YMQhk zs65^;)-ERcSOe<=&gG9u$ok5O*|AKaj|ExTAyg+<vmoCPPf_)HKbssK1KE-?4W0uc zNm6i~7LT5M;PA_wOYxuG-&%@05xK&98J2wHG>n{mZguvk@vi3M8s+WLJ-`V9TQ=NS zR1_P+B=}Jj;Y=yH!F4)R4?Z4F^Ffx^4JppfV)soevL_mcK5QT2V;`M7@p;5QZ?y~k ztp7+K0I$ADSm{g9Yi(M@-WTaEzb&m!(4(|h30`&SlJUlOT<)9y{6RKdY@%a6j>mjg zuQ}8?Y3n}f<JL5;$>M~cK>@gs&G1CTsR)=irSO{O!xFpZypjTi@hl;OD`<nJT3hzS zT9mpR)qt|##A~_{Q5J*4XATk$-te-GRVI1iqYGHa%g}~cH?Th4Ia;td{L46)0-O>k z3ziXy(BPY<bq@O<@Y<FW%`tZW=#+pubj%;h<g8hdr+cU2_?>ggGU)>Abn1E6ymxpC zZ3WgWr;t{Xp2KVw?c>{fwE^s!>dxp_96bJE{V4K@wY>i;;avn#{Ef(?8*TCUK1Tmo zd1aojl<e$ebXpDcKvW&WTzC%U?X-a=KYO+79qxI_r`gQ$#iIu=VWxH-9f|8)eB&PN z>0v>=x)JV?8^M#xH%|*}y51;Qx$05bHVF4`D$vMLHDa9qrX&G<ia=s>Rq}wZn7#oO z$T>SqpLXl$7py>5z@l2tigcG5R)c{itd?^os)Cm8!p^2ytaMXpeO^s+a`FDTh4vX8 z^U8iJUs3QY?<m!cqA1&8Dzus5t@kqX?4#DqcSr~GrrS8=3%?_bj~Hqf$Tna2#An(= zdgiO<b3~V;CWAw>)&)M~u_{e{RfWhFjB{J42b;DKHb9~S^q8#hMObqAGl+~6dvycW z-0m}y#xz<SX6$}Tw7!WiJugS`)n&Oxt!p~F1Ji4tb7}5weeYs0d{+}zS9>Z=-h%c3 z*J+Ce(>#k;XT)ybH0@TP8<IUm1(slUO8A9=24qK3(5mWgXgEBzUsT&_?ljl>_}Klm z&Et18T+hZ+;>iRW+9t!8iCGc<XstLu>h#I(M9)}Ka?gR~;q_q=$HjVjtz*qXM*e|^ z<2-0q&K;AMg@=Swl#>ZVW%7JrtZS4*$vS{H0-1RCtW-KSJsWuQa^3Fd4`do<V2tl+ zhQ2oGT|E{0?XBx^8M9J57fVI&wDq^?+x{F<t;t9fg;{8HDp5Mxp=ec6C#M)`n!1Gu zutCL?c^A|*i^$cD`a4H^SC2fb=I~_5S6C6gM8J0s=QhVrA(M4wy8)LLfni6p%GQ>i z8QgsO$;vZj`r5GwQZ4GHRP+!};nsINZe~EBrHa~7KlfF~_bqbQp~^z~dUheN@3D%e zqM+f}`MSh!UY7pc%G}mO91G<fJz32pW)xd>t1Gdj+g_5`s&KkEyj`RDV=H0IK~erz zR@Hjl(J)_cr{~g@!n3_UZaTK7`*=#r2LCwuX3p(lo=#0mkYihtP2C>Q0R7~)o+>2% z;M)7M*Drl#<ktUu2)UHwV(J`q|L!N<&pXGK27fNdu0F|(l<?>|F8OR7x_PzA<9#<A z?;^29`+;~8x4V6H|6g@CW>7kP<>eG5%6$*Wo4nLTi+tUEHFXcL+yjPP<@i3v=iltQ zwA4)RHCGmskI8&+e-H4xGO-7&yW8&pxee{%p`|;}Ikz3%wWsQ?d89H?CiR9r06V=0 mTw5>n3|hHrLDz^F(_|v-0k5zA;M=9DFRvKyYE$p-P5uu6Mgd6x literal 0 HcmV?d00001 diff --git a/assets/images/userprofile_placeholder.png b/assets/images/userprofile_placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..2aeab59c33e4ca403fa3f4a68f28f1761fff300c GIT binary patch literal 1668 zcmaJ?dr;GM9FGM(KzZmU8@OT!$Y4U#CvAg;l?J5D76gPUB9=BZJ!sRWk+w`HLj>K< z3Byf?^R)?r3OGR#apQDDhYru-0XH7v&WU)#C!AB<+)@PGA7i;oevkWnKHt~pF5458 z%iZ04-2eb^m&c(=^y){yOcw_I<z9R*onCyX7!{RFWK&i(i2+hAk%fVBgIb3rVQQ`2 z+>R{+0H+{*ii%PxRv;R}z*0LfESteZvjJdPl+C2p<X{w-h3WK03G|?)6$15I36v&K zuoWg5hU??<Nh~>EnWD+h(TKHBR3x~}hR^~Aj8cO(L$1++*d)+|E<*1e*DwT5K&TuE z^fD=xA`z4kBnAptf-nu6%K?RA7Dpfu3b~;mm(AhBY!1xfg>l3PpO3KF;N%0*(MWAJ zl7z-i#-dLW2&X6$0>f6Tm1X6z2vP@g#9}eb=E7WV7>x+C*o~Ch7G|^rOevt4MMLUM zl%6nx4n=hqv4N66bfzy$Fqo!gjh4wa(G7!bY7@+1u^lB%0Tqh>hZ+piXbY8uy~_7L zg)J#|69y+?7GeXbp$C^8;0R?xWF)4h2r`8ra;LhOh!YfH!3h&6lTCCD3{KM<wS?6Y zGQm+O5V_Gpsf`*;j!Ga}g{9YP5iTkg35DU@7@<_e;lzZCcxZSGpTpya^TYxkUpmD_ z3C#urW~8RL+E-lOj9iBu3?@1<ijn#}OdCrQ25_QmL_c#b>>2eYx!Rd?;mpW|>11HX zaQ`*zsVmw+j_tH{>BF@7F(d7GlD775#UU;Lz!;OG(iB_o;na*AU+L>zwH@*0cut~M zqiaUrE)^qQwlGU}plEy~>ZkN|@qR@`a{|%E#xt;>H0bl(h9zGeK95I+mv%NNdCELp zP>_%FfO)7tLU&bS{q_r6f54lXqvNE}h?MPdD|xi{YUY~ml}8%-@WvGlRubyHe>*zC znNhQ1XcgCPGnw#;%?NY-&$g$ihO>aQzMo#7+B{2itv%(PeI0(M`tob%tleoVx}Xl- zFApquk<r8aJMyF1TSi7(Dl3I|$A)@)o8l`s@0;7XkrNS7tB*@v)zzAocGG$Ej!xHF z(J^}cdQ)?M`6IJs^MS38zwvx9YR`Sqc&=ab?)iCzVlKlo^D>s>1+<#a>}-R)1Kw74 z*W~8KUXNe8G}OG<Z8rOU6(h9d>y-ta9}6lJVD$%4w-fy{<HGl~Z(NswnGJTlVjG@& zo-yw7<OFm14}ZE3uZ`S!>>&54XUCP@OfT2xF8*D|R-HhKVomjzlIy$r7wnR?yuqjb zdUVjY?ohe>az(&gF*UeES9+tmr`@~|of8op_Q%zAO-oCPpA3}$_$i+9;mG_i)0OBs zE7SR2b5%%bS#V2D9Qp~g1_+WCbA4RK+Pp2TX1jToD&{2PMqo)PTq?a49U3yg_VVEe zFCKmV?9R#1Iuc)BwmQLi%hM~xRh8{!yH&jxZ|pz3%T(^>G5b=X5?ww-7CN1BPW2EZ zEWkrA7)1RATW@v;jwmR1+yiKI^*{dWYV7RdKEDTn5iO^0nX?w1&J3vU86C~t3qaZ4 zWb@Xxwj+m17ct5onv=K#w={@n@+NOLLtVXR%e=F)L#jaGme;_?wa*}_=&i_V(L<*& z_1y9K726x`LEzbYPQQCqC3M(T+~L6}TQ@Qev>m@YI6RDQE5pb9&ftvCcDVm?<pS}2 z!Od$)n<59Rv$d-;n@&?{<z%#mT2p%<A|j7DkbShMh^*22UaW?*Wn~_{;aQ@=XT64V fOdze3^}>}6WbWC~WBrcwcl;ORF-o*9dVS$Pkehjq literal 0 HcmV?d00001 diff --git a/cms_template/bearbeitungsmaske.html b/cms_template/bearbeitungsmaske.html index 5c34e86..7e38240 100644 --- a/cms_template/bearbeitungsmaske.html +++ b/cms_template/bearbeitungsmaske.html @@ -93,98 +93,7 @@ </ul> </div> </div> - - <div class="cms_content_form"> - <form action=""> - <div class="row"> - <div class="tab8"> - <div class="input_holder"> - <header class="input_header"> - <label for="">Titel</label> - </header> - <input type="text" value="" name="" placeholder="Titel hier eintragen"> - </div> - - <div class="input_holder"> - <header class="input_header"> - <label for="">Permalink</label> - <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> - </header> - - <input type="text" value="" name="" placeholder="Permalink"> - </div> - <div class="input_holder"> - <header class="input_header"> - <label for="">Inhalt</label> - <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> - </header> - - <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> - </div> - - <!-- Fieldgroup --> - <div class="cms_fieldgroup fieldgroup_open"> - <header class="cms_fieldgroup_header">Feldergruppe <div class="cms_fieldgroup_trigger"><i class="ion-chevron-down"></i></div></header> - <div class="cms_fieldgroup_content"> - <div class="input_holder"> - <header class="input_header"> - <label for="">Noch ein Feld</label> - <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> - </header> - - <input type="text" value="" name="" placeholder="Noch ein Feld"> - </div> - - <div class="input_holder"> - <header class="input_header"> - <label for="">Noch ein Feld</label> - <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> - </header> - - <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> - </div> - </div> - - </div> - - <!-- Fieldgroup --> - <div class="cms_fieldgroup"> - <header class="cms_fieldgroup_header">Feldergruppe <div class="cms_fieldgroup_trigger"><i class="ion-chevron-down"></i></div></header> - <div class="cms_fieldgroup_content"> - <div class="input_holder"> - <header class="input_header"> - <label for="">Noch ein Feld</label> - <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> - </header> - - <input type="text" value="" name="" placeholder="Noch ein Feld"> - </div> - - <div class="input_holder"> - <header class="input_header"> - <label for="">Noch ein Feld</label> - <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> - </header> - - <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> - </div> - </div> - - </div> - - - </div> - <div class="tab4"> - <div class="cms_content_form_sidebar"> - Sidebar - </div> - </div> - </div> - - </form> - </div> - </div> </div> diff --git a/conf/init.json b/conf/init.json index 74c27bd..e6bf4ec 100644 --- a/conf/init.json +++ b/conf/init.json @@ -13,19 +13,19 @@ { "name": "Dashboard", "to": "/", - "icon": "fa-home", + "icon": "icon-compass", "content": "<dashboard></dashboard>" }, { "name": "Userlist", "to": "/userlist", - "icon": "fa-news", + "icon": "icon-contacts", "content": "<userlist></userlist>" }, { "name": "Logout", "to": "/logout", - "icon": "fa-lock", + "icon": "icon-log-out", "content": "<logout></logout>" } ] diff --git a/src/app.less b/src/app.less index 188e42b..d584760 100644 --- a/src/app.less +++ b/src/app.less @@ -155,27 +155,39 @@ input[type=checkbox]:checked ~ .check_checkbox { input[type=checkbox]:checked ~ .check_checkbox:before{ background: #28b78d!important; } +button{ + height: 40px; + background: @cms_brand_secondary; + border: none; + color: #FFF; + cursor: pointer; + text-transform: uppercase; + width: auto; + margin: 0px auto 0 auto; + padding: 0px 30px; + border-radius: 20px; +} .cell_checkbox label {width:18px; height:18px; display:block; cursor:pointer; z-index:10; position: absolute; top:50%; margin-top:-9px;} .checkbox_holder:hover .check_checkbox {border: 1px solid #28b78d;} /*-------------------------------------------------------------- # CMS CONTENT FORM --------------------------------------------------------------*/ -.cms_content_form {} +/*.cms_content_form {} .cms_content_form_sidebar {background:#FFF; padding:25px; border:solid 1px #CCC;} .cms_fieldgroup {background:#f0f0f0; border:solid 1px #CCC; margin-bottom:20px;} .cms_fieldgroup_header {position:relative; color:#333; border-bottom:solid 1px #CCC; height:40px; line-height:40px; padding:0px 25px; font-weight:600;} .cms_fieldgroup_content {padding:25px; display:none;} .cms_fieldgroup_trigger {position:absolute; top:0px; width:100px; right:0px; padding-right:25px; cursor:pointer; height:40px; line-height:40px; text-align:right;} .cms_fieldgroup_trigger i {color:#333; font-size:18px;} -.fieldgroup_open .cms_fieldgroup_content {display:block;} +.fieldgroup_open .cms_fieldgroup_content {display:block;}*/ /*-------------------------------------------------------------- # Content Area --------------------------------------------------------------*/ -.cms_content_area {position:absolute; left:70px; top:40px; right:0px; transition:all 0.3s;} -.cms_content_main {position:relative; top:0px; padding:25px; transition:all 0.3s;} +.content_area {position:absolute; left:70px; top:40px; right:0px; transition:all 0.3s;} +.content_main {position:relative; top:0px; padding:25px; transition:all 0.3s;} .cms_content_main_headline {margin-bottom:20px; position:relative;} .content_open_sidebar {left:250px;} @@ -183,14 +195,14 @@ input[type=checkbox]:checked ~ .check_checkbox:before{ /*-------------------------------------------------------------- # Content Search Section --------------------------------------------------------------*/ -.cms_content_search_section {display:block; margin-bottom:30px;} +/*.cms_content_search_section {display:block; margin-bottom:30px;} .searchbar_left {width:70%; float:left;} .searchbar_right {width:30%; float:left; padding-left:30px;} .input_search_replace {background:#e5e5e5;} .cms_searchbox {position:relative; display:block; height:35px;} .cms_searchbox input {position:absolute; left:0px; top:0px; right:0px; padding-left:40px;} -.cms_searchbox .fa {line-height:35px; font-size:13px; background:none; color:#999; z-index:500; position:absolute; left:15px;} +.cms_searchbox .fa {line-height:35px; font-size:13px; background:none; color:#999; z-index:500; position:absolute; left:15px;}*/ /*-------------------------------------------------------------- # CMS ADD BUTTON @@ -347,26 +359,21 @@ input[type=checkbox]:checked ~ .check_checkbox:before{ /*-------------------------------------------------------------- # Breakpoints --------------------------------------------------------------*/ -@media(max-width:1100px) { +@media(max-width: @screen-md-max) { /*.cms_open_mobilenav {display:block;} .cms_sidebar {left:0px;} .cms_content_area {left:0px;} .cms_content_sidebar {left:0px;} - + .content_open_sidebar {left:225px;} .content_open_sidebar .cms_content_sidebar {left:225px;} .open_sidebar {left:0px;}*/ - - .cms_sidebar {left:0px;} - } -@media(max-width:768px) { - .cms_content_sidebar, .content_open_sidebar .cms_content_sidebar {left:inherit; position:relative; width:100%; top:0px; margin-bottom:30px;} +@media(max-width: @screen-xs-max) { .cms_content_main {margin-left:0px;} - .cms_content_sidebar .sub_navigation ul li {width:100%;} - + .table_cell {display:block; padding:0px 5px;} .cell_checkbox {display:table-cell; width:40px;} .cell_image {display:none;} diff --git a/src/app.vue b/src/app.vue index f03e2aa..fd095d5 100644 --- a/src/app.vue +++ b/src/app.vue @@ -19,8 +19,8 @@ </style> <script> -import Topbar from './components/navigation.vue'; -import Sidebar from './components/navigation.vue'; +import Topbar from './components/topbar.vue'; +import Sidebar from './components/sidebar.vue'; export default { name: "App", diff --git a/src/components/login.vue b/src/components/login.vue deleted file mode 100644 index 94cc24f..0000000 --- a/src/components/login.vue +++ /dev/null @@ -1,107 +0,0 @@ -<style> -/*-------------------------------------------------------------- -# LOGINBOX ---------------------------------------------------------------*/ -#loginbox_container { - /* Center vertically */ - display: -webkit-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - align-items: center; - width:100%; - height:100%; - position:absolute; - top:0px; left:0px; bottom:0px; right:0px; - background:#28b78d; -} -.loginbox_holder { - max-width:380px; - width:90%; - margin:0px; - position:relative; - display:block; - /* border:solid 1px #FFF; */ - border-radius:2px; - /*background:#FFF;*/ - height:auto; - padding:20px; -} - -.loginbox_logo {line-height:0; margin-bottom:15px; text-align:center;} -/*.loginbox_logo p {font-size:25px; line-height:33px; color:#000;} -.loginbox_logo_icon {width:35px; float:left; margin-right:10px;}*/ -.loginbox_logo img {width:100%; max-width:72px;} - -.loginbox_content {} -p.login_intro_text {font-size:14px!important; margin-bottom:20px; line-height:1.5;} -.loginbox_content p {text-align:center; color:#FFF; font-size:15px; line-height:1.2;} -.login_input { - margin-bottom:10px; - border:none; - height:40px; - position:relative; -} -.login_input:before { - font-family: 'FontAwesome'; - position:absolute; - left:10px; - top:5px; - font-size:20px; - color:#28b78d; - content:""; -} -.login_form { - text-align:center; -} -.login_user:before {content:"\f007";} -.login_pw:before {content:"\f084";} -.login_submit { - width:auto; - margin:0 auto; - display:inline-block; - margin-top:10px; -} -.login_submit:before {content:"\f090"; left:15px; top:6px;} - -.login_input input { - border:none; - background:none; - height:40px; - width:100%; - padding: 0px 10px 0px 35px; - background:#f4f4f4; - border:solid 1px #FFF; -} -.loginbox_content .login_input input:focus {border:solid 1px #152129; background:#FFF;} -.login_form input[type="submit"] { - height:40px; - background:#152129; - border:none; - color:#FFF; - cursor:pointer; - text-transform:uppercase; - width:auto; - margin:0px auto 0 auto; - padding: 0px 20px 0px 40px; - border-radius:20px; -} -.login_form input[type="submit"]:hover { - background:#1f3441; -} -.login_error { - display:block; - text-align:center; - color:#FFF; - line-height:1.2; - margin-top:20px; -} -.login_error p {text-transform:uppercase; display:inline-block; background:#c70e00; padding:5px; font-weight:600; font-size:14px;} -</style> \ No newline at end of file diff --git a/src/components/my-form.vue b/src/components/my-form.vue index 3c5855b..cbaf8ef 100644 --- a/src/components/my-form.vue +++ b/src/components/my-form.vue @@ -1,8 +1,16 @@ <template> <form @submit.prevent="submit()"> - <div v-for="(e, i) in elements" :key="i"> - <my-input :label="e.label" :type="e.type" v-model="formData[i]" @validate="validateData(i)"></my-input> - <span class="error" v-if="formErrors[i]">required</span> + <div v-for="(item, key) in elements" :key="key"> + <my-input + :description="item.description" + :label="item.label" + :name="key" + :placeholder="item.placeholder" + :type="item.type" + v-model="formData[key]" + @validate="validateData(key)"> + </my-input> + <span class="error" v-if="formErrors[key]">required</span> </div> <div> <button v-for="(b, i) in buttons" :key="i" @click.prevent="buttonClick(b.type)">{{ b.label }}</button> diff --git a/src/components/my-input.vue b/src/components/my-input.vue index 5f6ee87..edd385b 100644 --- a/src/components/my-input.vue +++ b/src/components/my-input.vue @@ -1,8 +1,21 @@ <template> - <div class="My-Input"> - <label>{{ label }}</label> - <input type="text" v-if="type == 'text'" v-model="currentValue" @blur="validate()" @change="() => $emit('change', currentValue)"> - <input type="password" v-else-if="type == 'password'" v-model="currentValue" @blur="validate()" @change="() => $emit('change', currentValue)"> + <div class="input_holder"> + <div class="input_header" v-if="label"> + <label :for="name">{{ label }}</label> + </div> + <div class="input_description" v-if="description">{{ description }}</div> + <input type="text" v-if="type == 'text'" + v-model="currentValue" + :name="name" + :placeholder="placeholder" + @blur="validate()" + @change="() => $emit('change', currentValue)"> + <input type="password" v-else-if="type == 'password'" + v-model="currentValue" + :name="name" + :placeholder="placeholder" + @blur="validate()" + @change="() => $emit('change', currentValue)"> </div> </template> @@ -10,9 +23,11 @@ export default { name: "MyInput", props: [ + 'description', 'label', - 'type', 'name', + 'placeholder', + 'type', 'value' ], data() { @@ -31,4 +46,4 @@ export default { } } } -</script> +</script> \ No newline at end of file diff --git a/src/components/sidebar.vue b/src/components/sidebar.vue index db7bd6e..913ad62 100644 --- a/src/components/sidebar.vue +++ b/src/components/sidebar.vue @@ -1,262 +1,282 @@ <template> - <div class="cms_sidebar open_sidebar"> - - <div class="cms_sidebar_trigger"><i class="icon icon-arrow-left" aria-hidden="true"></i></div> - - <div class="cms_sidebar_icons_bg"></div> - <div class="cms_sidebar_mainnav"> - <div class="cms_sidebar_inner"> - <!-- Sidebar Section --> - <div class="cms_sidebar_section main_navigation"> + <div class="sidebar"> + <div class="wrapper"> + <div class="inner"> + <nav class="mainnav"> <ul> - <li><a href="#"><i class="icon icon-compass" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Dashboard</span></a></li> - <li><a href="#"><i class="icon icon-images" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Medien</span></a></li> - <li><a href="#"><i class="icon icon-document-text" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Seiten</span></a></li> + <li v-for="(item, i) in items" :key="i"> + <router-link :to="item.to"> + <i :class="['icon', item.icon]"></i> + <div class="title">{{ item.name }}</div> + </router-link> + </li> + + <hr> + <li><a href="#"> + <i class="icon icon-images" aria-hidden="true"></i> + <div class="title">Medien</div> + </a></li> + <li><a href="#"> + <i class="icon icon-document-text" aria-hidden="true"></i> + <div class="title">Seiten</div> + </a></li> <li class="active"> - <a href="#"><i class="icon icon-paper-airplane" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Beiträge</span></a> + <a href="#"><i class="icon icon-paper-airplane" aria-hidden="true"></i> + <div class="title">Beiträge</div></a> <!-- Sub Navigation --> - <div class="sub_navigation"> - <span class="sub_navigation_headline">Kategorie</span> + <div class="subnav"> + <div class="subnav_headline">Kategorie</div> <ul> <li class="active"><a href="#">News</a></li> <li><a href="#">Veranstaltungen</a></li> <li><a href="#">Mitarbeiter</a></li> - <li class="nav_add_more"><a href="#">+</a></li> </ul> </div> </li> - <li><a href="#"><i class="icon icon-cube" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Module</span></a></li> - <li><a href="#"><i class="icon icon-navigate" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Navigation</span></a></li> + <li><a href="#"> + <i class="icon icon-cube" aria-hidden="true"></i> + <div class="title">Module</div> + </a></li> + <li><a href="#"> + <i class="icon icon-navigate" aria-hidden="true"></i> + <div class="title">Navigation</div> + </a></li> - <li><a href="#"><i class="icon icon-chatbox" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Sprachen</span></a></li> - <li><a href="#"><i class="icon icon-pie-graph" aria-hidden="true"></i> <span class="main_navigation_text l1_title">SEO & Pagespeed</span></a></li> + <li><a href="#"> + <i class="icon icon-chatbox" aria-hidden="true"></i> + <div class="title">Sprachen</div> + </a></li> + <li><a href="#"> + <i class="icon icon-pie-graph" aria-hidden="true"></i> + <div class="title">SEO & Pagespeed</div> + </a></li> - <li><a href="#"><i class="icon icon-contacts" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Benutzer</span></a></li> - <li><a href="#"><i class="icon icon-gear" aria-hidden="true"></i> <span class="main_navigation_text l1_title">Settings</span></a></li> + <li><a href="#"> + <i class="icon icon-contacts" aria-hidden="true"></i> + <div class="title">Benutzer</div> + </a></li> + <li><a href="#"> + <i class="icon icon-gear" aria-hidden="true"></i> + <div class="title">Settings</div> + </a></li> </ul> - </div> - + </nav> </div> </div> <!-- User Profile --> - <!-- <div class="user_profile"> - <a class="user_profile_trigger"> - <span class="user_profile_image"><i class="icon icon-person" aria-hidden="true"></i></span> - <span class="user_profile_text">Hans Zimmer <span class="user_role">Administrator</span></span> - <span class="user_profile_open"><i class="fa fa-angle-up" aria-hidden="true"></i></span> - <span style="clear:both; display:block;"></span> + <div class="user_profile"> + <a class="trigger"> + <div class="image"><i class="icon icon-person" aria-hidden="true"></i></div> + <div class="text">Hans Zimmer <div class="role">Administrator</div></div> + <div class="btn"><i class="icon icon-arrow-up" aria-hidden="true"></i></div> </a> - <div class="user_profile_content"> + <div class="content"> <ul> - <li><a href=""><i class="icon icon-color-wand" aria-hidden="true"></i><span class="navigation_text">Profil anpassen</span></a></li> - <li><a href=""><i class="icon icon-log-out" aria-hidden="true"></i><span class="navigation_text">ausloggen</span></a></li> + <li><a href="#"> + <i class="icon icon-color-wand" aria-hidden="true"></i> + <div class="title">Profil anpassen</div> + </a></li> + <li><a href="#"> + <i class="icon icon-log-out" aria-hidden="true"></i> + <div class="title">Ausloggen</div> + </a></li> </ul> </div> - </div> --> + </div> </div> </template> <style lang="less"> - /*-------------------------------------------------------------- - # Left Sidebar (Main Navigation) - --------------------------------------------------------------*/ - .cms_sidebar {position:fixed; left:0px; top:40px; bottom:0px; background:#152129; width:70px; transition:all 0.3s; z-index:2000;} - .cms_sidebar_trigger { - position:absolute; - left:100%; - bottom:5px; - background:#1a2e3b; - width:30px; - height:30px; - color:#FFF; - padding-top:; - text-align:center; - font-size:20px; - cursor:pointer; - transition:all 0.3s; - } - .cms_sidebar_trigger:hover {background:#28b78d;} - .trigger_active i:before { - transform:rotate(180deg); - } + @import "../mixins"; - .cms_sidebar_mainnav {height:100%; /*overflow-y:scroll;*/} - .cms_sidebar_inner {position:relative; width:auto;} - .cms_sidebar_icons_bg {background:#1a2e3b; width:70px; position:absolute; top:0px; left:0px; bottom:0px;} - .main_navigation ul {list-style-type:none;} - .main_navigation ul li {padding:0px; line-height:1.2; color:#FFF; position:relative; width:70px;} - .main_navigation ul li .fa, .main_navigation ul li .icon { - color:#FFF; - font-size:22px; - text-align:center; - position:relative; - left:0; - margin-bottom:5px; - display:block; - transition:all 0.3s; - } - .main_navigation ul li .fa {font-size:16px;} - .main_navigation ul li .main_navigation_text { - position:relative; - font-size:10px; - display:block; - color:#FFF; - text-align:center; - width:auto; - float:none; - line-height:1; - /*transition:all 0.3s;*/ - } - .main_navigation ul li a {color:#FFF; display:block; height:auto; width:70px; height:auto; padding:8px 0px; text-align:center;} - .main_navigation ul li:after {clear:both; content:""; display:block;} - .main_navigation ul li:hover {background:rgba(40,183,141,0.3);} + /*-------------------------------------------------------------- + # Left Sidebar (Main Navigation) + --------------------------------------------------------------*/ + .sidebar { + position: fixed; + left: 0px; + top: 40px; + bottom: 0px; + background: @cms_bg_light; + color: white; + width: 70px; + transition: all 0.3s; + z-index: 2000; - .main_navigation ul li.active {background:#28b78d;} - .main_navigation ul li.active .fa {background:#19435e;} + &>.wrapper { + height:100%; /*overflow-y:scroll;*/ - .main_navigation ul li.active .submenu {border-top:solid 1px rgba(255,255,255,0.2);} - .main_navigation .submenu {margin-left:45px;} - .main_navigation .submenu .submenu_headline {padding-left:15px;} - .main_navigation .submenu li {} - .main_navigation .submenu li .main_navigation_text { - font-size:14px; - display:block; - color:#FFF; - text-align:left; - float:left; - padding:0px 10px 0px 15px; - width:180px; - line-height:35px; - } + &>.inner { + position:relative; width:auto; + } + } - .main_navigation .submenu li a {height:35px; padding:0px; text-align:left;} - .main_navigation .nav_add_more {border-top:solid 1px rgba(255,255,255,0.2);} - .main_navigation .submenu li.nav_add_more .main_navigation_text {text-align:center;} - .main_navigation .submenu li:hover {background:rgba(56,29,29,0.6);} + /* Main navigation */ + .mainnav { + ul { + list-style-type: none; + li { + position: relative; + width: 70px; + padding: 0; + line-height: 1.2; + color: white; + text-align: center; - /* Submenu */ - .sub_navigation { - position:absolute; - left:100%; - top:0px; - background:#152129; - width:180px; - height:auto; - transition:all 0.3s; - /*visibility:visible; - opacity:1;*/ - visibility:hidden; - opacity:0; - } - .sub_navigation ul {list-style-type:none;} - .sub_navigation ul li {font-size:12px; display:block; text-align:left; padding:0px 10px 0px 15px; width:auto; line-height:30px; color:#FFF; position:relative;} - .sub_navigation ul li a {color:#FFF; display:block; width:100%; height:100%; padding:0px; text-align:left;} - .sub_navigation .nav_add_more {border-top:solid 1px rgba(255,255,255,0.2); border-bottom:solid 1px rgba(255,255,255,0.2); display:block;} - .sub_navigation .nav_add_more a {display:block; text-align:center; color:rgba(255,255,255,0.5); font-weight:600; font-size:20px;} - .sub_navigation ul li.active, .cms_content_sidebar .sub_navigation ul li:hover {background:#28B78D;} - .sub_navigation ul li.active:after { - right: 0; - top: 50%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(255, 255, 255, 0); - border-right-color: #f5f3f4; - border-width: 10px; - margin-top: -10px; - } - .sub_navigation_headline {color:#FFF; padding:0px 10px 0px 15px; font-weight:600; width:100%; display:block; border-bottom:solid 1px #FFF; line-height:50px; font-size:12px;} + &:after {clear:both; content:""; display:block;} + &:hover { + background:rgba(40,183,141,0.3); + .subnav { + visibility:visible; + opacity:1; + } + } - .main_navigation ul li:hover .sub_navigation { - visibility:visible; - opacity:1; - } + &.active {background:#28b78d;} + // &.active .fa {background:#19435e;} + /*&.active .submenu {border-top:solid 1px rgba(255,255,255,0.2);}*/ - /* Open Sidebar */ - .open_sidebar {width:250px;} - .open_sidebar .sub_navigation { - visibility:visible; - opacity:1; - left:70px; - } - .open_sidebar .main_navigation ul li.active {position:inherit;} - .open_sidebar .sub_navigation ul li.active {position:relative;} - .open_sidebar .main_navigation>ul>li.active>a>i:after { - right: 0; - top: 75%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(255, 255, 255, 0); - border-right-color: #152129; - border-width: 7px; - margin-top: -7px; - } + .icon { + display: block; + color: white; + font-size: 22px; + margin-bottom: 5px; + transition: all 0.3s; + } - /*.open_sidebar {width:225px;} - .open_sidebar .main_navigation ul li .main_navigation_text { - width:auto; - float:left; - text-align:left; - padding:0px 10px 0px 15px; - line-height:40px; - font-size:14px; - } - .open_sidebar .cms_sidebar_icons_bg {width:45px;} - .open_sidebar .main_navigation ul li a {height:40px; width:auto; text-align:left; padding:0px;} - .open_sidebar .main_navigation ul li .fa, .open_sidebar .main_navigation ul li .icon { - float:left; - height:40px; - width:45px; - line-height:40px; - margin:0px; - }*/ + .title { + position: relative; + font-size: 10px; + width: auto; + float: none; + line-height: 1; + color: white; + /*transition:all 0.3s;*/ + } - /*-------------------------------------------------------------- - # Left Sidebar (User Profile) - --------------------------------------------------------------*/ - .user_profile {position:fixed; bottom:0px; left:0px; right:0px; cursor:pointer; width:230px;} - .user_profile_trigger {display:block;} - .user_profile_trigger a {display:block; width:100%; height:100%;} - .user_profile_image {float:left; width:45px; height:45px; padding-top:7px; text-align:center;} - .user_profile_image .icon {font-size:22px; color:#FFF;} - .user_profile_image img {width:70%; margin:0 auto; display:block;} - .user_profile_text {float:left; line-height:1; color:#FFF; font-size:14px; padding-left:15px; padding-top: 9px;} - .user_profile_text .user_role {font-size:12px; color:rgba(255,255,255,0.5); display:block; margin-top:0px;} + a { + display: block; + height: auto; + width: 70px; + height: auto; + padding: 8px 0px; + } + } + } + } - .user_profile_trigger:hover {background:rgba(40,183,141,0.3);} - .user_profile_open {position:absolute; right:0px; top:0px; width:auto; height:auto; padding-top:12px; padding-right:20px;} - .user_profile_open .fa {color:#FFF; font-size:18px; transition:all 0.3s;} + /* Sub navigation */ + .subnav { + position: absolute; + left: 100%; + top: 0px; + background: #152129; + width: 180px; + height: auto; + transition: all 0.3s; + /*visibility:visible; + opacity:1;*/ + visibility: hidden; + opacity: 0; + ul {list-style-type:none;} + ul li {font-size:12px; display:block; text-align:left; padding:0px 10px 0px 15px; width:auto; line-height:30px; color:#FFF; position:relative;} + ul li a {color:#FFF; display:block; width:100%; height:100%; padding:0px; text-align:left;} + ul li.active, ul li:hover {background:#28B78D;} + ul li.active:after { + right: 0; + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-right-color: #f5f3f4; + border-width: 10px; + margin-top: -10px; + } - .user_profile_content {display:none; color:#FFF; padding-bottom:30px;} - .user_profile_content ul {list-style-type:none;} - .user_profile_content li {padding:0px; line-height:1.2; color:#FFF; position:relative;} - .user_profile_content ul li .icon {color:#FFF; font-size:20px; text-align:center; position:relative; left:0; float:left; height:45px; width:45px; line-height:45px;} - .user_profile_content ul li .navigation_text {position:relative; font-size:14px; display:block; color:#FFF; text-align:left; float:left; padding:0px 10px 0px 15px; width:180px; line-height:45px;} - .user_profile_content ul li a {color:#FFF; display:block; height:45px;} - .user_profile_content ul li:after {clear:both; content:""; display:block;} - .user_profile_content ul li:hover {background:rgba(40,183,141,0.3);} + .subnav_headline {color:#FFF; padding:0px 10px 0px 15px; font-weight:600; width:100%; display:block; border-bottom:solid 1px #FFF; line-height:50px; font-size:12px;} + } + } + /*-------------------------------------------------------------- + # Left Sidebar (User Profile) + --------------------------------------------------------------*/ + .user_profile { + position:fixed; bottom:0px; left:0px; right:0px; cursor:pointer; width:230px; + &>.trigger { + .clearfix(); + display:block; + // a {display:block; width:100%; height:100%;} - .open_profile {background:rgba(40,183,141,0.3);} - .open_profile .user_profile_trigger {background:rgba(40,183,141,0.5);} - .open_profile .fa-angle-up { - transform: rotate(180deg); - } + .image {float:left; width:45px; height:45px; padding-top:7px; text-align:center;} + .image .icon {font-size:22px; color:#FFF;} + .image img {width:70%; margin:0 auto; display:block;} + + .text {float:left; line-height:1; color:#FFF; font-size:14px; padding-left:15px; padding-top: 9px;} + .text .role {font-size:12px; color:rgba(255,255,255,0.5); display:block; margin-top:0px;} + + &:hover {background:rgba(40,183,141,0.3);} + + .btn {position:absolute; right:0px; top:0px; width:auto; height:auto; padding-top:12px; padding-right:20px;} + .btn .icon {color:#FFF; font-size:18px; transition:all 0.3s;} + } + + &>.content { + display:none; color:#FFF; padding-bottom:30px; + + ul{ + list-style-type: none; + + li{ + padding:0px; line-height:1.2; color:#FFF; position:relative; + .icon {color:#FFF; font-size:20px; text-align:center; position:relative; left:0; float:left; height:45px; width:45px; line-height:45px;} + .navigation_text {position:relative; font-size:14px; display:block; color:#FFF; text-align:left; float:left; padding:0px 10px 0px 15px; width:180px; line-height:45px;} + a {color:#FFF; display:block; height:45px;} + &:after {clear:both; content:""; display:block;} + &:hover {background:rgba(40,183,141,0.3);} + } + } + } + + &.open { + background:rgba(40,183,141,0.3); + &>.trigger{background:rgba(40,183,141,0.5);} + .icon-arrow-up{transform: rotate(180deg);} + } + } + + @media(max-width: @screen-xs-max) { + .sidebar { + left:inherit; position:relative; width:100%; top:0px; margin-bottom:30px; + + .subnav ul li{ + width: 100%; + } + } + } + + @media(max-width: @screen-md-max) { + .sidebar {left:0px;} + } </style> <script> export default { - name: "Sidebar" + name: "Sidebar", + props: { + items: { + type: Array, + default() { + return [ ]; + } + } + } } </script> \ No newline at end of file diff --git a/src/components/topbar.vue b/src/components/topbar.vue index 8ecfbde..8af8a22 100644 --- a/src/components/topbar.vue +++ b/src/components/topbar.vue @@ -1,9 +1,7 @@ <template> <div class="topbar"> - <div class="logo"><a href="#"><img src="project-files/img/cms_logo.png" alt=""></a></div> + <div class="logo"><a href="#"><img src="assets/images/cms_logo.png" alt=""></a></div> <div class="name">Meine Website</div> - <a class="navbutton"><i class="icon icon-menu" aria-hidden="true"></i></a> - <div class="clear"></div> </div> </template> @@ -11,11 +9,13 @@ @import "../mixins.less"; .topbar { + .clearfix(); position: fixed; top: 0; right: 0; left: 0px; - background: @cms_bg; + background: @cms_bg_light; + color: white; height: 40px; z-index: 1500; @@ -49,27 +49,25 @@ float: left; width: auto; line-height: 40px; - color: white; padding-left: 15px; } &>.navbutton { display: block; float: left; - font-size: 22px; - color: white; width: auto; height: 100%; + font-size: 22px; margin-left: 40px; height: 40px; width: 40px; - /*padding:3px 10px 0px 5px;*/ padding-top: 4px; cursor: pointer; text-align: center; + color: white; &:hover { - background:rgba(40,183,141,0.3); + background: fade(@cms_brand_primary, 30%); } } } diff --git a/src/icons.less b/src/icons.less index 5037896..8bc2ef3 100644 --- a/src/icons.less +++ b/src/icons.less @@ -1,7 +1,7 @@ @import "mixins"; @iconfont_path: "~/assets/fonts/"; -@iconfont_version: 1; +@iconfont_version: 2; @font-face { @@ -17,6 +17,8 @@ } .icon-search:before { content: '\e800'; } /* '' */ +.icon-user:before { content: '\e801'; } /* '' */ +.icon-key:before { content: '\e802'; } /* '' */ .icon-menu:before { content: '\f0c9'; } /* '' */ .icon-chatbox:before { content: '\f11b'; } /* '' */ .icon-document-text:before { content: '\f12e'; } /* '' */ @@ -28,7 +30,9 @@ .icon-contacts:before { content: '\f2d9'; } /* '' */ .icon-cube:before { content: '\f318'; } /* '' */ .icon-compass:before { content: '\f37c'; } /* '' */ +.icon-arrow-down:before { content: '\f3d0'; } /* '' */ .icon-arrow-left:before { content: '\f3d2'; } /* '' */ .icon-arrow-right:before { content: '\f3d3'; } /* '' */ +.icon-arrow-up:before { content: '\f3d8'; } /* '' */ .icon-color-wand:before { content: '\f416'; } /* '' */ .icon-navigate:before { content: '\f46e'; } /* '' */ \ No newline at end of file diff --git a/src/main.js b/src/main.js index 2634c3e..6a919f7 100644 --- a/src/main.js +++ b/src/main.js @@ -177,8 +177,7 @@ Axios.get('conf/init.json') alert('invalid data in init.json'); return; } - let navigation = []; - results.data.navigation.forEach(({name, to}) => navigation.push({name, to})); + const navigation = results.data.navigation.map(({name, to, icon}) => {return {name, to, icon}}); store.commit("setNavigation", navigation); diff --git a/src/mixins.less b/src/mixins.less index 1985c39..9d989f8 100644 --- a/src/mixins.less +++ b/src/mixins.less @@ -34,4 +34,15 @@ /* Animation center compensation - margins should be symmetric */ /* remove if not needed */ margin-left: .2em; -} \ No newline at end of file +} + +.clearfix() { + &:before, + &:after { + content: " "; // 1 + display: table; // 2 + } + &:after { + clear: both; + } +} diff --git a/src/variables.less b/src/variables.less index ce94914..a686a5a 100644 --- a/src/variables.less +++ b/src/variables.less @@ -1 +1,21 @@ -@cms_bg: #1a2e3b; +@screen-xs: 450px; +@screen-sm: 768px; +@screen-md: 1024px; +@screen-lg: 1200px; + +@cms_bg_light: #1a2e3b; +@cms_dark_border: #152129; + +@cms_brand_primary: #28b78d; +@cms_brand_secondary: #152129; + + +/*****************************************/ + +@screen-xs-min: @screen-xs; +@screen-xs-max: @screen-sm - 1; +@screen-sm-min: @screen-sm; +@screen-sm-max: @screen-md - 1; +@screen-md-min: @screen-md; +@screen-md-max: @screen-lg - 1; +@screen-lg-min: @screen-lg; \ No newline at end of file diff --git a/src/views/foo.vue b/src/views/contentdemo.vue similarity index 97% rename from src/views/foo.vue rename to src/views/contentdemo.vue index 9bbaeca..243e5dc 100644 --- a/src/views/foo.vue +++ b/src/views/contentdemo.vue @@ -20,12 +20,10 @@ <i class="fa fa-refresh" aria-hidden="true"></i> <input style="resize: none;" class="input_search_replace" placeholder="Suchen & Ersetzen" name="search" size="" value="" type="text"> </span> - <input style="display:none;" type="submit"> </form> </div> --> <div class="clear"></div> - </div> <!-- Content Table Headline --> @@ -35,7 +33,6 @@ <!-- Table --> <div class="cms_content_table"> - <div class="cms_table_row_header"> <!-- Row --> <div class="cms_table_row"> @@ -51,7 +48,6 @@ </div> <div class="cms_table_row_content"> - <!-- Row --> <div class="cms_table_row"> <div class="table_cell cell_checkbox"><div class="checkbox_holder"><input id="check_id2" type="checkbox" name="check_id2" value=""><label for="check_id2"></label><div class="check_checkbox"></div></div></div> @@ -63,9 +59,9 @@ <div class="table_cell cell_status_container"><span class="cell_status cell_status_online"><span class="cell_status_text">online</span></span></div> <div class="table_cell cell_settings"> <a class="cell_settings_click"><i class="fa fa-cog" aria-hidden="true"></i></a> - + <div class="cell_settings_inner"> - + <div class="cell_settings_inner_container"> <div class="cell_settings_inner_section"> <ul> @@ -89,10 +85,10 @@ </div> <div class="clear"></div> </div> - + </div> <div class="clear"></div> - + </div> </div> @@ -107,9 +103,9 @@ <div class="table_cell cell_status_container"><span class="cell_status cell_status_online"><span class="cell_status_text">online</span></span></div> <div class="table_cell cell_settings"> <a class="cell_settings_click"><i class="fa fa-cog" aria-hidden="true"></i></a> - + <div class="cell_settings_inner"> - + <div class="cell_settings_inner_container"> <div class="cell_settings_inner_section"> <ul> @@ -133,10 +129,10 @@ </div> <div class="clear"></div> </div> - + </div> <div class="clear"></div> - + </div> </div> @@ -151,9 +147,9 @@ <div class="table_cell cell_status_container"><span class="cell_status cell_status_offline"><span class="cell_status_text">offline</span></span></div> <div class="table_cell cell_settings"> <a class="cell_settings_click"><i class="fa fa-cog" aria-hidden="true"></i></a> - + <div class="cell_settings_inner"> - + <div class="cell_settings_inner_container"> <div class="cell_settings_inner_section"> <ul> @@ -177,10 +173,10 @@ </div> <div class="clear"></div> </div> - + </div> <div class="clear"></div> - + </div> </div> diff --git a/src/views/forms/formdemo.vue b/src/views/forms/formdemo.vue new file mode 100644 index 0000000..932121b --- /dev/null +++ b/src/views/forms/formdemo.vue @@ -0,0 +1,90 @@ +<div class="cms_content_form"> + <form action=""> + <div class="row"> + <div class="tab8"> + <div class="input_holder"> + <header class="input_header"> + <label for="">Titel</label> + </header> + <input type="text" value="" name="" placeholder="Titel hier eintragen"> + </div> + + <div class="input_holder"> + <header class="input_header"> + <label for="">Permalink</label> + <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> + </header> + + <input type="text" value="" name="" placeholder="Permalink"> + </div> + + <div class="input_holder"> + <header class="input_header"> + <label for="">Inhalt</label> + <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> + </header> + + <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> + </div> + + <!-- Fieldgroup --> + <div class="cms_fieldgroup fieldgroup_open"> + <header class="cms_fieldgroup_header">Feldergruppe <div class="cms_fieldgroup_trigger"><i class="ion-chevron-down"></i></div></header> + <div class="cms_fieldgroup_content"> + <div class="input_holder"> + <header class="input_header"> + <label for="">Noch ein Feld</label> + <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> + </header> + + <input type="text" value="" name="" placeholder="Noch ein Feld"> + </div> + + <div class="input_holder"> + <header class="input_header"> + <label for="">Noch ein Feld</label> + <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> + </header> + + <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> + </div> + </div> + + </div> + + <!-- Fieldgroup --> + <div class="cms_fieldgroup"> + <header class="cms_fieldgroup_header">Feldergruppe <div class="cms_fieldgroup_trigger"><i class="ion-chevron-down"></i></div></header> + <div class="cms_fieldgroup_content"> + <div class="input_holder"> + <header class="input_header"> + <label for="">Noch ein Feld</label> + <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> + </header> + + <input type="text" value="" name="" placeholder="Noch ein Feld"> + </div> + + <div class="input_holder"> + <header class="input_header"> + <label for="">Noch ein Feld</label> + <!-- <div class="input_description">Hier steht ein Beschreibungstext für etwas begriffsstutzige Menschen, die eine Beschreibung zum Befüllen des Feldes brauchen.</div> --> + </header> + + <textarea name="" id="" rows="10" placeholder="Dies ist ein normales Textfeld"></textarea> + </div> + </div> + + </div> + + + </div> + <div class="tab4"> + <div class="cms_content_form_sidebar"> + Sidebar + </div> + </div> + </div> + + </form> + </div> \ No newline at end of file diff --git a/src/views/forms/login.vue b/src/views/forms/login.vue index 08c7930..5871d14 100644 --- a/src/views/forms/login.vue +++ b/src/views/forms/login.vue @@ -1,38 +1,75 @@ <template> - <div class="LoginForm"> +<!-- <div class="LoginForm"> <h2>Login</h2> - <my-form :elements="elements" :buttons="buttons" :submitHandler="login"></my-form> + + </div> --> + + <div id="login_form"> + <div class="holder"> + <div class="logo"> + <img src="assets/images/cms_logo_white.png" alt=""> + </div> + + <div class="content"> + + <p class="intro_text">Bitte melde dich mit deinen Benutzerdaten an.</p> + + <my-form :elements="elements" :buttons="buttons" :submitHandler="login"></my-form> + +<!-- <form class="login_form" action="index.php" method="post"> + <div class="login_input login_user"> + <input required="required" placeholder="Benutzername" type="text" name="user" /> + </div> + <div class="login_input login_pw"> + <input required="required" placeholder="Passwort" type="password" name="passwort" /> + </div> + + <div class="login_input login_submit"> + <input type="submit" name="submit_login" value="Anmelden" class="submit" /> + </div> + + </form> --> + + <!-- <div class="login_error"> + <p>Login fehlgeschlagen.</p> + </div> --> + + <div style="clear:both;"></div> + </div> + </div> </div> </template> <script> -import MyForm from '../../components/my-form.vue'; +import MyForm from "../../components/my-form.vue"; export default { - name: 'LoginForm', + name: "LoginForm", components: { MyForm }, data() { return { - username: '', - password: '', + username: "", + password: "", elements: { username: { - label: 'Benutzername', - type: 'text', + placeholder: "Benutzername", + icon: "icon-user", + type: "text", required: true }, password: { - label: 'Passwort', - type: 'password', + placeholder: "Passwort", + icon: "icon-key", + type: "password", required: true } }, buttons: [ { - label: 'login', - type: 'submit' + label: "login", + type: "submit" } ] } @@ -53,3 +90,126 @@ export default { } } </script> + + + +<style lang="less"> +@import "../../mixins"; + +/*-------------------------------------------------------------- +# LOGINBOX +--------------------------------------------------------------*/ + +#login_form{ + /* Disply on top */ + position: fixed; + width: 100%; + height: 100%; + z-index: 3000; + top:0px; left:0px; bottom:0px; right:0px; + + /* Center vertically */ + display: flex; + justify-content: center; + align-items: center; + + + background: @cms_brand_primary; + + &>.holder { + position: relative; + display: block; + max-width: 380px; + width: 90%; + height: auto; + margin: 0px; + border-radius: 2px; + padding: 20px; + } + + .logo{ + .clearfix(); + line-height:0; margin-bottom:15px; text-align:center; + img {width:100%; max-width:72px;} + } + + .content{ + p {text-align:center; color: white; font-size:15px; line-height:1.2;} + } + + .intro_text{ + font-size:14px!important; margin-bottom:20px; line-height:1.5; + } + + form{ + text-align: center; + } + + input{ + height: 40px; + padding: 0px 15px; + border-color: transparent; + + &:focus { + border: solid 1px @cms_dark_border; + background: white; + } + } +} + +/*.login_input { + margin-bottom:10px; + border:none; + height:40px; + position:relative; +} +.login_input:before { + +} +.login_form { + text-align:center; +} +.login_user:before {content:"\f007";} +.login_pw:before {content:"\f084";} +.login_submit { + width:auto; + margin:0 auto; + display:inline-block; + margin-top:10px; +} +.login_submit:before {content:"\f090"; left:15px; top:6px;} + +.login_input input { + border:none; + background:none; + height:40px; + width:100%; + padding: 0px 10px 0px 35px; + background:#f4f4f4; + border:solid 1px #FFF; +} +.loginbox_content .login_input input:focus {border:solid 1px #152129; background:#FFF;} +.login_form input[type="submit"] { + height:40px; + background:#152129; + border:none; + color:#FFF; + cursor:pointer; + text-transform:uppercase; + width:auto; + margin:0px auto 0 auto; + padding: 0px 20px 0px 40px; + border-radius:20px; +} +.login_form input[type="submit"]:hover { + background:#1f3441; +} +.login_error { + display:block; + text-align:center; + color:#FFF; + line-height:1.2; + margin-top:20px; +}*/ +/*.login_error p {text-transform:uppercase; display:inline-block; background:#c70e00; padding:5px; font-weight:600; font-size:14px;}*/ +</style> \ No newline at end of file