From ba8dff4b2f90aac083ec4f92c57258e5e05604bc Mon Sep 17 00:00:00 2001 From: gunom Date: Mon, 17 Apr 2023 18:19:23 +0900 Subject: [PATCH 01/20] =?UTF-8?q?[FEAT]=202=EC=A3=BC=EC=B0=A8=20=EC=84=B8?= =?UTF-8?q?=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/backery/bakery.html | 153 +++++++++++++++++++++++++++++ week2/backery/cake-slice.png | Bin 0 -> 14654 bytes week2/backery/heart.png | Bin 0 -> 9935 bytes week2/backery/salt-bread.jpg | Bin 0 -> 29490 bytes week2/backery/style.css | 177 +++++++++++++++++++++++++++++++++ week2/todomate/style.css | 185 +++++++++++++++++++++++++++++++++++ week2/todomate/todomate.html | 162 ++++++++++++++++++++++++++++++ 7 files changed, 677 insertions(+) create mode 100644 week2/backery/bakery.html create mode 100644 week2/backery/cake-slice.png create mode 100644 week2/backery/heart.png create mode 100644 week2/backery/salt-bread.jpg create mode 100644 week2/backery/style.css create mode 100644 week2/todomate/style.css create mode 100644 week2/todomate/todomate.html diff --git a/week2/backery/bakery.html b/week2/backery/bakery.html new file mode 100644 index 0000000..d28c3a3 --- /dev/null +++ b/week2/backery/bakery.html @@ -0,0 +1,153 @@ + + + + + + + backery + + + + + +
+

Goo's Backery

