Skip to content

Commit bf86b3c

Browse files
committed
feat(hero-image): enhance daytime and night sky compositions for improved visual impact
1 parent eea7d79 commit bf86b3c

File tree

1 file changed

+34
-32
lines changed

1 file changed

+34
-32
lines changed

.claude/skills/layer5-blog-writer/scripts/generate_hero_image.py

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -81,38 +81,40 @@
8181
CORNER_WARMTH = [
8282
# cx, cy, rx, ry, color, opacity
8383
#
84-
# Daytime: deep Saffron packed tight into the upper-left corner like a sun,
85-
# Keppel + Caribbean Green saturating the entire bottom edge,
86-
# Steel Teal bridging the mid-sky, large luminous white clearing center-right.
87-
# Reference: Layer5 Marketing/People/legos.ai, worship.ai, internships-open.ai
88-
(0.05, 0.06, 0.32, 0.28, SAFFRON, 0.98), # deep saffron — tight upper-left sun
89-
(0.20, 0.16, 0.28, 0.24, BANANA, 0.80), # banana mania — warm glow off the sun
90-
(0.08, 0.86, 0.30, 0.26, TEAL, 0.90), # keppel — bottom-left, strong
91-
(0.45, 0.94, 0.46, 0.22, TEAL, 0.92), # keppel — bottom center, wide band
92-
(0.88, 0.88, 0.38, 0.26, TEAL_LIGHT, 0.90), # caribbean green — bottom-right, strong
93-
(0.44, 0.50, 0.36, 0.30, STEEL_TEAL, 0.60), # steel teal — mid-sky transition
94-
# Large luminous white clearing — center-right, generous size so Five
95-
# reads clearly and the transition from color edges feels spacious
96-
(0.66, 0.44, 0.46, 0.58, WHITE, 0.97),
84+
# Daytime: Saffron sun packed into upper-left corner, Steel Teal sweeping the
85+
# upper-right sky (prominent blue sky field — matching "Twitter post 2.ai" / Kubernetes
86+
# signpost reference), Keppel + Caribbean Green saturating the entire bottom edge,
87+
# large luminous white clearing center-right where Five stands.
88+
# Reference: Layer5 "Twitter post 2.ai" (Kubernetes signpost), "legos.ai", "worship.ai"
89+
(0.05, 0.06, 0.36, 0.30, SAFFRON, 1.00), # deep saffron — upper-left sun, full
90+
(0.22, 0.14, 0.30, 0.26, BANANA, 0.90), # banana mania — warm halo off the sun
91+
(0.82, 0.06, 0.46, 0.38, STEEL_TEAL, 0.92), # steel teal — upper-right sky, prominent
92+
(0.08, 0.86, 0.32, 0.28, TEAL, 0.96), # keppel — bottom-left, vivid
93+
(0.45, 0.94, 0.50, 0.24, TEAL, 0.98), # keppel — bottom center, full-width band
94+
(0.88, 0.88, 0.42, 0.28, TEAL_LIGHT, 0.96), # caribbean green — bottom-right, vivid
95+
(0.44, 0.36, 0.36, 0.30, STEEL_TEAL, 0.68), # steel teal — mid-sky transition
96+
# Large luminous white clearing — center-right, where Five stands
97+
(0.66, 0.44, 0.54, 0.68, WHITE, 0.97),
9798
]
9899

