docs.rs failed to build snora-core-0.5.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
snora-core-0.4.3
Snora
An iced GUI framework that gets out of the way of your application.
Overview
Snora gives an iced application a small, opinionated skeleton
(header, sidebar, body, footer) plus the overlay surfaces it almost
certainly needs (dialog, bottom sheet, context menu, toasts) — and
then steps back. Every slot accepts any iced::Element, so your UI
code stays your UI code.
When to use it
snora is a good fit when you are building:
- a local-first desktop app that runs heavy work alongside an interactive UI (AI inference, dataset converters, file processors);
- an app that needs accessibility correct from day one — RTL layout, theme-aware colors, logical edges baked into the API;
- a standard desktop chrome (header / sidebar / body / footer) with a few overlays.
snora is not the right tool for games, real-time visualization, or web-first applications. See docs/getting-started/05-when-to-use.md for fuller fit guidance.
Quick start
[]
= { = "0.14", = ["tokio"] }
= "0.5"
use ;
use ;
;
That's the whole program. Adding a header, sidebar, and footer is three more chained calls — see docs/getting-started.
Features
- Skeleton + injected slots.
AppLayout::new(body).header(h).side_bar(s).footer(f). Each slot is anyiced::Element. No trait to implement, no dispatcher enum to write. - Framework-managed toasts.
Vec<Toast<Message>>on your state, two one-liners (subscription+sweep_expired) for lifetime, intent → theme color, six anchor positions including RTL-aware ones. - One close sink per channel.
on_close_modalsfor dialogs and sheets,on_close_menusfor header / context menus. Wired once. - Vocabulary instead of magic numbers.
SheetHeight::Half,ToastPosition::TopEnd,LayoutDirection::Rtl,Edge::Start— explicit choices, not hardcoded constants. - Two crates, one direction.
snora-coreis the iced-free vocabulary,snorais the engine — an iced upgrade only touches one crate.
Design notes
- Accessible by Default and by Design. Layout is described in
logical edges (
Edge::Start/Edge::End); LTR ↔ RTL is one setter onAppLayout. - No silent drops. If you populate an overlay but leave its close
sink
None, the overlay still renders — snora omits only the click-outside backdrop, never the content. - Skeleton, not styling. Snora positions and stacks. The look of your dialog card, the typography of your header — those are your decisions, not ours.
Read more
For the full picture, head to docs/:
- New to snora? Start with Getting started.
- Looking up something specific? Reference and Guides.
- Wanting to contribute? docs/contributing/ is for you — and we'd be glad to have you.