surface 0.4.3
surface: ^0.4.3 copied to clipboard

Shapeable, layered, intrinsincally animated container with convenient access to blurry ImageFilters, InkResponse, and HapticFeedback.

๐ŸŒŸ Surface #

[0.4.3] - 30 APR 21 #

  • Beginning doc/readme cleanup for new Shapeing and naming schemes
  • Investigating performance degradation.
  • ๐Ÿ†• props for ๐Ÿ‘† TapSpec
    • โ“ useThemeSplashFactory
    • Custom splashFactory
      • Surface falls back to ๐Ÿ“ BouncyBall
  • Renamed ๐Ÿ”ฒ Peek.peekAlignment -> Peek.alignment & Peek.peekRatio -> Peek.ratio
  • Renamed ๐Ÿ”ฌ Filter.baseRadius, et al. -> Filter.radiusBase, et al. & made all forms of radius input _private with public getters
  • A radius, or Corner BorderRadius, may be specified in Shape as well as individual CornerSpec
    • CornerSpec.radius will win if available

[0.4.2] - 30 APR 21 #

  • Fixing null checks, especially by lerps.

[0.4.1] - 29 APR 21 #

  • Imports correction.

[0.4.0] - 29 APR 21 #

  • Overhaul in progress. Developing...
  • โœ… Newly added:
    • Manual (or pre-configured) custom Shapeing
      • Easy Shape scaling and differed Shape by ๐Ÿ“š SurfaceLayer
      • Customize Shape by configuring four Corners and radius
    • BorderSide support, by ๐Ÿ“š SurfaceLayer
    • ๐Ÿ“‹ copyWith methods
    • Renamed classes: FilterSpec -> Filter, PeekSpec -> Peek
    • & more
  • ๐Ÿ”ณ Todo:
    • Improve transitioning/animating/lerping
    • & more

[0.3.0] - 25 APR 21 #

  • Divided package into several bite-size src files
  • Reverted names of Spec classes to drop preceding 'Surface'
  • CustomInk -> BouncyBall, forked as ๐Ÿ“ package:ball, with LOTS of ๐Ÿ†• features!
    • New const splashFactorys: ๐Ÿ“ BouncyBall.splashFactory2, 3, & 4 with different bounce animations
    • ๐Ÿ”ฎ BouncyBall.marbleFactory which uses different Paint and one of the new curves
    • InteractiveInkFeatureFactory designer method, ๐Ÿช€ BouncyBall.mold(Paint rubber)
  • Blur.ry -> ๐Ÿ’ง FX.blurry and becomes default for ๐Ÿ†• FilterSpec.effect parameter
    • ๐Ÿคนโ€โ™‚๏ธ FX class linked to ๐Ÿคนโ€โ™‚๏ธ SurfaceFX typedef
    • ๐Ÿ’ง FX.blurry is the default ๐Ÿคนโ€โ™‚๏ธ SurfaceFX Function that ignores the current ๐Ÿ“š SurfaceLayer layerForRender and opts to handle only the ๐Ÿ“Š specRadius which comes from ๐Ÿ”ฌ FilterSpec according to ๐Ÿ“š layerForRender
      • Passes ๐Ÿ“Š specRadius to ๐Ÿ’ง FX.b (the true old Blur.ry)
  • Core of ๐ŸŒŸ Surface cleaned up, with with is hopefully now zero changes to Widget tree depth by altering parameters like removing filters & disabling ink response and handling Clips differently
    • Still need to work on ๐Ÿ”ฐ SurfaceShape and Decoration lerping

[0.2.0] & [0.2.0+7] - 12 APR 21 #

  • Migrated package to sound null safety.
  • Cleaned up internal Filter code a bit while adding relevant constants
    • One DEFAULT_SPEC is used by a new ๐ŸŒŸ Surface
    • And several more that are const options for ๐Ÿ‘“ filteredLayers:
      • Set<SurfaceLayer> that resemble old enum SurfaceFilter
  • ๐Ÿ”ฐ becomes ๐Ÿ”ฐ SurfaceShape.biBeveledRectangle for growth potential
  • Removed fullPrint and scaleAxis.

[0.1.0] - 04 APR 21 #

  • Added Surface.baseRadius.
    • ๐Ÿ”˜ baseRadius may be specified separately from ๐Ÿ”˜ radius, but is optional and will only impact the ๐Ÿ“š SurfaceLayer.BASE.
    • If not provided, uses ๐Ÿ”˜ Surface.radius, which itself defaults to ๐Ÿ”˜ Surface._RADIUS == 3.0.
  • Added Filter.extendBaseFilter boolean which will apply the ๐Ÿ“š BASE blurry filter to the Surface.margin.

[0.0.5] - 02 APR 21 #

  • Further modification to initialization parameters for Surface constructor.
  • Filter strength and the SurfaceLayers on which they are enabled are now set and mapped with a bespoke Filter Object.
    • Enable blurry filters by passing the desired SurfaceLayers into Filter.filteredLayers as a Set.
    • Strength radii can be initialized formally or with a Map<SurfaceLayer, double> called Filter.radiusMap.
    • SurfaceFilter enum removed, as it redundantly represented the idea of SurfaceLayers in a Set

[0.0.4] - 01 APR 21 #

  • Reduction in initialization parameters for Surface constructor. This is achieved:
    • in one instance by joining three similar values in a Map (filterRadius)
    • by introducing Peek and TapSpec classes to encapsulate other related parameters
  • Renamed SurfaceLayer.BASE from BORDER.
    • Changed or removed any references to "border"
    • Now refer to "base inset" or peek.
      • Consider the old Surface.borderRatio is the new Peek.ratio.
  • Altered default Color handling.
    • InkResponse splashes and highlights now defer to Theme.
    • Without passing a Surface.color, deafult to ColorScheme.surface
    • Without passing a Surface.baseColor, deafult to ColorScheme.primaryVariant
  • Organized documentation. Added iconography through emoji.

[0.0.3] - 23 FEB 21 #

[0.0.2] - 22 FEB 21 #

  • Prepared for
    • Updated comments and documentation; fixed Mโฌ‡; ran dartdoc.
    • Cleaned and linked READMEs; added hyperlinks to Surface Example.
  • Removed Color and Duration constants from goodies.
  • Goodie scaleAxis simplified

[0.0.1] - 22 FEB 21 #

pub points


Shapeable, layered, intrinsincally animated container with convenient access to blurry ImageFilters, InkResponse, and HapticFeedback.

Repository (GitHub)
View/report issues


API reference


BSD-3-Clause (LICENSE)


ball, flutter


Packages that depend on surface