fix(styles): restore the --ion-* tokens orphaned by the header removal - #36
Merged
Merged
Conversation
nc-ionos-theme#67 deleted IONOS/src/style.scss, whose only content was a :host block of IONOS design tokens, without relocating them. Three are still consumed here and resolve to nothing at runtime, so the header loses its shadow, the user-menu panel loses its shadow, and the menu title loses its background tint. Re-home them on :root with the values from a5e6ec2. The inputs (--color-shadow-header, --ion-color-blue-b2, --ion-color-cool-grey-c7) are still provided by nc_theming at :root, so light/dark keeps working. Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
bromiesTM
approved these changes
Aug 14, 2026
bromiesTM
left a comment
Collaborator
There was a problem hiding this comment.
Great catch. I wondered why it looked a bit different
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The IONOS header renders with no box-shadow.
nc-ionos-theme#67 deleted
IONOS/src/style.scss, whose entire content was a single:host { }block of IONOS designtokens. Those tokens were not relocated anywhere. Three of them are still consumed here,
and this app is now their only consumer.
Verified against the theming stylesheet a running instance actually serves
(
/index.php/apps/theming/theme/default.css?plain=1):--ion-shadow-headersrc/styles.scss—#headerbox-shadow--ion-shadowsrc/components/UserMenu.vue—.ion-user-menu__panelbox-shadow--ion-context-menu-title-backgroundsrc/components/UserMenu.vue—.ion-user-menu__titlebackgroundSo three visible defects, not one: no header shadow, no dropdown shadow, no menu-title tint.
The old
:hostscope only ever applied inside the deleted component's shadow root, which iswhy nothing in the light DOM ever inherited these — they were lost the moment the component
went away.
Change
Re-home the three tokens on
:rootinsrc/styles.scss, values restored froma5e6ec2.Use sites are unchanged.
Kept here rather than in
nc_theming/css/variables.css(where the sibling--ion-context-menu-*tokens live) because this app is now the sole consumer, and keepingit local avoids a second repo PR plus another submodule bump — nc-server#294 is already
blocked on stale cross-repo pins. Moving the block into
variables.css(plusmake build_css) stays a clean follow-up if we decide--ion-*must belong to the theme.:rootis the correct scope:ThemingController::getThemeStylesheet()emits the defaulttheme as
:root { $variables }withplain=true, so--color-shadow-headerand the--ion-color-*palette are declared on the same element — which is whatvar()substitution inside a custom property requires.
Light/dark needs no extra handling:
--color-shadow-headeris alreadylight-dark(...),and the title background restores its own.
rgba(0, 0, 0, 0.12)is written asrgb(0 0 0 / 12%)to satisfy@nextcloud/stylelint-config's modern-colour-notation rule.Verified locally
Built chunk, as served by the running instance (HTTP 200):
Resolution chain confirmed end to end against the live theming stylesheet:
--color-shadow-header→light-dark(rgba(113, 128, 149, 0.5), rgba(113, 128, 149, 0.2))--ion-color-blue-b2→#95caeb--ion-color-cool-grey-c7→#2E4360The other eight
--ion-*tokens this app consumes were checked and were already defined;none are touched.
Notes
.header-start/#headerrulesthat affect public share and guest layouts, and
--header-height: 44pxvs the actualheight: 64px.