skeleton icon indicating copy to clipboard operation
skeleton copied to clipboard

Cookbook: Layouts (replaces App Shell)

Open endigo9740 opened this issue 1 year ago • 3 comments

[!WARNING] This issue is a work in progress.

This will act as a hub to centralize this information.

Maintainer Requests

The following requests are coming straight from the Skeleton team. These are highly likely be implemented:

[!NOTE] We're aiming to retire the AppShell in Skeleton v3. The number of issues introduced by it far outweigh it's potential gains. Instead, we'll focus instead on providing a set of Cookbook recipes for common layouts, that will help teach the core concepts for building layouts with Tailwind.

  • ~~https://github.com/skeletonlabs/skeleton/issues/1993~~

Community Requests

The following requests have come from the community and are under consideration:

  • https://github.com/skeletonlabs/skeleton/issues/2383#issuecomment-1913361001

Bugs and Known Issues

  • Mobile Safari bottom panel doesn't auto-hide if the <body> doesn't scroll (reference)
  • Pull to refresh fails is inaccessible for mobile browsers
  • Provides some a11y concerns around scrolling with assistive devices
  • Can negatively affect CSS print styles
  • Is not immediately clear on how to implement sticky headers and other common layouts
  • Pigeonholes app design to a few common layouts
  • The way layouts are implement can vary wildly between meta frameworks (ex: Astro vs SvelteKit)

Feedback

If you have additional updates or requests for this feature, please do so in the comments section below.

endigo9740 avatar Jan 03 '24 17:01 endigo9740

svelte:window bind:scrollY not working due to

html,
body {
  @apply h-full overflow-hidden;
}

for example I added <GotoTop showAtPixel={1} /> at the end to +layout.svete in freshly created app with npm create svelte@latest my-skeleton-app following example only works if comment out above CSS from app.postcss

GoToTop example https://svelte.dev/repl/1c49e964ab144dcf82bb607a9aff74b5?version=3.58.0

xmlking avatar Jan 27 '24 23:01 xmlking

@xmlking when you use the App Shell (which is purely optional), the shell scrolls, not the body. So we provide a way to bind and listen to the scroll positions. This is described here:

https://www.skeleton.dev/components/app-shell#tracking-scroll-position

endigo9740 avatar Jan 27 '24 23:01 endigo9740

Note that we have taken steps to deprecate the v2 AppShell feature leading up to the v3 release. The AppShell will remain in all v2.x releases. The goal is to push folks towards using custom layouts asap, which will smooth the transition to v3.

  • https://github.com/skeletonlabs/skeleton/issues/2607

Note that we WILL be providing guidance around building your own custom layouts in v3 - which may come in the form of canned HTML/CSS (Tailwind) templates that you copy and paste straight into your app. Allowing you full flexibility to customize to fit your needs.

This will be similar to Tailwind UI, providing a mixture of markdown and Tailwind utility classes: https://tailwindui.com/?ref=top

endigo9740 avatar Apr 11 '24 02:04 endigo9740