Initial commit: monorepo Match Live TV.

Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-26 17:45:37 +02:00
commit bba6df52c0
381 changed files with 20599 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
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,
),
),
],
],
);
}
}