Skip to content

[v6] Rebranded UI to Cohesivo - #3333

Merged
mnocon merged 4 commits into
6.0from
cohesivo-ui-rebranding
Sep 8, 2026
Merged

[v6] Rebranded UI to Cohesivo#3333
mnocon merged 4 commits into
6.0from
cohesivo-ui-rebranding

Conversation

@mnocon

@mnocon mnocon commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Target: 6.0, saas.

Initial UI rebranding pass for v6 docs

Contains only changes to the UI, no content changes.

Example pages:

References preview are built in separate PR: #3375

To make this work, I've made the Cohesivo logo available on latest already: 591573b...87b51f5

Screenshot 2026-08-31 at 16 14 42

@github-actions

Copy link
Copy Markdown

Preview of modified files

Preview of modified Markdown:

@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

Summary

Status Count
🔍 Total 751622
🔗 Unique 15075
✅ Successful 6314
⏳ Timeouts 0
🔀 Redirected 2
👻 Excluded 745306
❓ Unknown 0
🚫 Errors 2
⛔ Unsupported 0

Errors per input

Errors in site/multisite/translations_management/configure_translations_management/index.html

  • [ERROR] file:///home/runner/work/documentation-developer/documentation-developer/repositories/userdoc-6.0/site/content_management/translate_content/index.html#add-new-translation (at 14813:25) | Cannot find fragment

Errors in site/multisite/translations_management/translate_with_cli/index.html

  • [ERROR] file:///home/runner/work/documentation-developer/documentation-developer/repositories/userdoc-6.0/site/content_management/translate_content/index.html#add-new-translation (at 14312:112) | Cannot find fragment

Redirects per input

Redirects in site/ai/ai_actions/configure_ai_actions/index.html

Full Github Actions output

@mnocon
mnocon force-pushed the cohesivo-ui-rebranding branch from 36c1b4c to 4d64ad0 Compare August 27, 2026 09:58
@mnocon mnocon changed the title [v6] Rebranded UI to Cohesivo - #422 [v6] Rebranded UI to Cohesivo Aug 27, 2026
@mnocon
mnocon force-pushed the cohesivo-ui-rebranding branch from 0e4f0fe to 9a989ef Compare August 27, 2026 12:50
@mnocon
mnocon force-pushed the cohesivo-ui-rebranding branch from a0d7649 to b8b4653 Compare August 31, 2026 13:48
@mnocon
mnocon marked this pull request as ready for review August 31, 2026 14:22
@mnocon
mnocon requested a review from a team August 31, 2026 14:22
@ibexa-workflow-automation-1
ibexa-workflow-automation-1 Bot requested review from adriendupuis, dabrt and julitafalcondusza and removed request for a team August 31, 2026 14:23
Comment thread tools/api_refs/redocly.hbs Outdated
Comment on lines +88 to +92
logo.onclick = () => {
let pathParts = document.location.pathname.split('/').slice(0, 3);
document.location = pathParts.join('/') + '/api/rest_api/rest_api_usage/rest_api_usage/';
};
logo.setAttribute('style', 'cursor: pointer; margin: 13px;');

@adriendupuis adriendupuis Sep 8, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indent error after the updated line

Suggested change
logo.onclick = () => {
let pathParts = document.location.pathname.split('/').slice(0, 3);
document.location = pathParts.join('/') + '/api/rest_api/rest_api_usage/rest_api_usage/';
};
logo.setAttribute('style', 'cursor: pointer; margin: 13px;');
logo.onclick = () => {
let pathParts = document.location.pathname.split('/').slice(0, 3);
document.location = pathParts.join('/') + '/api/rest_api/rest_api_usage/rest_api_usage/';
};
logo.setAttribute('style', 'cursor: pointer; margin: 13px;');

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjusted in f787c25 , thanks!

@adriendupuis adriendupuis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

code_samples/ change report

Before (on target branch)After (in current PR)

code_samples/back_office/calendar/config/packages/calendar.yaml

docs/administration/back_office/customize_calendar.md@25:``` yaml hl_lines="6"
docs/administration/back_office/customize_calendar.md@26:[[= include_file('code_samples/back_office/calendar/config/packages/calendar.yaml') =]]
docs/administration/back_office/customize_calendar.md@27:```

001⫶ibexa:
002⫶ system:
003⫶ admin_group:
004⫶ calendar:
005⫶ event_types:
006❇️ future_publication:

code_samples/back_office/calendar/config/packages/calendar.yaml

docs/administration/back_office/customize_calendar.md@25:``` yaml hl_lines="6"
docs/administration/back_office/customize_calendar.md@26:[[= include_file('code_samples/back_office/calendar/config/packages/calendar.yaml') =]]
docs/administration/back_office/customize_calendar.md@27:```

