docs(parity): thematiq competitor columns re-read from source and public docs, sources objects, 36 demand-signal rows - #669
Merged
Conversation
…rces objects, twelve mined rows (wip)
…s object, eight mined rows (wip)
…the token editor (wip)
…from source (wip)
…ect, eight mined roadmap and release-note rows (wip)
…opendesk, tokens-studio and liferay-dxp (wip)
…t, seven mined rows, theme switch rated in three columns (wip)
Contributor
Quality Report — ConductionNL/thematiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 107/107 | |||
| npm | ✅ | ✅ 2/2 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ✅ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ⏭️ not run for this diff — no file in this diff matches the code globs, and none carries a source extension — the heavy tier has nothing to decide about it. | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it on any branch from the Actions tab, or locally with npx playwright test. |
||||
| Hydra gates | ✅ |
Quality workflow — 2026-09-26 14:18 UTC
Download the full PDF report from the workflow artifacts.
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.
Wave 5 re-read of thematiq's five competitor columns. Open-source systems were read from their source at a named tag, and closed systems from public vendor documents. Every system now has a
sourcesobject, and 36 demand-signal rows are mined withoriginandoriginUrl. Onlyopenspec/parity/capabilities.jsonchanges. It is a data file underopenspec/with no page wired to it, so no suite can be affected, and none were run.Base:
developmentat 45935e0. Verifier: hydra development.claude/skills/parity-verify/parity_verify.py, fetched fresh after ed83086 (hydra#707,originis a free string).Verifier before (45935e0)
Verifier after
Strict is left with the unknown census only. Each remaining unknown carries its own
not checkedreason.Grades per system
No system was booted, so under the brief's rule none can be graded
driven. A source read without a boot is gradeddocs-only, and each such cell's evidence names the tag.Rating deltas per column (the 154 rows present on development)
The thematiq column is unchanged on all 154 rows.
Every rating change (before > after, evidence abridged; full evidence is in the file)
nextcloud-theming: 18 changes
cat-stock-optionyes > partial: nextcloud/server@v35.0.1 apps/theming/appinfo/routes.php:26-29 and lib/Controller/ThemingContro...app-trial-discardpartial > no: nextcloud/server@v35.0.1 apps/theming/lib/ThemingDefaults.php:495-530 undo() deletes the key an...app-reset-coreyes > partial: nextcloud/server@v35.0.1 apps/theming/lib/Controller/ThemingController.php:331-345 undoAll() is...aut-custom-cssno > partial: nextcloud/server@v35.0.1 no admin CSS field exists in apps/theming (ITheme::getCustomCss() retu...typ-air-gappedpartial > yes: nextcloud/server@v35.0.1 apps/theming/lib/Themes/DefaultTheme.php:203 uses system fonts only an...ast-icon-contrastpartial > yes: nextcloud/server@v35.0.1 header icons take --color-background-plain-text, black or white by a 4...sur-conduction-appsno > partial: nextcloud/server@v35.0.1 apps built on @nextcloud/vue read the variables that lib/Service/Theme...sur-menu-labelsno > yes: nextcloud/server@v35.0.1 core/src/components/AppMenuItem.vue:81-83 renders each app tile with i...sur-hide-sloganpartial > yes: nextcloud/server@v35.0.1 apps/theming/src/components/admin/TextField.vue:47-60 lets the admin c...sur-public-pagespartial > yes: nextcloud/server@v35.0.1 core/templates/layout.public.php:51-66 renders the themed logo and ins...sur-status-tokensyes > partial: nextcloud/server@v35.0.1 apps/theming/lib/Themes/DefaultTheme.php:94-105,164-181 define --color...sur-office-suiteno > partial: nextcloud/server@v35.0.1 Talk and other Nextcloud apps render inside the themed shell and read ...acc-shipped-auditpartial > yes: nextcloud/server@v35.0.1 tests/Themes/AccessibleThemeTestCase.php:24-240 asserts text pairs at ...acc-focus-indicatorsno > partial: nextcloud/server@v35.0.1 core/css/apps.scss:445,905,1186 draw focus-visible rings in var(--colo...acc-block-inaccessibleno > partial: nextcloud/server@v35.0.1 apps/theming/lib/Controller/ThemingController.php:115-130 accepts any ...gov-app-store-installyes > partial: nextcloud/server@v35.0.1 apps/theming/appinfo/info.xml ships theming inside the server; it is i...gov-licence-clarityno > partial: nextcloud/server@v35.0.1 apps/theming/REUSE.toml:12-22 states OFL-1.1-RFN for the OpenDyslexic ...int-healthno > partial: nextcloud/server@v35.0.1 apps/theming/lib/SetupChecks/PhpImagickModule.php:35-45 is a setup che...m365-branding: 48 changes
cat-design-system-docsunknown > partial: https://learn.microsoft.com/en-us/sharepoint/brand-center-overview: the brand center is a Share...cat-starter-templatespartial > yes: https://support.microsoft.com/en-us/sharepoint/sites-in-sharepoint/change-the-look-of-your-shar...cat-marketplaceunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...app-choose-what-changesunknown > partial: https://support.microsoft.com/en-us/sharepoint/sites-in-sharepoint/site-branding: 'Copy from an...app-live-preview-shellunknown > yes: https://learn.microsoft.com/en-us/sharepoint/site-theme: when creating a theme, 'Name your them...app-trial-bannerunknown > partial: https://support.microsoft.com/en-us/sharepoint/sites-in-sharepoint/change-the-look-of-your-shar...app-component-playgroundunknown > partial: https://learn.microsoft.com/en-us/sharepoint/site-theme: the theme creation experience has a 'U...app-primary-lockunknown > partial: https://support.microsoft.com/en-us/sharepoint/sites-in-sharepoint/change-the-look-of-your-shar...aut-upload-dtcgunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...aut-upload-validateunknown > partial: https://learn.microsoft.com/en-us/entra/fundamentals/reference-company-branding-css-template: M...aut-custom-list-deletepartial > yes: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...aut-semantic-aliasesunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...aut-token-mathunknown > partial: https://learn.microsoft.com/en-us/sharepoint/dev/design/themes-colors: 'After you select a colo...aut-git-syncunknown > partial: https://microsoft365dsc.com/resources/sharepoint/SPOTheme/: the Microsoft-led open-source Micro...aut-multi-platform-exportunknown > partial: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...typ-bundled-open-fontsunknown > partial: https://learn.microsoft.com/en-us/sharepoint/brand-fonts: any licensed font (including open one...typ-air-gappedunknown > no: outside the product: https://learn.microsoft.com/en-us/sharepoint/brand-center-overview: 'The b...ast-logo-syncunknown > partial: https://learn.microsoft.com/en-us/microsoft-365/admin/setup/customize-your-organization-theme: ...ast-icon-contrastunknown > partial: https://learn.microsoft.com/en-us/microsoft-365/admin/setup/customize-your-organization-theme: ...sur-emailunknown > partial: https://learn.microsoft.com/en-us/microsoftteams/meeting-themes: the meeting theme logo appears...sur-email-footerunknown > yes: https://learn.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/disclaimers-...sur-status-tokensno > partial: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...sur-mobile-desktop-clientsno > partial: https://learn.microsoft.com/en-us/microsoftteams/meeting-themes: meeting themes show in the Tea...sur-custom-domainunknown > no: https://learn.microsoft.com/en-us/sharepoint/change-your-sharepoint-domain-name: 'Even if you l...sur-footer-linksyes > partial: https://learn.microsoft.com/en-us/entra/fundamentals/how-to-customize-branding: the footer take...sco-per-app-excludeunknown > partial: https://learn.microsoft.com/en-us/powershell/module/microsoft.online.sharepoint.powershell/set-...sco-user-choicepartial > yes: https://support.microsoft.com/en-us/office/foundations-experiences/change-the-look-and-feel-of-...sco-user-follow-osunknown > yes: https://support.microsoft.com/en-us/office/foundations-experiences/change-the-look-and-feel-of-...sco-tenant-isolationunknown > partial: https://learn.microsoft.com/en-us/entra/fundamentals/how-to-customize-branding: branding is per...acc-contrast-evaluateunknown > partial: https://learn.microsoft.com/en-us/sharepoint/site-theme: 'we provide a color contrast checker b...acc-shipped-auditunknown > partial: https://learn.microsoft.com/en-us/sharepoint/site-theme: the default themes 'have been designed...acc-high-contrast-setunknown > partial: https://support.microsoft.com/en-us/accessibility/windows/use-color-and-contrast-for-accessibil...acc-forced-colorsunknown > yes: https://support.microsoft.com/en-us/accessibility/windows/use-color-and-contrast-for-accessibil...acc-dark-generate-cliunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...acc-focus-indicatorsunknown > partial: https://learn.microsoft.com/en-us/entra/fundamentals/reference-company-branding-css-template: c...acc-block-inaccessibleno > partial: https://learn.microsoft.com/en-us/microsoft-365/admin/setup/customize-your-organization-theme: ...acc-contrast-in-editorunknown > yes: https://learn.microsoft.com/en-us/sharepoint/site-theme: 'In this theme creation experience we ...gov-audit-logunknown > yes: https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities: ...gov-audit-exportunknown > yes: https://learn.microsoft.com/en-us/purview/audit-search: 'To export all search job items to a .c...gov-audit-append-onlyunknown > yes: https://learn.microsoft.com/en-us/entra/identity/monitoring-health/concept-audit-logs: 'Entries...gov-otap-bundleunknown > partial: https://microsoft365dsc.com/resources/sharepoint/SPOTheme/: Microsoft365DSC snapshots and clone...gov-federated-shareunknown > no: https://support.microsoft.com/en-us/sharepoint/sites-in-sharepoint/site-branding: branding can ...gov-config-as-codeunknown > partial: https://microsoft365dsc.com/resources/sharepoint/SPOTheme/: SPOTheme is a declarative Microsoft...gov-app-store-installunknown > no: outside the product: https://learn.microsoft.com/en-us/entra/fundamentals/how-to-customize-bran...gov-open-sourceunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepo...syn-upgrade-migrationunknown > partial: https://learn.microsoft.com/en-us/sharepoint/site-theme: 'You can only read or delete a legacy ...int-tokens-for-other-appsunknown > partial: https://learn.microsoft.com/en-us/sharepoint/dev/spfx/use-theme-colors-in-your-customizations: ...int-no-js-overheadunknown > no: https://learn.microsoft.com/en-us/sharepoint/dev/spfx/use-theme-colors-in-your-customizations: ...opendesk: 40 changes
cat-lasuitepartial > no: opendesk@v1.18.2 helmfile/apps/notes/values.yaml.gotmpl:124 sets the La Suite Docs (impress) fr...cat-stock-optionpartial > no: opendesk-nextcloud-image@v2.17.2 src/files/usr/local/bin/entrypoint/php/nextcloud_configure_the...app-diff-dialogno > partial: opendesk@v1.18.2 docs/requirements.md:177: helmfile requires helm-diff to compare desired again...app-primary-lockunknown > partial: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:28-29: one 'primary' key fans ...aut-upload-cssno > partial: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:152-154 styles.portal.main tak...aut-token-resetno > partial: opendesk@v1.18.2 helmfile/bases/environments.yaml.gotmpl:4-13 layers environment values over he...aut-overrides-persistno > yes: opendesk@v1.18.2: overrides live in the operator's values files and are re-rendered on every he...aut-overrides-import-exportno > yes: opendesk@v1.18.2 helmfile/bases/environments.yaml.gotmpl:4-13: overrides are plain files (helmf...aut-custom-cssno > partial: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:152-154 free-form CSS for the ...aut-component-scopedunknown > partial: opendesk@v1.18.2 helmfile/files/theme/portal/stylesheet.css:68-85 defines button-scoped tokens ...aut-semantic-aliasesno > partial: opendesk@v1.18.2 helmfile/files/theme/portal/stylesheet.css:16-27,68-85 builds semantic tokens ...aut-git-syncno > yes: opendesk@v1.18.2: the token source is plain files in the helmfile repository (theme.yaml.gotmpl...typ-bundled-open-fontsunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl: no font key for the web UI (o...typ-air-gappedunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:135-145: the only font setting...typ-upload-fontunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:135-145: fonts only for OpenPr...typ-font-validateunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:140 'Only .ttf font files are ...typ-font-list-deleteunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:135-145: fonts are URLs in val...typ-font-loginunknown > no: opendesk@v1.18.2 helmfile/files/theme/portal/stylesheet.css:124-197 Keycloak login rules set no...typ-font-tokensunknown > partial: opendesk@v1.18.2 helmfile/files/theme/portal/stylesheet.css:48-58 defines --font-size-1..5, --f...typ-dyslexia-fontunknown > partial: nextcloud/server@v33.0.9 apps/theming/lib/Service/ThemesService.php:35 registers DyslexiaFont; ...typ-org-font-libraryunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:13-154: the whole theming surf...ast-icon-contrastunknown > no: opendesk@v1.18.2: no icon contrast handling in theme or stylesheet; issue feat(tokens): Conduction 2026, built from identity.conduction.nl and nothing else #355 (users with low ...sur-hide-sloganunknown > partial: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:18 slogan -> opendesk-nextclou...sur-public-pagesunknown > yes: opendesk-nextcloud-image@v2.17.2 nextcloud_configure_theming.php:21-114 sets the instance-level...sur-component-bridgeunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:13-154: the whole theming surf...sur-nc-variable-mappingunknown > no: opendesk-nextcloud-image@v2.17.2 nextcloud_configure_theming.php:21-114 sets only primary_color...sur-office-suiteyes > partial: opendesk@v1.18.2: chat (Element, values-element.yaml.gotmpl:20-22) and groupware (OX, values-op...sur-footer-linksyes > partial: opendesk@v1.18.2 helmfile/environments/default/functional.yaml.gotmpl:448-457 legal notice, pri...sco-per-app-excludeno > partial: opendesk@v1.18.2 helmfile/environments/default/customization.yaml.gotmpl:4-24 loads a custom va...sco-user-choiceunknown > partial: opendesk-nextcloud-image@v2.17.2 nextcloud_configure_theming.php:16-17 disables only user colou...sco-user-follow-osunknown > partial: nextcloud/server@v33.0.9 apps/theming/lib/Themes (DarkTheme, HighContrastTheme prefers-contrast...sco-tenant-isolationunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:13-154: the whole theming surf...acc-contrast-evaluateunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:13-154: the whole theming surf...acc-shipped-auditunknown > partial: https://docs.opendesk.eu/legal/barrierefreiheit/ (read 2026-09-26): the one shipped brand was a...acc-contrast-report-docunknown > partial: https://docs.opendesk.eu/legal/barrierefreiheit/ (read 2026-09-26): published per-application B...acc-compliance-reportunknown > no: opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:13-154: the whole theming surf...acc-dark-modeunknown > partial: nextcloud/server@v33.0.9 DarkTheme stays user-selectable and follows the OS, using the primary ...gov-licence-clarityunknown > yes: opendesk@v1.18.2 REUSE.toml:21-24 states Apache-2.0 for helmfile/files/theme/** (every bundled ...int-capability-apiunknown > partial: nextcloud/server@v33.0.9 apps/theming/lib/Capabilities.php:98-108 exposes name, slogan, color, ...int-tokens-for-other-appsno > partial: Inside Nextcloud, apps read stock theming CSS variables filled from the primary colour openDesk...liferay-dxp: 57 changes
cat-searchable-pickerno > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/design-libraries/sharing-design-resources...cat-completeness-badgeunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...app-choose-what-changesunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...app-login-previewunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...app-trial-bannerunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/design-libraries/sharing-design-resources...app-trial-discardunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...app-component-playgroundpartial > yes: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...aut-upload-validateunknown > partial: https://liferay.atlassian.net/browse/LPD-101991 : only token key names are validated, as a post...aut-token-resetunknown > yes: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...aut-custom-css-sanitiseunknown > no: https://learn.liferay.com/w/dxp/site-building/creating-pages/page-settings/configuring-page-set...aut-dark-variant-autounknown > no: https://learn.liferay.com/w/dxp/personalization/experiences/using-dark-mode : dark mode restyle...aut-semantic-aliasesyes > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...aut-figma-syncunknown > no: https://liferay.atlassian.net/browse/LPD-86582 (closed 2026-05-29) : a spike to find "what leve...aut-multi-platform-exportunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/developer-guide/frontend-toke...typ-bundled-open-fontsunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/developer-guide/frontend-toke...typ-font-validateunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/developer-guide/frontend-toke...typ-font-list-deleteunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/developer-guide/frontend-toke...typ-font-loginno > partial: https://learn.liferay.com/w/dxp/security-and-administration/security/configuring-sign-in : the ...typ-org-font-libraryunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/developer-guide/frontend-toke...ast-logo-syncunknown > no: https://learn.liferay.com/w/dxp/site-building/creating-pages/page-settings/configuring-page-set...ast-background-syncunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...ast-upload-backgroundunknown > partial: https://learn.liferay.com/w/dxp/site-building/creating-pages/page-settings/configuring-page-set...ast-icon-packunknown > partial: https://learn.liferay.com/w/dxp/development/customizing-liferays-look-and-feel/using-a-theme-sp...ast-dark-logounknown > no: https://learn.liferay.com/w/dxp/site-building/creating-pages/page-settings/configuring-page-set...ast-brand-imagesunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/design-libraries : a design library is a ...sur-login-pagepartial > yes: https://learn.liferay.com/w/dxp/security-and-administration/security/configuring-sign-in : the ...sur-hide-sloganunknown > partial: https://learn.liferay.com/w/dxp/site-building/creating-pages/page-settings/configuring-page-set...sur-emailunknown > partial: https://learn.liferay.com/w/dxp/security-and-administration/administration/configuring-liferay/...sur-email-footerunknown > partial: https://learn.liferay.com/w/dxp/security-and-administration/administration/configuring-liferay/...sur-status-tokensyes > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...sur-mobile-desktop-clientsunknown > no: no: outside the product. https://learn.liferay.com/w/dxp/security-and-administration/administra...sur-office-suiteunknown > no: no: outside the product. https://learn.liferay.com/w/dxp/security-and-administration/administra...sur-footer-linksunknown > yes: https://learn.liferay.com/w/dxp/sites/creating-pages/defining-headers-and-footers/master-page-t...sco-per-app-excludeunknown > partial: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...sco-per-groupunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...sco-group-priorityunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...sco-login-unaffectedunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...sco-user-follow-osunknown > partial: https://liferay.atlassian.net/browse/LPD-89804 (closed, completed) : the dark administration th...sco-app-token-catalogueunknown > partial: https://liferay.atlassian.net/browse/LPD-74829 (2026.Q3.0) : GET /asset-library/{erc}/style-boo...acc-contrast-on-uploadunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...acc-contrast-evaluateunknown > partial: https://learn.liferay.com/w/dxp/content-management-system/page-performance-and-accessibility/an...acc-forced-colorsunknown > no: https://liferay.atlassian.net/browse/LPD-90810 : "forced-colors: active values are defined sepa...acc-dark-modeunknown > partial: https://learn.liferay.com/w/dxp/personalization/experiences/using-dark-mode : dark mode (2026.Q...acc-dark-generate-cliunknown > no: https://liferay.atlassian.net/browse/LPD-104225 : style book dark values are hand-entered (ligh...acc-vocabulary-auditunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...acc-block-inaccessibleunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...acc-contrast-in-editorunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/style-books/using-a-style-book-to-standar...acc-accessibility-statementno > partial: https://learn.liferay.com/w/dxp/content-management-system/page-performance-and-accessibility/an...gov-audit-logpartial > no: https://learn.liferay.com/w/dxp/security-and-administration/administration/audit-framework/audi...gov-audit-exportyes > no: https://learn.liferay.com/w/dxp/security-and-administration/administration/audit-framework/sear...gov-otap-clino > partial: https://liferay.atlassian.net/browse/LPD-56718 (closed 2025-12-17) : multiple style books expor...gov-federated-shareunknown > no: https://learn.liferay.com/w/dxp/sites/site-appearance/design-libraries : a design library is "a...gov-config-as-codeyes > partial: https://learn.liferay.com/w/dxp/development/customizing-liferays-look-and-feel/using-a-theme-cs...gov-open-sourceunknown > partial: https://liferay.dev/b/one-platform-one-liferay-the-2026-release-model : from 2026.Q1 CE and DXP...int-capability-apiunknown > partial: https://liferay.atlassian.net/browse/LPD-101910 : style books are exposed in /o/headless-admin-...int-token-set-apiunknown > yes: https://liferay.atlassian.net/browse/LPD-74829 (2026.Q3.0) : GET /asset-library/{erc}/style-boo...int-rest-api-themeunknown > partial: https://liferay.atlassian.net/browse/LPD-101910 : POST /o/headless-admin-site/v1.0/sites/{erc}/...tokens-studio: 24 changes
cat-starter-templatesno > yes: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components/PresetPro...app-diff-dialogno > partial: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components/PushDialo...app-choose-what-changesno > partial: https://documentation-v2.tokens.studio/tokens/importing-tokens.html: Studio import shows a prev...app-primary-lockunknown > no: searched tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components ...app-rollback-historyno > partial: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components/NavbarUnd...aut-upload-validatepartial > yes: Studio import marks each token with a schema error or warning icon, shows counts per set and of...aut-token-resetunknown > partial: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components/NavbarUnd...ast-upload-logono > unknown: not checked: unknown: the plugin cannot upload, an asset token is only a URL (tokens-studio/fig...ast-upload-backgroundno > unknown: not checked: unknown: the plugin cannot upload, an asset token is only a URL (tokens-studio/fig...ast-brand-imagesno > unknown: not checked: unknown: the plugin cannot upload, an asset token is only a URL (tokens-studio/fig...acc-dark-modeno > partial: https://documentation-v2.tokens.studio/theming/multi-dimensional-theming.html: a Color Mode the...acc-reduced-motionno > partial: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/app/components/Accordion...acc-keyboard-adminno > unknown: not checked: unknown: the plugin has its own settings UI (tokens-studio/figma-plugin@2.12.1 pac...gov-admin-onlyno > yes: https://documentation-v2.tokens.studio/team/roles-and-permissions.html: project roles Owner, Ed...gov-delegated-roleno > yes: https://documentation-v2.tokens.studio/team/roles-and-permissions.html: the project Editor role...gov-audit-logpartial > yes: https://documentation-v2.tokens.studio/getting-started/what-is-studio.html: "Every change is re...gov-audit-append-onlyno > partial: https://documentation-v2.tokens.studio/getting-started/what-is-studio.html: Studio is rebuilt o...gov-otap-bundleno > partial: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/storage/FileTokenStorage...gov-approval-workflowpartial > yes: https://documentation-v2.tokens.studio/branching/branch-reviews.html: with "Require branch appr...syn-nightly-prno > partial: https://documentation-v2.tokens.studio/integrations/ci-cd-triggers.html: a Studio release can t...syn-freshness-checkno > partial: https://documentation-v2.tokens.studio/cli/pulling-tokens.html:studio watchnotifies "Change...syn-upgrade-migrationunknown > yes: tokens-studio/figma-plugin@2.12.1 packages/tokens-studio-for-figma/src/plugin/node.ts:147-153 f...int-token-set-apipartial > yes: https://tokens-studio.github.io/studio-app/: the @tokens-studio/sdk and GraphQL API query token...int-no-js-overheadno > partial: https://documentation-v2.tokens.studio/tokens/exporting-tokens.html: the Studio CSS Variables e...Demand-signal rows added (36), by origin
Each row is rated in every column. thematiq is rated from its own code (
built,reachedOn). Cells not re-read for a system say so in their evidence.gov-environment-markersur-generated-documentssur-help-linkssur-support-linksur-localised-namesur-login-wordinggov-enforce-appearancesur-coverage-reportaut-dtcg-colour-objectsaut-broken-reference-listcat-living-token-docsapp-simple-theme-switchaut-component-previewsco-suite-wide-appearanceint-brand-kit-in-editorgov-lock-per-spacesur-assistant-logogov-no-public-cdnast-branded-reactionssur-per-app-brandapp-branding-packageacc-high-contrast-tokensaut-add-tokenacc-toast-timeoutsur-selection-colourast-mobile-logogov-token-deprecationsyn-push-to-platformaut-dtcg-bulk-convertaut-motion-tokenstyp-theme-base-sizesco-per-app-loginsur-block-pagegov-central-brand-libraryaut-light-dark-valuesaut-alpha-hexThe two TenderNed rows come from tender requirements in the intelligence database.
gov-environment-marker(TenderNed 407031) asks for a visible difference between test and production.sur-generated-documents(TenderNed 404703) asks for generated letters and PDFs in the house style. thematiq has neither.Notes on the mined rows:
cat-municipal-sets. It was then added asapp-simple-theme-switch, because it is about the non-specialist route rather than the catalogue.app-branding-package(Liferay roadmap LPD-91941) overlapsgov-otap-bundle. It is kept for the self-applying package angle, and thematiq is partial because font binaries are not embedded in the bundle.aut-alpha-hexhas originchangelog, but its originUrl is the style book documentation, because no Liferay release-notes page naming the change was found.https://www.microsoft.com/microsoft-365/roadmap?id=<id>) were confirmed against Microsoft's own roadmap RSS feed (/releasecommunications/api/v2/M365/rss), whose<link>for each of the six ids has exactly that form. The page itself answered 403 to curl.Sources objects
nextcloud-theming
{ "docs": "https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/theming.html", "sourceRepo": "https://github.com/nextcloud/server/tree/v35.0.1/apps/theming (tag v35.0.1, commit 3c012e6)", "featurePage": "https://nextcloud.com/blog/branding-theming-nextcloud-hub/", "featureRequests": "https://github.com/nextcloud/server/issues?q=is%3Aissue+is%3Aopen+label%3A%22feature%3A+theming%22+label%3Aenhancement", "issueTracker": { "url": "https://github.com/nextcloud/server/issues?q=is%3Aissue+is%3Aopen+label%3A%22feature%3A+theming%22", "featureLabel": "feature: theming" }, "roadmap": null, "changelog": [ "https://github.com/nextcloud/server/releases/tag/v35.0.1", "https://nextcloud.com/changelog/" ], "apiReference": [ "https://github.com/nextcloud/server/blob/v35.0.1/apps/theming/openapi.json", "https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html" ], "marketplace": "https://apps.nextcloud.com/apps/theming_customcss", "pricing": null, "accessibilityStatement": null, "securityDocs": "https://github.com/nextcloud/server/blob/v35.0.1/SECURITY.md", "demoInstance": "https://try.nextcloud.com/", "community": "https://help.nextcloud.com/", "reviews": null, "videos": "https://nextcloud.com/blog/webinar/webinar-branding-theming-nextcloud-hub/", "caseStudies": null, "partnerDirectory": null, "trainingCurriculum": null, "jobPostings": null, "tenders": [ "opentender AT ocds-70d2nz-e3a2e012-3572-3e76-abe8-62471096b8de (Bundesministerium fuer Arbeit und Wirtschaft, Nextcloud Subscriptions, https://opentender.eu/at/tender/ocds-70d2nz-e3a2e012-3572-3e76-abe8-62471096b8de)", "opentender AT ocds-70d2nz-6ff0aa94-6e12-3651-b25e-efe4f4e7cd2e (Universitaet Innsbruck, Nextcloud Groupware Campus Lizenz, 2024-12-12, https://opentender.eu/at/tender/ocds-70d2nz-6ff0aa94-6e12-3651-b25e-efe4f4e7cd2e)" ], "nullReasons": { "roadmap": "2026-09-26: no public roadmap found; github.com/nextcloud/roadmap returns 404 and nextcloud.com could not be reached from this sandbox (connection refused), so a roadmap page there was not checked", "pricing": "2026-09-26: theming is free in the AGPL server; nextcloud.com/pricing could not be reached from this sandbox (connection refused), so enterprise branding prices were not read", "accessibilityStatement": "2026-09-26: nextcloud.com/accessibility could not be reached (connection refused); no accessibility statement file in the v35.0.1 source tree", "reviews": "2026-09-26: g2.com/products/nextcloud/reviews returned 403; no other review source checked", "caseStudies": "2026-09-26: nextcloud.com/customers could not be reached (connection refused); no theming-specific case study found in web search", "partnerDirectory": "2026-09-26: nextcloud.com/partners could not be reached (connection refused)", "trainingCurriculum": "2026-09-26: nextcloud.com/training could not be reached (connection refused); the admin manual theming page is the only training material found", "jobPostings": "2026-09-26: nextcloud.com/jobs could not be reached (connection refused); not relevant to a shipped server component" }, "notes": { "featurePage": "URL found by web search on 2026-09-26; nextcloud.com itself refused connections from this sandbox, so its current content was not read", "changelog": "GitHub release list read with gh; nextcloud.com/changelog found by web search but not loadable here", "marketplace": "theming_customcss is a separate App Store app that adds a custom CSS field; it is not part of the built-in theming app", "videos": "found by web search 2026-09-26, not loaded" } }m365-branding
{ "docs": [ "https://learn.microsoft.com/en-us/entra/fundamentals/how-to-customize-branding", "https://learn.microsoft.com/en-us/microsoft-365/admin/setup/customize-your-organization-theme", "https://learn.microsoft.com/en-us/sharepoint/brand-center-overview", "https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepoint-site-theming-overview", "https://learn.microsoft.com/en-us/microsoftteams/meeting-themes" ], "sourceRepo": null, "featurePage": "https://learn.microsoft.com/en-us/sharepoint/brand-center-overview", "featureRequests": "https://feedbackportal.microsoft.com/", "issueTracker": null, "roadmap": "https://www.microsoft.com/microsoft-365/roadmap", "changelog": [ "https://learn.microsoft.com/en-us/entra/fundamentals/whats-new", "https://learn.microsoft.com/en-us/entra/fundamentals/whats-new-archive" ], "apiReference": [ "https://learn.microsoft.com/en-us/graph/api/resources/organizationalbranding?view=graph-rest-1.0", "https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepoint-site-theming-rest-api", "https://learn.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-theming/sharepoint-site-theming-powershell" ], "marketplace": null, "pricing": null, "accessibilityStatement": null, "securityDocs": "https://learn.microsoft.com/en-us/entra/architecture/security-operations-introduction", "demoInstance": null, "community": [ "https://techcommunity.microsoft.com/category/microsoft-entra", "https://techcommunity.microsoft.com/category/sharepoint", "https://learn.microsoft.com/en-us/answers/tags/455/entra-id" ], "reviews": null, "videos": "https://learn.microsoft.com/en-us/shows/", "caseStudies": null, "partnerDirectory": null, "trainingCurriculum": "https://learn.microsoft.com/en-us/credentials/certifications/identity-and-access-administrator/", "jobPostings": "https://jobs.careers.microsoft.com/global/en/search?q=branding", "tenders": [ "130 tenders in the intelligence database carry a requirement naming Microsoft 365 or Office 365 (integration, not branding); two tie it to house style: TenderNed 399455 (Zaaksysteem, https://www.tenderned.nl/aankondigingen/overzicht/399455) and TenderNed 415112 (Leermanagementsysteem, https://www.tenderned.nl/aankondigingen/overzicht/415112)" ], "nullReasons": { "sourceRepo": "closed source: Entra ID, Microsoft 365 and SharePoint Online are proprietary hosted services; the only related repo is the community tool github.com/microsoft/Microsoft365DSC, not the product (checked 2026-09-26)", "issueTracker": "no public issue tracker for these services; defects go through admin-center support requests, and feature ideas through feedbackportal.microsoft.com (checked 2026-09-26)", "marketplace": "no theme marketplace; appsource.microsoft.com (apps, not themes) returned 403 to curl on 2026-09-26", "pricing": "not verified: www.microsoft.com Entra and Microsoft 365 pricing pages returned 403 to curl on 2026-09-26; licence prerequisites (Entra ID P1/P2, M365 Business Standard, SharePoint Plan 1, Teams Premium) are stated in the feature docs", "accessibilityStatement": "not verified: https://www.microsoft.com/en-us/accessibility/conformance-reports returned 403 to curl on 2026-09-26, and no branding-specific accessibility statement was found on learn.microsoft.com", "demoInstance": "none: no public demo tenant; trial accounts were out of scope for this read (2026-09-26)", "reviews": "not verified: Gartner Peer Insights and G2 pages returned 403 to curl on 2026-09-26", "caseStudies": "not verified: customers.microsoft.com and www.microsoft.com/en-us/customers returned 403 to curl on 2026-09-26", "partnerDirectory": "not verified: partner.microsoft.com find-a-partner timed out and appsource partner directory returned 403 on 2026-09-26" } }opendesk
{ "docs": [ "https://docs.opendesk.eu/operations/theming/", "https://docs.opendesk.eu/" ], "sourceRepo": "https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk (tag v1.18.2, commit eab2ee7; also read opendesk-nextcloud chart v4.10.6, opendesk-nextcloud image v2.17.2, opendesk-jitsi chart v3.10.0, opendesk-impress-customization v1.0.0 under gitlab.opencode.de/bmi/opendesk/components/platform-development/)", "featurePage": "https://www.opendesk.eu/en/product", "featureRequests": "https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/issues/?label_name%5B%5D=type%3A%20Improvement", "issueTracker": { "url": "https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/issues", "featureLabel": "type: Improvement (feature requests also use the 'Feature Request' issue template)" }, "roadmap": "https://www.opendesk.eu/en/roadmap", "changelog": "https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/v1.18.2/CHANGELOG.md", "apiReference": "https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/v1.18.2/docs/architecture/apis.md", "marketplace": null, "pricing": null, "accessibilityStatement": [ "https://docs.opendesk.eu/legal/barrierefreiheit/", "https://www.opendesk.eu/en/accessibility" ], "securityDocs": [ "https://docs.opendesk.eu/operations/security/", "https://docs.opendesk.eu/legal/it-grundschutz/" ], "demoInstance": "https://portal.demo.opendesk.eu/univention/portal/", "community": "https://gitlab.opencode.de/bmi/opendesk", "reviews": null, "videos": null, "caseStudies": null, "partnerDirectory": "https://www.opendesk.eu/en/partner-werden", "trainingCurriculum": null, "jobPostings": "https://www.zendis.de/karriere", "tenders": null, "nullReasons": { "marketplace": "openDesk ships as a helmfile deployment; opendesk.eu/en and docs.opendesk.eu link no app store or marketplace listing, and it is not a Nextcloud app store app (searched 2026-09-26)", "pricing": "https://www.opendesk.eu/en/operating-models (read 2026-09-26) describes Enterprise and Community editions and operating models but publishes no prices", "reviews": "no review platform linked from opendesk.eu or docs.opendesk.eu; not searched on third-party review sites (2026-09-26)", "videos": "opendesk.eu/en footer links LinkedIn, GitLab, opencode.de and docs only; no video channel found (2026-09-26)", "caseStudies": "opendesk.eu/en has a blog (news, partner programme, security incident) but no case study section (2026-09-26)", "trainingCurriculum": "docs.opendesk.eu has user and admin guides (/user/overview/erste-schritte/, /administration/erste-schritte/) but no training curriculum; searched site navigation 2026-09-26", "tenders": "intelligence database searched 2026-09-26: no tender name, description or requirement mentions openDesk" }, "notes": { "roadmap": "page exists but lists no items: 'We are currently coordinating our upcoming development cycles. More information about future releases will be available here shortly.' (read 2026-09-26)", "demoInstance": "https://demo.opendesk.eu/ redirects to the portal login; https://www.opendesk.eu/en/demo-session books a guided demo", "docs": "docs.opendesk.eu/operations/theming/ renders docs/theming.md, whose link to portalStylesheets.css names a file that does not exist at v1.18.2" } }liferay-dxp
{ "docs": "https://learn.liferay.com/w/dxp", "sourceRepo": "https://github.com/liferay/liferay-portal/tree/2026.q3.0 (LGPL source per https://liferay.dev/b/one-platform-one-liferay-the-2026-release-model; tag 2026.q3.0 exists; this column was rated from public docs, the source was not read)", "featurePage": "https://learn.liferay.com/w/dxp/sites/site-appearance/style-books", "featureRequests": "https://liferay.atlassian.net/jira/software/c/projects/LPD/issues", "issueTracker": { "url": "https://liferay.atlassian.net/jira/software/c/projects/LPD/issues", "featureLabel": "issue types Epic, Story and Spike in project LPD (no separate feature label; the public REST search /rest/api/3/search/jql works anonymously)" }, "roadmap": "https://www.liferay.com/roadmap", "changelog": [ "https://liferay.dev/b/liferay-dxp-2026-q3-release-webinar-replay", "https://learn.liferay.com/w/dxp/self-hosted-installation-and-upgrades/upgrading-liferay/deprecations-and-breaking-changes-reference/2026-deprecations-and-breaking-changes/2026-q3-default-setting-and-feature-flag-changes", "https://liferay.dev/b/liferay-dxp-2026-q2-is-now-available-" ], "apiReference": "https://learn.liferay.com/w/dxp/integration/headless-apis", "marketplace": "https://marketplace.liferay.com/", "pricing": "https://www.liferay.com/pricing", "accessibilityStatement": [ "https://www.liferay.com/accessibility-compliance/digital-experience-platform", "https://www.liferay.com/documents/d/guest/vpat2-5rev_int_february2025_liferay_dxp_sites_experience" ], "securityDocs": "https://learn.liferay.com/w/dxp/security-and-administration/security", "demoInstance": "https://learn.liferay.com/w/dxp/getting-started/liferay-dxp-free-tier", "community": [ "https://liferay.dev/", "https://liferay.dev/ask" ], "reviews": null, "videos": "https://www.youtube.com/@liferay", "caseStudies": "https://www.liferay.com/resources/case-studies", "partnerDirectory": "https://www.liferay.com/partners", "trainingCurriculum": "https://learn.liferay.com/education/index", "jobPostings": "https://www.liferay.com/careers", "tenders": [ "34 tenders name Liferay, all Spanish PLACSP portal maintenance or subscription renewals, e.g. ES-PLACSP-19525683 (renewal of Liferay DXP subscription and support, https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=0sX1dCzTZxzECtSnloz%2BZQ%3D%3D) and ES-PLACSP-19931298 (2026-07-16)" ], "nullReasons": { "reviews": "2026-09-26: https://www.g2.com/products/liferay-dxp/reviews returned 403 to a plain request and no other review site was checked, so no review page was confirmed" }, "notes": "www.liferay.com pages answer a bot challenge to curl on 2026-09-26; roadmap, pricing, accessibility, case studies, partners and careers URLs were confirmed by web search results or HTTP status, not by reading the page body; demoInstance is the free tier self-install, Liferay offers no public demo instance" }tokens-studio
{ "docs": [ "https://docs.tokens.studio/", "https://documentation-v2.tokens.studio/" ], "sourceRepo": "https://github.com/tokens-studio/figma-plugin/tree/2.12.1 (tag 2.12.1, commit a28cadd)", "featurePage": "https://tokens.studio/studio-platform", "featureRequests": [ "https://feedback.tokens.studio/", "https://github.com/tokens-studio/figma-plugin/issues?q=is%3Aopen+label%3A%22%F0%9F%92%A1request%22" ], "issueTracker": { "url": "https://github.com/tokens-studio/figma-plugin/issues", "featureLabel": "💡request" }, "roadmap": "https://feedback.tokens.studio/roadmap", "changelog": [ "https://github.com/tokens-studio/figma-plugin/blob/2.12.1/packages/tokens-studio-for-figma/CHANGELOG.md", "https://github.com/tokens-studio/figma-plugin/releases" ], "apiReference": "https://tokens-studio.github.io/studio-app/", "marketplace": "https://www.figma.com/community/plugin/843461159747178978/tokens-studio-for-figma", "pricing": "https://tokens.studio/pricing", "accessibilityStatement": null, "securityDocs": null, "demoInstance": "https://tokens.studio/trial", "community": [ "https://tokens.studio/slack", "https://github.com/tokens-studio/figma-plugin/discussions" ], "reviews": null, "videos": [ "https://www.youtube.com/@tokensstudio" ], "caseStudies": null, "partnerDirectory": null, "trainingCurriculum": "https://tokens.studio/coaching", "jobPostings": null, "tenders": null, "nullReasons": { "accessibilityStatement": "searched tokens.studio nav links, tokens.studio/accessibility (404) and both doc sites for accessib/wcag on 2026-09-26: none published", "securityDocs": "tokens.studio/security and /trust return 404 and the docs nav has no security page on 2026-09-26; pricing only lists 'Security & Compliance support' in the Organization plan", "reviews": "G2 (g2.com/products/tokens-studio/reviews) returned 403 to a scripted read on 2026-09-26; no other review site found", "caseStudies": "tokens.studio/case-studies and /customers return 404 on 2026-09-26; the homepage has only a logo wall", "partnerDirectory": "tokens.studio/partners returns 404 on 2026-09-26; pricing says an agency partner programme is being worked on", "jobPostings": "tokens.studio/jobs redirects to careers.tokens.studio, which did not answer (no connection) on 2026-09-26", "tenders": "intelligence database searched 2026-09-26: no tender name, description or requirement mentions Tokens Studio" } }openDesk live-defect candidates (code readings, each needs a live check)
opendesk@v1.18.2 helmfile/environments/default/theme.yaml.gotmpl:53defineslogoHeaderInvertedSvgafter the 1.18 rename (docs/migrations-manual.md:416-430). Butopendesk-jitsi@v3.10.0 charts/opendesk-jitsi/templates/configmap.yaml:20still readslogoHeaderInvertedSvgB64, so Jitsi falls back to its 1x1 blank default (values.yaml:714).logoHeaderInvertedSvghas no consumer.grep -rn logoHeaderInverted helmfile/appsfinds nothing, so the dark or inverted logo is configurable but reaches no component.secondaryBlueHighcontrast(theme.yaml.gotmpl:39-46) are marked 'Not in use yet' by openDesk itself and have no consumer. An admin who sets them sees no effect.Where the method was harder
docs-only, the same as the two closed ones. The difference lives only in the evidence strings andreadNote.nocells forint-brand-kit-in-editor,sur-assistant-logoandast-branded-reactionssay that they cover server and the theming app only.no: outside the productfrom the plugin manifest, and platform-only capabilities could only be rated from docs. Four cells went from no to unknown (ast-upload-logo,ast-upload-background,ast-brand-images,acc-keyboard-admin). In the first three the plugin cannot do it, but the platform advertises asset management. The fourth needs a keyboard drive of the plugin UI.readNotesays so. Liferay's portal source is public on GitHub (tag 2026.q3.0), but this column was rated from docs only.noneeds the docs to state or imply the absence. That left 32 and 24 unknowns.unknownwith that reason.