diff --git a/public/css/custom.css b/public/css/custom.css index a26775c..eb87ae7 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -3,115 +3,115 @@ /* 에러페이지 */ /* 전체 화면을 덮는 스타일 */ .error-page { - position: fixed; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - background: #fff; - display: flex; - justify-content: center; - align-items: center; - text-align: center; - color: #000; - font-family: 'Poppins', sans-serif; - z-index: 9999 !important; + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: #fff; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + color: #000; + font-family: 'Poppins', sans-serif; + z-index: 9999 !important; } /* 오류 메시지 컨텐츠 */ .error-content { - text-align: center; - animation: fadeIn 0.8s ease-in-out; + text-align: center; + animation: fadeIn 0.8s ease-in-out; } /* 에러 이미지 */ .error-image { - width: 280px; /* 이미지 크기 */ - margin-bottom: 20px; + width: 280px; /* 이미지 크기 */ + margin-bottom: 20px; } /* 에러 코드 스타일 */ .error-content h1 { - font-size: 6rem; - font-weight: bold; - color: #ff8c00; /* 오렌지 */ - text-shadow: 2px 2px 8px rgba(255, 140, 0, 0.3); - margin-bottom: 60px; + font-size: 6rem; + font-weight: bold; + color: #ff8c00; /* 오렌지 */ + text-shadow: 2px 2px 8px rgba(255, 140, 0, 0.3); + margin-bottom: 60px; } /* 홈으로 돌아가기 버튼 */ .home-btn { - display: inline-block; - padding: 10px 28px; - font-size: 1rem; - font-weight: bold; - text-decoration: none; - color: #fff; - background: rgba(105, 108, 255, 0.9); - border-radius: 30px; - transition: 0.3s ease-in-out; - box-shadow: 0 4px 15px rgba(105, 108, 255, 0.5); + display: inline-block; + padding: 10px 28px; + font-size: 1rem; + font-weight: bold; + text-decoration: none; + color: #fff; + background: rgba(105, 108, 255, 0.9); + border-radius: 30px; + transition: 0.3s ease-in-out; + box-shadow: 0 4px 15px rgba(105, 108, 255, 0.5); } /* 버튼 호버 효과 */ .home-btn:hover { - background: linear-gradient(90deg, orange, #ff8c00); - box-shadow: 0 0 20px rgba(255, 140, 0, 1); - transform: scale(1.05); + background: linear-gradient(90deg, orange, #ff8c00); + box-shadow: 0 0 20px rgba(255, 140, 0, 1); + transform: scale(1.05); } /* 페이드 인 애니메이션 */ @keyframes fadeIn { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } } /* 휴가 */ .fc-daygrid-event { - pointer-events: none !important; + pointer-events: none !important; } /* 이벤트 선 없게 */ .fc-event { - border: none; + border: none; } /* 오전 반차 그래프 (왼쪽 절반) */ .fc-daygrid-event.half-day-am { - width: 50% !important; - height: 8px !important; - border-radius: 2px !important; - font-size: 0px !important; - margin-left: -0.5% !important; + width: 50% !important; + height: 8px !important; + border-radius: 2px !important; + font-size: 0px !important; + margin-left: -0.5% !important; } /* 오후 반차 그래프 (오른쪽 절반) */ .fc-daygrid-event.half-day-pm { - width: 50% !important; - height: 8px !important; - margin-left: auto !important; - border-radius: 2px !important; - font-size: 0px !important; - margin-right: -0.5% !important; + width: 50% !important; + height: 8px !important; + margin-left: auto !important; + border-radius: 2px !important; + font-size: 0px !important; + margin-right: -0.5% !important; } /* 연차 그래프 (풀) */ .fc-daygrid-event.full-day { - width: 100% !important; - height: 8px !important; - margin-left: auto !important; - border-radius: 2px !important; - font-size: 0px !important; + width: 100% !important; + height: 8px !important; + margin-left: auto !important; + border-radius: 2px !important; + font-size: 0px !important; } /* 공휴일,일요일 색상 */ .fc-day-sun .fc-daygrid-day-number, .fc-col-header-cell:first-child .fc-col-header-cell-cushion { - color: #ff4500 !important; + color: #ff4500 !important; } /* 토요일 색상 */ .fc-day-sat .fc-daygrid-day-number, .fc-col-header-cell:last-child .fc-col-header-cell-cushion { - color: #6076e0 !important; + color: #6076e0 !important; } /* 캘린더 날짜 왼쪽 상단 위치하게 */ .fc-daygrid-day-number { - margin-right: auto; + margin-right: auto; } /* 데이트피커 뾰족없게 */ .flatpickr-calendar:before, @@ -120,46 +120,45 @@ } /* 기본 스타일은 그대로 두고, 데이트피커 인풋의 추가 스타일 정의 */ .fc-toolbar-title { - cursor: pointer; + cursor: pointer; } /* 클릭 가능한 날짜 (오늘 + 미래) */ .fc-daygrid-day.clickable { -cursor: pointer; -transition: background-color 0.2s ease-in-out; + cursor: pointer; + transition: background-color 0.2s ease-in-out; } /* 마우스를 올렸을 때 효과 */ .fc-daygrid-day.clickable:hover { -background-color: rgba(0, 0, 0, 0.05); /* 연한 배경 효과 */ + background-color: rgba(0, 0, 0, 0.05); /* 연한 배경 효과 */ } /* 주말 (토요일, 일요일) 및 공휴일 */ .fc-day-sat-sun { -cursor: not-allowed !important; + cursor: not-allowed !important; } /* 과거 날짜 (오늘 -7일일) */ .fc-daygrid-day.past { -cursor: not-allowed !important; + cursor: not-allowed !important; } /* 기본 이벤트 스타일 */ .fc-daygrid-event { - border: none !important; - border-radius: 4px; + border: none !important; + border-radius: 4px; } /* 오전 반차 활성화 영역 (왼쪽 절반) */ .selected-event.half-day-am { - width: 50% !important; - left: 0 !important; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; + width: 50% !important; + left: 0 !important; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; } /* 오후 반차 활성화 영역 (오른쪽 절반) */ .selected-event.half-day-pm { - width: 50% !important; - margin-left: auto !important; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; + width: 50% !important; + margin-left: auto !important; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } - /* 휴가 모달 */ .vac-modal-dialog { background: none !important; @@ -172,149 +171,149 @@ cursor: not-allowed !important; padding-bottom: 20px; } .vac-modal-content { - background: #fff; - padding: 20px; - box-shadow: 0px -4px 5px rgba(0, 0, 0, 0.1), - 0px 4px 0px rgba(0, 0, 0, 0); - max-width: 500px; - width: 100%; - position: relative; + background: #fff; + padding: 20px; + box-shadow: + 0px -4px 5px rgba(0, 0, 0, 0.1), + 0px 4px 0px rgba(0, 0, 0, 0); + max-width: 500px; + width: 100%; + position: relative; } .vac-modal-body { - max-height: 140px; - overflow-y: auto; - } + max-height: 140px; + overflow-y: auto; +} .vac-modal-text { - font-size: 14px; - text-align: center; - margin-bottom: 20px; + font-size: 14px; + text-align: center; + margin-bottom: 20px; } .count-container { - display: flex; - align-items: center; - justify-content: center; - gap: 6px; - margin-bottom: 10px; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + margin-bottom: 10px; } .count-value { - font-size: 23px; - font-weight: bold; - min-width: 50px; - text-align: center; + font-size: 23px; + font-weight: bold; + min-width: 50px; + text-align: center; } .custom-button { - background: none; - border: none; - width: 55px; - height: 55px; - font-size: 26px; - color: white; - border-radius: 50%; - cursor: pointer; - transition: all 0.2s; + background: none; + border: none; + width: 55px; + height: 55px; + font-size: 26px; + color: white; + border-radius: 50%; + cursor: pointer; + transition: all 0.2s; } .vac-modal-title { - margin-bottom: 10px; + margin-bottom: 10px; } .vacation-item { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - margin-bottom: 8px; - padding: 5px 10px; - border-radius: 5px; - background: #f9f9f9; + display: flex; + align-items: center; + font-size: 16px; + font-weight: bold; + margin-bottom: 8px; + padding: 5px 10px; + border-radius: 5px; + background: #f9f9f9; } .close-btn { - position: absolute; - top: 10px; - right: 10px; - background: none; - border: none; - font-size: 18px; - cursor: pointer; + position: absolute; + top: 10px; + right: 10px; + background: none; + border: none; + font-size: 18px; + cursor: pointer; } .close-btn:hover { - color: #525252; + color: #525252; } .count-btn { - font-size: 18px; - padding: 2px 10px; - border: none; - background: #2C3E50; - color: white; - border-radius: 5px; - cursor: pointer; + font-size: 18px; + padding: 2px 10px; + border: none; + background: #2c3e50; + color: white; + border-radius: 5px; + cursor: pointer; } .count-btn:hover { - background: #1d2c44; + background: #1d2c44; } .count-btn:disabled { - background: #cccccc; - cursor: not-allowed; + background: #cccccc; + cursor: not-allowed; } .custom-button-container { - display: flex; - justify-content: flex-end; - align-items: center; + display: flex; + justify-content: flex-end; + align-items: center; } .custom-button { - background: none; - border: none; - padding: 10px; - cursor: pointer; + background: none; + border: none; + padding: 10px; + cursor: pointer; } .custom-button i { - color: #282538; - font-size: 25px; + color: #282538; + font-size: 25px; } .custom-button:hover i { - color: #ff0800; + color: #ff0800; } .custom-button:disabled { - cursor: not-allowed; - + cursor: not-allowed; } /* 휴가 사원프로필 */ .profile-list { - cursor: pointer; + cursor: pointer; } /* 오전/오후반차,저장버튼 */ /* 버튼 기본 스타일 */ .vac-btn { - transition: all 0.2sease-in-out; - border: 2px solid transparent; + transition: all 0.2sease-in-out; + border: 2px solid transparent; } /* 마우스를 올렸을 때 */ - .vac-btn:hover { - filter: brightness(90%); - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2); - transform: scale(1.05); +.vac-btn:hover { + filter: brightness(90%); + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2); + transform: scale(1.05); } /* 버튼이 눌렸을 때 */ - .vac-btn:active { - transform: scale(0.9); - box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); +.vac-btn:active { + transform: scale(0.9); + box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); } /* 선택된 (눌린) 버튼 */ .vac-btn.active { - box-shadow: 0px 4px 15px rgba(224, 224, 224, 0.3); - transform: scale(1.1); + box-shadow: 0px 4px 15px rgba(224, 224, 224, 0.3); + transform: scale(1.1); } -.vac-btn-warning{ - color: #fff; - background-color: #ffc144; - border-color: #ffc144; - box-shadow: 0 0.125rem 0.25rem 0 rgba(255, 171, 0, 0.4); - font-size: 28px; +.vac-btn-warning { + color: #fff; + background-color: #ffc144; + border-color: #ffc144; + box-shadow: 0 0.125rem 0.25rem 0 rgba(255, 171, 0, 0.4); + font-size: 28px; } /* AM 버튼 (선택된 상태) */ .vac-btn-warning.active { - background-color: #ff7300 !important; - color: #fff;; + background-color: #ff7300 !important; + color: #fff; } .vac-btn-info { color: #fff; @@ -325,197 +324,199 @@ cursor: not-allowed !important; } /* PM 버튼 (선택된 상태) */ .vac-btn-info.active { - background-color: #0b5ed7 !important; - color: white; + background-color: #0b5ed7 !important; + color: white; } /* 버튼 기본 */ .vac-btn-success { - transition: all 0.2s ease-in-out; - background-color: #871919 !important; - color: white; - border: 2px solid transparent; - font-size: 30px; + transition: all 0.2s ease-in-out; + background-color: #871919 !important; + color: white; + border: 2px solid transparent; + font-size: 30px; } /* 버튼 활성화 */ .vac-btn-success.active { - background-color: #ff0000 !important; - color: white !important; - border: 3px solid #eb9f9f !important; - box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.3); - transform: scale(1.1); + background-color: #ff0000 !important; + color: white !important; + border: 3px solid #eb9f9f !important; + box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.3); + transform: scale(1.1); } /* 버튼 비활성화 */ .vac-btn-success.disabled { - background-color: #bbb8b8 !important; - color: white !important; - cursor: not-allowed !important; - box-shadow: none; - transform: none; - opacity: 0.5; + background-color: #bbb8b8 !important; + color: white !important; + cursor: not-allowed !important; + box-shadow: none; + transform: none; + opacity: 0.5; } /* 작은 화면에서 버튼 크기 조정 */ @media (max-width: 1700px) { - .count-btn { - width: 28px; - height: 28px; - font-size: 15px; - } - .count-container { - display: flex; - align-items: center; - justify-content: center; - gap: 0px; - margin-bottom: 8px; - } - .count-value { - font-size: 20px; - } - .custom-button { - width: 45px; - height: 45px; - font-size: 22px; - } - .vac-grant-modal-title { - font-size: 18px; - } - .vac-modal-text { - font-size: 13px; - } - .vac-modal-title { - font-size: 17px; - margin-bottom: 10px; - } - .vacation-item { - font-size: 13px; - text-align: center; - margin-bottom: 5px; - } - .vac-btn { - width: 50px; - height: 50px; - font-size: 18px; - } - .vac-btn-success { - font-size: 20px; - width: 50px; - height: 50px; - } + .count-btn { + width: 28px; + height: 28px; + font-size: 15px; + } + .count-container { + display: flex; + align-items: center; + justify-content: center; + gap: 0px; + margin-bottom: 8px; + } + .count-value { + font-size: 20px; + } + .custom-button { + width: 45px; + height: 45px; + font-size: 22px; + } + .vac-grant-modal-title { + font-size: 18px; + } + .vac-modal-text { + font-size: 13px; + } + .vac-modal-title { + font-size: 17px; + margin-bottom: 10px; + } + .vacation-item { + font-size: 13px; + text-align: center; + margin-bottom: 5px; + } + .vac-btn { + width: 50px; + height: 50px; + font-size: 18px; + } + .vac-btn-success { + font-size: 20px; + width: 50px; + height: 50px; + } } @media (max-width: 1500px) { - .vac-grant-modal-title { - font-size: 14px; - } - .vac-modal-text { - font-size: 11px; - } - .vac-modal-title { - font-size: 13px; - margin-bottom: 10px; - } - .close-btn { - top: 5px; - right: 5px; - font-size: 13px; - } - .vacation-item { - font-size: 11px; - text-align: center; - margin-bottom: 5px; + .vac-grant-modal-title { + font-size: 14px; + } + .vac-modal-text { + font-size: 11px; + } + .vac-modal-title { + font-size: 13px; + margin-bottom: 10px; + } + .close-btn { + top: 5px; + right: 5px; + font-size: 13px; + } + .vacation-item { + font-size: 11px; + text-align: center; + margin-bottom: 5px; + } + .vac-btn { + width: 40px; + height: 40px; + font-size: 18px; + } + .vac-btn-success { + font-size: 20px; + width: 40px; + height: 40px; + } } - .vac-btn { - width: 40px; - height: 40px; - font-size: 18px; - } - .vac-btn-success { - font-size: 20px; - width: 40px; - height: 40px; - } -} - .grayscaleImg { - filter: grayscale(100%); + filter: grayscale(100%); } - + /* scrollbar 안보이게 */ .scrollbar-none { - scrollbar-width: none; + scrollbar-width: none; } /* project list */ .map { - top: -160px; - left: -5px; + top: -160px; + left: -5px; } @keyframes sparkle { - 0% { - color: #ffcc00; - } - 50% { - color: red; - } - 100% { - color: #ffcc00; - } + 0% { + color: #ffcc00; + } + 50% { + color: red; + } + 100% { + color: #ffcc00; + } } .bxs-map { - animation: sparkle 1s infinite; /* 1초마다 반복 */ + animation: sparkle 1s infinite; /* 1초마다 반복 */ } .popover-close { - position: absolute; - top: 1rem; - right: 1rem; - z-index: 2; - background-color: #fff !important; - box-shadow: 0 0.125rem 0.25rem rgba(161, 172, 184, 0.4); - transition: all 0.23s ease 0.1s; - transform: translate(23px, -25px); + position: absolute; + top: 1rem; + right: 1rem; + z-index: 2; + background-color: #fff !important; + box-shadow: 0 0.125rem 0.25rem rgba(161, 172, 184, 0.4); + transition: all 0.23s ease 0.1s; + transform: translate(23px, -25px); } -.popover-close:hover { - opacity: 1; - outline: none; - transform: translate(20px, -20px); +.popover-close:hover { + opacity: 1; + outline: none; + transform: translate(20px, -20px); } .end-project { - background-color: #ddd !important; + background-color: #ddd !important; } /* project list end */ /* commuters project list */ .commuter-list { - max-height: 358px; - overflow-y: auto; - scrollbar-width: none; + max-height: 358px; + overflow-y: auto; + scrollbar-width: none; } /* commuters project list end */ /* Scroll Button */ .scroll-top-btn { - bottom: 20px; - right: 21.7%; - transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease; + bottom: 20px; + right: 21.7%; + transition: + opacity 0.4s ease, + visibility 0.4s ease, + transform 0.4s ease; } .scroll-top-btn.visible { - opacity: 1; - visibility: visible; - transform: translateY(0); + opacity: 1; + visibility: visible; + transform: translateY(0); } .scroll-top-btn.hidden { - opacity: 0; - visibility: hidden; - transform: translateY(10px); + opacity: 0; + visibility: hidden; + transform: translateY(10px); } /* Scroll Button end */ @@ -524,67 +525,79 @@ cursor: not-allowed !important; /* 중앙 콘텐츠 자동 조정 */ .layout-page { - flex-grow: 1; - min-width: 0; /* flexbox 내에서 올바른 크기 계산 */ - margin-right: 20%; /* 채팅 사이드바의 너비만큼 밀리도록 설정 */ + flex-grow: 1; + min-width: 0; /* flexbox 내에서 올바른 크기 계산 */ + margin-right: 20%; /* 채팅 사이드바의 너비만큼 밀리도록 설정 */ } /* 탑바 범위조정 */ .layout-navbar-fixed .layout-navbar.navbar-detached { - width: calc(100% - 1.625rem * 2 - 16.25rem - 20%) !important; + width: calc(100% - 1.625rem * 2 - 16.25rem - 20%) !important; } - @media (min-width: 1200px) { - nav#layout-navbar { - left: calc(16.25rem - 20%) !important; - } - - .layout-navbar.navbar-detached.container-xxl { - max-width: calc(1440px - 1.625rem * 2) !important; - } + nav#layout-navbar { + left: calc(16.25rem - 20%) !important; + } + + .layout-navbar.navbar-detached.container-xxl { + max-width: calc(1440px - 1.625rem * 2) !important; + } } /* 탑바 범위조정(1200px 이하) */ @media (max-width: 1200px) { - nav#layout-navbar { - left: -20% !important; - } + nav#layout-navbar { + left: -20% !important; + } - .layout-navbar-fixed .layout-navbar.navbar-detached { - width: calc(100% - 1.625rem* 2 - 20%) !important; - } + .layout-navbar-fixed .layout-navbar.navbar-detached { + width: calc(100% - 1.625rem * 2 - 20%) !important; + } } /* 탑바 범위조정(992px 이하) */ @media (max-width: 992px) { - - .layout-navbar-fixed .layout-navbar.navbar-detached { - width: calc(100% - 2rem - 20%) !important; - } + .layout-navbar-fixed .layout-navbar.navbar-detached { + width: calc(100% - 2rem - 20%) !important; + } } /* 가로모드 모바일 디바이스 (가로 해상도가 768px 보다 작은 화면에 적용) */ -@media (max-width: 767px) { - .chat-sidebar { - display: none !important; - } +@media (max-width: 767px) { + .chat-sidebar { + display: none !important; + } - nav#layout-navbar { - left: 0 !important; - } + nav#layout-navbar { + left: 0 !important; + } - .layout-navbar-fixed .layout-navbar.navbar-detached { - width: calc(100% - 2rem) !important; - } + .layout-navbar-fixed .layout-navbar.navbar-detached { + width: calc(100% - 2rem) !important; + } - .layout-page { - margin-right: 0 !important; - } -} + .layout-page { + margin-right: 0 !important; + } +} /* 세로모드 모바일 디바이스 (가로 해상도가 576px 보다 작은 화면에 적용) */ -@media (max-width: 575px) { } +@media (max-width: 575px) { +} -/* Mobile end */ \ No newline at end of file +/* Mobile end */ + +/* BoardComment */ + +.beforeRotate { + transition: transform 0.3s ease-in-out; +} + +.rotate { + transform: rotate(45deg); + transition: transform 0.3s ease-in-out; +} + +/* BoardComment end */ diff --git a/src/components/board/BoardComment.vue b/src/components/board/BoardComment.vue index 3c32912..906d5cf 100644 --- a/src/components/board/BoardComment.vue +++ b/src/components/board/BoardComment.vue @@ -194,13 +194,3 @@ emit('editClick', props.comment); }; -