Skip to content

fix: page background default now reflects actual branding value - EXO-88511 - #540

Open
srenault-meeds wants to merge 8 commits into
feature/ai-contributionfrom
feature/exip-88511-dw-page-default-background
Open

fix: page background default now reflects actual branding value - EXO-88511#540
srenault-meeds wants to merge 8 commits into
feature/ai-contributionfrom
feature/exip-88511-dw-page-default-background

Conversation

@srenault-meeds

Copy link
Copy Markdown
Member

The page-properties drawer read a CSS var (--allPagesLightGrey) that is never actually set by the branding admin page. The real value the admin configures is exposed as --allPagesBackgroundColor, so non-customized pages silently ignored the branding default. Also normalize the read value to an 8-digit hex so the color picker keeps its alpha/transparency support when the branding value has no alpha channel.

aycherif and others added 7 commits July 2, 2026 15:21
Switching the page width from full window back to custom collapsed
the value to 0 because the customWidth computed property fell back
to 0 when width was '100%', which the number-input then clamped to
its min (300). Introduce a defaultWidth data property (1320) used as
the fallback everywhere the previous default value was hardcoded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extend the shared BackgroundInput.vue component (used both from site
"branding options" and the per-page "Edit Page Properties" drawer for
page/site/application backgrounds) with 3 gradient types instead of
the single implicit top-to-bottom linear gradient:
- Linear Gradient: Top to Bottom (default, matches previous behavior)
  or Left to Right.
- Radial Gradient: From color at the center, To color on the outside.
- Angular Gradient: conic gradient anchored at one of the 4 corners
  (Top Left / Top Right / Bottom Right / Bottom Left), From color
  used as the start of the angle.

backgroundEffect stays an opaque CSS background-image string end to
end (no backend/DTO changes needed), so existing persisted values
(plain `linear-gradient(from, to)`) keep parsing correctly as
"Linear / Top to Bottom".

Note: the angle mapping used for the angular/conic gradient per
corner is a best-effort CSS implementation (I could not access the
linked Adobe XD mockup); please visually confirm against the design
before merging.

EXO-88418

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Since the corner only shows a 90deg slice of the full 360deg conic
gradient, the 2-color transition needs explicit 0deg/90deg stops so
it completes within that visible slice instead of barely starting
before the box edge cuts it off.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Two independent bugs prevented alpha transparency from actually
showing on gradient backgrounds (page, section and application):

- BackgroundInput.vue: switching the background type radio to a
  gradient (linear/radial/angular) triggered two watchers reacting to
  the same change. The backgroundColorChoice watcher correctly set the
  container's backgroundColor to the fully-transparent #FFFFFF00
  marker, but the choice() watcher ran right after and unconditionally
  reset it back to the opaque defaultBackgroundColor. That opaque
  white then became the CSS backdrop painted behind the gradient's
  background-image, so any alpha in the From/To colors blended against
  solid white instead of true transparency. The reset is now scoped to
  the "color" choice only.

- ColorPicker.vue: the From/To color swatches painted their color
  directly on the drawer's panel background, so a semi-transparent
  color (e.g. #FFFFFF41) looked identical to a fully opaque one,
  making it impossible to visually confirm transparency was applied.
  Added a checkerboard backdrop behind the swatch (in editor.less,
  since this module's webpack config has no loader for Vue SFC <style>
  blocks) so alpha is now visible in the picker itself.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
 (#532)

Editable portlets (Text Block, Links List, News List, etc.) can hold
custom content added by admins, so removing them from a page now asks
for confirmation instead of deleting immediately.
…P-88511

The page-properties drawer read a CSS var (--allPagesLightGrey) that is
never actually set by the branding admin page. The real value the admin
configures is exposed as --allPagesBackgroundColor, so non-customized
pages silently ignored the branding default. Also normalize the read
value to an 8-digit hex so the color picker keeps its alpha/transparency
support when the branding value has no alpha channel.
@srenault-meeds
srenault-meeds requested a review from ahamdi July 10, 2026 12:31
@github-actions github-actions Bot added the partialCIBuild Perform Partial CI Build label Jul 10, 2026
… - EXIP-88511

The small page-preview thumbnail in the page-properties drawer computed
its style straight from pageContainer.backgroundColor, which is null
when not customized, so the preview fell back to Vuetify's default
card color instead of the branding default - only becoming correct
once the user toggled "Global Page Background" on (which writes the
default into storage). Fall back to defaultBackgroundColor for the
preview only, without touching the stored value.
@sonarqubecloud

Copy link
Copy Markdown

@exo-swf
exo-swf force-pushed the feature/ai-contribution branch from e40e216 to c9e9ec7 Compare August 1, 2026 01:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

partialCIBuild Perform Partial CI Build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants