Compare commits

...
3 Commits
Author SHA1 Message Date
kfj001 59c607ef77 Merge pull request 'style(theming): bright light "On Air" theme (vermillion + sky-cyan) — off purple/dark' (#3) from retheme/on-air-light-theme into main
Reviewed-on: http://192.168.1.74:30008/kfj001/flowercms_marketing/pulls/3
2026-08-21 10:37:22 -07:00
kfj001 ca3ad5e246 fix(hero): wire dead "See Demo" button to sales mailto as "Book a Demo"
The hero had a <button>See Demo</button> with no handler — clicking did
nothing. Convert it to the same mailto:sales@flowercms.cloud link used by
every other CTA, with subject=Demo request so a rep can route it as a demo
booking distinct from a plain "Contact Sales" inquiry.
2026-08-21 08:21:38 +00:00
kfj001 8ec1678210 style(theming): swap purple/dark theme for 'On Air' light vermillion+cyan
Move off the purple/indigo dark theme to a bright, broadcast-appropriate
light theme: warm off-white base (#fff8f5), vermillion primary (#f5333f, an
'ON AIR' nod) with a sky-cyan (#0ea5e9) secondary; red->cyan hero/CTA gradient.

- Re-point :root token family (bg/surface/card/border/text/muted/accent/
  accent-light/accent-dark/cyan/success/gradient).
- Grep-hunt the hardcoded literals the tokens bypass: nav blur bg, hero radial
  glow, badge/icon tints, CTA/feature hover glows, pricing glow, success-mark
  tiles, card/image drop-shadows, hairline borders, compare-table tints.
- Fix one 3->4 space indent regression in .vs-col.live365.
- PRESERVE white-label demo swatches (KMountain navy/orange/cream, Fire FM
  black/volt/orange) and embedded product screenshots as product samples.
- PRESERVE semantic comparison marks (#ef4444 no / #f59e0b warn).

Verified: computed :root tokens resolve to new values at runtime; full-page
render clean with no stray purple/dark chrome and no layout breakage.
2026-08-21 05:54:13 +00:00
+31 -29
View File
@@ -6,17 +6,19 @@
<title>FlowerCMS — White-Label CMS for Broadcasters</title> <title>FlowerCMS — White-Label CMS for Broadcasters</title>
<style> <style>
:root { :root {
--bg: #0a0a0a; /* Theme: "On Air" — bright, high-energy broadcast. Vermillion + sky-cyan. */
--surface: #141414; --bg: #fff8f5; /* warm off-white, not stark */
--card: #1a1a1a; --surface: #fff2ea; /* faint coral wash for section bands */
--border: #2a2a2a; --card: #ffffff;
--text: #e8e8e8; --border: #f0e2d9;
--muted: #888; --text: #1a1410; /* warm near-black */
--accent: #6366f1; --muted: #6b6259;
--accent-light: #818cf8; --accent: #f5333f; /* "on air" vermillion */
--accent-dark: #4f46e5; --accent-light: #ff6b6b;
--success: #22c55e; --accent-dark: #c81c2c;
--gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%); --cyan: #0ea5e9; /* sky-cyan secondary */
--success: #16a34a; /* "yes/online" green */
--gradient: linear-gradient(135deg, #ff5470 0%, #f5333f 40%, #0ea5e9 100%);
} }
* { margin: 0; padding: 0; box-sizing: border-box; } * { margin: 0; padding: 0; box-sizing: border-box; }
@@ -41,7 +43,7 @@
left: 0; left: 0;
right: 0; right: 0;
z-index: 100; z-index: 100;
background: rgba(10,10,10,0.8); background: rgba(255,248,245,0.85);
backdrop-filter: blur(20px); backdrop-filter: blur(20px);
border-bottom: 1px solid var(--border); border-bottom: 1px solid var(--border);
padding: 16px 40px; padding: 16px 40px;
@@ -78,7 +80,7 @@
} }
nav .cta:hover { nav .cta:hover {
transform: translateY(-1px); transform: translateY(-1px);
box-shadow: 0 4px 20px rgba(99,102,241,0.4); box-shadow: 0 4px 20px rgba(245,51,63,0.4);
} }
/* HERO */ /* HERO */
@@ -97,13 +99,13 @@
transform: translateX(-50%); transform: translateX(-50%);
width: 600px; width: 600px;
height: 600px; height: 600px;
background: radial-gradient(circle, rgba(99,102,241,0.15) 0%, transparent 70%); background: radial-gradient(circle, rgba(245,51,63,0.15) 0%, transparent 70%);
pointer-events: none; pointer-events: none;
} }
.hero .badge { .hero .badge {
display: inline-block; display: inline-block;
background: rgba(99,102,241,0.1); background: rgba(245,51,63,0.1);
border: 1px solid rgba(99,102,241,0.3); border: 1px solid rgba(245,51,63,0.3);
color: var(--accent-light); color: var(--accent-light);
padding: 6px 16px; padding: 6px 16px;
border-radius: 20px; border-radius: 20px;
@@ -149,7 +151,7 @@
} }
.hero .btn-primary:hover { .hero .btn-primary:hover {
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(99,102,241,0.4); box-shadow: 0 8px 30px rgba(245,51,63,0.4);
} }
.hero .btn-secondary { .hero .btn-secondary {
background: transparent; background: transparent;
@@ -174,7 +176,7 @@
width: 100%; width: 100%;
border-radius: 16px; border-radius: 16px;
border: 1px solid var(--border); border: 1px solid var(--border);
box-shadow: 0 20px 60px rgba(0,0,0,0.5); box-shadow: 0 20px 50px rgba(46,30,20,0.16);
} }
/* FEATURES */ /* FEATURES */
@@ -252,7 +254,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: rgba(34,197,94,0.1); background: rgba(22,163,74,0.12);
border-radius: 50%; border-radius: 50%;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -260,7 +262,7 @@
border-radius: 12px; border-radius: 12px;
overflow: hidden; overflow: hidden;
border: 1px solid var(--border); border: 1px solid var(--border);
box-shadow: 0 10px 40px rgba(0,0,0,0.3); box-shadow: 0 10px 40px rgba(46,30,20,0.10);
} }
.feature-image img { .feature-image img {
width: 100%; width: 100%;
@@ -310,7 +312,7 @@
.grid-card .icon { .grid-card .icon {
width: 44px; width: 44px;
height: 44px; height: 44px;
background: rgba(99,102,241,0.1); background: rgba(245,51,63,0.1);
border-radius: 10px; border-radius: 10px;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -359,7 +361,7 @@
} }
.cta-section .btn-primary:hover { .cta-section .btn-primary:hover {
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(99,102,241,0.4); box-shadow: 0 8px 30px rgba(245,51,63,0.4);
} }
/* FOOTER */ /* FOOTER */
@@ -445,7 +447,7 @@
width: 32px; width: 32px;
height: 32px; height: 32px;
border-radius: 6px; border-radius: 6px;
border: 1px solid rgba(255,255,255,0.1); border: 1px solid rgba(0,0,0,0.08);
} }
.showcase-card-body p { .showcase-card-body p {
color: var(--muted); color: var(--muted);
@@ -508,7 +510,7 @@
border-radius: 16px; border-radius: 16px;
padding: 48px 40px; padding: 48px 40px;
margin-bottom: 60px; margin-bottom: 60px;
box-shadow: 0 0 60px rgba(99,102,241,0.15); box-shadow: 0 0 60px rgba(245,51,63,0.15);
} }
.pricing-header { .pricing-header {
margin-bottom: 36px; margin-bottom: 36px;
@@ -559,7 +561,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: rgba(34,197,94,0.1); background: rgba(22,163,74,0.12);
border-radius: 50%; border-radius: 50%;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -583,7 +585,7 @@
} }
.pricing-cta .btn-primary:hover { .pricing-cta .btn-primary:hover {
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(99,102,241,0.4); box-shadow: 0 8px 30px rgba(245,51,63,0.4);
} }
.pricing-cta .btn-contact { .pricing-cta .btn-contact {
color: var(--muted); color: var(--muted);
@@ -652,10 +654,10 @@
} }
.vs-col:last-child { border-right: none; } .vs-col:last-child { border-right: none; }
.vs-col.live365 { .vs-col.live365 {
background: rgba(255,255,255,0.02); background: rgba(0,0,0,0.02);
} }
.vs-col.flowercms { .vs-col.flowercms {
background: rgba(99,102,241,0.05); background: rgba(245,51,63,0.05);
font-weight: 600; font-weight: 600;
} }
.vs-col.highlight .yes { .vs-col.highlight .yes {
@@ -725,7 +727,7 @@
<p>White-label content management for small radio and internet broadcasters. Professional websites, custom branding, and native mobile apps — all from one dashboard.</p> <p>White-label content management for small radio and internet broadcasters. Professional websites, custom branding, and native mobile apps — all from one dashboard.</p>
<div class="hero-cta"> <div class="hero-cta">
<a href="mailto:sales@flowercms.cloud" class="btn-primary">Contact Sales</a> <a href="mailto:sales@flowercms.cloud" class="btn-primary">Contact Sales</a>
<button class="btn-secondary">See Demo</button> <a href="mailto:sales@flowercms.cloud?subject=Demo%20request" class="btn-secondary">Book a Demo</a>
</div> </div>
</section> </section>