@@ -593,7 +596,7 @@ export default function Subscription() {
{subscription.device_limit}
@@ -749,9 +752,11 @@ export default function Subscription() {
onClick={copyUrl}
className="flex h-auto items-center rounded-[10px] px-3 transition-colors duration-300"
style={{
- background: copied ? 'rgba(62,219,176,0.12)' : g.innerBorder,
- border: copied ? '1px solid rgba(62,219,176,0.2)' : `1px solid ${g.trackBg}`,
- color: copied ? '#3EDBB0' : g.textMuted,
+ background: copied ? 'rgba(var(--color-accent-400), 0.12)' : g.innerBorder,
+ border: copied
+ ? '1px solid rgba(var(--color-accent-400), 0.2)'
+ : `1px solid ${g.trackBg}`,
+ color: copied ? 'rgb(var(--color-accent-400))' : g.textMuted,
}}
title={t('subscription.copyLink')}
>
@@ -979,12 +984,12 @@ export default function Subscription() {
className="rounded-[10px] px-4 py-2 text-sm font-semibold transition-colors duration-300"
style={{
background: subscription.is_daily_paused
- ? 'rgba(62,219,176,0.12)'
+ ? 'rgba(var(--color-accent-400), 0.12)'
: 'rgba(255,184,0,0.12)',
border: subscription.is_daily_paused
- ? '1px solid rgba(62,219,176,0.2)'
+ ? '1px solid rgba(var(--color-accent-400), 0.2)'
: '1px solid rgba(255,184,0,0.2)',
- color: subscription.is_daily_paused ? '#3EDBB0' : '#FFB800',
+ color: subscription.is_daily_paused ? 'rgb(var(--color-accent-400))' : '#FFB800',
}}
>
{pauseMutation.isPending ? (
diff --git a/src/pages/SubscriptionPurchase.tsx b/src/pages/SubscriptionPurchase.tsx
index e5c96ab..040a26e 100644
--- a/src/pages/SubscriptionPurchase.tsx
+++ b/src/pages/SubscriptionPurchase.tsx
@@ -412,7 +412,8 @@ export default function SubscriptionPurchase() {
diff --git a/src/utils/trafficZone.ts b/src/utils/trafficZone.ts
index f2c9b2d..78fa0af 100644
--- a/src/utils/trafficZone.ts
+++ b/src/utils/trafficZone.ts
@@ -10,6 +10,10 @@ interface TrafficZoneResult {
labelKey: string;
gradientFrom: string;
gradientTo: string;
+ /** CSS variable for the main zone color: `rgb(var(--color-accent-400))` */
+ mainVar: string;
+ /** Raw CSS variable reference for opacity manipulation: `var(--color-accent-400)` */
+ mainVarRaw: string;
/** Key into ThemeColors for resolving mainHex at runtime */
colorKey: TrafficColorKey;
}
@@ -22,6 +26,8 @@ const ZONES: Record> = {
labelKey: 'dashboard.zone.normal',
gradientFrom: 'rgb(var(--color-accent-500))',
gradientTo: 'rgb(var(--color-accent-400))',
+ mainVar: 'rgb(var(--color-accent-400))',
+ mainVarRaw: 'var(--color-accent-400)',
colorKey: 'accent',
},
warning: {
@@ -31,6 +37,8 @@ const ZONES: Record> = {
labelKey: 'dashboard.zone.warning',
gradientFrom: 'rgb(var(--color-warning-500))',
gradientTo: 'rgb(var(--color-warning-400))',
+ mainVar: 'rgb(var(--color-warning-400))',
+ mainVarRaw: 'var(--color-warning-400)',
colorKey: 'warning',
},
danger: {
@@ -40,6 +48,8 @@ const ZONES: Record> = {
labelKey: 'dashboard.zone.danger',
gradientFrom: 'rgb(var(--color-warning-600))',
gradientTo: 'rgb(var(--color-warning-400))',
+ mainVar: 'rgb(var(--color-warning-400))',
+ mainVarRaw: 'var(--color-warning-400)',
colorKey: 'warning',
},
critical: {
@@ -49,6 +59,8 @@ const ZONES: Record> = {
labelKey: 'dashboard.zone.critical',
gradientFrom: 'rgb(var(--color-error-500))',
gradientTo: 'rgb(var(--color-error-400))',
+ mainVar: 'rgb(var(--color-error-400))',
+ mainVarRaw: 'var(--color-error-400)',
colorKey: 'error',
},
};
diff --git a/tailwind.config.js b/tailwind.config.js
index 834c809..6977e02 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -273,8 +273,8 @@ export default {
'50%': { opacity: '0.5', transform: 'scale(0.7)' },
},
trialGlow: {
- '0%, 100%': { boxShadow: '0 0 15px rgba(62, 219, 176, 0.06)' },
- '50%': { boxShadow: '0 0 30px rgba(62, 219, 176, 0.12)' },
+ '0%, 100%': { boxShadow: '0 0 15px rgba(var(--color-accent-400), 0.06)' },
+ '50%': { boxShadow: '0 0 30px rgba(var(--color-accent-400), 0.12)' },
},
},
transitionTimingFunction: {