--- title: Configuration and effective layout description: Manage controlled configuration, persistent preferences, and automatic region resolution. order: 20 toc: - id: controlled title: Controlled and uncontrolled - id: effective title: Effective layout - id: persistence title: Persistence --- ## Controlled and uncontrolled {#controlled} Without `layout`, `AppLayout` owns its state: ```tsx ``` After supplying `layout`, the caller must save each new snapshot from `onLayoutChange`: ```tsx ``` ## Effective layout {#effective} Configuration stores user intent, while the effective layout controls the current rendering. For example, `asideOpen` can remain `true` while a missing Aside slot or `asideEnabled: false` prevents the Aside from rendering. When `sidebarCollapsible` is `false`, the Sidebar remains visible even if the stored `sidebarOpen` value is `false`. Header and Footer starts follow the same principle. `"sidebar"` only takes effect while both the Rail and Sidebar are visible; otherwise it moves inward to `"content"`. ## Persistence {#persistence} The effective layout never writes back into configuration, so temporarily missing regions do not clear user preferences. An application can persist the complete `LayoutConfig` through `@workspace/preferences` in `onLayoutChange`, then supply it through `layout` when loading.