사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
.config()에 transition을 적으세요. 그러면 모바일 앱 셸이 네이티브 앱처럼 화면 전환을 애니메이션으로 보여 줍니다./chat은 1, /chat/[chatId]는 2입니다.stack, bottomUp, fade, scaleOut, none.stack과 bottomUp 둘뿐입니다.transition을 적지 않으면 플랫폼과 경로 깊이에 따라 알아서 정해집니다:gesture는 플랫폼 기본값에 맡기세요. iOS는 루트 아래 페이지에서 켜고, Android와 웹은 끕니다. 각 플랫폼 사용자가 이미 기대하는 동작입니다.gesture를 적었다면 그 값을 그대로 씁니다.transition이 none이면 false입니다. 드래그로 움직일 애니메이션이 없기 때문입니다.true, 나머지는 모두 false입니다.stack의 터치는 8px을 움직일 때까지 보류되고, 그다음 확실히 더 많이 움직인 축(1.25배)에 따라 드래그나 스크롤로 고정됩니다.

fade, scaleOut, none 페이지에서는 gesture: true가 아무 일도 하지 않습니다. 이 전환들은 드래그 핸들러를 아예 붙이지 않습니다..config() 객체 하나가 페이지 프레임 전체를 정합니다. 애니메이션, 제스처, 비워 둘 공간, 캐시까지입니다. layout에 적으면 그 아래 모든 라우트가 물려받습니다.stack과 bottomUp 전환에만 붙습니다.true는 48px, false와 미지정은 0입니다.true는 똑같이 48px입니다."top"이나 "bottom"은 한쪽만 비웁니다.none이면 아무것도 비우지 않습니다.safeArea 객체만 키 단위로 합쳐집니다.none, 제스처 없음, cache: true가 기본이라 탭이 즉시 바뀝니다.stack 전환 아래 페이지는 스와이프 뒤로가기를 위해 살아 있으므로, 카메라·폴링·키 입력은 akanjs/webkit의 usePageFocusEffect로 묶으세요. usePageActivity()는 페이지가 current·prev·pending·hidden 중 어디에 있는지 알려 줍니다. 페이지 안 에이전트에는 현재 페이지의 도구와 state만 보입니다.cache 라우트는 세션 내내 페이지 하나로 유지됩니다.topInset 값(px)입니다.bottomInset 값(px)입니다.h-(--akan-bottom-inset)은 바의 높이를 페이지가 비워 둔 공간과 정확히 맞춥니다..config()에 bottomInset을 적습니다.keyboardSticky를 붙인 Layout.BottomInset으로 감싸면 Akan이 keyboard accessory layer로 옮겨 줍니다.contentAnchor="bottom"을 붙입니다. 다음 절에서 다룹니다..config()에 bottomInset이 있으면 BottomInset은 그 높이를 쓰고, 없으면 자기 내용의 높이를 잽니다.h-(--akan-bottom-inset)을 쓰면 바와 비워 둔 공간이 어긋나지 않습니다.useCsr().frameLayout.keyboard가 높이와 함께 세 가지 값을 담고 있습니다:keyboardSticky 슬롯이 하나 이상 있다는 뜻이며, false면 키보드 레이어가 숨겨집니다.frozen도 아니라는 뜻이며, 컴포넌트는 높이만이 아니라 이 값으로 분기해야 합니다.contentAnchor="bottom"은 화면 크기가 바뀌는 동안 스크롤 위치의 하단 기준 거리를 지켜, 메신저처럼 자연스럽게 다시 배치합니다.BottomInset이 네이티브 키보드 애니메이션을 따라가고, 메시지는 입력창과의 거리를 그대로 유지합니다.BottomInset 안의 입력창은 store에 연결된 필드 하나를 가진 평범한 Zone입니다:keyboardSticky는 BottomInset을 keyboard accessory layer로 옮겨 키보드를 따라 움직이게 합니다.contentAnchor="bottom"은 화면 크기가 바뀌는 동안 하단 기준 거리를 지킵니다. 값은 bottom 하나뿐이고, keyboardSticky와 함께일 때만 동작합니다..akan-page-content를 가집니다. document.querySelector는 다른 페이지를 집을 수 있지만, closest()는 이 페이지의 것을 찾습니다.<ScrollToBottomOnMount />는 숨은 표식 하나만 그립니다.

contentAnchor는 .config()가 아니라 BottomInset의 옵션입니다. 일반 폼은 기본 키보드 동작을 그대로 쓰고, 메신저형 화면만 그 자리에서 켭니다.