Every device the shell can be, declared once (MICA-258, the first slice of MICA-252).
The phone used to state its own facts wherever it needed them: its size in
web/src/shell/state/display.ts, its keybind in shared/keybinds.ts, its prop and
animation in client/game/PhoneAnimation.ts, its item convar in server/lib/deviceItem.ts.
A tablet is a second device rather than a responsive phone -- the CEF floor is Chromium
103, with no container queries and no viewport units, so every screen is laid out against
one fixed frame and drawn at a zoom -- and a second device means every one of those facts
needs a second value. This table is where both sets live, so adding a third device is a
third entry plus artwork, not a search for the places the second one was welded in.
Read by all three targets: web/ for the frame and launcher, client/ for the keybind,
prop and animation, server/ for the convars. Nothing here reaches for a runtime, so it
can be imported from a Playwright spec as freely as from a Svelte component.
The tablet's prop and animation are a starting point, not a tuning. They are the
pairing most FiveM tablet resources ship, and the offsets and rotation are set in game by
MICA-262, which is the first ticket that can see them.
Every device the shell can be, declared once (MICA-258, the first slice of MICA-252).
The phone used to state its own facts wherever it needed them: its size in
web/src/shell/state/display.ts, its keybind inshared/keybinds.ts, its prop and animation inclient/game/PhoneAnimation.ts, its item convar inserver/lib/deviceItem.ts. A tablet is a second device rather than a responsive phone -- the CEF floor is Chromium 103, with no container queries and no viewport units, so every screen is laid out against one fixed frame and drawn at a zoom -- and a second device means every one of those facts needs a second value. This table is where both sets live, so adding a third device is a third entry plus artwork, not a search for the places the second one was welded in.Read by all three targets:
web/for the frame and launcher,client/for the keybind, prop and animation,server/for the convars. Nothing here reaches for a runtime, so it can be imported from a Playwright spec as freely as from a Svelte component.The tablet's prop and animation are a starting point, not a tuning. They are the pairing most FiveM tablet resources ship, and the offsets and rotation are set in game by MICA-262, which is the first ticket that can see them.