Replace Colors.* in remaining files: intel_cards, quip_metadata, auth screens, admin screens, discover, search, profile, settings, utils, services, app_theme
This commit is contained in:
parent
248a32eb87
commit
aa2b5d3447
|
|
@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart';
|
|||
import 'package:timeago/timeago.dart' as timeago;
|
||||
import '../../widgets/media/signed_media_image.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
|
||||
class ModerationQueueScreen extends ConsumerStatefulWidget {
|
||||
const ModerationQueueScreen({super.key});
|
||||
|
|
@ -231,7 +232,7 @@ class _ModerationQueueScreenState extends ConsumerState<ModerationQueueScreen> {
|
|||
.colorScheme
|
||||
.error,
|
||||
foregroundColor:
|
||||
Colors.white,
|
||||
SojornColors.basicWhite,
|
||||
),
|
||||
onPressed: () =>
|
||||
_confirmBan(item),
|
||||
|
|
@ -280,7 +281,7 @@ class _PostPreview extends StatelessWidget {
|
|||
errorBuilder: (_, __, ___) => Container(
|
||||
width: 56,
|
||||
height: 56,
|
||||
color: Colors.black26,
|
||||
color: const Color(0x42000000),
|
||||
child: const Icon(Icons.broken_image),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ class _QuipRepairScreenState extends ConsumerState<QuipRepairScreen> {
|
|||
Container(
|
||||
padding: const EdgeInsets.all(8),
|
||||
width: double.infinity,
|
||||
color: Colors.amber.withOpacity(0.2),
|
||||
color: const Color(0xFFFFC107).withValues(alpha: 0.2),
|
||||
child: Text(_statusMessage!, textAlign: TextAlign.center),
|
||||
),
|
||||
Expanded(
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart';
|
|||
import '../../models/category.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../routes/app_routes.dart';
|
||||
import '../../providers/onboarding_provider.dart';
|
||||
|
||||
|
|
@ -181,7 +182,7 @@ class _CategorySelectScreenState extends ConsumerState<CategorySelectScreen> {
|
|||
width: 20,
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation(Colors.white),
|
||||
valueColor: AlwaysStoppedAnimation(SojornColors.basicWhite),
|
||||
),
|
||||
)
|
||||
: const Text('Continue'),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import 'category_select_screen.dart';
|
||||
|
||||
class ProfileSetupScreen extends ConsumerStatefulWidget {
|
||||
|
|
@ -203,7 +204,7 @@ class _ProfileSetupScreenState extends ConsumerState<ProfileSetupScreen> {
|
|||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor:
|
||||
AlwaysStoppedAnimation(Colors.white),
|
||||
AlwaysStoppedAnimation(SojornColors.basicWhite),
|
||||
),
|
||||
)
|
||||
: const Text('Begin Journey'),
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
|||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.06),
|
||||
color: const Color(0x0F000000),
|
||||
blurRadius: 24,
|
||||
offset: const Offset(0, 16),
|
||||
),
|
||||
|
|
@ -499,8 +499,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
|||
),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black
|
||||
.withOpacity(0.06),
|
||||
color: const Color(0x0F000000),
|
||||
blurRadius: 12,
|
||||
offset: const Offset(0, 6),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../../providers/auth_provider.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../widgets/auth/turnstile_widget.dart';
|
||||
|
||||
class SignUpScreen extends ConsumerStatefulWidget {
|
||||
|
|
@ -545,7 +546,7 @@ class _SignUpScreenState extends ConsumerState<SignUpScreen> {
|
|||
width: 20,
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2,
|
||||
valueColor: AlwaysStoppedAnimation(Colors.white),
|
||||
valueColor: AlwaysStoppedAnimation(SojornColors.basicWhite),
|
||||
),
|
||||
)
|
||||
: const Text('Create Account'),
|
||||
|
|
|
|||
|
|
@ -226,11 +226,11 @@ class ConditionsCard extends StatelessWidget {
|
|||
}
|
||||
|
||||
Color _getUvColor(double uv) {
|
||||
if (uv < 3) return Colors.green;
|
||||
if (uv < 6) return Colors.orange;
|
||||
if (uv < 8) return Colors.deepOrange;
|
||||
if (uv < 11) return Colors.red;
|
||||
return Colors.purple;
|
||||
if (uv < 3) return const Color(0xFF4CAF50);
|
||||
if (uv < 6) return const Color(0xFFFF9800);
|
||||
if (uv < 8) return const Color(0xFFFF5722);
|
||||
if (uv < 11) return const Color(0xFFF44336);
|
||||
return const Color(0xFF9C27B0);
|
||||
}
|
||||
|
||||
String _getUvLevel(double uv) {
|
||||
|
|
@ -258,7 +258,7 @@ class HazardsCard extends StatelessWidget {
|
|||
return IntelCard(
|
||||
title: 'Hazards',
|
||||
icon: Icons.warning_amber_rounded,
|
||||
iconColor: Colors.orange,
|
||||
iconColor: const Color(0xFFFF9800),
|
||||
isLoading: isLoading,
|
||||
child: hazards == null
|
||||
? _buildNoData(context)
|
||||
|
|
@ -347,19 +347,19 @@ class HazardsCard extends StatelessWidget {
|
|||
}
|
||||
|
||||
Color _getAqiColor(int aqi) {
|
||||
if (aqi <= 50) return Colors.green;
|
||||
if (aqi <= 100) return Colors.yellow.shade700;
|
||||
if (aqi <= 150) return Colors.orange;
|
||||
if (aqi <= 200) return Colors.red;
|
||||
if (aqi <= 300) return Colors.purple;
|
||||
return Colors.brown;
|
||||
if (aqi <= 50) return const Color(0xFF4CAF50);
|
||||
if (aqi <= 100) return const Color(0xFFF9A825);
|
||||
if (aqi <= 150) return const Color(0xFFFF9800);
|
||||
if (aqi <= 200) return const Color(0xFFF44336);
|
||||
if (aqi <= 300) return const Color(0xFF9C27B0);
|
||||
return const Color(0xFF795548);
|
||||
}
|
||||
|
||||
Color _getPollenColor(int level) {
|
||||
if (level < 10) return Colors.green;
|
||||
if (level < 50) return Colors.yellow.shade700;
|
||||
if (level < 100) return Colors.orange;
|
||||
return Colors.red;
|
||||
if (level < 10) return const Color(0xFF4CAF50);
|
||||
if (level < 50) return const Color(0xFFF9A825);
|
||||
if (level < 100) return const Color(0xFFFF9800);
|
||||
return const Color(0xFFF44336);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -412,7 +412,7 @@ class VisibilityCard extends StatelessWidget {
|
|||
Icon(
|
||||
Icons.wb_sunny_outlined,
|
||||
size: 14,
|
||||
color: Colors.orange,
|
||||
color: const Color(0xFFFF9800),
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
|
|
@ -441,7 +441,7 @@ class VisibilityCard extends StatelessWidget {
|
|||
Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
|
||||
decoration: BoxDecoration(
|
||||
color: (isDaytime ? Colors.orange : AppTheme.ksuPurple)
|
||||
color: (isDaytime ? const Color(0xFFFF9800) : AppTheme.ksuPurple)
|
||||
.withValues(alpha: 0.1),
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
),
|
||||
|
|
@ -451,13 +451,13 @@ class VisibilityCard extends StatelessWidget {
|
|||
Icon(
|
||||
isDaytime ? Icons.wb_twilight : Icons.sunny,
|
||||
size: 14,
|
||||
color: isDaytime ? Colors.orange : AppTheme.ksuPurple,
|
||||
color: isDaytime ? const Color(0xFFFF9800) : AppTheme.ksuPurple,
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
'${isDaytime ? 'Sunset' : 'Sunrise'} in $transitionText',
|
||||
style: Theme.of(context).textTheme.labelSmall?.copyWith(
|
||||
color: isDaytime ? Colors.orange : AppTheme.ksuPurple,
|
||||
color: isDaytime ? const Color(0xFFFF9800) : AppTheme.ksuPurple,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
|
|
@ -547,7 +547,7 @@ class ResourcesCard extends StatelessWidget {
|
|||
return IntelCard(
|
||||
title: 'Resources',
|
||||
icon: Icons.place_outlined,
|
||||
iconColor: Colors.teal,
|
||||
iconColor: const Color(0xFF009688),
|
||||
isLoading: isLoading,
|
||||
onTap: onTap,
|
||||
child: Column(
|
||||
|
|
@ -569,11 +569,11 @@ class ResourcesCard extends StatelessWidget {
|
|||
const Spacer(),
|
||||
Row(
|
||||
children: [
|
||||
_buildResourceIcon(Icons.local_library, Colors.blue),
|
||||
_buildResourceIcon(Icons.local_library, const Color(0xFF2196F3)),
|
||||
const SizedBox(width: 6),
|
||||
_buildResourceIcon(Icons.park, Colors.green),
|
||||
_buildResourceIcon(Icons.park, const Color(0xFF4CAF50)),
|
||||
const SizedBox(width: 6),
|
||||
_buildResourceIcon(Icons.local_hospital, Colors.red),
|
||||
_buildResourceIcon(Icons.local_hospital, const Color(0xFFF44336)),
|
||||
const Spacer(),
|
||||
Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
|||
color: AppTheme.cardSurface,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withOpacity(0.05),
|
||||
color: const Color(0x0D000000),
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 2),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../routes/app_routes.dart';
|
||||
import '../../providers/notification_provider.dart';
|
||||
import '../discover/discover_screen.dart';
|
||||
|
|
@ -71,7 +72,7 @@ class FullScreenShell extends ConsumerWidget {
|
|||
return AppBar(
|
||||
backgroundColor: AppTheme.scaffoldBg,
|
||||
elevation: 0,
|
||||
surfaceTintColor: Colors.transparent,
|
||||
surfaceTintColor: SojornColors.transparent,
|
||||
leading: IconButton(
|
||||
onPressed: () {
|
||||
if (Navigator.of(context).canPop()) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||
import '../../models/category.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../widgets/app_scaffold.dart';
|
||||
|
||||
class CategoryDiscoveryScreen extends ConsumerStatefulWidget {
|
||||
|
|
@ -78,7 +79,7 @@ class _CategoryDiscoveryScreenState extends ConsumerState<CategoryDiscoveryScree
|
|||
return Container(
|
||||
margin: const EdgeInsets.only(bottom: 16),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
color: SojornColors.basicWhite,
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.1)),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../widgets/app_scaffold.dart';
|
||||
import '../../widgets/media/signed_media_image.dart';
|
||||
import 'viewable_profile_screen.dart';
|
||||
|
|
@ -433,7 +434,7 @@ class _UserListItem extends StatelessWidget {
|
|||
? user.displayName[0].toUpperCase()
|
||||
: '?',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
color: SojornColors.basicWhite,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 18,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import 'package:path_provider/path_provider.dart';
|
|||
import '../../../providers/quip_upload_provider.dart';
|
||||
import '../../../services/image_upload_service.dart';
|
||||
import '../../../providers/api_provider.dart';
|
||||
import '../../../theme/tokens.dart';
|
||||
import '../../../providers/feed_refresh_provider.dart';
|
||||
import '../../../theme/app_theme.dart';
|
||||
|
||||
|
|
@ -76,7 +77,7 @@ class _QuipMetadataScreenState extends ConsumerState<QuipMetadataScreen> {
|
|||
backgroundColor: AppTheme.cardSurface,
|
||||
elevation: 0,
|
||||
leading: IconButton(
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||
icon: const Icon(Icons.arrow_back, color: SojornColors.basicBlack),
|
||||
onPressed: () => Navigator.pop(context),
|
||||
),
|
||||
actions: [
|
||||
|
|
@ -114,7 +115,7 @@ class _QuipMetadataScreenState extends ConsumerState<QuipMetadataScreen> {
|
|||
AspectRatio(
|
||||
aspectRatio: 16/9, // Widescreen preview for cover selection
|
||||
child: Container(
|
||||
color: Colors.black,
|
||||
color: SojornColors.basicBlack,
|
||||
child: Center(
|
||||
child: AspectRatio(
|
||||
aspectRatio: _controller.value.aspectRatio,
|
||||
|
|
@ -136,7 +137,7 @@ class _QuipMetadataScreenState extends ConsumerState<QuipMetadataScreen> {
|
|||
_controller.seekTo(Duration(milliseconds: value.toInt()));
|
||||
},
|
||||
),
|
||||
const Center(child: Text("Scrub to choose a thumbnail frame", style: TextStyle(color: Colors.grey, fontSize: 12))),
|
||||
Center(child: Text("Scrub to choose a thumbnail frame", style: TextStyle(color: AppTheme.textDisabled, fontSize: 12))),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import '../../providers/api_provider.dart';
|
|||
import '../../models/search_results.dart';
|
||||
import '../../models/post.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../widgets/sojorn_post_card.dart';
|
||||
import '../../widgets/media/signed_media_image.dart';
|
||||
import '../profile/viewable_profile_screen.dart';
|
||||
|
|
@ -661,7 +662,7 @@ class UserResultItem extends StatelessWidget {
|
|||
? user.displayName[0].toUpperCase()
|
||||
: '?',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
color: SojornColors.basicWhite,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 22),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../../theme/app_theme.dart';
|
||||
import '../../theme/tokens.dart';
|
||||
import '../../widgets/app_scaffold.dart';
|
||||
import '../../providers/api_provider.dart';
|
||||
import '../../models/profile_privacy_settings.dart';
|
||||
|
|
@ -78,7 +79,7 @@ class _PrivacySettingsScreenState
|
|||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Privacy settings saved'),
|
||||
backgroundColor: Colors.green,
|
||||
backgroundColor: const Color(0xFF4CAF50),
|
||||
),
|
||||
);
|
||||
Navigator.of(context).pop(_settings);
|
||||
|
|
@ -143,7 +144,7 @@ class _PrivacySettingsScreenState
|
|||
height: 20,
|
||||
child: CircularProgressIndicator(strokeWidth: 2),
|
||||
)
|
||||
: const Text('Save', style: TextStyle(color: Colors.white)),
|
||||
: const Text('Save', style: TextStyle(color: SojornColors.basicWhite)),
|
||||
),
|
||||
],
|
||||
body: _isLoading
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import '../models/post.dart';
|
||||
import '../theme/tokens.dart';
|
||||
import '../screens/post/threaded_conversation_screen.dart';
|
||||
|
||||
/// Navigation service for opening different feeds based on post type
|
||||
|
|
@ -42,15 +43,15 @@ class QuipsFeedScreen extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.black,
|
||||
backgroundColor: SojornColors.basicBlack,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.black,
|
||||
backgroundColor: SojornColors.basicBlack,
|
||||
title: const Text('Quips'),
|
||||
),
|
||||
body: Center(
|
||||
child: Text(
|
||||
'Quips Feed\n(Initial Post: $initialPostId)',
|
||||
style: const TextStyle(color: Colors.white),
|
||||
style: const TextStyle(color: SojornColors.basicWhite),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -693,7 +693,7 @@ class _NotificationBannerState extends State<_NotificationBanner>
|
|||
child: Material(
|
||||
elevation: 8,
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
color: Colors.transparent,
|
||||
color: const Color(0x00000000),
|
||||
child: GestureDetector(
|
||||
onTap: widget.onTap,
|
||||
onHorizontalDragEnd: (details) {
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ class AppTheme {
|
|||
) {
|
||||
return AppBarTheme(
|
||||
backgroundColor: brand.cardSurface,
|
||||
surfaceTintColor: Colors.transparent,
|
||||
surfaceTintColor: const Color(0x00000000),
|
||||
elevation: 0,
|
||||
centerTitle: false,
|
||||
iconTheme: IconThemeData(color: brand.navyBlue),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../services/api_service.dart';
|
||||
import '../theme/tokens.dart';
|
||||
import '../widgets/safety_redirect_sheet.dart';
|
||||
|
||||
/// External Link Traffic Controller
|
||||
|
|
@ -102,7 +103,7 @@ class ExternalLinkController {
|
|||
static void _showSafetyRedirectSheet(BuildContext context, Uri uri) {
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
backgroundColor: Colors.transparent,
|
||||
backgroundColor: SojornColors.transparent,
|
||||
builder: (context) => SafetyRedirectSheet(
|
||||
url: uri.toString(),
|
||||
domain: uri.host,
|
||||
|
|
@ -116,7 +117,7 @@ class ExternalLinkController {
|
|||
messenger.showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(message),
|
||||
backgroundColor: Colors.red.shade700,
|
||||
backgroundColor: SojornColors.destructive,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../theme/app_theme.dart';
|
||||
import '../theme/tokens.dart';
|
||||
import 'external_link_controller.dart';
|
||||
|
||||
/// Helper class for safely launching URLs with user warnings for unknown sites.
|
||||
|
|
@ -84,7 +85,7 @@ class UrlLauncherHelper {
|
|||
children: [
|
||||
Icon(
|
||||
Icons.warning_amber,
|
||||
color: Colors.orange,
|
||||
color: SojornColors.nsfwWarningIcon,
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
|
|
@ -93,7 +94,7 @@ class UrlLauncherHelper {
|
|||
'This site is not recognized as a known safe website. Proceed with caution.',
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
color: Colors.orange,
|
||||
color: SojornColors.nsfwWarningIcon,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
@ -115,7 +116,7 @@ class UrlLauncherHelper {
|
|||
ElevatedButton(
|
||||
onPressed: () => Navigator.of(context).pop(true),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: isSafe ? AppTheme.royalPurple : Colors.orange,
|
||||
backgroundColor: isSafe ? AppTheme.royalPurple : SojornColors.nsfwWarningIcon,
|
||||
),
|
||||
child: const Text('Continue'),
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in a new issue