From c91175fdcb3dd20241d14cd4dd4d6abd1fa10466 Mon Sep 17 00:00:00 2001 From: "IGNY8 VPS (Salman)" Date: Mon, 29 Dec 2025 05:59:56 +0000 Subject: [PATCH] styling css gloablization --- .../dashboard/ThreeWidgetFooter.tsx | 26 ++- .../src/components/form/input/RadioSm.tsx | 2 +- .../sites/WordPressIntegrationForm.tsx | 4 +- frontend/src/components/ui/button/Button.tsx | 10 +- frontend/src/components/ui/list/List.tsx | 2 +- frontend/src/index.css | 152 ++++++++++-------- frontend/src/styles/igny8-colors.css | 44 ++--- frontend/src/styles/tokens.css | 46 +++--- 8 files changed, 148 insertions(+), 138 deletions(-) diff --git a/frontend/src/components/dashboard/ThreeWidgetFooter.tsx b/frontend/src/components/dashboard/ThreeWidgetFooter.tsx index 01b44910..e1ea3289 100644 --- a/frontend/src/components/dashboard/ThreeWidgetFooter.tsx +++ b/frontend/src/components/dashboard/ThreeWidgetFooter.tsx @@ -147,10 +147,11 @@ function PageProgressCard({ widget, submoduleColor = 'blue' }: { widget: PagePro {/* Hint with icon */} {widget.hint && (
- - {widget.hint} + + {widget.hint}
)} + ); } @@ -178,23 +179,21 @@ function ModuleStatsCard({ widget }: { widget: ModuleStatsWidget }) { {row.fromHref ? ( {row.fromLabel} ) : ( {row.fromLabel} )} - + {row.fromValue} {/* Arrow icon */} {/* To side */} @@ -202,8 +201,7 @@ function ModuleStatsCard({ widget }: { widget: ModuleStatsWidget }) { {row.toHref ? ( {row.toLabel} @@ -236,8 +234,7 @@ function ModuleStatsCard({ widget }: { widget: ModuleStatsWidget }) { {link.label} @@ -300,7 +297,7 @@ function CompletionCard({ widget }: { widget: CompletionWidget }) {
{/* Planner Column */}
-
+
Planner
@@ -312,7 +309,7 @@ function CompletionCard({ widget }: { widget: CompletionWidget }) { {/* Writer Column */}
-
+
Writer
@@ -347,8 +344,7 @@ function CompletionCard({ widget }: { widget: CompletionWidget }) {
View Full Analytics diff --git a/frontend/src/components/form/input/RadioSm.tsx b/frontend/src/components/form/input/RadioSm.tsx index 5bebcdde..d0fe19ed 100644 --- a/frontend/src/components/form/input/RadioSm.tsx +++ b/frontend/src/components/form/input/RadioSm.tsx @@ -44,7 +44,7 @@ const RadioSm: React.FC = ({ {/* Inner Dot */} diff --git a/frontend/src/components/sites/WordPressIntegrationForm.tsx b/frontend/src/components/sites/WordPressIntegrationForm.tsx index 66f8cf18..f6763742 100644 --- a/frontend/src/components/sites/WordPressIntegrationForm.tsx +++ b/frontend/src/components/sites/WordPressIntegrationForm.tsx @@ -317,10 +317,10 @@ export default function WordPressIntegrationForm({
-
+
Regenerate
-
+
diff --git a/frontend/src/components/ui/button/Button.tsx b/frontend/src/components/ui/button/Button.tsx index 14610799..9fce77ac 100644 --- a/frontend/src/components/ui/button/Button.tsx +++ b/frontend/src/components/ui/button/Button.tsx @@ -42,7 +42,7 @@ const toneMap: Record< brand: { primary: "bg-brand-500 text-white hover:bg-brand-600", secondary: - "bg-[#64748b] text-white hover:bg-[#475569] dark:bg-[#64748b] dark:hover:bg-[#475569]", + "bg-gray-500 text-white hover:bg-gray-600 dark:bg-gray-500 dark:hover:bg-gray-600", outline: "text-brand-600 ring-1 ring-brand-200 hover:bg-brand-25 dark:ring-brand-500/40 dark:text-brand-300 dark:hover:bg-brand-500/[0.08]", ghost: @@ -52,7 +52,7 @@ const toneMap: Record< success: { primary: "bg-success-500 text-white hover:bg-success-600", secondary: - "bg-[#64748b] text-white hover:bg-[#475569] dark:bg-[#64748b] dark:hover:bg-[#475569]", + "bg-gray-500 text-white hover:bg-gray-600 dark:bg-gray-500 dark:hover:bg-gray-600", outline: "text-success-600 ring-1 ring-success-200 hover:bg-success-25 dark:ring-success-500/40 dark:text-success-300", ghost: @@ -62,7 +62,7 @@ const toneMap: Record< warning: { primary: "bg-warning-500 text-white hover:bg-warning-600", secondary: - "bg-[#64748b] text-white hover:bg-[#475569] dark:bg-[#64748b] dark:hover:bg-[#475569]", + "bg-gray-500 text-white hover:bg-gray-600 dark:bg-gray-500 dark:hover:bg-gray-600", outline: "text-warning-600 ring-1 ring-warning-200 hover:bg-warning-25 dark:ring-warning-500/40 dark:text-warning-300", ghost: @@ -72,7 +72,7 @@ const toneMap: Record< danger: { primary: "bg-error-500 text-white hover:bg-error-600", secondary: - "bg-[#64748b] text-white hover:bg-[#475569] dark:bg-[#64748b] dark:hover:bg-[#475569]", + "bg-gray-500 text-white hover:bg-gray-600 dark:bg-gray-500 dark:hover:bg-gray-600", outline: "text-error-600 ring-1 ring-error-200 hover:bg-error-25 dark:ring-error-500/40 dark:text-error-300", ghost: @@ -83,7 +83,7 @@ const toneMap: Record< primary: "bg-gray-900 text-white hover:bg-gray-800 dark:bg-white/10 dark:hover:bg-white/20", secondary: - "bg-[#64748b] text-white hover:bg-[#475569] dark:bg-[#64748b] dark:hover:bg-[#475569]", + "bg-gray-500 text-white hover:bg-gray-600 dark:bg-gray-500 dark:hover:bg-gray-600", outline: "text-gray-700 ring-1 ring-gray-300 hover:bg-gray-50 dark:text-gray-200 dark:ring-white/[0.08] dark:hover:bg-white/[0.04]", ghost: diff --git a/frontend/src/components/ui/list/List.tsx b/frontend/src/components/ui/list/List.tsx index 685fcdf6..300199cb 100644 --- a/frontend/src/components/ui/list/List.tsx +++ b/frontend/src/components/ui/list/List.tsx @@ -188,7 +188,7 @@ export const ListRadioItem: React.FC = ({ onChange={(e) => onChange?.(e.target.value)} /> - + {label} diff --git a/frontend/src/index.css b/frontend/src/index.css index d96cbe89..6f61a923 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -58,32 +58,35 @@ layer(base); --color-white: #ffffff; --color-black: #101828; - --color-brand-25: #f2f7ff; - --color-brand-50: #ecf3ff; - --color-brand-100: #dde9ff; - --color-brand-200: #c2d6ff; - --color-brand-300: #9cb9ff; - --color-brand-400: #7592ff; + /* Brand Colors - Dynamically calculated from --color-primary (#0693e3) */ + --color-brand-25: color-mix(in srgb, var(--color-primary) 3%, white); + --color-brand-50: color-mix(in srgb, var(--color-primary) 8%, white); + --color-brand-100: color-mix(in srgb, var(--color-primary) 15%, white); + --color-brand-200: color-mix(in srgb, var(--color-primary) 25%, white); + --color-brand-300: color-mix(in srgb, var(--color-primary) 40%, white); + --color-brand-400: color-mix(in srgb, var(--color-primary) 60%, white); --color-brand-500: var(--color-primary); /* Primary brand blue */ --color-brand-600: var(--color-primary-dark); /* Primary brand blue dark */ - --color-brand-700: #2a31d8; - --color-brand-800: #252dae; - --color-brand-900: #262e89; - --color-brand-950: #161950; + --color-brand-700: color-mix(in srgb, var(--color-primary-dark) 85%, black); + --color-brand-800: color-mix(in srgb, var(--color-primary-dark) 70%, black); + --color-brand-900: color-mix(in srgb, var(--color-primary-dark) 55%, black); + --color-brand-950: color-mix(in srgb, var(--color-primary-dark) 35%, black); - --color-blue-light-25: #f5fbff; - --color-blue-light-50: #f0f9ff; - --color-blue-light-100: #e0f2fe; - --color-blue-light-200: #b9e6fe; - --color-blue-light-300: #7cd4fd; - --color-blue-light-400: #36bffa; + /* Blue Light - Dynamically calculated */ + --color-blue-light-25: color-mix(in srgb, #0ba5ec 3%, white); + --color-blue-light-50: color-mix(in srgb, #0ba5ec 6%, white); + --color-blue-light-100: color-mix(in srgb, #0ba5ec 12%, white); + --color-blue-light-200: color-mix(in srgb, #0ba5ec 25%, white); + --color-blue-light-300: color-mix(in srgb, #0ba5ec 45%, white); + --color-blue-light-400: color-mix(in srgb, #0ba5ec 70%, white); --color-blue-light-500: #0ba5ec; - --color-blue-light-600: #0086c9; - --color-blue-light-700: #026aa2; - --color-blue-light-800: #065986; - --color-blue-light-900: #0b4a6f; - --color-blue-light-950: #062c41; + --color-blue-light-600: color-mix(in srgb, #0ba5ec 100%, black 15%); + --color-blue-light-700: color-mix(in srgb, #0ba5ec 100%, black 35%); + --color-blue-light-800: color-mix(in srgb, #0ba5ec 100%, black 50%); + --color-blue-light-900: color-mix(in srgb, #0ba5ec 100%, black 65%); + --color-blue-light-950: color-mix(in srgb, #0ba5ec 100%, black 80%); + /* Gray Scale - Neutral palette */ --color-gray-25: #fcfcfd; --color-gray-50: #f9fafb; --color-gray-100: #f2f4f7; @@ -98,61 +101,72 @@ layer(base); --color-gray-950: #0c111d; --color-gray-dark: #1a2231; - --color-orange-25: #fffaf5; - --color-orange-50: #fff6ed; - --color-orange-100: #ffead5; - --color-orange-200: #fddcab; - --color-orange-300: #feb273; - --color-orange-400: #fd853a; - --color-orange-500: #fb6514; - --color-orange-600: #ec4a0a; - --color-orange-700: #c4320a; - --color-orange-800: #9c2a10; - --color-orange-900: #7e2410; - --color-orange-950: #511c10; + /* Orange/Warning - Dynamically calculated from --color-warning (#ff7a00) */ + --color-orange-25: color-mix(in srgb, var(--color-warning) 2%, white); + --color-orange-50: color-mix(in srgb, var(--color-warning) 5%, white); + --color-orange-100: color-mix(in srgb, var(--color-warning) 12%, white); + --color-orange-200: color-mix(in srgb, var(--color-warning) 25%, white); + --color-orange-300: color-mix(in srgb, var(--color-warning) 45%, white); + --color-orange-400: color-mix(in srgb, var(--color-warning) 70%, white); + --color-orange-500: color-mix(in srgb, var(--color-warning) 95%, white); + --color-orange-600: var(--color-warning); + --color-orange-700: var(--color-warning-dark); + --color-orange-800: color-mix(in srgb, var(--color-warning-dark) 80%, black); + --color-orange-900: color-mix(in srgb, var(--color-warning-dark) 65%, black); + --color-orange-950: color-mix(in srgb, var(--color-warning-dark) 40%, black); - --color-success-25: #f6fef9; - --color-success-50: #ecfdf3; - --color-success-100: #d1fadf; - --color-success-200: #a6f4c5; - --color-success-300: #6ce9a6; - --color-success-400: #32d583; - --color-success-500: #12b76a; - --color-success-600: #039855; - --color-success-700: #027a48; - --color-success-800: #05603a; - --color-success-900: #054f31; - --color-success-950: #053321; + /* Success/Green - Dynamically calculated from --color-success (#0bbf87) */ + --color-success-25: color-mix(in srgb, var(--color-success) 2%, white); + --color-success-50: color-mix(in srgb, var(--color-success) 6%, white); + --color-success-100: color-mix(in srgb, var(--color-success) 15%, white); + --color-success-200: color-mix(in srgb, var(--color-success) 30%, white); + --color-success-300: color-mix(in srgb, var(--color-success) 50%, white); + --color-success-400: color-mix(in srgb, var(--color-success) 75%, white); + --color-success-500: var(--color-success); + --color-success-600: var(--color-success-dark); + --color-success-700: color-mix(in srgb, var(--color-success-dark) 85%, black); + --color-success-800: color-mix(in srgb, var(--color-success-dark) 65%, black); + --color-success-900: color-mix(in srgb, var(--color-success-dark) 50%, black); + --color-success-950: color-mix(in srgb, var(--color-success-dark) 35%, black); - --color-error-25: #fffbfa; - --color-error-50: #fef3f2; - --color-error-100: #fee4e2; - --color-error-200: #fecdca; - --color-error-300: #fda29b; - --color-error-400: #f97066; - --color-error-500: #f04438; - --color-error-600: #d92d20; - --color-error-700: #b42318; - --color-error-800: #912018; - --color-error-900: #7a271a; - --color-error-950: #55160c; + /* Error/Danger - Dynamically calculated from --color-danger (#ef4444) */ + --color-error-25: color-mix(in srgb, var(--color-danger) 2%, white); + --color-error-50: color-mix(in srgb, var(--color-danger) 5%, white); + --color-error-100: color-mix(in srgb, var(--color-danger) 10%, white); + --color-error-200: color-mix(in srgb, var(--color-danger) 20%, white); + --color-error-300: color-mix(in srgb, var(--color-danger) 40%, white); + --color-error-400: color-mix(in srgb, var(--color-danger) 65%, white); + --color-error-500: var(--color-danger); + --color-error-600: var(--color-danger-dark); + --color-error-700: color-mix(in srgb, var(--color-danger-dark) 80%, black); + --color-error-800: color-mix(in srgb, var(--color-danger-dark) 65%, black); + --color-error-900: color-mix(in srgb, var(--color-danger-dark) 50%, black); + --color-error-950: color-mix(in srgb, var(--color-danger-dark) 30%, black); - --color-warning-25: #fffcf5; - --color-warning-50: #fffaeb; - --color-warning-100: #fef0c7; - --color-warning-200: #fedf89; - --color-warning-300: #fec84b; - --color-warning-400: #fdb022; + /* Warning/Amber - Dynamically calculated (alternative yellow-based warning) */ + --color-warning-25: color-mix(in srgb, #f79009 2%, white); + --color-warning-50: color-mix(in srgb, #f79009 4%, white); + --color-warning-100: color-mix(in srgb, #f79009 10%, white); + --color-warning-200: color-mix(in srgb, #f79009 20%, white); + --color-warning-300: color-mix(in srgb, #f79009 40%, white); + --color-warning-400: color-mix(in srgb, #f79009 65%, white); --color-warning-500: #f79009; - --color-warning-600: #dc6803; - --color-warning-700: #b54708; - --color-warning-800: #93370d; - --color-warning-900: #7a2e0e; - --color-warning-950: #4e1d09; + --color-warning-600: color-mix(in srgb, #f79009 100%, black 15%); + --color-warning-700: color-mix(in srgb, #f79009 100%, black 35%); + --color-warning-800: color-mix(in srgb, #f79009 100%, black 50%); + --color-warning-900: color-mix(in srgb, #f79009 100%, black 65%); + --color-warning-950: color-mix(in srgb, #f79009 100%, black 80%); + /* Theme Accent Colors - Dynamically calculated from --color-purple and pink */ --color-theme-pink-500: #ee46bc; + --color-theme-pink-50: color-mix(in srgb, #ee46bc 8%, white); + --color-theme-pink-100: color-mix(in srgb, #ee46bc 15%, white); + --color-theme-pink-600: color-mix(in srgb, #ee46bc 100%, black 15%); - --color-theme-purple-500: #7a5af8; + --color-theme-purple-500: var(--color-purple); + --color-theme-purple-50: color-mix(in srgb, var(--color-purple) 8%, white); + --color-theme-purple-100: color-mix(in srgb, var(--color-purple) 15%, white); + --color-theme-purple-600: var(--color-purple-dark); --shadow-theme-md: 0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06); diff --git a/frontend/src/styles/igny8-colors.css b/frontend/src/styles/igny8-colors.css index c614b89c..79815cae 100644 --- a/frontend/src/styles/igny8-colors.css +++ b/frontend/src/styles/igny8-colors.css @@ -152,7 +152,7 @@ justify-content: space-between; margin-bottom: 12px; background: var(--igny8-gradient-blue); - color: #fff; + color: white; padding: 12px 16px; border-radius: var(--igny8-radius) var(--igny8-radius) 0 0; margin: -10px -10px 12px -10px; @@ -171,7 +171,7 @@ border-radius: var(--igny8-radius); cursor: pointer; transition: all 0.2s ease-in-out; - color: #fff; + color: white; text-decoration: none; white-space: nowrap; margin: 0 5px; @@ -236,16 +236,16 @@ padding: 12px 16px !important; /* Increased height for headers */ font-size: 14px !important; /* Larger font for headers */ font-weight: 600 !important; - color: #475467 !important; /* gray-600 - darker for better visibility */ + color: var(--color-gray-600) !important; /* gray-600 - darker for better visibility */ text-align: left !important; - background-color: #f8fafc !important; /* Light gray background */ - border-bottom: 2px solid #e2e8f0 !important; /* Thicker bottom border */ + background-color: var(--color-gray-50) !important; /* Light gray background */ + border-bottom: 2px solid var(--color-gray-200) !important; /* Thicker bottom border */ text-transform: capitalize; letter-spacing: 0.3px; } .dark .igny8-table-compact th { - color: #e5eaf0 !important; /* Lighter text for dark mode */ + color: var(--color-gray-200) !important; /* Lighter text for dark mode */ background-color: rgba(15, 23, 42, 0.5) !important; /* Dark gray background */ border-bottom-color: rgba(255, 255, 255, 0.1) !important; } @@ -254,7 +254,7 @@ .igny8-table-compact td { padding: 8px 12px !important; /* Reduced padding for body cells */ font-size: 14px !important; /* Consistent size across all cells */ - border-bottom: 1px solid #e2e8f0 !important; + border-bottom: 1px solid var(--color-gray-200) !important; } .dark .igny8-table-compact td { @@ -301,33 +301,33 @@ select.igny8-select-styled { select.igny8-select-styled option { padding: 10px 12px !important; - background: #fff !important; - color: #334054 !important; + background: white !important; + color: var(--color-gray-700) !important; font-size: 13px !important; } select.igny8-select-styled option:hover { - background: #f1f5f9 !important; + background: var(--color-gray-100) !important; } select.igny8-select-styled option:checked { - background: #ede9fe !important; - color: #5d4ae3 !important; + background: var(--color-purple-100) !important; + color: var(--color-purple-600) !important; font-weight: 600 !important; } .dark select.igny8-select-styled option { - background: #1f2937 !important; - color: #e5eaf0 !important; + background: var(--color-gray-800) !important; + color: var(--color-gray-200) !important; } .dark select.igny8-select-styled option:hover { - background: #374151 !important; + background: var(--color-gray-700) !important; } .dark select.igny8-select-styled option:checked { - background: #3a2f94 !important; - color: #e9d5ff !important; + background: var(--color-purple-900) !important; + color: var(--color-purple-200) !important; } /* === Header Metrics Bar (compact, right-aligned) === */ @@ -389,7 +389,7 @@ select.igny8-select-styled option:checked { } .dark .igny8-header-metric-value { - color: #fff; + color: white; } .igny8-header-metric-accent { @@ -425,13 +425,13 @@ select.igny8-select-styled option:checked { /* Very Hard (5) - Darker error background (not maroon, just darker error red) */ .difficulty-badge.difficulty-very-hard { - background-color: #dc2626 !important; /* red-600 - darker than bg-error-500 (red-500) */ - color: #fff !important; + background-color: var(--color-error-600) !important; /* red-600 - darker than bg-error-500 (red-500) */ + color: white !important; } .dark .difficulty-badge.difficulty-very-hard { - background-color: #dc2626 !important; /* red-600 - darker error */ - color: #fff !important; + background-color: var(--color-error-600) !important; /* red-600 - darker error */ + color: white !important; } /* Center align Difficulty column header and cells */ diff --git a/frontend/src/styles/tokens.css b/frontend/src/styles/tokens.css index 0e41fba6..deef4bcf 100644 --- a/frontend/src/styles/tokens.css +++ b/frontend/src/styles/tokens.css @@ -11,42 +11,42 @@ /* =================================================================== PRIMARY BRAND COLORS =================================================================== */ - --color-primary: #0693e3; /* Primary brand blue - main CTA */ - --color-primary-dark: #0472b8; /* Darkened for hover / active / gradient depth */ + --color-primary: #2C7AA1; /* Primary rich blue - main CTA */ + --color-primary-dark: #236082; /* Darkened for hover / active / gradient depth */ - /* Success Green (cooler to match cyan) */ - --color-success: #0bbf87; /* Teal-green for success states */ - --color-success-dark: #08966b; /* Deeper teal-green for hover / active */ + /* Success Green (teal-aligned) */ + --color-success: #2CA18E; /* Deep teal for success states */ + --color-success-dark: #238272; /* Deeper teal for hover / active */ - /* Amber / Warning (warmed up to complement cyan) */ - --color-warning: #ff7a00; /* Vivid orange for highlight / warning */ - --color-warning-dark: #cc5f00; /* Darker orange for hover / strong warning */ + /* Amber / Warning (warm contrast to cool palette) */ + --color-warning: #D9A12C; /* Golden amber for highlight / warning */ + --color-warning-dark: #B8872A; /* Darker amber for hover / strong warning */ /* Danger / Destructive */ - --color-danger: #ef4444; - --color-danger-dark: #d13333; /* Refreshed red with better contrast */ + --color-danger: #A12C40; /* Deep red aligned with palette */ + --color-danger-dark: #832334; /* Darker red for hover / active */ - /* Purple */ - --color-purple: #5d4ae3; /* Purple for highlighting / special emphasis */ - --color-purple-dark: #3a2f94; /* Darker purple for hover / active */ + /* Purple (accent for special emphasis) */ + --color-purple: #2C40A1; /* Navy-purple from analogous palette */ + --color-purple-dark: #232F7A; /* Darker navy-purple for hover / active */ /* =================================================================== BACKGROUND COLORS =================================================================== */ - --color-navy: #0d1b2a; /* Sidebar background */ - --color-navy-light: #142b3f; /* Slightly lighter navy, hover/active */ - --color-surface: #f8fafc; /* Page background (soft gray-white) */ - --color-panel: #ffffff; /* Cards / panel foreground */ - --color-panel-alt: #f1f5f9; /* Sub-panel / hover card background */ + --color-navy: #1A2B3C; /* Sidebar background (charcoal-navy) */ + --color-navy-light: #243A4D; /* Slightly lighter navy, hover/active */ + --color-surface: #F8FAFB; /* Page background (cool gray-white) */ + --color-panel: #FFFFFF; /* Cards / panel foreground */ + --color-panel-alt: #EEF4F7; /* Sub-panel / hover card background (teal-tinted) */ /* =================================================================== TEXT COLORS =================================================================== */ - --color-text: #555a68; /* main headings/body text */ - --color-text-dim: #64748b; /* secondary/subtext */ - --color-text-light: #e5eaf0; /* text on dark sidebar */ - --color-stroke: #e2e8f0; /* table/grid borders and dividers */ - + --color-text: #1A2B3C; /* Main headings/body text (matches navy) */ + --color-text-dim: #5A6B7C; /* Secondary/subtext (mid-gray with blue undertone) */ + --color-text-light: #E8F0F4; /* Text on dark sidebar */ + --color-stroke: #D4E0E8; /* Table/grid borders and dividers (cool-tinted) */ + /* =================================================================== BORDER RADIUS =================================================================== */