#ux
24개의 게시물
헤더 레이아웃 정리와 뷰 전환 시 스크롤 초기화
🤖 1126 in / 1633 out / 2759 total tokens 달력 헤더의 물음표 버튼과 오늘 날짜 표시를 왼쪽 상단으로 재배치했다. 기존엔 가로로 나란히 있던 걸 flex-direction: column으로 세로 축으로 바꾸고, 내부에서 다시 row로 묶어서 정렬했다. UI가 한층 정돈된 느낌이다. 탭 전환할 때 스크롤 위치가 그대로 남
통계·설정 탭 첫 진입 시 튜토리얼 자동 시작 기능 추가
🤖 785 in / 695 out / 1480 total tokens 사용자가 통계와 설정 탭에 처음 진입할 때 튜토리얼이 자동으로 실행되도록 구현했다. 기존 대시보드 튜토리얼과 동일한 패턴을 따라가며, 각 탭별로 적절한 가이드를 제공한다. FLAG_BITS에 stats(4)와 settings(8) 플래그를 추가했다. createHasSeenStor
공노기에 스포트라이트 튜토리얼을 달았다
🤖 2585 in / 1318 out / 3903 total tokens 처음 방문한 사용자가 앱을 어떻게 쓰는지 모르겠다고 해서, 도움말 버튼과 튜토리얼을 추가했다. 헤더의 ? 버튼을 누르면 4단계로 핵심 기능을 안내하는 스포트라이트 오버레이가 뜬다. users 테이블에 tutorial_flags 컬럼을 추가해 어떤 튜토리얼을 봤는지 저장한다. 클
기록 입력 버튼 위치 조정 및 미래 날짜 차단
🤖 625 in / 671 out / 1296 total tokens DaySheet 컴포넌트에서 기록 입력 버튼을 목록 아래쪽으로 이동시켰다. 사용자 흐름상 기존 기록을 먼저 확인하고 새로운 기록을 추가하는 게 자연스럽다고 판단했다. 미래 날짜에 기록을 남기지 못하도록 차단 로직을 추가했다. customAlert 스토어를 새로 import해서 미래
캘린더 근무시간 색상 구분과 설정 미저장 감지
🤖 878 in / 732 out / 1610 total tokens 캘린더에 근무시간을 한눈에 파악할 수 있도록 색상 구분을 추가했다. 정규 근무는 초록, 자동 공제 구간은 회색, 초과 근무는 주황색으로 표시된다. 주말과 공휴일은 별도 색상으로 구분해 시각적 혼선을 줄였다. 설정 페이지에서 변경사항이 저장되지 않은 상태로 탭을 이동하면 확인 팝업이
설정 탭 이탈 시 미저장 변경사항 확인 팝업 구현
🤖 845 in / 687 out / 1532 total tokens 사용자가 설정을 변경하고 저장하지 않은 채 다른 탭으로 이동하려 할 때 확인 팝업을 띄워주는 기능을 추가했다. settingsDirty 스토어를 새로 만들어 설정 변경 여부를 추적한다. Settings 컴포넌트에서 초기 설정값을 JSON으로 저장해두고, 현재 값과 비교하여 변경사항이
모바일에서 버튼 연타 시 화면 확대되던 문제 해결
🤖 726 in / 594 out / 1320 total tokens 공무원 근무기록 앱에서 출퇴근 버튼을 빠르게 연타하면 화면이 확대되는 문제가 있었다. 특히 iOS Safari에서 더블탭 줌 동작이 트리거되어 사용자 경험을 해쳤다. iOS 10부터는 viewport meta 태그의 user-scalable=no를 무시하기 때문에 CSS로 접근해야
출퇴근 시간 팝업에 빠른 조절 버튼 추가
🤖 1180 in / 699 out / 1879 total tokens 출퇴근 시간 등록할 때 매번 타이핑하거나 시계를 조작하는 게 귀찮았다. 그래서 확인 팝업에 -1분, -5분, -10분, -60분 버튼을 달았다. 실수로 늦게 찍었거나 식사 시간을 빼고 싶을 때 한 번에 조절 가능하다. adjustTime 함수를 새로 만들었다. HH:MM 문자열을
출퇴근 시간 확인 팝업 추가
🤖 980 in / 654 out / 1634 total tokens 출퇴근 등록 전 시간을 확인하고 수정할 수 있는 팝업을 추가했다. 기존에는 출근/퇴근 버튼을 누르면 현재 시간으로 즉시 등록됐다. 실수를 방지하고 시간을 조정할 수 있도록 중간에 확인 단계를 넣었다. 팝업이 뜨면 현재 시간이 자동으로 입력되어 있고, 필요하면 time input으로
공노기로 이름 변경하고 토스트도 깔끔하게
🤖 994 in / 590 out / 1584 total tokens 앱 이름을 '공녹'에서 '공노기'로 변경했다. 스플래시 화면의 alt 텍스트와 표시 이름 모두 수정했다. 토스트 메시지도 간소화했다. '출근 기록됨', '퇴근 기록됨'에서 '출근', '퇴근'으로 줄였다. 메시지가 길어지면 줄바꿈이 생기고 토스트 크기가 커지는데, 핵심만 전달하면 된
캘린더 셀 UX 개선: 출근시간 제거하고 초과근무 복원
🤖 835 in / 738 out / 1573 total tokens 캘린더 셀에서 출근시간 표시를 제거하고 초과근무 시간 표시를 복원했다. 기존에는 출근시간이 "8시 00분" 형식으로 표시됐는데, 좁은 셀 안에서 "8시간"처럼 보이는 문제가 있었다. 실제 근무시간이 아니라 출근 시각인데도 말이다. 사용자 입장에서는 헷갈릴 수밖에 없다. 그래서 출근
모바일 캘린더 상세 영역, 바텀시트로 전환
🤖 1439 in / 687 out / 2126 total tokens 모바일에서 날짜 클릭 후 상세 정보가 보이지 않던 문제를 해결했다. 390px 화면 기준으로 캘린더 그리드와 헤더, 바텀바를 합치면 100vh를 훌쩍 넘는데, 기존 인라인 상세 영역은 그 아래에 렌더링되어 사실상 안 보이는 상태였다. 해결책으로 DaySheet를 인라인 배치에서
원터치 출퇴근, 퀵 식사 기록, 설정 UX까지 한 번에 개선했다
🤖 841 in / 842 out / 1683 total tokens 출퇴근 기록을 매번 모달 열어서 하던 방식에서 벗어났다. 하단바에 스마트 버튼을 두고 현재 상태에 따라 '지금 출근' 또는 '지금 퇴근'으로 자동 전환되게 만들었다. 기록 완료 후에는 토스트로 확인시켜주고, 수정 링크도 함께 제공한다. 식사 기록도 비슷한 맥락이다. 오늘 날짜를 선
DaySheet 퀵 액션 버튼으로 출퇴근·식사 한 번에
🤖 991 in / 641 out / 1632 total tokens 오늘 날짜를 선택하면 출근, 퇴근, 식사 버튼이 바로 노출된다. 버튼 하나로 시간 기록이나 식비를 바로 등록할 수 있어 매일 반복하는 입력이 훨씬 가벼워졌다. 출근과 퇴근은 누르면 현재 시간이 기록되고, 식사는 설정에서 지정한 기본값으로 식비가 누적된다. 식사 버튼 위에는 뱃지로 횟
출근/퇴근 스마트 버튼 및 헤더 날짜 표시 구현
🤖 1052 in / 1697 out / 2749 total tokens 하단바에 오늘 날짜가 아닌 경우 버튼을 숨기고 기록 상태에 따라 출근, 퇴근, 기록수정 버튼이 자동으로 전환되도록 로직을 수정합니다. 캘린더 뷰가 아닐 때는 기존 + 기록입력 버튼을 유지하여 기존 사용성을 유지하며, 버튼 클릭 시 수정 링크가 포함된 토스트 알림을 띄워 사용자의
스마트 출퇴근 버튼으로 기록 입력 UX 개선
🤖 1052 in / 805 out / 1857 total tokens 출퇴근 기록 앱의 핵심 기능인 하단바 버튼을 상태에 따라 스마트하게 전환되도록 만들었다. 오늘 날짜를 기준으로 출근 기록이 없으면 '출근', 있으면 '퇴근', 둘 다 있으면 '기록수정' 버튼이 노출된다. 오늘이 아닌 날짜를 선택하면 버튼을 아예 감춰서 잘못된 날짜에 기록하는 실수를
캘린더 셀에 탭/클릭 피드백 추가
🤖 442 in / 547 out / 989 total tokens 캘린더 셀을 눌렀을 때 즉각적인 시각 피드백이 들어간다. UX 디테일 챙기기. :active 상태에서 scale(.93)로 살짝 작아지면서 accent 배경색이 적용된다. 눌리는 느낌. 선택된 날짜의 숫자 링(.dnum-ring)에는 popIn 애니메이션이 0.2초간 재생된다. 툭
모바일 UX 강화 및 v0.29.0 릴리스
🤖 1705 in / 1432 out / 3137 total tokens 모바일 UX를 대폭 강화하여 v0.29.0을 릴리스했습니다. usePullToRefresh 훅과 SwipeableCard 컴포넌트를 통해 당겨서 새로고침 및 좌우 스와이프 액션을 구현했습니다. 모바일 기기의 진동 피드백(useHaptic 훅)을 통합하여 사용자 경험을 더 직관적으
접근성 강화: Skip Links, ARIA, Focus Trap 구현 (v0.28.1)
🤖 1012 in / 1773 out / 2785 total tokens Skip Links와 ARIA Live Region, 포커스 트랩을 구현하여 접근성을 대폭 강화하고 버전을 0.28.1으로 업그레이드합니다. 메인 콘텐츠로 바로 이동할 수 있는 Skip Links를 배치하고, SaveRouteDialog에 포커스 트랩과 ESC 키 핸들링 기능을
BottomQuickBar 렌더링 조건 완화로 검색창 항상 표시
🤖 413 in / 643 out / 1056 total tokens 모바일 환경에서 BottomQuickBar가 너무 제한적으로 노출되던 문제를 수정했다. 기존엔 즐겨찾기와 최근 검색이 모두 비어있을 때만 검색창이 표시됐다. 사용자가 즐겨찾기를 등록하거나 최근 검색이 쌓이면 검색창이 사라지는 UX상 좋지 않은 동작이었다. 관련 조건을 제거해 검색
검색창 readOnly 속성 제거로 직접 입력 가능하게 수정
🤖 381 in / 842 out / 1223 total tokens 검색창에서 텍스트를 직접 입력할 수 있도록 readOnly 속성을 제거했다. 기존에는 검색 입력창을 클릭하면 검색 오버레이만 열리고, 실제 텍스트 입력은 불가능했다. 사용자 입장에서는 입력창인데 타이핑이 안 되니 자연스럽지 않은 경험이었을 것. 이제 검색창에 직접 텍스트를 입력할
자유 경유지 검색으로 검색 경험 개선 (v0.15.0)
🤖 1297 in / 1101 out / 2398 total tokens 이제 '홍대입구역', '이태원 맛집', '다이소 강남점' 같은 자유 텍스트로 경유지 검색이 가능하다. Naver Local Search API를 활용해 키워드 기반 검색을 지원한다. 기존엔 카테고리 기반 검색만 됐는데, searchType 자동 감지 로직을 추가해 카테고리와 키
v2.2.0 릴리스 + 외부 게임 패키지 레지스트리 구현
🤖 1226 in / 792 out / 2018 total tokens 이번 커밋에서 v2.2.0을 릴리스하고, 동시에 동적 게임 레지스트리 기능을 추가했다. v2.2.0은 대시보드 UX 개선이 핵심이다. 히스토리 라인 차트로 과거 실행 중앙값 추이를 Canvas로 시각화했고, Zone별 색상 코딩(FLOW는 초록, TOO_HARD는 빨강, TOO_
대시보드 시각화 개선 — 바 차트를 라인으로, diff 비교 기능 추가
🤖 999 in / 893 out / 1892 total tokens v2.1.0은 대시보드 UX 개선에 집중한 릴리즈다. 히스토리 차트를 바 형태에서 라인 차트로 교체했고, FLOW/TOO_HARD 구간엔 배경색을 입혀 시각적 구분을 강화했다. 5초 기준선(점선)과 zone별 색상 데이터 포인트도 추가했다. 결과 섹션엔 zone별 border 색상