๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

study/100 days (100์ผ ์ฑŒ๋ฆฐ์ง€)

[์›น๊ฐœ๋ฐœ 100์ผ] Day 4 - ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ, ๋””ํ…Œ์ผ ํŽ˜์ด์ง€ UI ๊ฐœ์„ 

๋ฐ˜์‘ํ˜•



 

 

 

 

๐Ÿš€ ์š”์•ฝ

์ด์ œ ๋‹ค์‹œ ํ‰์ผ์ด๋ผ ํ•˜๋ฃจ ํ•œ ์‹œ๊ฐ„? ์ •๋„ ๋‚ผ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

์ˆ˜์š”์ผ ์ €๋…์€ ๋ฐ”์œ๋ฐ๋‹ค๊ฐ€ ๋‹ค์Œ๋‚  ์™ธ๊ทผ์ด๋ผ ์ž‘์—… ๋ชป ํ•  ์ˆ˜๋„.

 

์ž‘์—… ์‹œ๊ฐ„: 2์‹œ๊ฐ„

โœ… ์ด๋ฒคํŠธ ๋ฆฌ์ŠคํŠธ UI ๊ฐœ์„ 

โœ… ์ด๋ฒคํŠธ ๋””ํ…Œ์ผ UI ๋งˆ๋ฌด๋ฆฌ

 

 

 

๐Ÿš€ ์ด๋ฒคํŠธ ๋ฆฌ์ŠคํŠธ UI ๊ฐœ์„ 

๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ณด๊ธฐ์— ๋ณ„๋กœ์ธ ๊ฑฐ ๊ฐ™์•„์„œ ์นด๋“œํ˜•์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ๋‹ค. ์ผ๋‹จ ๋‚ด ์ƒ๊ฐ์—” ์ด๊ฒŒ ๋‚˜์€ ๋“ฏ?

sticky๋กœ ํŽ˜์ด์ง€๋งˆ๋‹ค ํƒ€์ดํ‹€ ๊ณ ์ •ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ œ๋Œ€๋กœ ์•ˆ ๋ถ™์–ด์„œ ๊ณ ์ƒ ์ข€ ํ–ˆ๋‹ค ..

 

๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ์ฝ”๋“œ

<div className="text-center flex-grow flex flex-col">
      <span className="sticky top-14 w-full py-8 bg-white">
        <h2 className="text-3xl font-bold">Events</h2>
        <p className="text-gray-600">์ด๋ฒคํŠธ ๋ฆฌ์ŠคํŠธ</p>
      </span>
      {/* <div className="flex flex-col flex-grow gap-3 w-full"> */}
      <div className="grid grid-cols-2 flex-grow gap-8 w-full">
        {events.map((event, index) => (
          <Link key={index} to={`/eventdetail/${index}`}>
            <div
              key={index}
              className="grid grid-cols-3 gap-3 text-start items-center p-10 rounded-md bg-white text-gray-900 min-h-20 border-2 border-blue-100"
            >
              <div className="col-span-2 flex flex-col gap-3">
                <span className=""><strong>{event}</strong></span>
                <div className="flex gap-1">
                  <span className="text-sm bg-blue-100 rounded-xl inline-block py-1 px-2">
                    ์ง€ํ˜œ
                  </span>
                </div>
                <span className="text-sm">2024 / 2 / 14</span>
              </div>
              <span
                key={index}
                className="flex items-center justify-center rounded-md overflow-hidden min-h-24 max-h-24"
              >
                <img src={imagePaths[0]} />
              </span>
            </div>
          </Link>
        ))}
      </div>
    </div>

 

 

 

๐Ÿš€ ์ด๋ฒคํŠธ ๋””ํ…Œ์ผ UI ๋งˆ๋ฌด๋ฆฌ

์ผ๋‹จ ์ด๋ ‡๊ฒŒ ํ•ด๋†จ๋‹ค.. ์‚ฌ์ง„์€ ๋”๋ฏธ๋ฐ์ดํ„ฐ๋กœ map ๋Œ๋ฆฌ๋Š” ์ •๋„๋งŒ ๊ตฌํ˜„ํ•ด๋†จ์Œ

์ด์ œ ์—…๋กœ๋“œ ํŽ˜์ด์ง€๋งŒ ๋งŒ๋“ค๊ณ  ์Šฌ์Šฌ ๋ฐฑ์—”๋“œ์— ์†์„ ๋Œ€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์–ด์ œ์˜€๋‚˜? ์“ฐ๋Š” ๊ฑฐ ๊นœ๋ฐ•ํ–ˆ๋Š”๋ฐ ๋ผ์šฐํŒ… ๋  ๋•Œ ์• ๋‹ˆ๋ฉ”์ด์…˜๋„ ์ถ”๊ฐ€ํ•จ.

 

๋””ํ…Œ์ผ ํŽ˜์ด์ง€ ์ฝ”๋“œ

{eventTitle}์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ eventId ๋ฐ›์•„์„œ ๋ฐฐ์—ด์—์„œ ์ฐพ์€ ํ›„ ๋„ฃ์–ด์ค€๋‹ค.

<div className="text-center flex-grow flex flex-col justify-start">
      <span className="sticky top-14 flex-grow bg-white w-full py-8">
        <h2 className="text-3xl font-bold">Event Detail</h2>
        <p className="text-gray-600">{eventTitle}</p>
      </span>
      <div className="flex flex-col flex-grow gap-6 w-full justify-start p-20 rounded-md bg-blue-100">
        <span className="flex text-start text-gray-900 flex-col flex-grow">
          ํ…์ŠคํŠธ
        </span>
        <div className="grid grid-cols-3 gap-12">
          {imagePaths.map((path, index) => (
            <span className="rounded-md overflow-hidden max-h-40 flex items-center">
              <img src={path} className="rounded-md" alt="" />
            </span>
          ))}
        </div>
      </div>
    </div>

 

 

 

๋ฐ˜์‘ํ˜•