+ +
+
+ +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+
+ + diff --git a/week2/backery/cake-slice.png b/week2/backery/cake-slice.png new file mode 100644 index 0000000000000000000000000000000000000000..b9fa2bbf493975387b92a4d8603b8b932742ded1 GIT binary patch literal 14654 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 SS{J;02EmS=4!5^cj{gs%Mtq$B literal 0 HcmV?d00001 diff --git a/week2/backery/salt-bread.jpg b/week2/backery/salt-bread.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4209937243c8fc22db6b0e1e4a9c0ebc906417f9 GIT binary patch literal 29490 zcmeFY2UJtvwl5rN01*U1L8=7ly(aV`y?3bsp-6|&gCIpfF@#>k0Ma{1Z=xV2^xmXN z4;|^!E4clpMxC$prHZa0000409-6_0QN0+=k`K1(gA>b%VXX0hN$$v&VUC1 zz`emOS^)62j`;Rk>XrbsTek;-zqmi;4+4J>_=CV71pXlK2Z8?^5peW&wYT+l72)H* z)gCVv=WpHw#jV$n8;kpQz9ByDZ#<4L9{>;^{}28jo&`bbU+DeuEdFn_p+7qRLEsMp ze-QYCz#jzufq(#?0KXW&fS3S;kzeF5hMynspVa{XjsS0fE5IIL`?s?QfDiDOGjg+Z zhwg=!m%A7*ud64Im5rOVEf3Vqh1bu@otK}7j~5^z?dNUXb?(Pk9{+nzYD6g%vt&6Rzm**`S z{Jc!O|2F9VE}6Fw{axsP3jeK+w{67aVYXIYwoh+K>aWS=<`>`=faw3f6V4;dCm_N5 zKeUtJ{R@nL8t8xT$p1@dNlDm1#h`zU-3|6{;`MAj{?}&P*+J?b&h)?Ocw6;v%x&kl zmPbfPD8c*Ba{nU`f2+AQyxaT!ZlFuKi2gJu73%E zf2r{w>-s+ou79|?wywASt?#WPdov4=2LSQ#@bPeg_;~mPKp+7T*_~S-gNTy!9x)je zdcwxe$;J7IkyntHLx7coljE;Wuz&;vM1({XckWPd z&{ENI{LAI06+lLSb%1q+gT(~ECd0xZ!@B7JFx)00@orO>e`PQKy2)lB;Z^)E)WB zENBf2B_w+Akc#@z6BbrBb`Bw75m7KiO#Z2YqLQ+Ts-C`qq0uvA6R3@?o&5_3M^7(r zA74Lzc-ZUkh{!i@qv8`1laf_T_<^p1{= zPfSitf1g=eURhmR$82nF9ULAVpPZikI=}c!FDwAgzp3?i&He|y$Zqw*#>K_K1^%TM z7Pjv#;gI3tJ?6(Jm(>AUdE93b2qB=5i_5BPBLoTR{-m^qjSxLx7Fv38@Rw?T)9k;d zSm^(hW`9@gA9~FIh;guPCl7}VAPu-sjAHwU{fGWw@W%%J53+&K<lvN9+!Z+9=$hvhdS*7{?h$Dn)ChbT2hKW+<+3J^9!wK zNRv-29$NC7a_q$dTcnP6gnOl`5>P_)m*IG2jbk%6F~?$wt`Yphu@34uyIGSlJIbj$ z4$)kEt?}>^Np`VRffF?(p+FZ;iKQ{WLpgp^AKAh1v-G-5dR;N2*UhHy*bwG)VV3E0 zD2)c4PZU;^*@Gk2sY$aNgvM96Q_~@6FD(TMgIEe31;BqF>ARhL;1<@Jv7?Fn$;*8M zm@G=nq4XDL%Ar=7;aJ;>SU+4Clswa8R@*{TmvibLbPP3eCCZ7pN>r8`t{B9xn;&)W z1XMzPd#@P|u%lHSF-1z8MUwVe8xOw-SHFXOS3Dz@ez#ZgYl^$*SD$X98<)x|=PTk@ zyxXYXwL>ja$-dQ}147!dCQJG_dlfN;+{0;y#Vgz6+ivnxIVmIg`%V|}eSx4an7MWc zW5(BLeL)T8uPp9bM0lXSV9|s_1TpQnc+z}|`13l*{I1!{fsClAr`g&)M}n?*5qQ$+ z5F2`(AF7WkE2-u1gnUh)w&NTt9K(_85j8|I z3wymsrz{K~&%lBDT1_#m=x28)cg7NSd#^sKr|rX1VG_WpMHEZ_6%J|;WoG*T*rkB39M;{tCNKK|$U*O<)(i1=^iNo!+xJRlHHuQMzssric ztIIIhgCk|qp{YDYyJXSXlURJrtc)D49OMM% z>B>Fe0tB^v+gc}r-GJZQWF~i3b`87BF)Fb)fFapy_$1e`KQwcA0v4r=>wed#%bTfX z3d*jVCmkg!iQm3Vq($ZQP92`eY`7Z}CDgZr_n{X$tjd3JT)`BjRlOTW7s9-xf?m^z zcL1eUg%K3?;h%Gz# ze~t=WT^Flg_jz)3WfXiJn@n)vtjwLQVktI3R@mm{yRKn1GaaITmU|i=1bpJ3CS`~F zmkOXa#Elp{;d?uW;t!zl{quoG7MdWz*Fps)SENRy$%F9m5jydwUiROHNNP~gQFw`*Rq)hd%XB0iEfCaX9;eaB}PH2OA8uJ=g%%l$QRKBZria5}T% zNd`|(+HztKg2)5U%o~7#{Q85ylFXugt)&PvjO3sgeC(;NM5;lbeXN$=$*!C-{4sG} zWh_3ptpIPXQTanZD3k^%Hiqvq5`rt@E^9WWw6v@CRO5kFv4V5eIih)$nwhL??!t4l zK2L2%E%{WSOlK@czz9-xBwlIf6MN#knr74&D=W<-pps2f<4q>El;h0x(WU$3WBIx* zFsX+Qd~ySjnh^0FZ+^1^0=+n9DV?5~+Y)%g&AnhpC&zmv`87#KKaqn3a;~MVR8Z?p zPgp-`>0nnC@@P;FM`-AivQhyq3MObeQZOV;A3?cwDdws=btDkqyC(dmX7uF!P7@Nic?ndNKwE<77 zc`X=>Pq?9^SPZwV?fOVGQMqIR}k zo;F_jHL1mdTKy*f$B|ZddXF*8@b$7L0TC-m>jtC;4exFd5XeQm{7mA%=-CBaGduAT z%`4%Exa-a=M-g|#g#7$dsiF+x!$)VVy+SnWCygmHiZ^O>V3dy_B5Jk@%C5qEju&n1 zS-~wF42sAPf11K6HZKZN-6D@m=4x>FNI=m}s*hTAQ`zdY>iifJ5?)I3I1=;)N=%40 z5xo2?;%k%MfX*74Y;H`LR=w-`EYZL8J}di><_%zJU#A_kJJUCOb&KS+H$`5a;mi&J z4(E7W=FuohE_Fo!a=)1pKn#!+)RNu)bRI$TVkOjL|EcfYJ6HV_6+p=?kr!8^8)`hV zfLQnWt!gurYO!ZSup$_JoDV7(t-bsJ!D$l&k;+ePaW;=!LGfk@-0IM*vW%AnSDfh4 z4VDQU0P!LGwB$5p&jT5C2Rc(zVBxh8DeTO}QKqvG2*m<29y3K94UzcOF2>69V8SkQ zS1U%Ff3ZfbQzipR5MZVj6N4Os7k`IwycC5I6cSHtu}zwT3(5(w-W z+nhfTfp`^d?3W6K%%W(0PYWj(gxyk8^sXT2ZL^>PcomxpHDR+WpQPA0%Y8AUX z-ZB18ye#fi0&WC5YYN^Q1ulb&((oQDqk&Owh=1lFoWr!_%;u-SGo7Zi%{Q$WX!tTS@(LDl0M(`mpany7j1% zKQX_tCTe%$l#gqV8xx)si!CNd4~LKCyiH-=8}tLWqNjw*%IV0bb03*8`I{#Dy=BDa z17=AtnHyH;&eG8eC#N*6>Bvk6^RLhzLVjn*w>NsiTB4HKm6ErY!T3BmtL-i{Z&@oG zE3^Hobw+dIXZWeZQ4L2}=U@!g2^yo-_@<2!xx|cI!hgiB1d_mPce=vHn4Dl`Lz}mdSh>||0k;JePSx@NNs8LGfb^JzeOfrT#_O4!Q2#`&1Um+ zjlr$E2AYP|-_tGLloXnAmsZvI6RX)vLaw$JY6}8Gp8o8$jecWjN5#3BX|lp&p0B+v z$WBba=92`z0g#*s`JNqit}R&faj{7~okty^&xK=zXdgLQtRqq9;|XJxqtg~uLL*&E zVN2asbKaCC1q)^>Yyu(Gh4bB4oQYLU`f1qT?FMP-Q;)AotX)h9${#VM+^cdIi~wG7 zCZEpl*c(3Ds2Af*NOB-{?Awmp)OY0tHPmTmtuT_dTtVrIUyI)L+xpo+dAZHYlIUg$e%o7Z?+yvSE#}Mtsbs$QXN)ie zg)P)A_*TB|h9WIj*TN3ri#LFaZTbrpo|?jP=D_lJ7h9aT*3Facs6mmYJ?}Bs--_01 zj5GxF(g;SHGnrDGpkJ z6>!`3^Dido$3dcG!MXG|0KE%?=Mn^|8F$XmRQcBh(G6(YxF5n*jSqOf4aDn=sHXpt z4Ej7yD&%p$@qHDfXXpk{UUHsSPkS%pqkX+SZD#%r5yo?ym>DW_wf*qz4<@JCHgcs0Soy(6JbUE5`-4KxmAr|+ zLPb;L#p!GBcwsMyAvJ!wS$O_uuM?x#_uSt-V~$3f-ic51mQ6a@6X)8`88vFwIKHTt zaxA0Po7lNsmKkYmzn@G_+|Te+F$ zW1aAe55w78ecc5`j^qoyYACkLVlkqA9@08V$GPN~ng+;zi2horE@ogzQt&yug~1aZ z2L=TdIgSygICw@-L-9TXt#3)xKIz@wvjLeSo^={&sfi&QFP7eXse+`Hf-*&`g;|;1 z!9b37)t0wIS^27D!EJMa?B5@mCqBA|FD-Fg_~Z?_U(a@H88tpWaA3&Hz(Jo}mNsU1 zOreMx_D#QTaz?g$=#^us(K^;ALY?tr%IsF5_cmNP((KNGkm4cwfJIEa)^XW=A@yQK zk(yvyOu2$`RU54?VcD6opDy9Kqsa42nzv}`A*w>nxs?E@gvU%7sRxwfkby5)1`KN< zb)Is|nQtrH5O5F~#NW_71^Eom!z5u&p$@u2cJ8uP$c9d@1-d{6wa$~lW(r*u`bTrb z0I|h{{SD6gJKlPIMQDV|*wN?>Y>VqXQ^x!}{)ii%CsvyDZoeyFWa!PvK~i z8Ns!fX4-5zB=Vfw2wz0PzJT#}dP&^D!q)<`?PS4?+okD=o=)Jmdur2 zePsmM69)2jhnL)^Wf1L&d^29Ba#SJPUrH zJ)sb#n5>ntxIK=d@wJpM<)O8r;IDQ&HvmEV4io(g%Hc7oDdtJ1%WZGwU|BHh7~>5f z!%5`+Aqv@YJ8e!2EGZVD{c5hDWPnOs00yu!mS_JMGS?3LIvRzlKl7oZcQqJl%%a)b zGJw-f2&t1`ZSHUcdrZe23q#$K-z+P*tT5ule`!1}_q2P_S?_1vN}qdAMtB?@$XJDx zdGn07Uk%DgZ1f-j-^?R@KCr}9Z7NKzKF(bwHj6&}moU-h9HxvW*Xdc81&o|+nMV{K zcLmpLJIv5)~kjx6O>xn=4oCZsm9arkAmt?o}WI^7@ z;C=wVn{heU8D)D`D~DK^v61O-^pgf0$GdaBQa6BPC&K{!kj264oqWD%)s`v1!rgCoW_?YDs-Ii9^pCi)D5te?hLp9%U8?;blc_t{q2eU3p=sH!&*nz&j*|OtX{zKtPpYRS z%V;c2s!ac`%O8SR&m*S7s*m+!K0VF~oc3jkC5r2oYT*Q_#eVP& zjuq|lXC3#@Rw`9`(c`?xfpMZMV1`x>IeQg6LRD*GD2k3)O5yo&rJcnJNOD^S0r+Lq zXa#fSxJ_MS^kNEe!J6ao0IPnCUM(>=NoL_o#tlIAw9x1@YRI#*W2q%!9oc!omfeKB z4W<2mdAkvtr?a2vOhZ&PdskHVx?J-(=IF8_lRw9J-iG?vtiHP6xn8(3C;}0;`*Hxa zOrW<*3CmN;WqnPUXWV96VW$FF!9GQVjAV6MgsByCDi~-dK)PnQ@*;R9a(xK0#i0UK zM3D1uMrp<;dNb5`#D#Icd1_037hMF((@pEM$5*hs0oWr9(bHFxE?30s#afo@)&_OE zIB8263>swLi3TM59hP2HuZKd=S<59=#4mSp?ZY{pcSZ8MSv}1q{A?992G#gt+VN(Gy%eit$K91cygz zJ<(Qd5+w9-`?e2bKS*e%%2C6=i^(PiBz-w+A`e&P6#@%dnUCCWBm?Mw?_CM(h%#R>QT^(-%=w0uN*M z4htBu#v}|BXAXiFMZvcbiTZ%lgp6m0GTWU7di5z(ko}qZC~T1`#1{)jz*(o+m^V&= zBbhl>$Cuj$9;Tcl=M(3?fxY>BB@&f3Viu8vtnLUB({O9AHvZs1z5)l&$m$GLY#RS2 zKj{BWk5pcNGpE2hQ0+5cF#amsbCfj&{|-JE-2UoFo8$LS%WJ>#OefJNoLjIxs%ZDazgPJzU4_S}Y+|KS&!i?@6wFTo*Tz*fGtDm@I2Kj*lY* zZ{hPv3r=_;N*22=WHN+Xuap8E-g84XRbz%~6MC&JTg2{K}p$@WNOaUf=%T=mOuckedBt?2_DMbJfbMU%jyPVFXps? zZ|$$k2Ti;N`inoJ?sswIy!?o;@x3@L0Y!hbiGwY1>!A`>$RdMD+CjERC9WHTelfPzy!zQtL~Z-r>qF{lh6+oqbMN`P+Be|y7O_cv?o{kL$jca$ ziE5215Irg&o|FBNmslTGmB4BU+GJ>)n(6)g(tPB){NTte^7jdBXg$(F67IQcu%9OW z)`FcfD-I?a5~~l7X+NKmKtOY&lB-2g*4!v|5Ps7B z=`;>pMD}dJ*}*pglHxm@xoz&{2yRZWNK4dmt!Y9YPO!dSGYe80%`ca3e^ihJb6Is( zU_bX?k&Ia}4-YuT4AErrntUkW#G}wLp}sxH{6{jht1Zq?cL{DE^f*Ku)7Mh6KJtJi zcQ?oxFz1kW?&aVmD&$%|^U`+u@by4VRpjXh8A&DKfgg^#>is)t-0QuGgeOxP17n|r zkNgnd%9LKbh{=vwY_lI=fLPk@E>o44ELOQ3IOBr`fzhjCq&o#2z z!&Y}v$CZmty^5{G3%Z`P@2yPgeA0fjK@`h4mHkMXDdy#dOAXrzRrMSvay4F{wBB*q zytuYnXja7T$2up!NnIa^qt)77wTM-@=m=;JUJJiQ-MEPh+NvFXB6T9xwBoD-$e|5s zqyLs|^Q4a{WI9yLV8)?Dkiol5$2Pw|E@IUUCtqy*;V1m`#4jKs7-3;P&+J=kks~xb zcWN#5UCf8NrMZBK-WtPr7NOY*%6syjLY2$`BIWuA$(_)CIqY8i1;69+rY;&gV~JAR z6vU+DZg6yl-1}}2Qot!KkF_`NepQl9?ifFAbMTx;m*=K-KMn+xG^j#r@b$61-Qjp{ zl$6!*qY|NT(6a?eL`K*?sr zo#A(m!RnjtXpV~BTvy3zqx*92967y8+GNDvK+YAxtSz=Y`>j6-%4h_eSb@b$ z;kJ?yu3M8qQ0}z`okKeV)^&@eFG;HG#%9#`GTlRE#-E!FL$N7bU#P2Vd1Oed4#~ea zR+7EY$uXf7E2D-lzp8605m7cT8TzW#`w?kt8eLi_vZRJ}b`3wvFDZ3J$hdvjTTWdT zL5ZgJ=3r*vD4%Obv9zwq%Jee2P8$f#TMj@M)&?gYYHwzt_UrNkqi48mI@pxdw5a<- z!bA6rxCpw>%A*2ke#rKVRsf~mZ#l$sIUU_^UX>vEIA*AhlsWBW=NL(EUmwyj&88Z+ z+RV5bOTax84}|2$OMGfMVF)&iepv2iAInEv+qrNTq2^WZgn(Nt2=uctj0d$4iM%p{Xm7XyuVP7d^53y z>{D&FGni9Uq8<|764UrGThpB{9YEz)SV298aZ6-h{hhQKMACfpIQc#rtM!`nxI&Lm zZ=rH&Wi#OOJTfDStwQ}E^gm?SIqvi|l$Kfe4^k>=>20diBu$UHe81<|gfcPDiu-By z^KC}{=UKgpCru6UD$lC<*VD_L1fTz)Ha}gwijs~Ttz=H@MV|%eX9#FfQ64?(SF7OU zjys-~V9KFsnT{W5{sMq>aR^MieJSfw#)-KBnDe8P+hOM@6awWr`q9UVWmM(m*_LEU zw9IkOD6Fh~#U0%XA2WW9yc60@LI}*b=HPDc;rhYWeH(DwR40}b0k}di1;S<_p1K3e z0sc=hyv>iN560?$>A94%2(anuS8jky$3y`0->V$Q>-j!sD?jTB47X?dBt})sen$)g zK?6Twz*ihQkJ9`ft7nRG$Us1p=pIPIIDr8r;v9q!L zZWyDb*9pZEE7kY=;QT%Q_&Wh%EXxL6^Qpa+C+N{?VekVvk=!?z0&4UGT>%q~PoSkb%7Dp<|$M@Jn7XXsCw6xjK8sVbK+0SG1ed+2M48=tcJaYREt3Oe6c;Jq?b%OvI&WH85n83PR@$sD+k5MF7)@*_~&FZIaDD5= zy=@I6n*>~Jex&2uMlhfYUlu3<*O#rU8ynPuKUeqIa9Ggx_L1)eDDUgPbxtz#f9h&r zBf&=dNqWgJD*?2=1D}L_2|8PJ9Jg`la}augAK_GJzB5vFjJc}s?~b&IBh`5AnD6%r;Mb^gpAtS0RDJAx*B>j1uUFj zUl|4~%Vmhf$YyFot18QmX&k$&SU-e@72?EcL>chRMtEknr@77POw%8C;xJEk$L(o? zb>UE)GUkwk2z5S*gsVzTJ1&6KG;0~Jw(lP6_~e`Tj;B-+e&CgD!$h9FhU4O4ge4i; zBwZ8JwrJzIslznl0i6@g2LNe2)8?zz=g>$!X3W%8R7bROoKdV`e8aw}M;t|fK5f}#=$i4Q%!4xfWX!Sw0X*PK$~Jv^5D zu8WA`3)J!HNon$`f@E((7hYdT7pd&W5?UWQY-8n-pX5TX8bmDOP&# z2`J;P2%GMbcg$udSV@b>t|nNB8Qlgv<+|uq$mxo3-=*)InM;_% z-KgmNg`F|FK}9v3c+Uk?2a6|1)#AONFJG2xWSt08o(=N3^Ct|QUpbT$bazX@uogWv z144TvbP23#yf?)3Vd^EfiTw{1j-MV4_P4bXDN#&hz6`#n#=qvsSv#$T0|G{seeHjq z0tm@GWIvqCb&&Nxb-+=SMN0}M401GUyr;eae1-vK(~8z$BkX);_(W-8{uC!D(l1!LL7R-0 zaH7t39aZ-9nyQa)r1v6#EV`=5c7|vLXWQf--5mInY&QT=*G9?#6US|)nuoYT0hMklWeY z>Kw$UjG1atpRzVi6V@G3)Q{{U@r?Oh%U!DKGLN#&1lSjR!kJ7jxBr=aQrjK>Fk@Yd zgXLTs54U>NGi0`+UU+C*yX%OS?Zu%#5PZ_M$1&c+Ecj-^UH;|AS7O8A+VVFVbe zL5S3OvBzmfp-xJb?}qzWmsNr*tRP8hf^L}Jez3ukZy~9q*r94hrO&>IegfGyB`LeR zsdK+kMc7L}PR15}8!#t+5A#fjJ1IfDhYT?uX*b|}1dyQ1T;FpQZi$cEKnqs%KJiQs zE&COIjm)?%(YNbB2-sA-L|p3GM*ET%NMM9n6{xS+MbbaSs85g!VO`lD6tFGsu(B4? zZ3fpfT9PyrAo;_l$^#6@h23dTw4OuocoD`r{!q^-N5xT*hxHIviZz|zLi{P?TxQn+p2uZsTJKeWtl+i{1<(HK01YDd@~pTB0!ac1L%Lm*drCZnh-dkM zWXrXn=>uZ@sIrO_gK%8?-lTUA^u{k94bs$DNx$i<2KjSek0lTC>-CG0`$8>ysE3xc z<%+8k_*UvA9mh}i4)!7MUf|X%lu-7q;$y<7b$FI$dd!Lt*+j?>zqmwUDdN5 zI6+6Mnye()$NZY(A!J5e55PV}wVXFYaWr;bbf#6$jUYI5V7SDoH*PwG%(y@$x)l8`JH&D)Xf^sRt*;x3Y62%DbJ`pCAFDMBY zdUp91yol0U=}DkkYM?9@7UD_`Z{0*KH&@{Dekgw`vm`5>=kD{R7+J297)1LjTF;&)otj)7f!!Xme{xpFhi}<5+#UX5Oo)yoTQmf>9>^#tM`FOw&u-Wwyd>!gKa=4pU$Uo z67eq7_RzDC#mufOd)>vXUZgUJLDh$8B^ANOx^_G$z#$ER_Tja%t^xC&?hU#Vf*@e( zYe^1~B!dvz=+8*}S3@TSmW|@El&Ut!g4wh;Qg*j_@N!aBwJ>tPi1@3Tf?rzjqIJ3} z1gYNaOj5acibQKJC6^yYLJtvPNI=NS$Rnwt#{(dSV6yTFrJg5M8O1A6^4#ulGXH3I z=MV)A8?AV@t=oR6yc+T?RJm<)rc!ETU1Yt@HPgh)I9X9f(I;UD-qS&sHokv%;Zi8R zm$tJ(Jl?(IWOo{RlE1Mpl;T(_xB75Unipf%f-HPMS)ZOJY&hsIalC0R9ITi0)~Fly z5rDrAApI%SqA3=;rk?hDu}9(?lVA;-RY=0z4M40cYeBMhq!(z!h^;9?vih51Gy8e1 z8uj3_WB@&%gYz!Jr&{^zVLuiM9;fg_xZk|d*=!G5`J{jQ#zY!xYt&0tjiL8x(5wjiPA;ZD<&57mJa$I)3s4= z8)U|9UQ8nDx+H&SE*EyEF8Wd|50=bDDA+iQKroCLq4pZgu~6tkUqx+U9XCkP(B@FGbKWFILEI%e+LM?P3-Bc9x{pI1-T^^IQ^5c-myOE(p9mS(WoV6S-W=JzavX zFHjw{rBRlsJ13E81J0D1HPu#2e8fV+JPcL<72^hP4GKPab?uOZHSS)OP&U3kYd$y|k^>?c&4#_=+gRUWaPph}lROA?b5tG&i0sYb%bt{+ zo?fowL}2J78%u2;Cv1*{AnZ3yU!=Cj>>YLL*CPTK8*s+H3VVk{%p<#CD_9T9tXnWp zqImvQ-?S~Y$T= z`#Tz*hDO}`44VXv&5jh{0=ZMrt8e4$fU(nM=g^nPyL?=DSt`Gz`(lw_~B z_MK+hbk<^Ol6TIpf}O)_;0DVvD~WotaU|y{s&PTIdzeOHOnk+j&9c znt@IY2ex~CwzYbFcL!od8#p^`(7mlwL+b{O`5&9;e;cbMOY9fD_focepq`;9TlhSn z5bqt{%2-q*vjvnPF&+XMP3SgQsGM^qfzZhtC8tS#$c^HTf8{6k(_?n{z#y0Fv;1X; zD-D}~cwFYTVL5KBssL`J#Qo5_hOl$X=0qqJE4VDX%icx1{fRs54sizQXrf{-!bfC| z_~Q26Xa2EnZdd9fG5knJAfYkmC9zHD^w6)#gZnhhWyF@>zC*f{T<5PH6Z^3**f!H@ z4vRTY>^y3C=0f5w7*ulvgAVG!w6Q=St>Nq24V^@Rd#(EPmbkkZ3G!CEw{MV-YbRzS zTIp^Rlxc6VDf{eQ1!q!87V;3UR}jIDkUXM!{w{yI&226VwcK8@Rb{cl;|l|&Cw%~4 zJZXOiqSa7!cX$6mN%jwCqJ4*#M3Ej0ol^rSt>LDfp`Q}SL6$_ z8oG@H^j(Cs?aL*@|L)Q?8swRwy$9ZGca=n@cubPV6m`kZedLpR`#$x&9}M68W=OYh0D(q=xsEmx zI{ZUFBQ}gA=mQKdRFBp`v93=-zXSxF4#@U^YdY&^IU_v3CF8Q~Zbz-3Jcm%VuI`Yg zw^ZN0C65Iv8z8#+AwBsP#&54C7ZX}L!Bryg_acsGO#zC1joA{SXW=>-Ac{!XDjDL@ z{ODClK##S(a!(}D-ZV}14PdIk5$@&1 zp9L8kRdR81eos}?@2xuQReQO^r&M2bk`0KOwbmKJ$v~YH%zYzn&KabNrTTPrq-)yF zWcJ|2Z-YfwX6QmwDXjkEDRp$!{3pWQ?Pq5I{6(A$Quz1gl-^pqIqJmNhxwz5()669 z{dh=4m=lCsW7ApjXW^XeAU=>GUAG~a5DDr2U0WzaMvJ;wE>ack_bJEP9DJd^pIY`mJKpF#nL%TKGrg81 z>~^cx_IQF>pL8;E|IL&mNvrm|JBm0W-+^*U+G0V%!=-h=pj_$Cw#>Gbq5WES^w)4+ zOv__`uKz32rXlnTmwl!W73De@%dUsU zB~A;4jaIFN&>=lW3*$>0b@k6^J#?rE&b4SQ4-nT5qxV`!W!076Mz89Uv}FbbOx)`* zdw^ASJ93Cngtj&(bZsLb3d*;L@|cp`Vrs3=zQB=v$TBx80|ruKMqk4+1u_8p19A-f z2U9pv0^hp?_t^3JJVL)isOiF=sd$8P1T){=@|dDO;c`{P2^1i4c=oajrHdCU07bqc zRh=F6)}j9XxOHZ_XFGG-Y#audMpNw?lAH0hN;M8Z+2+dVF&-}9_^03FsR@9PA*vxv zR4q|Wr2r;VXM5YM?gM=CyayL2SPNX9Ke{MR4Z?B2VU-L@;$J{>KbzIJb9`V4;Sw;t zTCNqzoq-Yf$I|j%$^*#M{7Gk+W&}iDqG@feUonh+8rkFa{utZ6$dC0U@p%o#&aNh9|d>I7NB6y^z19 zn0gX=p)pP0#!0q)*6f{ozM6@stC$3GBm>!Ba~{_H~uiE&Jb8GRR$ z;7xFNHQ(;xO!>R!^4V1z!Xs3XqvPkEE?B&Ab2Q!l4NXWhV}(>?lrI3u)FL=VndSIe zfIf4{;FJ#*9FGG99hRJqEQNpo2og>RpY5-QZuFUX8bmjMT;wlEHr2t@7)wFDwky6S z;bx5L>++Ey_7}akn*+4tN=JP+#OhxL5GC?Z^nM@Q?@cxn!nk75zO3o_D4<$GLtD6N zpXclBv1hksg!R-v1`Gj>Urw5l1E}4lpnXsT6 zs~pzmGnk+%0c+TJ)Ul-Wl1u+|pv4Ijox1zof%6RDwz=#3#WGSg4`#zq2PGxcKIrF$ zG{=4fQO*2XR`)@oLkYK*z|S9{!rTryv2rdhV(-_0nIHEp3bKBgY79g1XQTyQS`M&s z1!ZK0J0rz(EYfM8h?(pSiG1P7a}hDW%~6zB$FgNd0sfgdXsX{qUd=P*7dO3oU2QdJ z8gjM8Aue0BSiuZS0Rb-Ts_ZRDWkXD>3%X@#GZbviOu^85=hb6w(kADs!}h}?X^`zK zM8Y)O(5!WLK|d}-E6-&P1nBG5eWi2zU@HAkIOr1=-UYe+U&6^0J-P_!DPkdIYd{yg z{c8f!JsZyh7GVZ=bFX%7|(%{wD!w5ZXV6Q#CAMNePbnSIfOscdnKKlGS= zx?Lj}A8=aiLi2!$Zy;EiYID!=fqSv%>{m@s^N071K#k3a>SAnKQTo(<{l3bVhnoH+ zmWueA^8<5HC2XrJIKDb23bDhR>q&Fs97SAkKm)k#cha*tVi!>OZkn+ed1IS|%eJHhFvpylyD?)gEI^FVYIIIP9TfI`MaXrOk z{J^kKQrd}z>e;chfigAqiSX_iy0@FA7f(ib>UNZ#Cr*hw_sU`RFq5^9u^~q^$?di# zm9Z-3&vwcZUTT^JE)!kj+4S90v1zcy4fTjwmR{tP*Feq5a$we}7$P{-niZ1A@z5`c zFAP6TvS#x77}~j%M*FiJ$tBdRhJ{My92AqI2gk0MC+r)NM>j|5kh2Y3_?{~aFJYV*z203 zvk3s+UdRgXD{P3V050U$i$4*#ADwep_+FDzy!Kh->g$ZW2HKO70-7G$+9!Ke@88BR z8zADNLm{jBTbs0(vtb}SY6<-yJM~l`1V9}0Rn@tloR8{d>p|wyt~t36e^g^ap{iXY z@A&a^M`ziGc!P2={i9m_A6F1R0sA_=YxhVL1E!?)>NwTzT6aN{PVr+u&Btc4@1`lp zsRmQOl{{x@+9$n|nD90<-bYWn9HE-7b|h1-JWTWo#E>IKbgG~7D_Eh)wKehU&v^(C zNOUm1){=RCoALoX_t$&DU4h8?Vl9j^zW8hL}epw6G5*I)UTR@B)<|(R2U{d zrz}%Cl!*F{$jcM5+st4Xt10n9&U~j%N#HEBhi<2h(t2e_9j{PQzR2lMM5RybC{R8P z|4%n#+-}g&op{DwQF6bP(&v+KU&v`}^Udv`p zRB6e77GU?$hDU}*o}9mn)24sbz}q}Gw&Qq%&yfZ4CbZ*TJA&lZqYQoLdy0Gzz=b{) zZuC{wW~bx(Fb0Zk3T`SH6-fob<4)Tv7gOJmbdtuEG$i=w8h%4S@>Yzu&P?=LZy_C-I5$fQ#e`%q9rG)S1 zrpZq>htPbvcmVh2v+nYUt^~&DZfTJnl2;}RhavSbt}<<>C624&j!)T#55CF6`)1ui zr(?s0Qkf(@Pr|j){Huc4Vn1K0HgaZz9#?jTJD+r0{W9>^CW(wgAt&;uVo)XmigH2*9wq5$Q}?G*jvhn6g`7LJVlP`1IkW{yMuWbZm}^jH zFa&(UO_t8nz)tULE|AxZz>eROfPQV!qL7cBcc?VO_Oj@BmAPi%Y%f4IO~k1uy%^-dMjF+ znBFD_g$lp54_`vNFAd%Rcn@wfrxR_n=|B8d!c2eq$#*=;m_T-x1PPr82qN(q14xu&fPi!e0YQ->D4-GuCDK8vQ~~MIG3VvInKyIqpZDgR zx%c1wvuDrjz5lG)d+oKpwZ2bTC)MiVrt-KQzeIf(_xJ9SlDA<3sWL9&;PPvtLLH+U z6-K?0u>3os)E6ym!k*XupZ?%~{RCQ|i~h3MqG=r%>sXdhC3$bPL~((y zDtfyrKt7^ES?KowcW;xy=3O%MwgFruL}=T7JR^*DL_?nAz<9h_VO#-d`)Zn|c%Swc z8}IIGs~~3e)oWre)c5zNS##-j)}9yLe1CP$UO))u;2Z5a8B;L@-?sKjwTD`?%sC(ughP&aE zxN{Xn`#a4q{F`MA&KvBs&X1YKrLz1U^IF{NoAY&rq>jx=#J&owRcAuP?yZ9Hi>pxo z`O&VplNXSKmE-E~zKxx;d8%wNf2-29O3e=5C%%xf_#D-HtlzEJEN3Goy1M70gjYMY zP!(+@f5gZ+KqK=10L6>rJoBaJgHX%c?caZiQn(LaM1;m{v z0`2j$3l!9CzY8&WH5v(Ow=q{|bPOab_@|OBPiO^cXu1GUZer+cpTH|vSK$`6UTQUAWTiUCj<=x1nIgqU=?4NAet~{bzoSwQ6JCECK0W%!Hn8l_ib;{( zKxyCBgtyPXQUh(D#Up>_MO(0HgMX8+Oh#6jLOC))S0eso(fW<)(H7uph=OpX|86Pd z*`)R#B5ye>SW(}28byEIS=q@Mt;wnbm+~deliOx!!H!gT>&)o4Tv%e6M%~)2zQn@y zWHV7f+&2=e&Mt$0DN6dM(nfQkD!E?9<9W^eLBIVdar)8%7S8`e>c*#&XewZ^Mu86S zRVA<*si)J8CDaV(2J4?*#lD8J_E+R*0QWCB=54{tOT$g7d3)hYZY7^W1HL+pIo&E# zLaSGC?z&r}9nF(s6a}9Z?ij6be+91`pbv(kTnil*L#G9ST$k5kJEANx)lOM5A2ntwBDe8$iyQ)1`9+#$ zvFXZ`JRtlPxdTN1&D$9Pm}n-20kW0x2`gH+U7<5r73`bP7@9N>?Jn;KA{8Y<+o_Sp zLLZzO2RnW1SjO??*KlnFM|%A1>xC`yZfAtX<3P1Rp4C>JNs{&q?=($W6G!^oYMux? z(rE6|qt6@N-xaYnJG3w`-e!_)l%|$9vz@IRHi@ZvOJ%2L5=q;Yg|tHWWrFNxj9fnc zf(5{eIH&hg)E+CQrA#ra!SYQcY`L@Ge3ZhjWk#eVVEe^MOG+6jZEV2rHuEafoF8|* zA4G|xjSQT9R#a5Fp-Pi>H+VtdvAN1jd;olLJJ+Z%@B&e`|F@@&WtAe z5?SveoOdWQK!Z_T8N|Bs{L;I2Rs&y+DNUELfcz;^EwirL*jdLH z8UIeIZB|yV=Z(rLI;p_h+;6VU4)Tylp$YPC3QOs?hnstAU zYv_4R-zwY(fIx^R$!@sMUn(;(!VgS*$^|dI6&Nd*lQ(J`{gy`MmYc4i_w-pU z!k^_AZ{R6gkkKC=%)Xj|cIzW1Pd-}PuV7qy+un|M&3QEZJQ_{<_oOE?t*ZdIm zNz1*ck_jV9WQR9jWLDQc$Fk#xl<$5}BRi#?X=5Y<)v=}Y;Moz>4YyVhUtnrm4Trcv zYS*~t%( z9S$oNPge>%u2jxC>5Pf$D4sL7^_qp>&}MMAdP|MHPfnYSquwhp@N5Rt3w@-|T>b+n z?DXQR!5NVSVd>I2KA2n@foGb+efdrCT`swR0JOvX4D^4)KuB*Mf03D3>uK|@jHh|Q z8T^o#42wFf`*;$j$URgfdpAZ7{A6n2{gd(#=|SVR(KmC6>MSoM z*i%a5?~+~;_`J-HKV2_HSP&)MJa54PEO+Ox32js962+@M=d=M z!cUOmDysd)P^xeQ7}Bs)HqHzUE)kN8})D%3o@IobZaH z1s|8$Kjr>$ngf-ti@ZHSS=+74fxLpybU^Ol-{;k0<}4u!&qc@!Ck0-oncU2ZrZV!**E zoY;M$JtFpGlIPL`lYsxp;NVNPk9cQ)y5{YI^@HoLK2kJC-c91KdCb6=z_N3ed>eZj zBny6&o`Xg7g{9s&a|F=28M0*6QQ!YSteu?r;YCk;!JeU6Uz)t$mBQ66W?M%vZ*3{B zZZXTT7?wp-eay2*E)-t(?iU4;5puaWNc-Ot?Dz+vkERVoy8lo8&!+YE^|9l=(GTV2 zB6xX4O7*`GZHgDWjD-ZFIFb8lA7J)r$u1XESR46TF=ri2{6)>0MW4aiacKwu6tp(+rn6Q>BdNe=g8ER|Wg!zs^W2DN!Uz zWqA$Z7df&j_Au1L?r=0o=QmVds?9aAI**6G1@!>5&W!!`F`MJ|ffgUtB+jm~>nyQr zrWYCCT3hqd-a@W=q6Hw=vwYKDQvyDJ{i(^Ebm7n2>L4$FRyBcgt27w^ zn4{6V>YeeApiDP%dex^pG83O9hzj%98Xi*l?dY2Q-Fo+tS>xg5^&L$_Mj;K+)+`w4 zk+}jo3^|Gq{U-eByi!wHeO|_5Y1T06624HCX5T-DXt5k$|=uzG8HX(iojss54sJ`eZ>1)-iSkXCDF zq6xM}|6E1+=T^eMxONP*v*D<{J|;p?26}2NcShPxjV7oX)K#(inmu1~r@J#0muxQp zFMJYN*IB!@y}nUawyPSj_wsAXOpW`3AlU!`v5gsLheGDN-fyZg3-34AWl1?szTkI# zoV(~3k_X5vUrnxlg}Sqr{>?gvOY%h<6nKQUwc}u%gRWNN$P}=7gN%3{>9!` zcAKN~W_Xu4NAN(bfw*C2sAA@hmsS}6PpBd^%ivz>85JiD4Tv5-@mgPzqHo*i@^-;6 z8t3=N6YhC(=nt%U6&I^2MUgw3Sa>6Q{I{>ti4^U-Thzu|?^IaMv5zP^$PF)VQ_gF) zY%(4|&8t)A=pJS>M-Z9Os%tL@C_;W>9$OfPSumN?EVMY}yCn_a^HU)S%O~GL@Y!`6 zCYi}4bZS!iw6a14?!_rM!Umat=m;{eGb}nw%Veb}mLmI0omNXT^|RnGT^}TqTP1O$ zG$*q7C9daojLOp`=c5{mIgNAdzEg?omwL%e}0n^Cc+lBb$r_edOx=QxZWWTI(D#O5asR zL;4ROsiHxcn%`2DT2R zeS@2FU>TrFmoC4{9US{>qGFps-oBgPn!QeAdx75*FycNu98I=wk$T=O!fcgYs?W1O duQDTlhhu-&9RE4@@4IUMvF*RawtzoJ{tF3j_!j^G literal 0 HcmV?d00001 diff --git a/week2/backery/style.css b/week2/backery/style.css new file mode 100644 index 0000000..066d078 --- /dev/null +++ b/week2/backery/style.css @@ -0,0 +1,177 @@ +* { + font-family: Arial, Helvetica, sans-serif; +} + +header { + background-color: pink; + display: flex; + justify-content: space-between; + align-items: center; + position: fixed; + top: 0; + left: 0; + width: 100%; +} + +.title { + margin: 10px; +} + +h1 { + display: flex; + padding: 0 1rem; + margin: 1rem; +} + +h1::before, +h1::after { + content: ""; + display: inline-block; + width: 2.5rem; + height: 2.5rem; + background-image: url("cake-slice.png"); + background-repeat: no-repeat; + background-size: contain; + margin: 0 1rem; +} + +.menu-btn { + border: none; + background-color: transparent; + cursor: pointer; + font-size: 2rem; + padding: 0 1rem; + margin: 0.1rem; +} + +.line { + display: block; + width: 24px; + height: 3px; + background-color: #333; + margin: 4px 0; + transition: transform 0.3s ease-out; +} + +body { + background-color: antiquewhite; +} + +main { + margin-top: 5rem; + display: flex; +} + +nav { + background-color: #f9bfa9; + border-radius: 10px; + width: 15rem; + height: 15rem; + display: flex; + flex-direction: column; + margin: 0 1rem; +} + +.nav-title { + padding: 0.5rem; + font-size: 1.2rem; + font-weight: bolder; +} + +.nav-box { + display: flex; + flex-direction: column; + align-items: center; + padding: 0 0; + margin: 0 0; +} + +.nav-item { + list-style: none; + background-color: white; + width: 12rem; + margin: 0.3rem; + padding: 0.3rem; + border-radius: 10px; + font-size: 1.2rem; + font-weight: bolder; +} + +section { + display: grid; + width: 80%; + grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); + grid-gap: 1.25rem; + align-items: center; +} + +.card { + background-color: #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + border-radius: 10px; + overflow: hidden; + padding: 1.25rem; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +.card img { + width: 100%; + height: auto; + object-fit: cover; +} + +.card-title { + font-size: 1.2rem; + margin: 0; +} + +.card-tagwrapper { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.card-tags { + display: flex; + justify-content: center; + flex-wrap: wrap; + overflow: hidden; + width: 13rem; + height: 4rem; + padding: 0 0; +} + +.card-tag { + display: flex; + justify-content: center; + align-items: center; + white-space: nowrap; + margin: 0.625rem 0.3rem 0.625rem 0.3rem; + height: 1.5rem; + background-color: antiquewhite; + border-radius: 0.625rem; + padding: 0.5rem 0.5rem; + font-weight: bolder; +} + +.card-tags-add { + display: inline; + border: none; + background-color: transparent; + align-self: center; +} + +.card-like { + border: none; + background-color: transparent; + align-self: flex-end; +} + +.card-like i { + font-size: 1.2rem; +} diff --git a/week2/todomate/style.css b/week2/todomate/style.css new file mode 100644 index 0000000..48ac461 --- /dev/null +++ b/week2/todomate/style.css @@ -0,0 +1,185 @@ +* { + font-family: Arial, Helvetica, sans-serif; +} + +html { + position: relative; + min-height: 100%; +} + +body { + background-color: violet; + padding-bottom: 14rem; +} + +.title { + margin: 0.625rem; + text-align: center; + color: white; + font-weight: bolder; + font-size: 5rem; +} + +.calander { + display: grid; + grid-template-columns: repeat(7, minmax(10%, 10fr)); + background-color: white; + border-radius: 1.25rem; + height: 20rem; + width: 80%; + margin: 0 auto; +} + +.calander * { + font-size: 2rem; +} + +.calander-item { + display: flex; + flex-direction: column; + align-items: center; + font-weight: bolder; + justify-content: space-evenly; +} + +.todo-number-box { + display: inline-block; + position: relative; +} + +.todo-number-box i { + font-size: 3rem; +} + +.todo-icon { + width: 1.5rem; + height: 1.5rem; +} + +.todo-number { + border-radius: 50%; + color: white; + font-size: 1rem; + font-weight: bold; + height: 1.125rem; + line-height: 1.125rem; + padding: 0 0.375rem; + position: absolute; + right: 0rem; + top: 1rem; + left: 0rem; + bottom: 0rem; + text-align: center; +} + +.todo-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(18.75rem, 1fr)); + width: 80%; + margin: 3rem auto 0; +} + +.todo-container * { + font-size: 2rem; +} + +.todo-box { + margin: 1rem 0; +} + +.todo-category { + background-color: bisque; + border-radius: 2rem; + width: fit-content; + padding: 0rem 1.25rem; + font-weight: bolder; + color: indigo; + display: flex; + align-items: center; +} + +.todo-category-title { + padding: 0 1rem; + font-weight: bolder; +} + +.todo-category[category="개인"] { + background-color: aqua; +} + +.todo-category[category="학교"] { + background-color: darkkhaki; +} + +.todo-category[category="대외활동"] { + background-color: gainsboro; +} + +.todo-category button { + background-color: violet; + border: none; + width: 3rem; + height: 3rem; + border-radius: 50%; + display: flex; + justify-content: center; +} + +.todo-category button i { + font-size: 3rem; + color: white; +} + +.todo-list { + padding: 0 0; +} + +.todo-name { + margin: 0.625rem; + font-weight: bold; + list-style: none; +} + +.todo-name[done="false"]::before { + content: "\f004"; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.3rem; + color: white; +} + +.todo-name[done="true"]::before { + content: "\f004"; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.3rem; + color: pink; +} + +footer { + display: flex; + justify-content: center; + align-items: center; + border-radius: 0.625rem; +} + +.footer-btn { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 10rem; + height: 12rem; + font-size: 3rem; + background-color: pink; + color: white; + border-radius: 2rem; + border: none; + margin: 1rem; +} + +footer { + position: absolute; + bottom: 0; + width: 100%; +} diff --git a/week2/todomate/todomate.html b/week2/todomate/todomate.html new file mode 100644 index 0000000..0e4534e --- /dev/null +++ b/week2/todomate/todomate.html @@ -0,0 +1,162 @@ + + + + + ToDomate + + + + + +
+

WEB TO DO MATE

+
+
+
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+ + 6 +
+ +
+
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+

Happhee

+ +
+
    +
  • 베이킹 냠냠
  • +
  • 방정리
  • +
+
+
+
+
+ + +
+ + From 1fe7a3a8f42693889a1a632892b78e230690aa1d Mon Sep 17 00:00:00 2001 From: gunom Date: Mon, 17 Apr 2023 18:20:37 +0900 Subject: [PATCH 02/20] =?UTF-8?q?[FEAT]=20backery=20-=20tag=20filter=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=82=AD=EC=A0=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/backery/bakery.html | 240 ++++++++++++++++++++------------------ week2/backery/index.js | 86 ++++++++++++++ week2/backery/style.css | 26 ++++- 3 files changed, 237 insertions(+), 115 deletions(-) create mode 100644 week2/backery/index.js diff --git a/week2/backery/bakery.html b/week2/backery/bakery.html index d28c3a3..71d57b2 100644 --- a/week2/backery/bakery.html +++ b/week2/backery/bakery.html @@ -10,6 +10,7 @@ src="https://kit.fontawesome.com/fdaeef652b.js" crossorigin="anonymous" > + @@ -24,129 +25,140 @@

Goo's Backery

종류 -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
+
+
+
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
+

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + +
+
diff --git a/week2/backery/index.js b/week2/backery/index.js new file mode 100644 index 0000000..84c5623 --- /dev/null +++ b/week2/backery/index.js @@ -0,0 +1,86 @@ +const product = []; +const categoryList = []; + +const categoryButton = document.querySelectorAll('.nav-item > label > input'); + +categoryButton.forEach((button) => { + button.addEventListener('click', (event) => { + const category = event.target.dataset.category; + if (button.checked) { + categoryList.push(category); + } else { + const index = categoryList.indexOf(category); + categoryList.splice(index, 1); + } + // const categoryProducts = products.filter((product) => product.category === category); + // displayProducts(categoryProducts); + displaySelectFilter(); + }); +}); + +const displaySelectFilter = () => { + const selectFilter = document.querySelector('.select-filter'); + const selectFilterElements = categoryList.map((category) => { + return ` +
+ ${category} + +
+ `; + }); + selectFilter.innerHTML = selectFilterElements.join(""); + + const deleteButtons = selectFilter.querySelectorAll('.select-filter-item-delete'); + deleteButtons.forEach((button) => { + button.addEventListener('click', (event) => { + const parent = event.target.closest('.select-filter-item'); + const category = parent.querySelector('span').textContent; + const index = categoryList.indexOf(category); + categoryList.splice(index, 1); + categoryButton.forEach((categoryBtn) => { + if (categoryBtn.dataset.category === category) { + categoryBtn.checked = false; + } + }) + displaySelectFilter(); + }); + }); +}; + +const displayProducts = (products) => { + const productsContainer = document.querySelector('.grid-container'); + productsContainer.innerHTML = ''; + products.forEach((product) => { + const productElement = document.createElement('article'); + productElement.classList.add('card'); + productElement.innerHTML = ` +

소금빵

+
+
    +
  • #맛있어
  • +
  • #내가 좋아해
  • +
  • #진짜야
  • +
+ +
+ 상품이미지 + + `; + productsContainer.appendChild(productElement); + }); +} + +const deleteButtons = document.querySelectorAll('.select-filter-item-delete'); +deleteButtons.forEach((button) => { + button.addEventListener('click', (event) => { + const parent = event.target.closest('.select-filter-item'); + const category = parent.querySelector('span').textContent; + const index = categoryList.indexOf(category); + categoryList.splice(index, 1); + displaySelectFilter(); + }); +}); \ No newline at end of file diff --git a/week2/backery/style.css b/week2/backery/style.css index 066d078..2b6e6a3 100644 --- a/week2/backery/style.css +++ b/week2/backery/style.css @@ -97,7 +97,13 @@ nav { font-weight: bolder; } -section { +.product-section { + display: flex; + flex-direction: column; + width: 100%; +} + +.grid-container { display: grid; width: 80%; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); @@ -105,6 +111,24 @@ section { align-items: center; } +.select-filter { + display: flex; + flex-direction: row; +} + +.select-filter-item { + display: flex; + margin: 0.5rem 0.5rem; + background-color: darksalmon; + border-radius: 10px; + padding: 0.5rem; +} + +.select-filter-item-delete { + margin: 0 0 0 0.5rem; + border: none; +} + .card { background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); From c48828395878a902255204b103f84542240c0344 Mon Sep 17 00:00:00 2001 From: gunom Date: Mon, 17 Apr 2023 18:30:04 +0900 Subject: [PATCH 03/20] =?UTF-8?q?[FEAT]=20backery=20-=20=EC=83=81=ED=92=88?= =?UTF-8?q?=20js=EB=A1=9C=20=EB=A1=9C=EB=94=A9=20=EB=B0=8F=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=EB=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/backery/backery.js | 40 ++++++++++++++ week2/backery/bakery.html | 108 +------------------------------------- week2/backery/index.js | 75 +++++++++++++++++--------- 3 files changed, 92 insertions(+), 131 deletions(-) create mode 100644 week2/backery/backery.js diff --git a/week2/backery/backery.js b/week2/backery/backery.js new file mode 100644 index 0000000..5db728f --- /dev/null +++ b/week2/backery/backery.js @@ -0,0 +1,40 @@ +const data = [ + { + name: '케이크인 소금빵', + category: 'cake', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, + { + name: '다쿠아즈인 소금빵', + category: 'dacquoise', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, + { + name: '소금빵', + category: 'backery', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, + { + name: '소금빵', + category: 'backery', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, + { + name: '소금빵', + category: 'backery', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, + { + name: '소금빵', + category: 'backery', + tag: ['#맛있어', '#내가 좋아해', '#진짜야'], + image: "./salt-bread.jpg" + }, +] + +export default data; \ No newline at end of file diff --git a/week2/backery/bakery.html b/week2/backery/bakery.html index 71d57b2..f2f0946 100644 --- a/week2/backery/bakery.html +++ b/week2/backery/bakery.html @@ -52,113 +52,7 @@

Goo's Backery

-
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
-

소금빵

-
-
    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
  • -
- -
- 상품이미지 - -
-
+
diff --git a/week2/backery/index.js b/week2/backery/index.js index 84c5623..22829a4 100644 --- a/week2/backery/index.js +++ b/week2/backery/index.js @@ -1,8 +1,36 @@ -const product = []; +import data from "./backery.js"; + +const products = data +console.log(data) const categoryList = []; const categoryButton = document.querySelectorAll('.nav-item > label > input'); +products.forEach((product) => { + const productsContainer = document.querySelector('.grid-container'); + const productElement = document.createElement('article'); + productElement.classList.add('card'); + productElement.innerHTML = ` +

${product.name}

+
+
    +
+ +
+ 상품이미지 + + `; + product.tag.forEach((tag) => { + const tagElement = document.createElement('li'); + tagElement.classList.add('card-tag'); + tagElement.textContent = tag; + productElement.querySelector('.card-tags').appendChild(tagElement); + }); + productsContainer.appendChild(productElement); +}); + categoryButton.forEach((button) => { button.addEventListener('click', (event) => { const category = event.target.dataset.category; @@ -12,9 +40,8 @@ categoryButton.forEach((button) => { const index = categoryList.indexOf(category); categoryList.splice(index, 1); } - // const categoryProducts = products.filter((product) => product.category === category); - // displayProducts(categoryProducts); displaySelectFilter(); + displayProducts(); }); }); @@ -31,7 +58,6 @@ const displaySelectFilter = () => { `; }); selectFilter.innerHTML = selectFilterElements.join(""); - const deleteButtons = selectFilter.querySelectorAll('.select-filter-item-delete'); deleteButtons.forEach((button) => { button.addEventListener('click', (event) => { @@ -45,42 +71,43 @@ const displaySelectFilter = () => { } }) displaySelectFilter(); + displayProducts(); }); }); }; -const displayProducts = (products) => { +const displayProducts = () => { + let categoryProducts = []; + if (categoryList.length === 0) { + categoryProducts = products; + } else if (categoryList.indexOf('all') > -1) { + categoryProducts = products; + } else { + categoryProducts = products.filter((product) => categoryList.indexOf(product.category) !== -1); + } const productsContainer = document.querySelector('.grid-container'); productsContainer.innerHTML = ''; - products.forEach((product) => { + categoryProducts.forEach((product) => { const productElement = document.createElement('article'); productElement.classList.add('card'); productElement.innerHTML = ` -

소금빵

+

${product.name}

    -
  • #맛있어
  • -
  • #내가 좋아해
  • -
  • #진짜야
- 상품이미지 + 상품이미지 - `; + `; + product.tag.forEach((tag) => { + const tagElement = document.createElement('li'); + tagElement.classList.add('card-tag'); + tagElement.textContent = tag; + productElement.querySelector('.card-tags').appendChild(tagElement); + }); productsContainer.appendChild(productElement); }); -} - -const deleteButtons = document.querySelectorAll('.select-filter-item-delete'); -deleteButtons.forEach((button) => { - button.addEventListener('click', (event) => { - const parent = event.target.closest('.select-filter-item'); - const category = parent.querySelector('span').textContent; - const index = categoryList.indexOf(category); - categoryList.splice(index, 1); - displaySelectFilter(); - }); -}); \ No newline at end of file +} \ No newline at end of file From f75994a406dc22ae4e3c71e5d83b7aebf1f7551d Mon Sep 17 00:00:00 2001 From: gunom Date: Mon, 17 Apr 2023 19:11:48 +0900 Subject: [PATCH 04/20] =?UTF-8?q?[FEAT]=20backery=20-=20=ED=83=9C=EA=B7=B8?= =?UTF-8?q?=20=EB=AA=A8=EB=8B=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/backery/index.js | 80 ++++++++++++++++++++++++++++++++++++++--- week2/backery/style.css | 34 +++++++++++++++++- 2 files changed, 109 insertions(+), 5 deletions(-) diff --git a/week2/backery/index.js b/week2/backery/index.js index 22829a4..cf4d1b9 100644 --- a/week2/backery/index.js +++ b/week2/backery/index.js @@ -16,6 +16,14 @@ products.forEach((product) => {
+ + 상품이미지 +
    +
+ + + 상품이미지 `; product.tag.forEach((tag) => { @@ -108,6 +152,34 @@ const displayProducts = () => { tagElement.textContent = tag; productElement.querySelector('.card-tags').appendChild(tagElement); }); + product.tag.forEach((tag) => { + const tagElement = document.createElement('li'); + tagElement.classList.add('modal-tag'); + tagElement.textContent = tag; + productElement.querySelector('.modal-tags').appendChild(tagElement); + }); + productsContainer.addEventListener('click', (event) => { + const addButton = event.target.closest('.card-tags-add'); + if (addButton) { + const productElement = addButton.closest('.card'); + const modal = productElement.querySelector('.modal'); + modal.style.display = "block"; + const buttonRect = addButton.getBoundingClientRect(); + const modalTop = buttonRect.top - modal.offsetHeight; + const modalLeft = buttonRect.right - (modal.offsetWidth / 2); + modal.style.top = `${modalTop}px`; + modal.style.left = `${modalLeft}px`; + modal.classList.add('show'); + } + }); + productsContainer.addEventListener('click', (event) => { + const closeButton = event.target.closest('.close-btn'); + if (closeButton) { + const modal = closeButton.closest('.modal'); + modal.style.display = "none"; + modal.classList.remove('show'); + } + }); productsContainer.appendChild(productElement); }); } \ No newline at end of file diff --git a/week2/backery/style.css b/week2/backery/style.css index 2b6e6a3..d81cef4 100644 --- a/week2/backery/style.css +++ b/week2/backery/style.css @@ -156,7 +156,7 @@ nav { display: flex; justify-content: center; align-items: center; - width: 100%; + width: 14rem; height: 100%; } @@ -184,6 +184,7 @@ nav { } .card-tags-add { + position: relative; display: inline; border: none; background-color: transparent; @@ -199,3 +200,34 @@ nav { .card-like i { font-size: 1.2rem; } + +.modal { + display: none; + position: absolute; + z-index: 1; +} + +.modal-content { + position: relative; + background-color: #fff; + padding: 20px; + border-radius: 10px; +} + +.modal-tags { + padding: 0 0; +} + +.modal-tag { + list-style: none; + width: 12rem; + margin: 0.3rem; + padding: 0.3rem; +} + +.close-btn { + position: absolute; + top: 10px; + right: 10px; + cursor: pointer; +} From 622d2e1718e96851fdbac6433d242021125d9924 Mon Sep 17 00:00:00 2001 From: gunom Date: Mon, 17 Apr 2023 20:30:25 +0900 Subject: [PATCH 05/20] =?UTF-8?q?[FEAT]=20todomate=20-=20todo=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20js=EB=A1=9C=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EB=B0=8F=20=ED=95=A0=EC=9D=BC=20=EC=88=AB=EC=9E=90=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/todomate/index.js | 37 +++++++++++++++++ week2/todomate/style.css | 12 +++--- week2/todomate/todo.js | 30 ++++++++++++++ week2/todomate/todomate.html | 78 ++---------------------------------- 4 files changed, 76 insertions(+), 81 deletions(-) create mode 100644 week2/todomate/index.js create mode 100644 week2/todomate/todo.js diff --git a/week2/todomate/index.js b/week2/todomate/index.js new file mode 100644 index 0000000..dd43f56 --- /dev/null +++ b/week2/todomate/index.js @@ -0,0 +1,37 @@ +import data from "./todo.js"; + +const todoDataList = data + +todoDataList.forEach((todoData) => { + const todoContainer = document.querySelector(`.todo-container`) + const todobox = document.createElement('article') + todobox.classList.add('todo-box') + todobox.innerHTML = ` +
+

${todoData.category}

+ +
+
    +
+ ` + todoData.todo.forEach((todo) => { + const todoList = todobox.querySelector('.todo-list') + const todoElement = document.createElement('li') + todoElement.classList.add('todo-name') + todoElement.setAttribute('done', todo.done) + todoElement.innerHTML = todo.title; + todoList.appendChild(todoElement) + }); + todoContainer.appendChild(todobox) +}) + +const todoNumber = document.querySelectorAll('.todo-name').length +const calanderItemElement = document.querySelectorAll('.calander-item') +calanderItemElement.forEach((calanderItem) => { + if (calanderItem.classList.contains('today')) { + const todoNumberElement = calanderItem.querySelector('.todo-number') + todoNumberElement.innerHTML = todoNumber + } +}) \ No newline at end of file diff --git a/week2/todomate/style.css b/week2/todomate/style.css index 48ac461..3841fa7 100644 --- a/week2/todomate/style.css +++ b/week2/todomate/style.css @@ -42,6 +42,10 @@ body { justify-content: space-evenly; } +.today i { + color: pink; +} + .todo-number-box { display: inline-block; position: relative; @@ -103,18 +107,14 @@ body { font-weight: bolder; } -.todo-category[category="개인"] { +.todo-category[category="Work"] { background-color: aqua; } -.todo-category[category="학교"] { +.todo-category[category="Home"] { background-color: darkkhaki; } -.todo-category[category="대외활동"] { - background-color: gainsboro; -} - .todo-category button { background-color: violet; border: none; diff --git a/week2/todomate/todo.js b/week2/todomate/todo.js new file mode 100644 index 0000000..60b761c --- /dev/null +++ b/week2/todomate/todo.js @@ -0,0 +1,30 @@ +const data = [ + { + category: "Work", + todo: [ + { + title: "Learn React", + done: false + }, + { + title: "Learn Vue", + done: false + }, + ] + }, + { + category: "Home", + todo: [ + { + title: "Clean the house", + done: false + }, + { + title: "Cook dinner", + done: false + }, + ] + }, +] + +export default data \ No newline at end of file diff --git a/week2/todomate/todomate.html b/week2/todomate/todomate.html index 0e4534e..336249d 100644 --- a/week2/todomate/todomate.html +++ b/week2/todomate/todomate.html @@ -8,6 +8,7 @@ rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.3/css/all.css" /> + @@ -56,7 +57,7 @@

WEB TO DO MATE

-
+
@@ -73,80 +74,7 @@

WEB TO DO MATE

-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
-
-

Happhee

- -
-
    -
  • 베이킹 냠냠
  • -
  • 방정리
  • -
-
-
+