189 lines
3.7 KiB
CSS
189 lines
3.7 KiB
CSS
.todo-list {
|
|
padding: 60px;
|
|
padding-top: 10px;
|
|
width: 600px;
|
|
}
|
|
|
|
.todo-create-wrapper {
|
|
margin-bottom: 20px;
|
|
}
|
|
.todo-create-input {
|
|
font-size: 14px;
|
|
padding: 11px 15px;
|
|
min-width: 300px;
|
|
display: inline-block;
|
|
box-shadow: 0px 0px 0px 2px rgba(120, 130, 152, 0.25);
|
|
border: none;
|
|
outline: none;
|
|
transition: all 0.3s ease;
|
|
}
|
|
.todo-create-input:hover, .todo-create-input:active, .todo-create-input:focus {
|
|
box-shadow: 0px 0px 0px 2px rgb(43, 190, 185);
|
|
box-shadow: 0px 0px 0px 2px #00ad9f;
|
|
}
|
|
|
|
.todo-item {
|
|
padding: 15px 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
min-height: 43px;
|
|
}
|
|
.todo-list-title {
|
|
font-size: 17px;
|
|
font-weight: 500;
|
|
color: #5a5a5a;
|
|
flex-grow: 1;
|
|
position: relative;
|
|
z-index: 2;
|
|
margin-left: 40px;
|
|
width: 470px;
|
|
}
|
|
.todo-list-title:hover span[contenteditable="false"]:before {
|
|
content: 'click to edit';
|
|
position: absolute;
|
|
top: -6px;
|
|
left: 11px;
|
|
font-size: 11px;
|
|
font-weight: 300;
|
|
color: #adadad;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.todo-list {
|
|
padding: 15px;
|
|
padding-top: 10px;
|
|
width: auto;
|
|
}
|
|
.todo-list-title {
|
|
/* Disable Auto Zoom in Input “Text” tag - Safari on iPhone */
|
|
font-size: 16px;
|
|
max-width: 80%;
|
|
}
|
|
.todo-create-input {
|
|
appearance: none;
|
|
margin-bottom: 15px;
|
|
border: 1px solid rgba(120, 130, 152, 0.25);
|
|
/* Disable Auto Zoom in Input “Text” tag - Safari on iPhone */
|
|
font-size: 16px;
|
|
}
|
|
.todo-item button {
|
|
padding: 4px 12px;
|
|
font-size: 14px;
|
|
margin-bottom: 0px;
|
|
min-width: 63px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.todo-list-title:hover span[contenteditable="false"]:before {
|
|
content: ''
|
|
}
|
|
.todo-list-title:hover span[contenteditable="true"]:before {
|
|
content: 'click to edit';
|
|
position: absolute;
|
|
top: -20px;
|
|
left: 9px;
|
|
font-size: 11px;
|
|
font-weight: 300;
|
|
color: #adadad;
|
|
letter-spacing: 1px;
|
|
}
|
|
}
|
|
|
|
/** todo css via https://codepen.io/shshaw/pen/WXMdwE 😻 */
|
|
.todo {
|
|
display: inline-block;
|
|
position: relative;
|
|
padding: 0;
|
|
margin: 0;
|
|
min-height: 40px;
|
|
min-width: 40px;
|
|
cursor: pointer;
|
|
padding-right: 5px;
|
|
}
|
|
.todo__state {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
opacity: 0;
|
|
}
|
|
|
|
.todo__icon {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 280px;
|
|
height: 100%;
|
|
margin: auto;
|
|
fill: none;
|
|
stroke: #27FDC7;
|
|
stroke-width: 2;
|
|
stroke-linejoin: round;
|
|
stroke-linecap: round;
|
|
z-index: 1;
|
|
}
|
|
|
|
.todo__box,
|
|
.todo__check {
|
|
transition: stroke-dashoffset 0.5s cubic-bezier(0.9, 0, 0.5, 1);
|
|
}
|
|
.todo__state:checked ~ .todo-list-title {
|
|
text-decoration: line-through;
|
|
}
|
|
.todo__circle {
|
|
stroke: #27FDC7;
|
|
stroke-dasharray: 1 6;
|
|
stroke-width: 0;
|
|
transform-origin: 13.5px 12.5px;
|
|
transform: scale(0.4) rotate(0deg);
|
|
animation: none 0.5s linear;
|
|
}
|
|
|
|
@keyframes explode {
|
|
30% {
|
|
stroke-width: 3;
|
|
stroke-opacity: 1;
|
|
transform: scale(0.8) rotate(40deg);
|
|
}
|
|
100% {
|
|
stroke-width: 0;
|
|
stroke-opacity: 0;
|
|
transform: scale(1.1) rotate(60deg);
|
|
}
|
|
}
|
|
.todo__box {
|
|
stroke-dasharray: 56.1053, 56.1053;
|
|
stroke-dashoffset: 0;
|
|
transition-delay: 0.16s;
|
|
}
|
|
.todo__check {
|
|
stroke: #27FDC7;
|
|
stroke-dasharray: 9.8995, 9.8995;
|
|
stroke-dashoffset: 9.8995;
|
|
transition-duration: 0.32s;
|
|
}
|
|
|
|
.todo__circle {
|
|
animation-delay: 0.56s;
|
|
animation-duration: 0.56s;
|
|
}
|
|
|
|
.todo__state:checked ~ .todo__icon .todo__box {
|
|
stroke-dashoffset: 56.1053;
|
|
transition-delay: 0s;
|
|
}
|
|
|
|
.todo__state:checked ~ .todo__icon .todo__check {
|
|
stroke-dashoffset: 0;
|
|
transition-delay: 0.48s;
|
|
}
|
|
.todo__state:checked ~ .todo__icon .todo__circle {
|
|
animation-name: explode;
|
|
}
|
|
.todo-completed .todo__state:checked ~ .todo__icon .todo__circle {
|
|
animation-name: none;
|
|
animation: none;
|
|
}
|