Files
feresaria/crates/ferese-theme/README.md
T
Samuel Onoja 3d950a0411 Add resolved appearance engine and paired theme settings
Resolve light, dark and automatic appearance centrally and publish live theme snapshots to native surfaces and the appearance portal. Add paired preset families, custom theme imports, accessibility transforms and contrast-safe transitions.

Refine the Settings gallery and Auto controls, move overrides under advanced customization, and share palette-aware switches and circular slider thumbs. Document configuration and include theme licenses and integration coverage.
2026-09-30 12:51:49 +01:00

1.6 KiB

Ferese theme

The shared native UI theme for the shell, settings, lock screen, authentication prompt and screen-sharing/recording chooser.

  • Palette resolves KDL colors and corners and builds the native toolkit theme.
  • PRESETS defines twelve variants in six families.
  • font and text provide shared font selection and text.
  • gallery supplies split theme tiles, accessible radio groups and keyboard navigation.
  • controls supplies surfaces, navigation, font-aware text buttons and input styles.
  • menus supplies headings, rows, sections, separators, switches and slider styles.
  • calendar supplies date/time labels, stacked clock digits and calendar grids. Callers supply the date and navigation controls.
  • icons owns the shared SVG assets, outline icons, sizing and semantic tinting.
  • Contrast helpers keep filled controls readable in every interaction state.
  • material::ModalMaterial attaches a dialog to the compositor's shell material. Keep the attachment alive with its window and make the client background transparent after attachment succeeds. Other compositors retain the client fill.

Applications supply layout, data, actions, and animation progress. Extend shared components when a style is needed across apps.

let palette = ferese_theme::Palette::from_document(Some(&document));
let native_theme = palette.native_theme();
let input_style = ferese_theme::controls::settings_input(palette);
let font = ferese_theme::font(Some("Inter"));
let label = ferese_theme::text("Appearance", font);

The compositor owns backdrop blur and material rendering. This crate does not provide a client-side imitation of those effects.