Files
tront.noname.company/contact-email.css
zenn 7b4badf5a4 문의 영역 개편과 공유 미리보기 및 포트폴리오 표시 개선
- 메인 문의 영역을 이메일 주소와 복사 버튼으로 구성하고 복사 결과 안내를 추가
- 문의 폼 페이지를 별도로 보존하고 입력 검증, 파일 첨부 및 완료 안내 동작을 추가
- 제거된 문의 요소를 참조하던 공통 스크립트를 정리해 초기화 오류 방지
- 이메일 복사 버튼의 특수 문자 화살표를 공통 SVG로 통일
- 공유 시 특허증 대신 트론트 로고를 사용하도록 공유 메타 정보 지정
- 공통 스크립트와 포트폴리오 CSS에 버전 URL을 적용해 이전 CDN 캐시 우회
- 프로젝트 및 특허 영역의 자료 기준 안내와 소개서 보기 링크 제거
- 프로젝트 상세 페이지 8개의 상단 썸네일 화살표를 제거하고 마우스 반응 효과 유지
- 특허증 이미지 파일을 갱신하고 문의 구조와 동작 설명을 README에 반영

검증: 공통·이메일·문의 폼 JavaScript 문법 검사 및 변경 공백 검사 통과
확인: 버전이 붙은 운영 사이트 JS와 CSS가 로컬 파일과 동일함
참고: 문의 폼은 서버 전송 없이 화면 동작만 제공하며 이메일 주소는 임시 값 유지
2026-10-06 15:59:27 +09:00

50 lines
3.8 KiB
CSS

/* A direct connection: editorial typography and a detachable copy tab. */
.contact-email-section::before { display: none; }
.contact-email-section .wrap { position: relative; }
.email-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.email-intro h2 { font-size: clamp(36px, 4.1vw, 62px); font-weight: 600; line-height: 1.3; letter-spacing: -.055em; }
.email-intro h2 em { color: var(--lime); font-style: normal; }
.email-intro > p { color: #d4defc; font-size: 13px; line-height: 1.95; padding-bottom: 5px; }
.email-channel { position: relative; margin-top: 72px; border-top: 1px solid #ffffff65; }
.email-channel::before { content: ''; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; background: var(--lime); }
.email-channel-meta, .email-channel-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.email-channel-meta { padding-top: 20px; color: #c9d6ff; font: 10px/1.5 monospace; letter-spacing: 1.1px; }
.email-address-row { display: flex; align-items: center; gap: 24px; padding: 40px 0 44px; }
.email-route { font: 44px/1 Arial, sans-serif; color: var(--lime); align-self: flex-start; margin-top: 12px; }
.email-address { font: 500 clamp(30px, 5.4vw, 82px)/1.15 Arial, sans-serif; letter-spacing: -.055em; min-width: 0; overflow-wrap: anywhere; word-break: normal; user-select: all; }
.email-copy { position: relative; flex: none; margin-left: auto; width: 116px; min-height: 116px; padding: 22px 20px 18px; background: var(--lime); color: var(--ink); display: flex; flex-direction: column; align-items: flex-start; gap: 19px; border-radius: 0; transform: rotate(-5deg); transition: transform .25s var(--ease), background .25s; }
.email-copy::before { content: ''; position: absolute; left: -7px; top: 0; bottom: 0; border-left: 1px dashed #d5ee8190; }
.email-copy img { width: 26px; height: 26px; }
.email-copy-label { font-size: 12px; font-weight: 700; }
.email-copy-index { position: absolute; top: 17px; right: 15px; font-size: 17px; }
.email-copy:hover, .email-copy:focus-visible { transform: rotate(0deg) translateY(-4px); background: #e3f7ac; }
.email-copy.is-copied { transform: rotate(0deg); background: var(--paper); }
.email-channel-footer { border-top: 1px solid #ffffff40; padding-top: 22px; }
.email-channel-note { color: #e2e9ff; font-size: 12px; }
.email-copy-status { color: #c9d6ff; font: 9px/1.7 monospace; letter-spacing: .65px; text-align: right; }
.email-copy-status.is-feedback { color: var(--lime); font-family: var(--font); letter-spacing: 0; font-size: 12px; }
.email-noscript { font-size: 12px; margin-top: 20px; }
@media (max-width: 1000px) {
.email-intro { align-items: flex-start; }
.email-intro > p { font-size: 12px; }
.email-address-row { gap: 16px; }
.email-copy { width: 96px; min-height: 104px; padding: 18px 15px; }
.email-route { font-size: 32px; margin-top: 8px; }
}
@media (max-width: 600px) {
.email-intro { flex-direction: column; gap: 22px; }
.email-intro h2 { font-size: clamp(30px, 8vw, 46px); }
.email-channel { margin-top: 42px; }
.email-channel-meta { font-size: 8px; letter-spacing: .5px; gap: 16px; }
.email-channel-meta > span:last-child { text-align: right; max-width: 115px; }
.email-address-row { flex-wrap: wrap; gap: 18px; padding: 32px 0 28px; }
.email-route { display: none; }
.email-address { flex-basis: 100%; font-size: clamp(27px, 7.5vw, 44px); }
.email-copy { margin: 8px 3px 0 auto; width: auto; min-height: 0; flex-direction: row; align-items: center; gap: 12px; padding: 15px 19px; transform: rotate(-3deg); }
.email-copy img { width: 21px; height: 21px; }
.email-copy-index { position: static; margin-left: 15px; }
.email-channel-footer { align-items: flex-start; flex-direction: column; gap: 12px; }
.email-channel-note { font-size: 11px; }
.email-copy-status { font-size: 8px; text-align: left; }
}