fresnel_platform_interface 0.1.0 copy "fresnel_platform_interface: ^0.1.0" to clipboard
fresnel_platform_interface: ^0.1.0 copied to clipboard

Platform interface for fresnel — the contract shared by fresnel and its native implementations.

fresnel_platform_interface #

The contract shared by fresnel and its platform implementations.

Apps should not depend on this package. Depend on fresnel, which selects the right implementation automatically. This package exists so that adding a platform — fresnel_ios, fresnel_macos, fresnel_android, or one you write yourself — never requires a change to the façade.

What it defines #

Type Purpose
Glass The material: regular / clear / identity, plus tinted() and interactive(). Mirrors SwiftUI's Glass struct.
GlassShape Capsule, circle, rounded rectangle, Apple squircle, and container-concentric.
GlassElement One shape inside a container, with geometry already resolved by Flutter's layout pass.
GlassCapabilities What the device can actually do — native glass, Impeller, accessibility flags, system glass intensity.
FresnelPlatform The interface implementations extend.

Implementing a platform #

Extend FresnelPlatform and register in registerWith():

class FresnelMyPlatform extends FresnelPlatform {
  static void registerWith() {
    FresnelPlatform.instance = FresnelMyPlatform();
  }

  @override
  Future<GlassCapabilities> capabilities() async => const GlassCapabilities(
        hasNativeGlass: false,
        hasImpeller: true,
      );

  @override
  Widget? buildNativeGlass({...}) => null; // null means "use the shader"

  @override
  Widget? buildNativeContainer({...}) => null;
}

Returning null from the builders is a normal outcome, not an error — it tells the façade to fall through to the shader renderer. A platform that only wants to report capabilities honestly can return null from both.

Answer capabilities natively. Parsing Platform.operatingSystemVersion is a display string, not an API contract; use the platform's own predicate, e.g. ProcessInfo.isOperatingSystemAtLeast on Apple platforms.

Versioning #

Breaking changes to this interface are major-version bumps and require every implementation package to be updated in lockstep. Adding a method with a default implementation is not breaking, which is why renderSymbol has one.

License #

MIT

0
likes
150
points
73
downloads

Documentation

API reference

Publisher

verified publisherwaqaralisiyal.com

Weekly Downloads

Platform interface for fresnel — the contract shared by fresnel and its native implementations.

Repository (GitHub)
View/report issues
Contributing

Topics

#liquid-glass #ios26 #platform-interface #glassmorphism

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on fresnel_platform_interface