99100
DEEP_SPACE = [
100-
# Night sky: Charcoal at three corners for deep space darkness,
101-
# Steel Teal dominates the upper-left sky, Saffron gold accent sits in the
102-
# upper-RIGHT corner (not lower-left) — matching the "Meet Five" reference
103-
# where gold appears as a distant warm star on the opposite side from the dark.
104-
# Reference: Layer5 Marketing/People/instructions.ai, downhill.ai,
101+
# Night sky: Charcoal anchors three corners for deep space darkness,
102+
# Steel Teal dominates the upper sky sweep, Saffron in upper-RIGHT as a
103+
# LARGE vivid color field (not just a corner dot) — matching "Bi-Weekly Meshery
104+
# Build & Release" where saffron occupies 40%+ of the canvas right side, and
105+
# "Newcomers Meeting" where saffron/gold is a dominant warm presence.
106+
# Reference: "Bi-Weekly Meshery Build & Release.ai", "Newcomers Meeting.ai",
105107
# "Meet Five our intergalactic Cloud Native Hero" illustration
106-
(0.04, 0.06, 0.28, 0.30, CHARCOAL, 0.95), # very dark — upper-left corner
107-
(0.04, 0.94, 0.26, 0.24, CHARCOAL, 0.92), # very dark — lower-left corner
108-
(0.96, 0.94, 0.22, 0.20, CHARCOAL, 0.85), # very dark — lower-right corner
109-
(0.88, 0.10, 0.30, 0.28, SAFFRON, 0.62), # gold — upper-RIGHT accent (distant star)
110-
(0.72, 0.08, 0.24, 0.22, BANANA, 0.45), # banana — soft halo around the gold
111-
(0.46, 0.18, 0.62, 0.44, STEEL_TEAL, 0.85), # steel teal — large upper-sky sweep
112-
(0.16, 0.50, 0.30, 0.40, STEEL_TEAL, 0.70), # steel teal — mid-left depth layer
108+
(0.04, 0.06, 0.28, 0.30, CHARCOAL, 0.98), # very dark — upper-left corner
109+
(0.04, 0.94, 0.26, 0.24, CHARCOAL, 0.95), # very dark — lower-left corner
110+
(0.96, 0.94, 0.22, 0.20, CHARCOAL, 0.90), # very dark — lower-right corner
111+
(0.88, 0.10, 0.46, 0.44, SAFFRON, 0.90), # gold — upper-RIGHT, large vivid field
112+
(0.76, 0.08, 0.32, 0.28, BANANA, 0.68), # banana — warm halo around the gold
113+
(0.44, 0.18, 0.70, 0.52, STEEL_TEAL, 0.90), # steel teal — large upper-sky sweep
114+
(0.16, 0.52, 0.34, 0.46, STEEL_TEAL, 0.80), # steel teal — mid-left depth layer
113115
# Large luminous clearing — generous, center-weighted where Five stands
114-
(0.60, 0.46, 0.46, 0.56, WHITE, 0.94),
115-
(0.65, 0.42, 0.22, 0.28, OFF_WHITE, 0.88), # bright core
116+
(0.60, 0.46, 0.54, 0.66, WHITE, 0.95),
117+
(0.65, 0.42, 0.24, 0.30, OFF_WHITE, 0.90), # bright core
116118
]
117119

118120
# Map category → composition. Corner Warmth is the warmer, more energetic look;
@@ -154,7 +156,7 @@ def bg_blobs_svg(category, W, H):
154156
1200px canvas gives stdDeviation=120, matching the style guide reference.
155157
"""
156158
composition = CATEGORY_COMPOSITION.get(category, CORNER_WARMTH)
157-
blur_std = round(W * 0.08) # 96px at 1200px canvas — slightly crisper zone edges
159+
blur_std = round(W * 0.10) # 120px at 1200px canvas — wide, smooth color transitions
158160

159161
filter_def = (
160162
f'<filter id="bgBlur" x="-100%" y="-100%" width="300%" height="300%">\n'
@@ -440,7 +442,7 @@ def generate_hero_svg(title, subtitle, category, output_path, repo_root,
440442
footer_text = "layer5.io - Making Engineers Expect More from Their Infrastructure"
441443

442444
# ── Text-side scrim width (left 58% of canvas) ───────────────────────
443-
scrim_w = int(W * 0.58)
445+
scrim_w = int(W * 0.52)
444446

445447
# ── Compose SVG ───────────────────────────────────────────────────────
446448
svg_content = f"""<?xml version="1.0" encoding="UTF-8"?>
@@ -454,10 +456,10 @@ def generate_hero_svg(title, subtitle, category, output_path, repo_root,
454456
<clipPath id="canvas">
455457
<rect width="{W}" height="{H}"/>
456458
</clipPath>
457-
<!-- Left-to-right dark scrim — guarantees text contrast on any background composition -->
459+
<!-- Left-to-right dark scrim — text contrast without killing color vibrancy -->
458460
<linearGradient id="textScrim" x1="0" x2="1" y1="0" y2="0">
459-
<stop offset="0%" stop-color="{EERIE_BLACK}" stop-opacity="0.72"/>
460-
<stop offset="65%" stop-color="{EERIE_BLACK}" stop-opacity="0.45"/>
461+
<stop offset="0%" stop-color="{EERIE_BLACK}" stop-opacity="0.48"/>
462+
<stop offset="55%" stop-color="{EERIE_BLACK}" stop-opacity="0.22"/>
461463
<stop offset="100%" stop-color="{EERIE_BLACK}" stop-opacity="0"/>
462464
</linearGradient>
463465
{bg_filter_def}

0 commit comments

Comments
 (0)