001⫶ibexa:
002⫶ system:
003⫶ admin_group:
004⫶ calendar:
005⫶ event_types:
006❇️ future_publication:
007⫶                        color: '#47BEDB'
007⫶                        color: '#19628F'
008⫶                        actions:
009⫶ reschedule:
010⫶ icon: '/bundles/ibexaadminuiassets/vendors/ids-assets/dist/img/all-icons.svg#alert-error'


code_samples/back_office/image_editor/assets/random_dot/random-dot.js

docs/content_management/images/extend_image_editor.md@67:``` js
docs/content_management/images/extend_image_editor.md@68:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js', 26, 43) =]]
docs/content_management/images/extend_image_editor.md@69:```

001⫶ const drawDot = () => {
002⫶ const ctx = canvas.current.getContext('2d');
003⫶ const positionX = Math.random() * canvas.current.width;
004⫶ const positionY = Math.random() * canvas.current.height;
005⫶
006⫶ ctx.save();
007⫶
008⫶                        actions:
009⫶ reschedule:
010⫶ icon: '/bundles/ibexaadminuiassets/vendors/ids-assets/dist/img/all-icons.svg#alert-error'


code_samples/back_office/image_editor/assets/random_dot/random-dot.js

docs/content_management/images/extend_image_editor.md@67:``` js
docs/content_management/images/extend_image_editor.md@68:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js', 26, 43) =]]
docs/content_management/images/extend_image_editor.md@69:```

001⫶ const drawDot = () => {
002⫶ const ctx = canvas.current.getContext('2d');
003⫶ const positionX = Math.random() * canvas.current.width;
004⫶ const positionY = Math.random() * canvas.current.height;
005⫶
006⫶ ctx.save();
007⫶
008⫶        ctx.fillStyle = '#ae1164';
008⫶        ctx.fillStyle = '#4e24a5';
009⫶
010⫶ ctx.beginPath();
011⫶ ctx.arc(positionX, positionY, 20, 0, Math.PI * 2, true);
012⫶ ctx.fill();
013⫶
014⫶ ctx.restore();
015⫶
016⫶ saveInHistory();
017⫶ };

docs/content_management/images/extend_image_editor.md@75:``` js
docs/content_management/images/extend_image_editor.md@76:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js', 17, 26) =]]
docs/content_management/images/extend_image_editor.md@77:```

001⫶ const saveInHistory = () => {
002⫶ const newImage = new Image();
003⫶
004⫶ newImage.onload = () => {
005⫶ dispatchImageHistoryAction({ type: 'ADD_TO_HISTORY', image: newImage, additionalData });
006⫶ };
007⫶
008⫶ newImage.src = canvas.current.toDataURL();
009⫶ };

docs/content_management/images/extend_image_editor.md@81:``` js
docs/content_management/images/extend_image_editor.md@82:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js') =]]
docs/content_management/images/extend_image_editor.md@83:```

001⫶import React, { useContext } from 'react';
002⫶import PropTypes from 'prop-types';
003⫶
004⫶import {
005⫶ CanvasContext,
006⫶ ImageHistoryContext,
007⫶ AdditionalDataContext,
008⫶} from '../../vendor/ibexa/image-editor/src/bundle/ui-dev/src/modules/image-editor/image.editor.modules';
009⫶
010⫶const { ibexa } = window;
011⫶
012⫶const IDENTIFIER = 'dot';
013⫶
014⫶const Dot = () => {
015⫶ const [canvas, setCanvas] = useContext(CanvasContext);
016⫶ const [imageHistory, dispatchImageHistoryAction] = useContext(ImageHistoryContext);
017⫶ const [additionalData, setAdditionalData] = useContext(AdditionalDataContext);
018⫶ const saveInHistory = () => {
019⫶ const newImage = new Image();
020⫶
021⫶ newImage.onload = () => {
022⫶ dispatchImageHistoryAction({ type: 'ADD_TO_HISTORY', image: newImage, additionalData });
023⫶ };
024⫶
025⫶ newImage.src = canvas.current.toDataURL();
026⫶ };
027⫶ const drawDot = () => {
028⫶ const ctx = canvas.current.getContext('2d');
029⫶ const positionX = Math.random() * canvas.current.width;
030⫶ const positionY = Math.random() * canvas.current.height;
031⫶
032⫶ ctx.save();
033⫶
009⫶
010⫶ ctx.beginPath();
011⫶ ctx.arc(positionX, positionY, 20, 0, Math.PI * 2, true);
012⫶ ctx.fill();
013⫶
014⫶ ctx.restore();
015⫶
016⫶ saveInHistory();
017⫶ };

docs/content_management/images/extend_image_editor.md@75:``` js
docs/content_management/images/extend_image_editor.md@76:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js', 17, 26) =]]
docs/content_management/images/extend_image_editor.md@77:```

001⫶ const saveInHistory = () => {
002⫶ const newImage = new Image();
003⫶
004⫶ newImage.onload = () => {
005⫶ dispatchImageHistoryAction({ type: 'ADD_TO_HISTORY', image: newImage, additionalData });
006⫶ };
007⫶
008⫶ newImage.src = canvas.current.toDataURL();
009⫶ };

docs/content_management/images/extend_image_editor.md@81:``` js
docs/content_management/images/extend_image_editor.md@82:[[= include_file('code_samples/back_office/image_editor/assets/random_dot/random-dot.js') =]]
docs/content_management/images/extend_image_editor.md@83:```

001⫶import React, { useContext } from 'react';
002⫶import PropTypes from 'prop-types';
003⫶
004⫶import {
005⫶ CanvasContext,
006⫶ ImageHistoryContext,
007⫶ AdditionalDataContext,
008⫶} from '../../vendor/ibexa/image-editor/src/bundle/ui-dev/src/modules/image-editor/image.editor.modules';
009⫶
010⫶const { ibexa } = window;
011⫶
012⫶const IDENTIFIER = 'dot';
013⫶
014⫶const Dot = () => {
015⫶ const [canvas, setCanvas] = useContext(CanvasContext);
016⫶ const [imageHistory, dispatchImageHistoryAction] = useContext(ImageHistoryContext);
017⫶ const [additionalData, setAdditionalData] = useContext(AdditionalDataContext);
018⫶ const saveInHistory = () => {
019⫶ const newImage = new Image();
020⫶
021⫶ newImage.onload = () => {
022⫶ dispatchImageHistoryAction({ type: 'ADD_TO_HISTORY', image: newImage, additionalData });
023⫶ };
024⫶
025⫶ newImage.src = canvas.current.toDataURL();
026⫶ };
027⫶ const drawDot = () => {
028⫶ const ctx = canvas.current.getContext('2d');
029⫶ const positionX = Math.random() * canvas.current.width;
030⫶ const positionY = Math.random() * canvas.current.height;
031⫶
032⫶ ctx.save();
033⫶
034⫶        ctx.fillStyle = '#ae1164';
034⫶        ctx.fillStyle = '#4e24a5';
035⫶
036⫶ ctx.beginPath();
037⫶ ctx.arc(positionX, positionY, 20, 0, Math.PI * 2, true);
038⫶ ctx.fill();
039⫶
040⫶ ctx.restore();
041⫶
042⫶ saveInHistory();
043⫶ };
044⫶
045⫶ return (
046⫶ <div className="c-image-editor-dot">
047⫶ <button type="button" onClick={drawDot} className="btn btn-secondary">
048⫶ Add dot
049⫶ </button>
050⫶ </div>
051⫶ );
052⫶};
053⫶
054⫶Dot.propTypes = {};
055⫶
056⫶Dot.defaultProps = {};
057⫶
058⫶export default Dot;
059⫶
060⫶ibexa.addConfig(
061⫶ 'imageEditor.actions.dot',
062⫶ {
063⫶ label: 'Dot',
064⫶ component: Dot,
065⫶ icon: ibexa.helpers.icon.getIconPath('form-radio'),
066⫶ identifier: IDENTIFIER,
067⫶ },
068⫶ true,
069⫶);

035⫶
036⫶ ctx.beginPath();
037⫶ ctx.arc(positionX, positionY, 20, 0, Math.PI * 2, true);
038⫶ ctx.fill();
039⫶
040⫶ ctx.restore();
041⫶
042⫶ saveInHistory();
043⫶ };
044⫶
045⫶ return (
046⫶ <div className="c-image-editor-dot">
047⫶ <button type="button" onClick={drawDot} className="btn btn-secondary">
048⫶ Add dot
049⫶ </button>
050⫶ </div>
051⫶ );
052⫶};
053⫶
054⫶Dot.propTypes = {};
055⫶
056⫶Dot.defaultProps = {};
057⫶
058⫶export default Dot;
059⫶
060⫶ibexa.addConfig(
061⫶ 'imageEditor.actions.dot',
062⫶ {
063⫶ label: 'Dot',
064⫶ component: Dot,
065⫶ icon: ibexa.helpers.icon.getIconPath('form-radio'),
066⫶ identifier: IDENTIFIER,
067⫶ },
068⫶ true,
069⫶);

Download colorized diff

@mnocon
mnocon merged commit f8a4e1c into 6.0 Sep 8, 2026
8 of 11 checks passed
@mnocon
mnocon deleted the cohesivo-ui-rebranding branch September 8, 2026 08:28
mnocon added a commit that referenced this pull request Sep 8, 2026
* Cohesivo UI rebranding

* User doc review feedback

* Revert changes to base.css

* Fixed indent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants