Widgets

FadeOverlay

Pengantar

Widget FadeOverlay menerapkan efek fade gradient di atas widget anak-nya. Ini berguna untuk membuat kedalaman visual, meningkatkan keterbacaan teks di atas gambar, atau menambahkan efek stilistik pada UI Anda.

Penggunaan Dasar

Bungkus widget apa pun dengan FadeOverlay untuk menerapkan fade gradient:

FadeOverlay(
  child: Image.asset('assets/images/background.jpg'),
)

Ini membuat fade halus dari transparan di bagian atas ke overlay gelap di bagian bawah.

Dengan Teks di Atas Gambar

Stack(
  children: [
    FadeOverlay(
      child: Image.network(
        'https://example.com/image.jpg',
        fit: BoxFit.cover,
      ),
      strength: 0.5,
    ),
    Positioned(
      bottom: 16,
      left: 16,
      child: Text(
        "Photo Title",
        style: TextStyle(color: Colors.white, fontSize: 24),
      ),
    ),
  ],
)

Konstruktor Arah

FadeOverlay menyediakan konstruktor bernama untuk arah fade umum:

FadeOverlay.top

Fade dari bawah (transparan) ke atas (warna):

FadeOverlay.top(
  child: Image.asset('assets/header.jpg'),
  strength: 0.3,
)

FadeOverlay.bottom

Fade dari atas (transparan) ke bawah (warna):

FadeOverlay.bottom(
  child: Image.asset('assets/card.jpg'),
  strength: 0.4,
)

FadeOverlay.left

Fade dari kanan (transparan) ke kiri (warna):

FadeOverlay.left(
  child: Image.asset('assets/banner.jpg'),
  strength: 0.3,
)

FadeOverlay.right

Fade dari kiri (transparan) ke kanan (warna):

FadeOverlay.right(
  child: Image.asset('assets/banner.jpg'),
  strength: 0.3,
)

Kustomisasi

Mengatur Kekuatan

Parameter strength mengontrol intensitas efek fade (0.0 sampai 1.0):

// Subtle fade
FadeOverlay(
  child: myImage,
  strength: 0.1,
)

// Medium fade
FadeOverlay(
  child: myImage,
  strength: 0.5,
)

// Strong fade
FadeOverlay(
  child: myImage,
  strength: 1.0,
)

Warna Kustom

Ubah warna overlay agar sesuai dengan desain Anda:

// Dark blue overlay
FadeOverlay(
  child: Image.asset('assets/photo.jpg'),
  color: Colors.blue.shade900,
  strength: 0.6,
)

// White overlay for light themes
FadeOverlay.bottom(
  child: Image.asset('assets/photo.jpg'),
  color: Colors.white,
  strength: 0.4,
)

Arah Gradient Kustom

Untuk arah non-standar, tentukan alignment begin dan end:

// Diagonal fade (top-left to bottom-right)
FadeOverlay(
  child: Image.asset('assets/photo.jpg'),
  begin: Alignment.topLeft,
  end: Alignment.bottomRight,
  strength: 0.5,
)

// Center outward fade
FadeOverlay(
  child: Image.asset('assets/photo.jpg'),
  begin: Alignment.center,
  end: Alignment.bottomCenter,
  strength: 0.4,
)

Parameter

Parameter Tipe Default Deskripsi
child Widget wajib Widget tempat efek fade diterapkan
strength double 0.2 Intensitas fade (0.0 sampai 1.0)
color Color Colors.black Warna overlay fade
begin AlignmentGeometry Alignment.topCenter Alignment awal gradient
end AlignmentGeometry Alignment.bottomCenter Alignment akhir gradient

Contoh: Card dengan Fade

Container(
  height: 200,
  width: double.infinity,
  child: ClipRRect(
    borderRadius: BorderRadius.circular(12),
    child: Stack(
      fit: StackFit.expand,
      children: [
        FadeOverlay.bottom(
          strength: 0.6,
          child: Image.network(
            'https://example.com/product.jpg',
            fit: BoxFit.cover,
          ),
        ),
        Positioned(
          bottom: 16,
          left: 16,
          right: 16,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text(
                "Product Name",
                style: TextStyle(
                  color: Colors.white,
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ),
              Text(
                "\$29.99",
                style: TextStyle(color: Colors.white70),
              ),
            ],
          ),
        ),
      ],
    ),
  ),
)