본문 바로가기

프로젝트 개발기/Status 200 ( Team Project )

13. TEAM 프로젝트: 헤더 디자인 및 캘린더 디자인


상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 

때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. 

(TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.)

 


1. 디자인을 할 때 고려한 것

프로그래밍을 할때 사용자의 경험을 증진하려면 어떻게 해야할까를 늘 고민하면서 기능을 구현한다.

다만 디자인은 대부분 감각에 의존해서 한다.

감각이라함은 배치와 간격에 따른 안정감, 폰트 크기의 적절함을 고려한 상태를 말한다.

쉽게 말해서 내가 보기에 안정적이고 이쁜지를 본다는 것이다. 

캘린더의 기능을 구현할 때 하나의 컬러를 설정하고 싶었지만, 이럴 경우 스케줄의 가독성이 낮아진다.

때문에 최대한 적은 색을 사용해서 스케줄 막대를 돋보이게 만들고 싶었다. 

 

2. 헤더 디자인

아이콘은 내가 직접 디자인하고 적용했다. 

상단의 로고 또한 마찬가지이다. 동적인 동작은 거의 적용하지 않았지만, 메뉴에 대해서는 동작을 적용하였다. 

 

 

 

더보기
@charset "UTF-8";

/*
	z-index: Area 단위 100/ 그 하위 200/ 그 보다 아해 300 ..... <>
*/

/* =====================================================
 * ====================== 헤더 ==========================
 * ===================================================== */
body{
	position: relative; 
}

a{
  text-decoration-line: none;
  color: black;
}

.headerArea{
	width: 100%;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	min-width : 860px;
	z-index: -1;
}
#headerIcon:after{
	content: "";
	display:block;
	clear:both;
}
#headerLogo{
	height: 32px;
	margin-top: 3px;
	margin-bottom: 3px;
	width: 200px;
	display:block;
	background-image: url(./imgSource/Logo.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: left;
	margin-left: 2em;
	float:left;
}
#headerBasicArea{
	width: 100%;
	height: 42px;
}
#headerSearchArea{
	display:none;
	width: 100%;
}
#headerSearchArea:after{
	content: "";
	display: block;
	clear: both;
}
#searchValue{
	margin-top: 3px;
	margin-bottom: 3px;
	height: 32px; 
	width: 80%;
	padding-left: 25px;
	padding-right: 25px;
	border: 1px solid lightgray;
	border-radius: 16px;
	float: left;
	margin-left: 4%;
}


#searchValueBtn{
	margin: 3px;
	height: 36px; 
	width: 36px;
	border-radius: 18px;
	border: 1px solid lightgray;
	float: left;
	background-color: white;
	background-image: url(./imgSource/SearchIcon.png);
	background-repeat: no-repeat;
	background-size: 20px 20px;
	background-position: center;
}
#searchValueBtn:hover{
	animation-duration: 0.3s;
	animation-name: chooseSearchBtn;
	animation-fill-mode: forwards;
}
#searchXBtn{
	margin: 3px;
	height: 36px; 
	width: 36px;
	border-radius: 18px;
	border: 1px solid lightgray;
	float: left;
	background-color: white;
}
#searchXBtn:hover{
	animation-duration: 0.3s;
	animation-name: chooseSearchBtn;
	animation-fill-mode: forwards;
}
@keyframes chooseSearchBtn{
	from{
		
	}
	to{
		background-size: 25px 25px;
		font-size: 1.1em;
		background-color: lightgray;
	}
}


#headerMenu{
	width: 150px;
	display: block;
	float: left;
}
.headerMenuElement{
	text-align: center;
	vertical-align: middle;
	padding-right: 20px;
	display: inline-block;
}

#headerSearchIcon{
	width: 2.3em;
	height: 38px;
	display: block;
	background-image: url(./imgSource/SearchIcon.png);
	background-size: 2.3em;
	background-repeat: no-repeat;
	float: right;
	margin-right: 2.8em;
}
#headerProfileIcon{
	width: 2.3em;
	height: 38px;
	display: block;
	background-image: url(./imgSource/ProfileIcon.png);
	background-size: 2.3em;
	background-repeat: no-repeat;
	float: right;
	margin-right: 1.0em;
}

.linkWhite{
	font-size: 0.9em;
	letter-spacing: -1px;
	font-weight: 500;
	height: 38px;
	line-height: 38px;
}
.linkWhite:hover{
	color: rgb(0, 101, 131);
}
#headerProfileArea{
	margin-top: -4px;
	position: relative;
	z-index: 100;
}
.headerUlist{
	border-radius: 0 0 0.5em 0.5em;
	width: 121.6px;
	background-color: white;
	display: none;
	z-index: 200;
	background-color: rgba(245, 245, 245);
	position:absolute;
	margin-left: calc(100% - 132.4px);
}
.headerlist{
	padding: 0.5em;
	margin-left: 0.5em;
	margin-right: 0.5em;
	margin-top: 0.7em;
	margin-bottom: 0.7em;
	font-size: 0.8em;
	letter-spacing: -0.5px;
}
#headerProfileArea{
	position:relative;
}
#headerForm{
	position: relative;
}

 

