Liquid Glass Easy

الظل

ظلّ التماس الذي يُجلس الزجاج في الصفحة.

الزجاج بلا ظلّ يطفو مسطّحاً على الصفحة. وLiquidGlassShadow هو الشريط الداكن الناعم الذي يعانق الحافة ويتجمّع تحتها، فيُقرأ السطح جالساً في الصفحة لا ملصقاً عليها. وكل مكوّن يأتي بمظهر مضبوط يرتديه أصلاً.

أين يوضع#

في الغالب الأعمّ على الأسلوب، بوصفه appearance.shadow — فتلفّ العدسة نفسها به، بنصف قطر زواياها وبتمدّدها الحيّ، ويأخذ visibility: false الظلَّ مع الزجاج:

Dart
LiquidGlassLens(
  style: const LiquidGlassStyle(
    appearance: LiquidGlassAppearance(
      shadow: LiquidGlassShadow(blur: 3.5, opacity: 0.2),
    ),
  ),
  child: myContent,
)

وهو أيضاً عنصر عادي، وبوصفه عنصراً فهو أب للزجاج، لا ابن له أبداً:

Dart
LiquidGlassShadow(
  child: LiquidGlassLens(style: myStyle, child: myContent),
)

كيف يُصنع الشكل#

يُلقي الظلَّ حلقةٌ، لا السطح نفسه: كبسولة خارجية مدفوعة إلى الخارج ناقص كبسولة داخلية مسحوبة إلى الداخل، فلا يُلقي شيئاً إلا شريطٌ يمتطي الحافة ويبقى الوسط صافياً. ثم تُزاح تلك الحلقة إلى الأسفل بمقدار offset (وهو blur + 2 افتراضياً) وتُضبّب — فيحطّ القوس العلوي داخل الحافة العليا مباشرة، ويحطّ السفلي تحت السطح كله. حلقة واحدة تعطي تماس الحافة والسقوط تحتها معاً. وهو يركّب بـBlendMode.multiply، فيُعتّم ما تحته بدل أن يفرش رماديّاً مسطحاً فوقه.

المعاملالافتراضيما يفعله
blur3.5نصف قطر التضبيب، وسُمك الحلقة الملقية رأسياً.
opacity0.2مقدار عتمته.
colorColors.blackاللون قبل تطبيق opacity.
offsetblur + 2إزاحة الحلقة إلى الأسفل. والفارغ يأخذ الافتراضي.
cornerRadiusnullنصف قطر زاوية السطح في السكون. والفارغ يجعله كبسولة. وعلى appearance.shadow تملؤه العدسة بنصف قطر شكلها.
scale(1, 1)تمدّد المحيط — الحجم المشوّه ÷ حجم السكون — لتتبع الحلقة قبعةً إهليلجية تحت عدسة مضغوطة.
inset0يدسّ الظلّ داخل الزجاج فيتدلّى السطح فوقه. ويُقرأ تماساً أضيق على عنصر تحكّم صغير، حيث تبدو الهالة كاملة الحجم كأنها توهّج.
visibletrueوالخطأ لا يرسم شيئاً ويترك الابن كما هو، فيُبدَّل بلا تغيير شكل الشجرة.

التعليقات

التعليقات هي مناقشات GitHub — يمكنك الرد من أيٍّ من المكانين.