mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 02:23:47 +00:00
refactor(tokens): extract subscription urgent + critical semantic colors
The #FFB800 (23 hits) and #FF3B5C (11 hits) raw hex literals across Subscription / SubscriptionPurchase / TrialOfferCard / useTrafficZone all represent the same semantic: 'expiring soon' and 'expired'. Distinct from warning-500 (#f59e0b) and error-500 (#ef4444) — the subscription timeline needs a sharper, hotter signal than the system-wide warning/error roles. Add two semantic tokens: --color-urgent-400: 255, 184, 0 (#FFB800) --color-critical-500: 255, 59, 92 (#FF3B5C) Exposed via Tailwind as urgent.400 / critical.500. Sweep all single-and double-quoted hex literals to rgb(var(--color-...)) form so style attrs, SVG stroke=, and ternary string values all resolve through CSS vars (auto-respects future light-theme variants). Left as-is: 4 hex appearances inside gradient pair strings — linear-gradient(135deg, #FFB800, #FF8C00) — where the partner color (#FF8C00 / #FF6B35) isn't in the token set. Partial-replace inside gradient strings would just add noise; full extraction of the orange-ramp companion is out of scope for this pass.
This commit is contained in:
@@ -107,14 +107,14 @@ export default function SubscriptionCardExpired({
|
||||
r: 255,
|
||||
g: 184,
|
||||
b: 0,
|
||||
hex: '#FFB800',
|
||||
hex: 'rgb(var(--color-urgent-400))',
|
||||
gradient: 'linear-gradient(135deg, #FFB800, #FF8C00)',
|
||||
}
|
||||
: {
|
||||
r: 255,
|
||||
g: 59,
|
||||
b: 92,
|
||||
hex: '#FF3B5C',
|
||||
hex: 'rgb(var(--color-critical-500))',
|
||||
gradient: 'linear-gradient(135deg, #FF3B5C, #FF6B35)',
|
||||
};
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ export default function TrialOfferCard({
|
||||
height="26"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="#FFB800"
|
||||
stroke="rgb(var(--color-urgent-400))"
|
||||
strokeWidth="1.5"
|
||||
aria-hidden="true"
|
||||
>
|
||||
@@ -157,11 +157,14 @@ export default function TrialOfferCard({
|
||||
>
|
||||
<span
|
||||
className="text-[32px] font-extrabold leading-none tracking-tight"
|
||||
style={{ color: '#FFB800' }}
|
||||
style={{ color: 'rgb(var(--color-urgent-400))' }}
|
||||
>
|
||||
{trialInfo.price_rubles.toFixed(0)}
|
||||
</span>
|
||||
<span className="text-base font-semibold opacity-70" style={{ color: '#FFB800' }}>
|
||||
<span
|
||||
className="text-base font-semibold opacity-70"
|
||||
style={{ color: 'rgb(var(--color-urgent-400))' }}
|
||||
>
|
||||
{currencySymbol}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@ export default function PurchaseCTAButton({
|
||||
// Daily tariffs renew automatically — no manual renewal button needed in multi-tariff
|
||||
if (isMultiTariff && isDaily && !isExpired) return null;
|
||||
|
||||
const accentColor = isExpired ? '#FF3B5C' : 'rgb(var(--color-accent-400))';
|
||||
const accentColor = isExpired ? 'rgb(var(--color-critical-500))' : 'rgb(var(--color-accent-400))';
|
||||
|
||||
const buttonText = isExpired
|
||||
? t('subscription.getSubscription')
|
||||
|
||||
Reference in New Issue
Block a user