3. 캘린더 디자인

 

캘린더의 기본 형태이다. 

각각의 기능에 따라 표시되는 영역이나 아이콘을 심플하게 디자인했다.

아쉬운 것은 좌측 항목이 정보량에 비해 작세 설정된 것이다.

이를 해결하는 가장 좋은 방법은 마우스 커서 혹은 클릭으로 창을 새창에 분리하는 방법인데, 시간 문제로 진행이 불가능 했다. 

 

4. CSS 

더보기
@charset "utf-8";
::-webkit-scrollbar        { width: 8px; height: 8px; }
::-webkit-scrollbar-track  { background-color: #ffffff;  }
::-webkit-scrollbar-thumb  { background-color: #c0c0c0;  }
#calendar{
    width: 100%;
	z-index: 100;
	margin-top: 27px;
}
.yearAreaHead>.yearAreaHeadTitle:first-child{
	color: crimson;
}
.yearAreaHead>.yearAreaHeadTitle:last-child{
	color: #0000fa;
}
.yearAreaBody>.yearBoxYoil:first-child{
	color: crimson;
}
.yearAreaBody>.yearBoxYoil:nth-child(7n+1){
	color: crimson;
}
.yearAreaBody>.yearBoxYoil:nth-child(7n){
	color: #0000fa;
}

.monthAreaHead>.monthAreaHeadTitle:first-child{
	color: crimson;
}
.monthAreaHead>.monthAreaHeadTitle:last-child{
	color: #0000fa;
}
.monthAreaBody>.monthBox:first-child{
	color: crimson;
}
.monthAreaBody>.monthBox:nth-child(7n+1){
	color: crimson;
}
.monthAreaBody>.monthBox:nth-child(7n){
	color: #0000fa;
}

.Xbutton{
	-ms-transform: rotate(45deg); /* IE 9 */
    -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */
    transform: rotate(45deg);
}
.topBoderCenter{
	border-top: 2px solid rgb(255,255,255);
	padding-top: 4px;
}
.titleBlock{
	padding-left: 5px;
	font-size: 1vw;
	margin-top: 20px;
}
/* =====================================================
 * === 켈린더 헤더 ========================================
 * ===================================================== */
.calendarHeader{
    width: 100%;
    height: 60px;
    z-index: 200;
    min-width : 860px;
}
.calendarHeadMenu{
	width: 40px;
  	height: 40px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 10px;
	display:block;
	background-image: url(./imgSource/CalendarMenuIcon.png);
	background-repeat: no-repeat;
	background-size: contain;
	float: left;
}
.calendarHeadNow{
    width: 40px;
  	height: 40px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 20px;
	display:block;
	background-image: url(./imgSource/ClaendarTodayMenu.png);
	background-repeat: no-repeat;
	background-size: contain;
	float: left;
}
.calendarHeadPre{
   width: 40px;
  	height: 40px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 15px;
	display:block;
	background-image: url(./imgSource/CalendarPrevious.png);
	background-repeat: no-repeat;
	background-size: contain;
	float: left;
}
.calendarHeadNext{
    width: 40px;
  	height: 40px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 10px;
	display: block;
	background-image: url(./imgSource/CalendarNext.png);
	background-repeat: no-repeat;
	background-size: contain;
	float: left;
}
.calendarHeadDate{
    width: 400px;
  	height: 40px;
  	margin-top: 10px;
	margin-bottom: 10px;
    margin-left: 50px;
    display: block;
    float: left;
    font-size: 1.8em;
    letter-spacing: -1.5px;
    line-height: 40px;
    font-weight: 600;
}
.calendarHeadSearch{
  	width: 40px;
  	height: 40px;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-right: 16px;
	display:block;
	background-image: url(./imgSource/CalendarSearch.png);
	background-repeat: no-repeat;
	background-size: contain;
	float: right;
}
.calendarHeadSelect{
    width: 59px;
  	height: 40px;
  	margin-top: 10px;
	margin-bottom: 10px;
	margin-right: 15px;
  	border: 0;
  	display:block;
  	float: right;
}
.selectForm{
	width: 57px;
	height: 38px;
	border: 1px solid lightgray;
	border-radius: 3px;
	font-size: 0.9em;
}
.calendarSearch{
	display:none;
}

.calendarHeader::after{
	content: "";
	display: block;
	clear:both;
}
.calendarHeadBar::after{
	content: "";
	display: none;
	clear: both;
}
/* =====================================================
 * === 켈린더 서치 ========================================
 * ===================================================== */
 
.calendarSearchBarLeft{
	width: calc(100% - 200px);
	display:block;
	float: left;
	margin-top: 10px;
	margin-bottom: 10px;
	
}
.calendarSearchBarRight{
	min-width: 200px;
	display:block;
	float: right;
}
.calendarSearchBarArea{
	margin-top: 3px;
	margin-bottom: 3px;
	height: 32px; 
	width: 80%;
	padding-left: 25px;
	padding-right: 25px;
	margin-left: 4%;
	float: right;
	line-height: 32px;
	position: relative;
}
.calendarSearchBar{
	
	width: 92%;
	padding-left: 25px;
	padding-right: 25px;
	border: 1px solid lightgray;
	border-radius: 16px;
	margin-left: 4%;
	line-height: 32px;
}
.calendarSearchBtn{
	width: 32px;
	height: 32px;
	border: 1px solid lightgray;
	border-radius: 18px;
	margin-top: 13px;
	margin-bottom: 13px;
	margin-left: 8px;
	margin-right: 8px;
	display:block;
	background-image: url(./imgSource/SearchIcon.png);
	background-repeat: no-repeat;
	background-size: 20px 20px;
	background-position: center;
	float: left;
}
.calendarXBtn{
	width: 32px;
	height: 32px;
	border: 1px solid lightgray;
	border-radius: 18px;
	margin-top: 13px;
	margin-bottom: 13px;
	margin-right: 44px;
	display:block;
	text-align: center;
	line-height: 32px;
	background-repeat: no-repeat;
	background-size: contain;
	float: left;
	font-size: 0.9em;
}
.calendarSearchResult{
	position: absolute;
	z-index: 600;
	width: 92%;
	margin-left: 4%;
	border: 1px solid lightgray;
	border-radius: 10px;
	line-height: 32px;
	background-color: white;
	display: none;
}
.scheduleSearchLists{
	height: 28px; 
	width: calc(100% - 50px);
	padding-right: 25px;
	padding-left: 25px;
	display: block;
	float: left;
	font-size: 0.9em;
	padding-top: 6px;
	padding-bottom: 6px;
}
.scheduleSearchLists:hover{
	background-color: rgb(245,245,245);
}
.calendarXBtn:hover{
	animation-duration: 0.3s;
	animation-name: chooseHeadSearchBtn;
	animation-fill-mode: forwards;
}
.calendarSearchBtn:hover{
	animation-duration: 0.3s;
	animation-name: chooseHeadSearchBtn;
	animation-fill-mode: forwards;
}
@keyframes chooseHeadSearchBtn{
	from{
		
	}
	to{
		background-size: 25px 25px;
		font-size: 1.1em;
		background-color: lightgray;
	}
}
/* =====================================================
 * === 켈린더 보디 ========================================
 * ===================================================== */
.calendarBody{
	padding-top: 20px;
    width: 100%;
    display: flex;
    height: auto;
    font-size: 0.8em;
    font-weight: 500;
    min-width : 860px;
}
.centerBox{
    flex: 8;
    height: 100%;
    margin-right: 15px;
    min-width: 850px;
    min-height: 720px;
}
.leftBox{
	flex: 2;
    height: 100%;
    min-width: 230px;
    min-height: 720px;
    margin-right: 2px;
}

/* =====================================================
 * === 투두리스트 =========================================
 * ===================================================== */

.toDoListDiv{
    height: 50%;
    max-height: 50%;
    padding-left: 10px;
    min-width: 200px;
    min-height: 360px;
    max-height: 460px;
}
.toDoListDiv::after{
	content: "";
	display: block;
	clear: both;
}
.toDoListMain{
	padding-right: 15px;
	overflow: auto;
    scrollbar-color: #c0c0c0 #f5f5f5;
    scrollbar-width: thin;
    max-height: 384px;
}
.groupMain{
	padding-right: 15px;
	overflow: auto;
    scrollbar-color: #c0c0c0 #f5f5f5;
    scrollbar-width: thin;
    max-height: 384px;
}
.toDoListMain::after{
	content: "";
	display: block;
	clear: both;
}
.leftBox::after{
	content: "";
	display: block;
	clear: both;
}
.toDoListTitleHead{
	width: calc(100% - 7px);
	font-size: 1.2em;
	padding-top: 5px;
	padding-bottom: 5px;
	letter-spacing: -0.6px;
	margin-top: 3px;
}
.toDoListTitle{
	width: calc(100% - 7px);
	height: 25px;
	line-height: 25px;
	font-size: 1.2em;
	letter-spacing: -0.6px;
	margin-top: 8px;
	margin-bottom: 8px;
	border: 0;
	font-size: 1em;
}
.toDolistTitleSecond{
	float: left;
}
.toDoLists::after{
	content: "";
	display: block;
	clear: both;
}
.toDoListMenu{
	position:sticky;
}
.toDoListMenu::after{
	content: "";
	display: block;
	clear: both;
}
.toDoListCheckBox{
	height: 27px;
	width: 27px;
	float: left;
	margin-right: 2px;
	margin-top: 8px;
	margin-bottom: 8px;
	background-image: url(./imgSource/checkbefore.png);
	background-repeat: no-repeat;
	background-size: 12px 12px;
	background-position: center;;
	opacity: 0.7;
}
.toDoListFixBtn{
	height: 27px;
	width: 27px;
	float: left;
	margin-left: 2px;
	margin-top: 8px;
	margin-bottom: 8px;
	background-image: url(./imgSource/fix.png);
	background-repeat: no-repeat;
	background-size: 15px 15px;
	background-position: center;
	opacity: 0.5;
}
.toDoListFixBtn:hover{
	opacity: 1;
}
.toDoListAdd{
	width: 25px;
  	height: 25px;
	margin-top: 10px;
	margin-bottom: 10px;
	background-image: url(./imgSource/TodolistPlus.png);
	background-repeat: no-repeat;
	background-size: contain;
	display:block;
	float: left;
}
.toDoListCom{
	width: 25px;
  	height: 25px;
	margin-top: 14px;
	margin-bottom: 6px;
	margin-right: 10px;
	background-image: url(./imgSource/TodolistTrash.png);
	background-repeat: no-repeat;
	background-size: contain;
	display:block;
	float: right;;
}
.toDoListTitle:after{
	content: "";
	display: block;
	clear:both;
}
.toDoListDate{
	width: 100%;
	min-height: 30px;
	margin-top: 5px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	margin-bottom: 5px;
}
.toDoListTime, .toDoListImportance{
	width: calc(50% - 2px);
	min-height: 32px;
	line-height: 32px;
	margin-left: 2px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(235,235,235);
	margin-bottom: 5px;
}
.toDoListTimeTitle, .toDoListImportanceTitle{
	width: calc(50% - 2px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 2px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	margin-bottom: 5px;
}
.toDoListTimeTitle, .toDoListTime, .toDoListImportanceTitle, .toDoListImportance{
	margin-bottom: 10px;
}

.toDoListDelBtn{
	width: calc(50% - 2px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 2px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: #c5e2a9;
	margin-bottom: 5px;
	
}
.toDoListAddBtn{
	width: calc(50% - 2px);
	min-height: 32px;
	line-height: 32px;
	margin-left: 2px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: #c5e2a9;
	margin-bottom: 5px;
}
.toDoListDelBtn:hover, .toDoListAddBtn:hover{
	background-color: #81c147;
}


/* =====================================================
 * === 그룹리스트 =========================================
 * ===================================================== */

.groupDiv{
    height: 50%;
    padding-left: 10px;
    min-width: 200px;
    min-height: 360px;
    margin-bottom: 10px;
}
.groupTitle{
	font-size: 1.2em;
	padding-top: 10px;
	letter-spacing: -0.6px;
}
.groupAdd{
	width: 25px;
  	height: 25px;
	margin-top: 10px;
	margin-bottom: 10px;
	background-image: url(./imgSource/TodolistPlus.png);
	background-repeat: no-repeat;
	background-size: contain;
	display:block;
}
.groupDataName{
	width: calc(100% - 10px);
	min-height: 25px;
	display: block;
	border: 0;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	background-color: rgb(245,245,245);
	margin-bottom: 7px;
	margin-top: 7px;
	font-size: 0.85em;
}

.groupDataColor{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 5px;
	margin-bottom: 10px;
	display: block;
	float: left;
	border: 0;
	position: relative;
	z-index: 300;
	background-color: rgb(245,245,245);
}
.groupDataInfos{
	position: relative;
}
.groupDataSearchable{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-bottom: 10px;
	display: block;
	margin-left: auto;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	font-size: 0.9em;
	position: relative;
	z-index: 300;
}
.groupDataSearchable::after{
	content: "";
	display: block;
	clear:both;
}


.groupDataMembers{
	width: calc(100% - 10px);
	min-height: 25px;
	display: block;
	border: 0;
	margin-top: 10px;
	margin-bottom: 10px;
	padding-left: 5px;
	background-color: rgb(245,245,245);
}
.groupDataMemebersListName{
	margin-top: 5px;
	width: 50%;
	min-height: 26px;
	line-height: 26px;
	display:block;
	text-align: left;
	float: left;
	font-size: 0.85em;
	text-overflow: ellipsis;
	margin-bottom: 5px;
}

.groupDataMemebersListNameDummy{
	width: 50%;
	margin-top: 5px;
	margin-bottom: 5px;
	display: block;
	min-height: 26px;
	line-height: 26px;
	float: left;
}
.groupDataMembersList{
	width: calc(100% - 10px);
	font-size: 0.9em;
	list-style-type: disc;
	padding-left: 5px;
	margin-right: 10px;
	margin-top: 4px;
	margin-bottom: 4px;
	content:"";
}

.groupDataMembersList::after{
	content: "";
	display: block;
	clear: both;
}
.groupDataMembersListFixModify{
	width: 50%;
	margin-bottom: 5px;
	min-height: 24px;
	line-height:24px;
	display: block;
	border-radius: 10px;
	text-align: left;
	font-size: 0.85em;
	float: left;
	background-color: rgb(245,245,245);
}
.groupDataMembersListFixModify:hover{
	color: #6a8518;
}
.groupDataMembersListFixDelete{
	width: 50%;
	min-height: 24px;
	margin-bottom: 5px;
	line-height: 24px;
	display: block;
	border-radius: 10px;
	text-align: left;
	font-size: 0.85em;
	float: left;
	background-color: rgb(245,245,245);
}
.groupDataMemebersListFix::after{
	content:"";
	display: block;
	clear:both;
}
.groupDataMembersListFixDelete:hover{
	color: #ff3409;
}
.groupDataAdd{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-bottom: 10px;
	margin-top: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	border-radius: 10px;
	font-size: 0.85em;
}
.groupDataModifierListTitle>groupDataModifierListName:first-child{
	margin-top: 10px;
}

.groupDataAdd2{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 0px;
	margin-bottom: 10px;
	border: 0;
	background-color: rgb(245,245,245);
}

.groupDataClose{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 5px;
	margin-bottom: 10px;
	border: 0;
	background-color: rgb(245,245,245);
}
.groupDataModifierList{
	font-size: 0.9em;
}
.groupNodifierBlock{
	width: calc(100% - 10px);
	min-height: 25px;
	line-height: 25px;
	display: block;
	margin-top: 10px;
	border: 0;
	padding-left: 5px;
	background-color: rgb(245,245,245);
}
.groupDataModifierListName{
	font-size: 0.9em;
	min-height: 25px;
	line-height: 25px;
	display: block;
	margin-top: 5px;
	margin-bottom: 5px;
	border: 0;
	margin-left: 5px;
	margin-right: 5px;
	
}
.groupNodifierBlock>.groupDataModifierListName:last-child{
	padding-bottom: 10px;
}
.groupNodifierBlock>.groupDataModifierListName:first-child{
	padding-top: 10px;
}
/* =====================================================
 * === 스케줄 추가 폼 ======================================
 * ===================================================== */
.calendarSchedule{
	position:relative;
	display:block;
 }
.scheduleForm{
	margin-top: 10px;
	border-radius: 5px;
	width: 57%;
	background-color: white;
	height: 308px;
	z-index: 500;
	background-color: rgba(255,255,255);
	position:absolute;
	letter-spacing: -0.6px;
	max-width: 484.5px;
	border: 1px solid lightgray;
	display: none;
}
.scheduleFormX{
	min-height: 26px;
	border-radius: 8px;
	border: 1px solid rgba(235,235,235);
	margin: 0 auto;
	margin-left: 10px;
	margin-right: 10px;
	line-height: 26px;
	font-weight: 500;
	background-color: rgba(235,235,235);
}
.scheduleFormX:hover{
	background-color: rgba(235,235,235);
}
.scheduleFormTitle{
	min-width: 279.5px;
	min-height: 30px;
	margin-top: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	padding-left: 5px;
}
.scheduleFormAllday{
	min-width: 86px;
	min-height: 32px;
	line-height: 32px;
	margin-left:15px;
	margin-right:15px;
	margin-top: 10px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	border-radius: 10px;
	background-color: rgb(235,235,235);
}
.scheduleFormGroups{
	min-width: 284.5px;
	min-height: 30px;
	margin-top: 52px;
}
.scheduleFormGroupsTitle{
	width: 80px;
	min-height: 32px;
	line-height: 32px;
	text-align: center;
	display: block;
	float: left;
}
.scheduleFormGroupSelect{
	min-width: 150px;
	min-height: 30px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.scheduleFormColor{
	min-width: 50px;
	min-height: 30px;
	margin-left:5px;
	display: block;
	float: left;
	border: 0;
}
.scheduleFormGroups:after{
	content: "";
	display: block;
	clear:both;
}
.scheduleFormDiv{
	width: 80px;
	min-height: 32px;
	line-height: 28px;
	margin-top: 10px;
	text-align: center;
	display: block;
	float: left;
}
.scheduleFormStart{
	min-width: 279.5px;
	min-height: 30px;
	margin-top: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.scheduleFormStartTime{
	min-width: 86px;
	min-height: 32px;
	line-height: 32px;
	margin-left:15px;
	margin-right:15px;
	margin-top: 10px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.scheduleFormEnd{
	min-width: 279.5px;
	min-height: 30px;
	margin-top: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.scheduleFormEndTime{
	min-width: 86px;
	min-height: 32px;
	line-height: 32px;
	margin-left:15px;
	margin-right:15px;
	margin-top: 10px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.scheduleFormContent{
	min-width: 279.5px;
	min-height: 115px;
	margin-top: 10px;
	margin-left: 80px;
	display: block;
	float: left;
	border: 0;
	resize: none;
	background-color: rgb(245,245,245);
	padding-left: 5px;
}
.scheduleFormSubmit{
	min-width: 86px;
	min-height: 32px;
	line-height: 32px;
	margin-left:15px;
	margin-right:15px;
	margin-top: 93px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	border-radius: 10px;
	background-color: rgb(235,235,235);
}
.scheduleFormStart{
	letter-spacing: -0.15px;
	padding-left: 5px;
}
.scheduleFormEnd{
	letter-spacing: -0.15px;
	padding-left: 5px;
}
/* =====================================================
 * === 월간캘린더 =========================================
 * ===================================================== */

.calendarDiv{
    width: 100%;
    height: 100%;
    margin-bottom: 30px;
    padding-top: 10px;
}
.monthAreaHead{
	width: 100%;
	display:flex;
    flex-wrap: wrap;
    justify-content: stretch;
}
.monthAreaHeadTitle{
    height: 31px;
    text-align: center;
    display: inline-block;
    line-height: 31px;
    border-top: 1px solid lightgray;
    border-left: 1px solid lightgray;
    font-size: 12px;
    flex: 1 1;
   	flex-basis: calc(100%/7.08);
}
.monthAreaHeadTitle:nth-child(7n){
    border-right: 1px solid lightgray;
}
.monthAreaBody{
    width: 100%;
    min-width: 830px;
    display:flex;
    flex-wrap: wrap;
    justify-content: stretch;
}
.monthBox{
    min-height: 120px;
    height: 10vw;
    padding-top: 5px;
    display: inline-block;
    text-align: center;
    border-bottom: 1px solid lightgray;
    border-left: 1px solid lightgray;
    font-size: 13px;
   	flex: 1 1;
   	flex-basis: calc(100%/7.08);
}
.monthBox:after{
	content: "";
	display: block;
	clear: both;
}
.monthBoxBody:after{
	content: "";
	display: block;
	clear: both;
}
.monthBox:nth-child(7n){
    border-right: 1px solid lightgray;
}
.monthBoxTitleBox{
    width: 20px;
    height: 20px;
    display: inline-block;
    text-align: center;
    border-radius: 50%;
}
.monthBoxTitleBox:hover{
    background-color: lightgrey;
}
.dateTag{
	display: none;
}
.monthBoxTitleBoxOne{
    height: 20px;
    display: inline-block;
    text-align: center;
    border-radius: 50%;
}
.monthBoxTitleBoxOne:hover{
    background-color: lightgrey;
}
.groupElement::after{
	content: "";
	display: block;
	clear: both;
}

.yearLayoutBox{
    width: 27%;
    vertical-align: top;
    display: inline-block;
    margin-left: 3%;
    margin-right: 3%;
    margin-bottom: 2em;
}
.yearLayoutBox:nth-child(3n){
    margin-right: 0;
}
.yearInMonthTitle{
    font-size: 12px;
    padding-bottom: 10px;
    padding-left: 0.5vw;
}

.yearAreaHead{
	width: 100%;
}
.yearAreaHeadTitle{
	width: calc(100%/7);
    height: 3vw;
    text-align: center;
    display: inline-block;
    line-height: 3vw;
    font-size: 10px;
    padding-bottom: 0.5vw;
}
.yearAreaBody{
    width: 100%;
}
.yearBox{
    width: calc(100%/7);
    height: 4vw;
    display: inline-block;
    text-align: center;
    font-size: 11px;
}
.yearBoxTitleBox{
    width: 20px;
    height: 20px;
    display: inline-block;
    text-align: center;
    border-radius: 50%;
}
.yearBoxTitleBox:hover{
    background-color: lightgrey;
}
.yearBoxTitleBoxOne{
    padding: 1px;
    text-align: center;
    border-radius: 50%;
}
.yearBoxTitleBoxOne:hover{
    background-color: lightgrey;
}

.yearBoxDummy{
    width: calc(100%/7);
    display: inline-block;
    text-align: center;
    font-size: 0;
}
.yearBoxTitleBoxDummy{
    font-size: 0;
}

/*Schedule*/
.monthBoxBody{
	width: 100%;
	position: relative;
	z-index: 400;
}
.scheduleInfos{
	display:none;
}
.scheduleBox{
	width: 100%;
	height: 20px;
	text-align: left;
	position: absolute;
	z-index: 450;
	border-radius: 3px;
}
.cmpbzero{
	display: none;
}
.cmpb0{
	display: none;
}
.cmpb1{
	width: 95%;
}
.cmpb2{
	width: 195%;
}
.cmpb3{
	width: 295%;
}
.cmpb4{
	width: 396%;
}
.cmpb5{
	width: 497%;
}
.cmpb6{
	width: 598%;
}
.cmpb7{
	width: 699%;
}
.cmpb1:hover{
	filter: hue-rotate(20deg);
}
.cmpb2:hover{
	filter: hue-rotate(20deg);
}
.cmpb3:hover{
	filter: hue-rotate(20deg);
}
.cmpb4:hover{
	filter: hue-rotate(20deg);
}
.cmpb5:hover{
	filter: hue-rotate(20deg);
}
.cmpb6:hover{
	filter: hue-rotate(20deg);
}
.cmpb7:hover{
	filter: hue-rotate(20deg);
}
.scheduleTitleInSpan{
	height: 20px;
	width: 90%;
	text-overflow: ellipsis;
	display: block;
	color: black;
	float: left;
}
.scheduleBox:after{
	content: "";
	display: block;
	clear: both;
}
.smallColor{
	width: 10px;
}

.lineThrough{
	text-decoration-line: line-through;
}
.hiddenElement{
	display: none;
}
.scheduleGroupColor{
	width: 4px;
	height: 100%;
	display: block;
	float: left;
	margin-right: 5px;
	border-radius: 3px 0 3px 0;
}
.sDetail{
	position: relative; 
}
.groupDataTitle{
	display: flex;
}
.groupDataTitle::after{
	content: "";
	display: block;
	clear: both;
}
.groupDataCheckBox{
	min-width: 35px;
	margin-right: 2px;
	margin-top: 7px;
	margin-bottom: 7px;
	text-align: center;
	line-height: 35px;
	border-radius: 2px;
	background-color: #81c147;
	font-size: 0.85em;
}
.groupDataName{
	width: calc(100% - 74px);
}
.groupDataTool{
	min-width: 35px;
	margin-left: 2px;
	margin-top: 7px;
	margin-bottom: 7px;
	background-image: url(./imgSource/fix.png);
	background-repeat: no-repeat;
	background-size: 30px 30px;
	background-position: center;
	border-radius: 2px;
	opacity: 0.6;
}
.groupDataTool:hover{
	opacity: 1;
}
.groupDataToolDummy{
	min-width: 35px;
	margin-left: 2px;
	margin-top: 10px;
	margin-bottom: 10px;
}
.groupDataMemberSearch{
	width: calc(100% - 10px);
	min-height: 25px;
	line-height: 25px;
	display: block;
	border: 0;
	margin-bottom: 10px;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	margin-top: 10px;
	background-color: rgb(245,245,245);
}
.groupDataMemberAdd{
	border-radius: 5px;
	margin-top: 10px;
	width: 100%;
	position: relative;
	font-size: 0.9em;
}

.memerListId{
	margin-top: 6px;
	width: calc(100% - 60px);
	min-height: 32px;
	line-height: 32px;
	text-align: left;
	float: left;
	font-size: 0.9em;
}
.memerListIdTitle{
	margin-top: 6px;
	min-width: 60px;
	min-height: 28px;
	line-height: 28px;
	text-align: center;
	float: left;
	font-size: 0.9em;
}

.memerListName{
	margin-bottom: 6px;
	width: calc(100% - 60px);
	min-height: 28px;
	line-height: 28px;
	text-align: left;
	float: left;
	font-size: 0.9em;
}
.memerListNameTitle{
	margin-bottom: 6px;
	min-width: 60px;
	min-height: 28px;
	line-height: 28px;
	text-align: center;
	float: left;
	font-size: 0.9em;
}
.memerListAddBtn{
	width: calc(100% - 10px);
	min-height: 32px;
	line-height: 32px;
	text-align: center;
	float: left;
	border-radius: 10px;
	background-color: rgb(245,245,245);
}
.memerListAddBtn:hover{
	background-color: #81c147;
}
.groupDataMemberResult{
	position: relative;
	display: block;
	position: absolute;
	z-index: 500;
	width: 100%;
	max-height: 126px;
	overflow: auto;
    scrollbar-color: #c0c0c0 #f5f5f5;
    scrollbar-width: thin;
}
.memerListData::after{
	content: "";
	display: block;
	clear: both;
}

.memerListBox::after{
	content: "";
	display: block;
	clear: both;
}
.groupDataMemberResult::after{
	content: "";
	display: block;
	clear: both;
}
.memerListBox{

	background-color: white;
	width: 100%;
}
.groupDataDelBtn{
	min-width: calc(50% - 5px);
	min-height: 32px;
	line-height: 32px;
	margin-right: 5px;
	margin-bottom: 10px;
	margin-top: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	border-radius: 10px;
	font-size: 0.85em;
}
.groupDataDelBtn:hover{
	background-color: #ff3409;
}
.groupDataAdd:hover{
	background-color: rgb(235,235,235);
}

.groupDataMembersList::after{
	content:"";
	display: block;
	clear:both;
}

.toDoListContent{
	width: calc(100% - 6px);
	min-height: 25px;
	line-height: 25px;
	display: block;
	border: 0;
	padding-top: 5px;
	padding-bottom: 5px;
	padding-left: 5px;
	margin-top: 5px;
	margin-bottom: 5px;
	background-color: rgb(245,245,245);
}
.yearBoxBody{
	display: block;
}
.toDoListView{
	display: none;
}
.yearformEl{
	width: 100%;
	position: relative;
}
.yearBoxBody{
	position: relative;
}
.yearFormSC{
	position: absolute;
	height: 20px;
	line-height: 20px;
	width: 100%;
	z-index: 500;
	margin: auto;
	text-align: center;
	font-size: 2em;
	font-weight: 600;
	margin-top: -60%;
	color: #ffd700;
}
.checkedTodoStmt{
	opacity: 0.6;
	text-decoration:line-through;
}
.schedulInfoArea{
	margin-top: 10px;
	border-radius: 5px;
	background-color: white;
	width: 486.5px;
	height: 308px;
	z-index: 500;
	background-color: rgba(255,255,255);
	position:absolute;
	letter-spacing: -0.6px;
	max-width: 484.5px;
	border: 1px solid lightgray;
	display: none;
}
.schedulInfoHeadTitle{
	height: 25px;
	float: left;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 15px;
	line-height: 25px;
	font-size: 1.2em;
	
}
.schedulInfoQuit{
	height: 25px;
	width: 25px;
	text-align: center;
	border-radius: 12.5px;
	border: 1px solid rgba(245,245,245);
	margin: 0 auto;
	margin-left: 10px;
	margin-right: 15px;
	margin-top: 10px;
	margin-bottom: 10px;
	line-height: 26px;
	font-weight: 500;
	background-color: rgba(245,245,245);
	float: right;
}
.schedulInfoQuit:hover{
	background-color: rgba(235,235,235);
	font-weight: 600;
}
.schedulInfoFix{
	height: 25px;
	width: 25px;
	margin-left: 3px;
	margin-right: 10px;
	margin-top: 10px;
	margin-bottom: 10px;
	background-image: url(./imgSource/fix.png);
	background-repeat: no-repeat;
	background-size: 20px 20px;
	background-position: center;
	border-radius: 2px;
	float: right;
}
.schedulInfoFix:hover{
	background-size: 22px 22px;
}
.schedulInfoDelete{
	height: 25px;
	width: 25px;
	border-radius: 12.5px;
	margin-left: 3px;
	margin-right: 10px;
	margin-top: 10px;
	margin-bottom: 10px;
	background-image: url(./imgSource/TodolistTrash.png);
	background-repeat: no-repeat;
	background-size: 20px 20px;
	background-position: center;
	border-radius: 2px;
	float: right;
}
.schedulInfoDelete:hover{
	background-size: 22px 22px;
}
.schedulInfoHead::after{
	content:"";
	display: block;
	clear: both;
}
.schedulInfoTitle{
	width: 264.5px;
	height: 30px;
	line-height: 30px;
	margin-top: 10px;
	margin-left: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	padding-left: 5px;
	font-size: 0.95em;
}
.schedulInfoColor{
	width: 80px;
	height: 30px;
	margin-top: 10px;
	margin-left: 15px;
	border: 0;
	display: block;
	float: left;
	border: 0;
}
.blockBoxAllDay{
	min-width: 85px;
	min-height: 32px;
	line-height: 32px;
	margin-left:10px;
	margin-right:15px;
	margin-top: 10px;
	text-align: center;
	display: block;
	float: left;
	border: 0;
	border-radius: 10px;
	background-color: rgb(235,235,235);
	visibility: hidden;
}
.blockBox{
	width: 80px;
	height: 30px;
	margin-top: 10px;
	margin-left: 15px;
	line-height: 30px;
	text-align: center;
	border: 0;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
}
.blockBoxDummy{
	width: 80px;
	height: 30px;
	margin-top: 10px;
	margin-left: 15px;
	line-height: 30px;
	text-align: center;
	border: 0;
	display: block;
	float: left;
	border: 0;
}
.schedulInfoStartDay, .schedulInfoEndDay{
	min-width: 264.5px;
	min-height: 30px;
	margin-top: 10px;
	line-height: 30px;
	margin-left: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	padding-left: 5px;
	font-size: 0.95em;
}
.schedulInfoStartTime, .schedulInfoEndTime{
	width: 85px;
	height: 30px;
	margin-top: 10px;
	margin-left: 10px;
	line-height: 30px;
	text-align: center;
	border: 0;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	font-size: 0.95em;
}
.schedulInfoContentText{
	width: 444.5px;
	height: 75px;
	margin-top: 10px;
	margin-left: 15px;
	margin-right: 15px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	padding-left: 5px;
	padding-right: 5px;
	overflow: auto;
}
.schedulInfoGroupName{
	min-width: 264.5px;
	min-height: 30px;
	line-height: 30px;
	margin-top: 10px;
	margin-left: 10px;
	display: block;
	float: left;
	border: 0;
	background-color: rgb(245,245,245);
	padding-left: 5px;
	font-size: 0.95em;
}​