Canvas UX

Canvas는 Fricle에서 앱이 놓이고 작업 흐름이 이어지는 화면 바탕이다. 이 문서는 상단 메뉴바나 Dock의 세부 기능이 아니라, 캔버스 화면에서 무엇이 어디에 붙고 사용자가 무엇을 조작하는지 정한다.

핵심 결론

Canvas는 기능 목록이 아니라 작업이 실제로 놓이는 바탕이다.

사용자는 이 화면에서 앱을 배치하고, 빈 공간에서 새 작업을 시작하고, 이동/줌으로 작업 범위를 탐색한다. 상단 메뉴바와 하단 Dock은 캔버스에 붙어 있는 진입점이지만, 세부 항목은 각각 MenuBar와 Dock 문서에서 다룬다.

화면 기준

아래 예시는 현재 구현의 큰 배치만 가져와 단순화했다. 실제 메뉴명, 앱 내부 UI, Dock 아이콘은 이 문서에서 확정하지 않고, Canvas 안에서 각 표면이 어디에 붙는지만 검수한다.

Canvas가 직접 정하는 것

작업면

Canvas는 앱이 떠 있는 단순 배경이 아니라 사용자가 일을 놓는 기준면이다. 앱의 위치, 작업 범위, 빈 공간의 의미가 이 면을 기준으로 읽힌다.

배치

배치는 앱을 캔버스 위 어느 위치에 두고, 어떤 크기와 겹침 관계로 작업할지 정하는 기준이다. Canvas는 앱의 기능보다 사용자가 만든 화면 구성이 작업 맥락으로 남도록 위치와 배열을 다룬다.

이동과 줌

사용자는 캔버스를 움직이고 확대/축소하면서 작업 범위를 탐색한다. 이 조작은 앱 내부 기능이 아니라 작업면 자체의 기본 행동이다.

빈 공간 행동

아무 것도 선택하지 않은 빈 공간은 새 앱 추가, 보기 조정, 배치 조작 같은 캔버스 범위 행동의 시작점이다. 빈 공간은 비어 있는 배경이 아니라 작업을 시작하는 자리다.

선택 상태

앱을 선택했을 때와 빈 공간을 선택했을 때의 행동은 달라야 한다. Canvas는 “무엇을 대상으로 한 행동인가”가 헷갈리지 않게 선택 기준을 분리한다.

이어지는 상태

Canvas의 위치, 앱 배치, 열린 앱, 작업 범위는 다시 열었을 때 이어져야 하는 상태 후보이다. 구체적인 저장/복원 흐름은 Workspace State Flow에서 다룬다.

Canvas UX 해석

Canvas 문서는 화면 전체를 설명하지 않고, 작업면이 어떻게 읽혀야 하는지만 정한다.

상단 메뉴바, 앱, Dock은 모두 캔버스에 붙어 보이지만 Canvas의 본문은 아니다. 이 문서에서는 사용자가 “여기가 작업면이고, 앱은 여기에 놓이며, 빈 공간에서는 새 행동을 시작할 수 있다”는 구조를 이해하게 만드는 데 집중한다.

작업면을 먼저 읽게 한다

Fricle의 화면은 앱 목록이 아니라 넓은 작업면으로 시작한다. 그래서 그리드와 빈 공간은 장식이 아니라 사용자가 앱을 배치하고 이동하며 작업 범위를 잡는 기준면이다.

붙어 있는 UI와 본문을 나눈다

상단 메뉴바와 하단 Dock은 캔버스에 붙어 있지만 캔버스 그 자체는 아니다. Canvas에서는 위치와 존재만 보여주고, 세부 동작은 MenuBarDock에서 설명한다.

앱은 특정 기능이 아니라 실행 단위다

Canvas에서 앱을 메모, 파일, 프로젝트처럼 특정 기능으로 보이면 문서의 초점이 흔들린다. 여기서는 “앱이 캔버스 위에 놓인다”는 구조만 보여주고, 앱 헤더와 내부 상태는 App UI에서 정한다.

빈 공간은 행동의 시작점이다

빈 공간은 아무 의미 없는 배경이 아니라 새 앱 추가, 보기 조정, 배치 조작 같은 캔버스 범위 행동이 시작되는 자리다. 그래서 빈공간 메뉴는 항상 떠 있는 패널이 아니라 호출 지점으로 표현한다.

세부로 넘기는 기준

화면 요소 Canvas에서 정하는 것 넘기는 문서
상단 메뉴바 캔버스 상단에 붙는 전역 진입점이라는 위치와 역할 MenuBar
캔버스 위에 놓이는 실행 단위라는 표현 App UI
하단 Dock 캔버스 하단에 붙는 빠른 진입점이라는 위치와 역할 Dock
이동/줌/선택 캔버스에서 일어나는 기본 조작이라는 범위 Mode