Skip to content

Add a per-brand paper border and shadow toggle - #795

Merged
ilicfilip merged 1 commit into
developfrom
filip/paper-border-toggle
Nov 3, 2026
Merged

ilicfilip merged 1 commit into
developfrom
filip/paper-border-toggle

Conversation

@ilicfilip

Copy link
Copy Markdown
Collaborator

Per the design kit, papers either have the fixed #D1D5DB border or none, and a shadow or none, per brand (confirmed by Mijke 2026-11-03). Zonnet and Gandi turned the border off by setting --prpl-color-border: transparent, but Progress Planner uses that name for more than papers. On those brands the line chart's axes and grid lines, the current month's activity-score cell, the challenge background and the task/to-do/score borders would all disappear.

What changes

  • New --prpl-color-border-paper (default var(--prpl-color-border)) for the paper border: .prpl-widget-wrapper, #prpl-onboarding-tasks, .prpl-wrap.prpl-pp-not-accepted. A brand sets it to transparent for no border. --prpl-color-border stays the fixed #D1D5DB.
  • The paper shadow is now built from --prpl-color-shadow-paper at 7%, the same as the AI connector does, instead of a hard-coded rgba(0,0,0,0.07). A brand can turn it off with transparent.
  • --prpl-color-field-shadow is its own #000, so turning the paper shadow off doesn't affect fields.

With no brand override, nothing changes visually.

Companion changes: AI connector (paper border reads the new name), your-branding (tokens.json + Zonnet).

Testing

On planner.test, in Chrome:

  • No branding: widget border rgb(209,213,219) 1px, shadow 7% black, the same as before.
  • Zonnet from a local branding build (7400): widget border transparent, shadow 7% black, chart axes and grid rgb(209,213,219) and visible, current-month activity cell visible.
  • Setting --prpl-color-shadow-paper: transparent removes the shadow.
  • No console errors.

Pre-push checks passed: PHPStan, CSS/JS lint, token check.

🤖 Generated with Claude Code

Papers either have the fixed #D1D5DB border or none, and a shadow or none,
per brand (design kit). Brands used to turn the border off by setting
--prpl-color-border to transparent, which also hid chart axes, the
current-month activity cell, task borders and other lines on that name.

- New --prpl-color-border-paper (default: --prpl-color-border) for the
  paper border on widgets, the onboarding tasks box and the welcome wrapper.
- The paper shadow is now built from --prpl-color-shadow-paper (7%, as
  before), so a brand can turn it off with transparent.
- --prpl-color-field-shadow is its own #000, no longer tied to the paper
  shadow.

Without a brand override nothing changes visually.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Test merged PR on Playground
Test this pull request on the Playground
or download the zip

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ Code Coverage Report

Metric Value
Total Coverage 34.30% 📉
Base Coverage 34.30%
Difference 📈 0.00%

⚠️ Coverage below recommended 40% threshold

🎉 Great job maintaining/improving code coverage!

ℹ️ About this report
  • All tests run in a single job with Xdebug coverage
  • Security tests excluded from coverage to prevent output issues
  • Coverage calculated from line coverage percentages

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

🔍 WordPress Plugin Check Report

⚠️ Status: Passed with warnings

📊 Report

🎯 Total Issues ❌ Errors ⚠️ Warnings
10 0 10

⚠️ Warnings (10)

📁 classes/suggested-tasks/providers/class-content-review.php (4 warnings)
📍 Line 🔖 Check 💬 Message
232 WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/ for more information.
377 WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/ for more information.
381 WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/ for more information.
388 WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/ for more information.
📁 classes/suggested-tasks/data-collector/class-unpublished-content.php (1 warning)
📍 Line 🔖 Check 💬 Message
103 WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://docs.wpvip.com/databases/optimize-queries/using-post__not_in/ for more information.
📁 classes/activities/class-query.php (2 warnings)
📍 Line 🔖 Check 💬 Message
71 PluginCheck.Security.DirectDB.UnescapedDBParameter Unescaped parameter $table_name used in $wpdb->query()\n$table_name assigned unsafely at line 58.
163 PluginCheck.Security.DirectDB.UnescapedDBParameter Unescaped parameter $where_args used in $wpdb->get_results()\n$where_args assigned unsafely at line 153.
📁 classes/suggested-tasks/data-collector/class-terms-without-description.php (1 warning)
📍 Line 🔖 Check 💬 Message
108 PluginCheck.Security.DirectDB.UnescapedDBParameter Unescaped parameter $query used in $wpdb->get_results()\n$query assigned unsafely at line 106.
📁 classes/suggested-tasks/data-collector/class-terms-without-posts.php (1 warning)
📍 Line 🔖 Check 💬 Message
120 PluginCheck.Security.DirectDB.UnescapedDBParameter Unescaped parameter $query used in $wpdb->get_results()\n$query assigned unsafely at line 118.
📁 classes/suggested-tasks/data-collector/class-yoast-orphaned-content.php (1 warning)
📍 Line 🔖 Check 💬 Message
111 PluginCheck.Security.DirectDB.UnescapedDBParameter Unescaped parameter $query used in $wpdb->get_row()\n$query assigned unsafely at line 98.

🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

@ilicfilip
ilicfilip marked this pull request as ready for review November 3, 2026 15:26
@ilicfilip
ilicfilip merged commit 36f4a03 into develop Nov 3, 2026
19 of 21 checks passed
@ilicfilip
ilicfilip deleted the filip/paper-border-toggle branch November 3, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant