import 'package:flutter/material.dart'; class SojornColors { const SojornColors._(); // ── Basic theme palette ────────────────────────────── static const Color basicNavyBlue = Color(0xFF000383); static const Color basicNavyText = Color(0xFF000383); static const Color basicEgyptianBlue = Color(0xFF0E38AE); static const Color basicBrightNavy = Color(0xFF1974D1); static const Color basicRoyalPurple = Color(0xFF7751A8); static const Color basicKsuPurple = Color(0xFF512889); static const Color basicQueenPink = Color(0xFFE5C0DD); static const Color basicQueenPinkLight = Color(0xFFF9F2F7); static const Color basicWhite = Color(0xFFFFFFFF); static const Color basicBlack = Color(0xFF000000); // ── Pop theme palette ──────────────────────────────── static const Color popNavyBlue = Color(0xFF000383); static const Color popNavyText = Color(0xFF0D1050); static const Color popEgyptianBlue = Color(0xFF0E38AE); static const Color popBrightNavy = Color(0xFF1974D1); static const Color popRoyalPurple = Color(0xFF7751A8); static const Color popKsuPurple = Color(0xFF512889); static const Color popScaffoldBg = Color(0xFFF9F6F9); static const Color popCardSurface = Color(0xFFFFFFFF); static const Color popHighlight = Color(0xFFE5C0DD); // ── Semantic ───────────────────────────────────────── static const Color error = Color(0xFFD32F2F); static const Color destructive = Color(0xFFD32F2F); static const Color warning = Color(0xFFFBC02D); static const Color info = Color(0xFF2196F3); static const Color textDisabled = Color(0xFF9E9E9E); static const Color textOnAccent = Color(0xFFFFFFFF); // ── Post content ───────────────────────────────────── static const Color postContent = Color(0xFF1A1A1A); static const Color postContentLight = Color(0xFF4A4A4A); // ── Navigation ─────────────────────────────────────── static const Color bottomNavUnselected = Color(0xFF9EA3B0); // ── Trust tiers ────────────────────────────────────── static const Color tierNew = Color(0xFF9E9E9E); // ── NSFW / Sensitive content ───────────────────────── static const Color nsfwWarningBg = Color(0x26EF6C00); // amber.800 @ 15% static const Color nsfwWarningBorder = Color(0x4DF57C00); // amber.700 @ 30% static const Color nsfwWarningIcon = Color(0xFFF57C00); // amber.700 static const Color nsfwWarningText = Color(0xFFF57C00); // amber.700 static const Color nsfwWarningSubText = Color(0xFFFB8C00); // amber.600 static const Color nsfwRevealText = Color(0xCCFB8C00); // amber.600 @ 80% // ── Sponsored / Ad ─────────────────────────────────── static const Color sponsoredBadgeBg = Color(0x1A7751A8); // royalPurple @ 10% static const Color sponsoredBadgeText = Color(0xB37751A8); // royalPurple @ 70% // ── Overlays ───────────────────────────────────────── static const Color overlayDark = Color(0x80000000); // black @ 50% static const Color overlayLight = Color(0x4DFFFFFF); // white @ 30% static const Color overlayScrim = Color(0x33000000); // black @ 20% static const Color transparent = Color(0x00000000); // ── Surface states ─────────────────────────────────── static const Color surfacePressed = Color(0x14000383); // navyBlue @ 8% static const Color surfaceHover = Color(0x0A000383); // navyBlue @ 4% static const Color mediaErrorBg = Color(0x4DD32F2F); // error @ 30% static const Color mediaLoadingBg = Color(0x4DE5C0DD); // queenPink @ 30% // ── Feed palettes ──────────────────────────────────── static const Color feedNavyTop = Color(0xFF0B1023); static const Color feedNavyBottom = Color(0xFF1B2340); static const Color feedNavyPanel = Color(0xFF0E1328); static const Color feedNavyText = Color(0xFFF8FAFF); static const Color feedNavySubText = Color(0xFFB9C3E6); static const Color feedNavyAccent = Color(0xFF70A7FF); static const Color feedForestTop = Color(0xFF0E1A16); static const Color feedForestBottom = Color(0xFF1E3A2D); static const Color feedForestPanel = Color(0xFF12261F); static const Color feedForestText = Color(0xFFF5FFF8); static const Color feedForestSubText = Color(0xFFB7D7C6); static const Color feedForestAccent = Color(0xFF5FD7A1); static const Color feedRoseTop = Color(0xFF1B0E16); static const Color feedRoseBottom = Color(0xFF3A1B2B); static const Color feedRosePanel = Color(0xFF24101A); static const Color feedRoseText = Color(0xFFFFF6F9); static const Color feedRoseSubText = Color(0xFFE0B9C6); static const Color feedRoseAccent = Color(0xFFF28FB3); static const Color feedSkyTop = Color(0xFF0B1720); static const Color feedSkyBottom = Color(0xFF193547); static const Color feedSkyPanel = Color(0xFF10212D); static const Color feedSkyText = Color(0xFFEFF7FF); static const Color feedSkySubText = Color(0xFFAFC6D9); static const Color feedSkyAccent = Color(0xFF6FD3FF); static const Color feedAmberTop = Color(0xFF201A12); static const Color feedAmberBottom = Color(0xFF3A2C1B); static const Color feedAmberPanel = Color(0xFF221B13); static const Color feedAmberText = Color(0xFFFFF7ED); static const Color feedAmberSubText = Color(0xFFD9C8AE); static const Color feedAmberAccent = Color(0xFFFFC074); } class SojornSpacing { const SojornSpacing._(); static const double xxs = 2.0; static const double xs = 4.0; static const double sm = 12.0; static const double md = 16.0; static const double lg = 24.0; static const double xl = 32.0; // Granular steps for fine-tuning static const double s6 = 6.0; static const double s8 = 8.0; static const double postShort = 16.0; static const double postMedium = 24.0; static const double postLong = 32.0; // Card-level margins static const double cardGap = 16.0; static const double cardGapThread = 4.0; } class SojornRadii { const SojornRadii._(); static const double xs = 2.0; static const double sm = 4.0; static const double md = 8.0; static const double lg = 12.0; static const double xl = 20.0; static const double full = 36.0; } class SojornLines { const SojornLines._(); static const double borderThin = 1.0; static const double border = 1.5; static const double borderStrong = 2.0; static const double divider = 1.0; static const double dividerStrong = 2.0; static const double flow = 3.0; } class SojornNav { const SojornNav._(); // Shell bottom nav static const double bottomBarHeight = 58.0; static const double bottomBarIconSize = 34.0; static const double bottomBarVerticalPadding = 0.0; static const double bottomFabGap = 48.0; static const double bottomBarLabelSize = 10.0; static const double bottomBarLabelTopGap = 1.0; // Beacon top tab icons static const double beaconTabIconSize = 18.0; }