728x90
화면 만들어보기 #2 기본 화면 그려보기
이제 처음으로 화면을 그려 보자!!!!!
화면을 직접 구현해 보는건 언제나 많은 고민이 따르는 듯
매우 심플한 레이아웃을 가지고 있다.
이제 각 부분에 한땀한땀 디자인을 넣는것 보다 구글링해서 찾은 이쁜 Tailwind Style 에 컴포넌트를 넣어보자
Search Bar 의 경우
https://tailwindcomponents.com/component/search-bar
를 참고 하였다.
<!-- component -->
<!-- This is an example component -->
<div class="pt-2 relative mx-auto text-gray-600">
<input class="border-2 border-gray-300 bg-white h-10 px-5 pr-16 rounded-lg text-sm focus:outline-none"
type="search" name="search" placeholder="Search">
<button type="submit" class="absolute right-0 top-0 mt-5 mr-4">
<svg class="text-gray-600 h-4 w-4 fill-current" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px"
viewBox="0 0 56.966 56.966" style="enable-background:new 0 0 56.966 56.966;" xml:space="preserve"
width="512px" height="512px">
<path
d="M55.146,51.887L41.588,37.786c3.486-4.144,5.396-9.358,5.396-14.786c0-12.682-10.318-23-23-23s-23,10.318-23,23 s10.318,23,23,23c4.761,0,9.298-1.436,13.177-4.162l13.661,14.208c0.571,0.593,1.339,0.92,2.162,0.92 c0.779,0,1.518-0.297,2.079-0.837C56.255,54.982,56.293,53.08,55.146,51.887z M23.984,6c9.374,0,17,7.626,17,17s-7.626,17-17,17 s-17-7.626-17-17S14.61,6,23.984,6z" />
</svg>
</button>
</div>
이 코드를 바로 쓰기에는 문법에 다 걸리기 때문에 몇몇 부분을 바꿔주어야 한다.
class -> className
xmlns:xlink -> xmlnsXlink
xml:space -> xmlSpace
style="..." => style={{...}}
수정을 해주고 npm run dev를 실행하면 검색 Input이 나타 난다.
Data List View 는
https://tw-elements.com/docs/standard/data/tables/
사이트를 참고 하였고, 가장 심플한 부분을 사용했다.
Pagination 도 위 사이트에서 참고 하였다.
https://tw-elements.com/docs/standard/navigation/pagination/
위 3가지 컴포넌트를 우선 form 태그로 감싸주자.
export default function Home() {
return (
<main className="flex min-h-screen flex-col items-center justify-between p-24">
<form>
<div className="pt-2 relative mx-auto text-gray-600">
<input
className="border-2 border-gray-300 bg-white h-10 px-5 pr-16 rounded-lg text-sm focus:outline-none"
type="search" name="search" placeholder="Search"/>
<button type="submit" className="absolute right-0 top-0 mt-5 mr-4">
<svg className="text-gray-600 h-4 w-4 fill-current" xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px"
viewBox="0 0 56.966 56.966" style={{background: "new 0 0 56.966 56.966"}}
xmlSpace="preserve"
width="512px" height="512px">
<path
d="M55.146,51.887L41.588,37.786c3.486-4.144,5.396-9.358,5.396-14.786c0-12.682-10.318-23-23-23s-23,10.318-23,23 s10.318,23,23,23c4.761,0,9.298-1.436,13.177-4.162l13.661,14.208c0.571,0.593,1.339,0.92,2.162,0.92 c0.779,0,1.518-0.297,2.079-0.837C56.255,54.982,56.293,53.08,55.146,51.887z M23.984,6c9.374,0,17,7.626,17,17s-7.626,17-17,17 s-17-7.626-17-17S14.61,6,23.984,6z"/>
</svg>
</button>
</div>
<div className="flex flex-col">
<div className="overflow-x-auto sm:-mx-6 lg:-mx-8">
<div className="inline-block min-w-full py-2 sm:px-6 lg:px-8">
<div className="overflow-hidden">
<table
className="min-w-full text-left text-sm font-light text-surface dark:text-white">
<thead
className="border-b border-neutral-200 font-medium dark:border-white/10">
<tr>
<th scope="col" className="px-6 py-4">#</th>
<th scope="col" className="px-6 py-4">First</th>
<th scope="col" className="px-6 py-4">Last</th>
<th scope="col" className="px-6 py-4">Handle</th>
</tr>
</thead>
<tbody>
<tr className="border-b border-neutral-200 dark:border-white/10">
<td className="whitespace-nowrap px-6 py-4 font-medium">1</td>
<td className="whitespace-nowrap px-6 py-4">Mark</td>
<td className="whitespace-nowrap px-6 py-4">Otto</td>
<td className="whitespace-nowrap px-6 py-4">@mdo</td>
</tr>
<tr className="border-b border-neutral-200 dark:border-white/10">
<td className="whitespace-nowrap px-6 py-4 font-medium">2</td>
<td className="whitespace-nowrap px-6 py-4">Jacob</td>
<td className="whitespace-nowrap px-6 py-4">Thornton</td>
<td className="whitespace-nowrap px-6 py-4">@fat</td>
</tr>
<tr className="border-b border-neutral-200 dark:border-white/10">
<td className="whitespace-nowrap px-6 py-4 font-medium">3</td>
<td className="whitespace-nowrap px-6 py-4">Larry</td>
<td className="whitespace-nowrap px-6 py-4">Wild</td>
<td className="whitespace-nowrap px-6 py-4">@twitter</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<nav aria-label="Page navigation example">
<ul className="list-style-none flex">
<li>
<a
className="relative block rounded bg-transparent px-3 py-1.5 text-sm text-surface transition duration-300 hover:bg-neutral-100 focus:bg-neutral-100 focus:text-primary-700 focus:outline-none focus:ring-0 active:bg-neutral-100 active:text-primary-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-primary-500 dark:active:bg-neutral-700 dark:active:text-primary-500"
href="#"
>Previous</a
>
</li>
<li>
<a
className="relative block rounded bg-transparent px-3 py-1.5 text-sm text-surface transition duration-300 hover:bg-neutral-100 focus:bg-neutral-100 focus:text-primary-700 focus:outline-none active:bg-neutral-100 active:text-primary-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-primary-500 dark:active:bg-neutral-700 dark:active:text-primary-500"
href="#"
>1</a
>
</li>
<li aria-current="page">
<a
className="relative block rounded bg-transparent px-3 py-1.5 text-sm text-surface transition duration-300 hover:bg-neutral-100 focus:bg-neutral-100 focus:text-primary-700 focus:outline-none active:bg-neutral-100 active:text-primary-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-primary-500 dark:active:bg-neutral-700 dark:active:text-primary-500"
href="#"
>2</a
>
</li>
<li>
<a
className="relative block rounded bg-transparent px-3 py-1.5 text-sm text-surface transition duration-300 hover:bg-neutral-100 focus:bg-neutral-100 focus:text-primary-700 focus:outline-none active:bg-neutral-100 active:text-primary-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-primary-500 dark:active:bg-neutral-700 dark:active:text-primary-500"
href="#"
>3</a
>
</li>
<li>
<a
className="relative block rounded bg-transparent px-3 py-1.5 text-sm text-surface transition duration-300 hover:bg-neutral-100 focus:bg-neutral-100 focus:text-primary-700 focus:outline-none active:bg-neutral-100 active:text-primary-700 dark:text-white dark:hover:bg-neutral-700 dark:focus:bg-neutral-700 dark:focus:text-primary-500 dark:active:bg-neutral-700 dark:active:text-primary-500"
href="#"
>Next</a
>
</li>
</ul>
</nav>
</form>
</main>
);
}
이런 생각 한것과는 다르게 몇몇 부분이 생각과는 다르게 나타났다.
다음에 고쳐봐야지
728x90
'project > 공공데이터 공통표준용어 검색' 카테고리의 다른 글
[Project] 공공데이터 공통표준용어 검색 만들기 - FastAPI ResponseBody Model 만들기 (0) | 2024.03.26 |
---|---|
[Project] 공공데이터 공통표준용어 검색 만들기 - 화면 만들어보기 #3 fetch 로 데이터 불러와서 뿌려주기 (0) | 2024.03.25 |
[Project] 공공데이터 공통표준용어 검색 만들기 - 화면 만들어보기 #1 WebStorm NextJs 설정 (0) | 2024.03.25 |
[Project] 공공데이터 공통표준용어 검색 만들기 - fastapi 엑셀 파일 불러와서 뿌려주기 #4 - 검색 (0) | 2024.03.19 |
[Project] 공공데이터 공통표준용어 검색 만들기 - fastapi 엑셀 파일 불러와서 뿌려주기 #2 (0) | 2024.03.14 |