88 lines
2.5 KiB
Dart
88 lines
2.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../../../../core/theme/design_tokens.dart';
|
|
|
|
const homeBackgroundFieldKey = ValueKey('home_background_field');
|
|
const homeTopGlowKey = ValueKey('home_top_glow');
|
|
const homeBottomGlowKey = ValueKey('home_bottom_glow');
|
|
|
|
class HomeBackgroundField extends StatelessWidget {
|
|
const HomeBackgroundField({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return DecoratedBox(
|
|
key: homeBackgroundFieldKey,
|
|
decoration: const BoxDecoration(
|
|
gradient: LinearGradient(
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
colors: [AppColors.homeBackgroundTop, AppColors.homeBackgroundBottom],
|
|
),
|
|
),
|
|
child: const Stack(children: [_HomeTopGlow(), _HomeBottomGlow()]),
|
|
);
|
|
}
|
|
}
|
|
|
|
class _HomeTopGlow extends StatelessWidget {
|
|
const _HomeTopGlow();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Align(
|
|
alignment: const Alignment(-0.25, -0.9),
|
|
child: IgnorePointer(
|
|
child: Container(
|
|
key: homeTopGlowKey,
|
|
width: AppSpacing.xxl * 10,
|
|
height: AppSpacing.xxl * 7,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(AppSpacing.xxl * 3),
|
|
color: AppColors.homeBackgroundGlowSoft.withValues(alpha: 0.28),
|
|
boxShadow: [
|
|
BoxShadow(
|
|
color: AppColors.homeBackgroundGlow.withValues(alpha: 0.28),
|
|
blurRadius: AppSpacing.xxl * 3,
|
|
spreadRadius: AppSpacing.xl,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class _HomeBottomGlow extends StatelessWidget {
|
|
const _HomeBottomGlow();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return IgnorePointer(
|
|
child: Align(
|
|
alignment: Alignment.bottomCenter,
|
|
child: Transform.translate(
|
|
offset: const Offset(0, AppSpacing.lg),
|
|
child: Container(
|
|
key: homeBottomGlowKey,
|
|
width: AppSpacing.xxl * 12,
|
|
height: AppSpacing.xxl * 3,
|
|
decoration: BoxDecoration(
|
|
color: AppColors.homeBackgroundGlowSoft.withValues(alpha: 0.18),
|
|
borderRadius: BorderRadius.circular(AppSpacing.xxl * 2),
|
|
boxShadow: [
|
|
BoxShadow(
|
|
color: AppColors.homeBackgroundGlow.withValues(alpha: 0.1),
|
|
blurRadius: AppSpacing.xxl,
|
|
spreadRadius: AppSpacing.sm,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|