Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c7b562a
[Init] Copy Default Files
YongHoonJJo Dec 14, 2019
66cf838
[Mission01] todo list에 todoItem을 키보드로 입력하여 추가
YongHoonJJo Dec 15, 2019
182d82e
[Mission01] todo list의 체크박스를 클릭하여 complete 상태로 변경. (li tag 에 complete…
YongHoonJJo Dec 16, 2019
b73dc37
[Mission01] todo list의 x버튼을 이용해서 해당 엘리먼트를 삭제
YongHoonJJo Dec 16, 2019
3106328
[Mission01] todo list를 더블클릭 했을 때 input 모드로 변경. esc키를 누르면 수정되지 않은 채로 다…
YongHoonJJo Dec 16, 2019
79be037
[Mission01] todo list의 item갯수를 count한 갯수를 리스트의 하단에 보여주기
YongHoonJJo Dec 16, 2019
6522617
[Mission01] todo list의 상태값을 확인하여, 해야할 일과, 완료한 일을 클릭하면 해당 상태의 아이템만 보여주기
YongHoonJJo Dec 17, 2019
481aa2b
[Mission01] Fix typo (더블클릭시 input 모드로 변경 후 내용저장)
YongHoonJJo Dec 17, 2019
38bc2ee
[Mission01][Feedback] 파일 분리 적용 / live-server 설치
YongHoonJJo Dec 18, 2019
b54eea1
[Mission01][Feedback] 세미콜론 컨벤션 통일, 주석 제거
YongHoonJJo Dec 18, 2019
a2b00c4
[Mission01][Feedback] 클래스 추가 element.classList.add() 로 처리
YongHoonJJo Dec 18, 2019
026ad54
[Mission01][Feedback] script 태그 body 최하단에 위치에 따른 'DOMContentLoaded' 이…
YongHoonJJo Dec 18, 2019
370bdd6
[Mission01][Feedback] 네이밍 컨벤션 피드백 적용
YongHoonJJo Dec 18, 2019
2bdbdf4
[Mission01][Feedback] string literal 상수로 관리
YongHoonJJo Dec 18, 2019
6cb9d84
[Mission01][Feedback] html string 하나의 template 변수로 관리
YongHoonJJo Dec 18, 2019
bc3a291
[Mission01][Feedback] tag.classList.contains() 적용 / filter 관련 코드 리팩토링
YongHoonJJo Dec 18, 2019
bfb7296
[Mission01] item 수정 중 ESC 눌렀을 때, filter 별로 보이도록 수정
YongHoonJJo Dec 18, 2019
23f018b
[Mission02][init] mission01 내용 copy
YongHoonJJo Dec 25, 2019
79ba9e0
[Mission02][Add] APIs 추가
YongHoonJJo Dec 25, 2019
eaf7b2b
[Mission02][Update] Api 를 통한 데이터 처리
YongHoonJJo Dec 25, 2019
aa14b33
[Mission02][Update] try-catch 문 적용
YongHoonJJo Dec 25, 2019
b0b8bc5
[Mission2/Feedback] Set Feedback on @s280493
YongHoonJJo Jan 6, 2020
64f6307
[Mission2/Feedback] Set Feedback on @EastjunDev
YongHoonJJo Jan 7, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
334 changes: 334 additions & 0 deletions mission001/YongHoonJJo/css/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,334 @@
html,
body {
margin: 0;
padding: 10px;
}

button {
margin: 0;
padding: 0;
border: 0;
background: none;
font-size: 100%;
vertical-align: baseline;
font-family: inherit;
font-weight: inherit;
color: inherit;
-webkit-appearance: none;
appearance: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

body {
font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
line-height: 1.4em;
background: #f5f5f5;
color: #4d4d4d;
min-width: 230px;
max-width: 550px;
margin: 0 auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 300;
}

:focus {
outline: 0;
}

.hidden {
display: none;
}

.todoapp {
background: #fff;
margin: 130px 0 40px 0;
position: relative;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2),
0 25px 50px 0 rgba(0, 0, 0, 0.1);
}

.todoapp input::-webkit-input-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}

.todoapp h1 {
position: absolute;
top: -125px;
width: 100%;
font-size: 60px;
text-align: center;
color: dimgray;
font-weight: 100;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}

