Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
75 lines
2.0 KiB
Dart
75 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../../app/theme.dart';
|
|
|
|
/// Wordmark orizzontale: MATCH + pill LIVE + TV.
|
|
class MatchLiveWordmark extends StatelessWidget {
|
|
const MatchLiveWordmark({
|
|
super.key,
|
|
this.compact = false,
|
|
this.showSlogan = false,
|
|
});
|
|
|
|
final bool compact;
|
|
final bool showSlogan;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final theme = Theme.of(context);
|
|
final matchStyle = theme.textTheme.displaySmall?.copyWith(
|
|
color: Colors.white,
|
|
fontWeight: FontWeight.w900,
|
|
letterSpacing: 1,
|
|
);
|
|
final tvStyle = theme.textTheme.displaySmall?.copyWith(
|
|
color: AppTheme.textSecondary,
|
|
fontWeight: FontWeight.w900,
|
|
letterSpacing: 1,
|
|
);
|
|
|
|
return Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
Row(
|
|
mainAxisSize: MainAxisSize.min,
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
Text('MATCH', style: matchStyle),
|
|
const SizedBox(width: 8),
|
|
Container(
|
|
padding: EdgeInsets.symmetric(
|
|
horizontal: compact ? 8 : 12,
|
|
vertical: compact ? 2 : 4,
|
|
),
|
|
decoration: BoxDecoration(
|
|
color: AppTheme.primaryRed,
|
|
borderRadius: BorderRadius.circular(6),
|
|
),
|
|
child: Text(
|
|
'LIVE',
|
|
style: theme.textTheme.labelLarge?.copyWith(
|
|
color: Colors.white,
|
|
fontSize: compact ? 14 : 18,
|
|
),
|
|
),
|
|
),
|
|
const SizedBox(width: 8),
|
|
Text('TV', style: tvStyle),
|
|
],
|
|
),
|
|
if (showSlogan) ...[
|
|
const SizedBox(height: 12),
|
|
Text(
|
|
'LO STREAMING CHE NON MUORE',
|
|
style: theme.textTheme.labelLarge?.copyWith(
|
|
color: AppTheme.textSecondary,
|
|
fontSize: 12,
|
|
letterSpacing: 2,
|
|
),
|
|
),
|
|
],
|
|
],
|
|
);
|
|
}
|
|
}
|