Blog Card Editorial Covers Implementation Plan
Blog Card Editorial Covers Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Replace the homepage blog card emoji covers with restrained editorial-style abstract covers while keeping the existing data model and section structure intact.
Architecture: Keep the existing homepage post loop in _pages/about.md, but swap the per-post mapping from inline gradient-plus-emoji values to semantic cover palette and motif classes. Rebuild the blog card presentation in _sass/notion.scss so the title lives inside the cover composition and the lower card strip becomes structural rather than primary.
Tech Stack: Jekyll, Liquid templates, Sass, Minimal Mistakes theme overrides
Task 1: Prepare workspace and plan artifacts
Files:
- Modify:
.gitignore - Create:
docs/superpowers/plans/2026-06-14-blog-card-editorial-covers.md Create:
.worktrees/codex/blog-editorial-cards/via git worktree- Step 1: Ensure project-local worktrees are ignored
.worktrees/
- Step 2: Verify ignore rule
Run: git check-ignore -v .worktrees Expected: output references .gitignore and .worktrees/
- Step 3: Create isolated worktree on a codex branch
Run: git worktree add .worktrees/codex/blog-editorial-cards -b codex/blog-editorial-cards Expected: worktree created and checked out on new branch
- Step 4: Record the implementation plan in the repo
This file is the plan artifact and should remain committed with the work.
- Step 5: Commit setup artifacts
git add .gitignore docs/superpowers/plans/2026-06-14-blog-card-editorial-covers.md
git commit -m "chore: prepare blog card redesign workspace"
Task 2: Replace emoji cover mapping with editorial cover tokens
Files:
Modify:
_pages/about.mdStep 1: Write the failing expectation checklist
Manually verify the current blog loop still contains:
...
<span class="notion-blog-card-icon"></span>
Failure condition: the old emoji-based structure is still present, which proves the redesign has not been applied yet.
- Step 2: Remove emoji-specific assignments and add semantic cover tokens
Replace the blog loop mapping with semantic values such as:
Per known post, override these tokens with lightweight, human-readable variants rather than inline icon strings.
- Step 3: Move title into the cover area
Render the card with a structure like:
<a href="" class="notion-blog-card notion-blog-card--palette-sand notion-blog-card--motif-frame reveal" title="">
<div class="notion-blog-card-image">
<div class="notion-blog-card-cover-meta">Notes</div>
<h3 class="notion-blog-card-title"></h3>
<div class="notion-blog-card-mark" aria-hidden="true"></div>
</div>
<div class="notion-blog-card-content">
<span class="notion-blog-card-link">Read article</span>
</div>
</a>
- Step 4: Verify old emoji markup is gone
Run: rg -n "card_icon|notion-blog-card-icon" _pages/about.md Expected: no matches
- Step 5: Commit template changes
git add _pages/about.md
git commit -m "feat: redesign blog card markup"
Task 3: Build editorial cover styling
Files:
Modify:
_sass/notion.scssStep 1: Confirm the existing card styles are still the emoji-driven baseline
Manually verify the current style block includes:
.notion-blog-card-icon {
font-size: 2rem;
}
Failure condition: old icon-dependent styling is still in place.
- Step 2: Redesign the card shell and cover composition
Update the blog card styles so they include:
.notion-blog-card {
display: grid;
grid-template-rows: minmax(210px, auto) auto;
}
.notion-blog-card-image {
padding: 1rem;
align-items: flex-start;
justify-content: flex-start;
}
Add unified shell polish, calmer shadows, and a restrained lower strip.
- Step 3: Add title, meta, and decorative motif layers
Implement classes for:
.notion-blog-card-cover-meta { ... }
.notion-blog-card-title { ... }
.notion-blog-card-mark { ... }
Use pseudo-elements and the .notion-blog-card--<palette> / .notion-blog-card--<motif> modifiers to create sparse editorial motifs such as frames, circles, vertical bars, and soft highlight overlays.
- Step 4: Update responsive behavior
Preserve the existing two-column mobile/tablet collapse, and reduce cover/title sizing where needed so the cards remain readable at smaller widths.
- Step 5: Verify old icon styles are gone
Run: rg -n "notion-blog-card-icon" _sass/notion.scss Expected: no matches
- Step 6: Commit styling changes
git add _sass/notion.scss
git commit -m "feat: add editorial blog card styles"
Task 4: Verify the redesign end-to-end and prepare final commit
Files:
- Verify:
_pages/about.md - Verify:
_sass/notion.scss Verify: homepage rendering
- Step 1: Install missing Jekyll dependency if needed
Run: bundle install Expected: installs jekyll (~> 4.3) and project dependencies without errors
- Step 2: Build the site
Run: bundle exec jekyll build Expected: exit code 0 and generated site without Liquid or Sass errors
- Step 3: Serve the site locally for browser inspection
Run: bundle exec jekyll serve --host 127.0.0.1 --port 4000 Expected: local preview available at http://127.0.0.1:4000
- Step 4: Inspect the homepage blog section
Use the in-app browser to confirm:
- No emoji visible in blog cards
- Each card has a distinct but related abstract cover
- Title hierarchy reads clearly inside the cover
- Hover polish remains subtle
- Desktop and narrow widths remain balanced
- Step 5: Review diff and create final commit
git status --short
git diff -- _pages/about.md _sass/notion.scss .gitignore docs/superpowers/plans/2026-06-14-blog-card-editorial-covers.md
git add .gitignore docs/superpowers/plans/2026-06-14-blog-card-editorial-covers.md _pages/about.md _sass/notion.scss
git commit -m "feat: refresh blog cards with editorial covers"