.new-todo,
.edit {
position: relative;
margin: 0;
width: 100%;
font-size: 24px;
font-family: inherit;
font-weight: inherit;
line-height: 1.4em;
border: 0;
color: inherit;
padding: 6px;
box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

.new-todo {
padding: 16px 16px 16px 60px;
border: none;
background: rgba(0, 0, 0, 0.003);
box-shadow: inset 0 -2px 1px rgba(0,0,0,0.03);
}

.main {
position: relative;
z-index: 2;
border-top: 1px solid #e6e6e6;
}

.toggle-all {
width: 1px;
height: 1px;
border: none;
opacity: 0;
position: absolute;
right: 100%;
bottom: 100%;
}

.toggle-all + label {
width: 60px;
height: 34px;
font-size: 0;
position: absolute;
top: -52px;
left: -13px;
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}

.toggle-all + label:before {
content: '❯';
font-size: 22px;
color: #e6e6e6;
padding: 10px 27px 10px 27px;
}

.toggle-all:checked + label:before {
color: #737373;
}

.todo-list {
margin: 0;
padding: 0;
list-style: none;
}

.todo-list li {
position: relative;
font-size: 24px;
border-bottom: 1px solid #ededed;
}

.todo-list li:last-child {
border-bottom: none;
}

.todo-list li.editing {
border-bottom: none;
padding: 0;
}

.todo-list li.editing .edit {
display: block;
width: calc(100% - 43px);
padding: 12px 16px;
margin: 0 0 0 43px;
}

.todo-list li.editing .view {
display: none;
}

.todo-list li .toggle {
text-align: center;
width: 40px;
height: auto;
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
border: none;
-webkit-appearance: none;
appearance: none;
}

.todo-list li .toggle {
opacity: 0;
}

.todo-list li .toggle + label {
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
background-repeat: no-repeat;
background-position: center left;
}

.todo-list li .toggle:checked + label {
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
}

.todo-list li label {
word-break: break-all;
padding: 15px 15px 15px 60px;
display: block;
line-height: 1.2;
transition: color 0.4s;
}

.todo-list li.completed label {
color: #d9d9d9;
text-decoration: line-through;
}

.todo-list li .destroy {
display: none;
position: absolute;
top: 0;
right: 10px;
bottom: 0;
width: 40px;
height: 40px;
margin: auto 0;
font-size: 30px;
color: #cc9a9a;
margin-bottom: 11px;
transition: color 0.2s ease-out;
cursor: pointer;
}

.todo-list li .destroy:hover {
color: #af5b5e;
}

.todo-list li .destroy:after {
content: '×';
}

.todo-list li:hover .destroy {
display: block;
}

.todo-list li .edit {
display: none;
}

.todo-list li.editing:last-child {
margin-bottom: -1px;
}

.count-container {
color: #777;
padding: 10px 15px;
height: 20px;
text-align: center;
border-top: 1px solid #e6e6e6;
}

.count-container:before {
content: '';
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 50px;
overflow: hidden;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2),
0 8px 0 -3px #f6f6f6,
0 9px 1px -3px rgba(0, 0, 0, 0.2),
0 16px 0 -6px #f6f6f6,
0 17px 2px -6px rgba(0, 0, 0, 0.2);
}

.todo-count {
float: left;
text-align: left;
}

.todo-count strong {
font-weight: 300;
}

.filters {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
right: 0;
left: 0;
}

.filters li {
display: inline;
}

.filters li a {
color: inherit;
margin: 3px;
padding: 3px 7px;
text-decoration: none;
border: 1px solid transparent;
border-radius: 3px;
}

.filters li a:hover {
border-color: rgba(175, 47, 47, 0.1);
}

.filters li a.selected {
border-color: rgba(175, 47, 47, 0.2);
}

.clear-completed, html .clear-completed:active {
float: right;
position: relative;
line-height: 20px;
text-decoration: none;
cursor: pointer;
}

.clear-completed:hover {
text-decoration: underline;
}

.info {
margin: 65px auto 0;
color: #bfbfbf;
font-size: 10px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
text-align: center;
}

.info p {
line-height: 1;
}

.info a {
color: inherit;
text-decoration: none;
font-weight: 400;
}

.info a:hover {
text-decoration: underline;
}
41 changes: 41 additions & 0 deletions mission001/YongHoonJJo/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>이벤트 - TODOS</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<section class="todoapp">
<div>
<h1>TODOS</h1>
<input
id="new-todo-title"
class="new-todo"
placeholder="할일을 추가해주세요"
autofocus
/>
</div>
<div class="main">
<input class="toggle-all" type="checkbox" />
<ul id="todo-list" class="todo-list"></ul>
</div>
<div class="count-container">
<span class="todo-count">총 <strong>0</strong> 개</span>
<ul class="filters">
<li>
<a class="all selected" href="#/">전체보기</a>
</li>
<li>
<a class="active" href="#/active">해야할 일</a>
</li>
<li>
<a class="completed" href="#/completed">완료한 일</a>
</li>
</ul>
</div>
</section>
<script type="module" src="js/App.js"></script>
</body>
</html>
Loading