From 6c3f3f6a77e7725db77aa4faba491b9057689eb2 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Fri, 11 Oct 2024 13:29:07 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84(frontend)=20components=20more=20mu?= =?UTF-8?q?lti=20theme=20friendly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We adapt a bit the tokens of some components to be more multi theme friendly. When we will add another theme, it will be easier to adapt to the new theme. --- CHANGELOG.md | 5 +++ .../e2e/__tests__/app-impress/header.spec.ts | 6 ++-- src/frontend/apps/impress/cunningham.ts | 8 +++++ .../apps/impress/src/components/Icon.tsx | 1 + .../src/cunningham/cunningham-style.css | 2 ++ .../src/cunningham/cunningham-tokens.css | 8 +++++ .../src/cunningham/cunningham-tokens.ts | 4 +++ .../doc-editor/components/PanelEditor.tsx | 2 ++ .../docs/doc-header/components/DocHeader.tsx | 1 + .../docs/doc-header/components/DocToolBox.tsx | 10 +++--- .../doc-header/components/ModalExport.tsx | 7 +++- .../docs/doc-management/assets/icon-trash.svg | 6 ---- .../components/ModalRemoveDoc.tsx | 5 +-- .../doc-management/components/ModalShare.tsx | 11 ++++--- .../doc-versioning/components/VersionItem.tsx | 25 +++++++++------ .../members-list/components/MemberItem.tsx | 6 +--- .../src/features/header/components/Header.tsx | 3 +- .../features/header/components/LaGaufre.tsx | 32 ++++++++++++------- .../src/features/language/LanguagePicker.tsx | 13 ++++---- .../language/assets/icon-language.svg | 14 -------- 20 files changed, 101 insertions(+), 68 deletions(-) delete mode 100644 src/frontend/apps/impress/src/features/docs/doc-management/assets/icon-trash.svg delete mode 100644 src/frontend/apps/impress/src/features/language/assets/icon-language.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b50b65d..b3891a23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,11 @@ and this project adheres to ## [Unreleased] +## Changed + +♻️(frontend) More multi theme friendly #325 + + ## [1.5.1] - 2024-10-10 ## Fixed diff --git a/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts index b29f610b..e1ade402 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/header.spec.ts @@ -26,7 +26,7 @@ test.describe('Header', () => { }), ).toBeVisible(); - await expect(header.getByAltText('Language Icon')).toBeVisible(); + await expect(header.getByText('English')).toBeVisible(); await expect( header.getByRole('button', { @@ -87,7 +87,7 @@ test.describe('Header mobile', () => { }), ).toBeHidden(); - await expect(page.getByAltText('Language Icon')).toBeHidden(); + await expect(page.getByText('English')).toBeHidden(); await header.getByLabel('Open the header menu').click(); @@ -97,7 +97,7 @@ test.describe('Header mobile', () => { }), ).toBeVisible(); - await expect(page.getByAltText('Language Icon')).toBeVisible(); + await expect(page.getByText('English')).toBeVisible(); }); }); diff --git a/src/frontend/apps/impress/cunningham.ts b/src/frontend/apps/impress/cunningham.ts index 6b158a6d..00f3c66a 100644 --- a/src/frontend/apps/impress/cunningham.ts +++ b/src/frontend/apps/impress/cunningham.ts @@ -189,6 +189,9 @@ const config = { }, }, }, + 'la-gauffre': { + activated: false, + }, }, }, dsfr: { @@ -321,6 +324,7 @@ const config = { 'color-hover': 'var(--c--theme--colors--primary-100)', }, 'color-hover': 'var(--c--theme--colors--primary-text)', + color: 'var(--c--theme--colors--primary-600)', }, }, datagrid: { @@ -335,6 +339,7 @@ const config = { pagination: { 'background-color': 'transparent', 'background-color-active': 'var(--c--theme--colors--primary-300)', + 'border-color': 'var(--c--theme--colors--primary-400)', }, }, 'forms-checkbox': { @@ -384,6 +389,9 @@ const config = { 'forms-textarea': { 'border-radius': '0', }, + 'la-gauffre': { + activated: true, + }, }, }, }, diff --git a/src/frontend/apps/impress/src/components/Icon.tsx b/src/frontend/apps/impress/src/components/Icon.tsx index 163cf344..94aece6f 100644 --- a/src/frontend/apps/impress/src/components/Icon.tsx +++ b/src/frontend/apps/impress/src/components/Icon.tsx @@ -13,6 +13,7 @@ export const IconBG = ({ iconName, ...textProps }: IconBGProps) => { $isMaterialIcon $size="36px" $theme="primary" + $variation="600" $background={colorsTokens()['primary-bg']} $css={` border: 1px solid ${colorsTokens()['primary-200']}; diff --git a/src/frontend/apps/impress/src/cunningham/cunningham-style.css b/src/frontend/apps/impress/src/cunningham/cunningham-style.css index 58770831..46da3784 100644 --- a/src/frontend/apps/impress/src/cunningham/cunningham-style.css +++ b/src/frontend/apps/impress/src/cunningham/cunningham-style.css @@ -255,6 +255,7 @@ input:-webkit-autofill:focus { gap: 3px; border-radius: 4px; background: var(--c--components--datagrid--pagination--background-color); + border-color: var(--c--components--datagrid--pagination--border-color); } .c__pagination__list .c__button--tertiary-text.c__button--active { @@ -452,6 +453,7 @@ input:-webkit-autofill:focus { .c__button--tertiary-text { border: none; + color: var(--c--components--button--tertiary-text--color); } .c__button--tertiary-text:hover, diff --git a/src/frontend/apps/impress/src/cunningham/cunningham-tokens.css b/src/frontend/apps/impress/src/cunningham/cunningham-tokens.css index 45dfd511..b30e3507 100644 --- a/src/frontend/apps/impress/src/cunningham/cunningham-tokens.css +++ b/src/frontend/apps/impress/src/cunningham/cunningham-tokens.css @@ -283,6 +283,7 @@ ); --c--components--button--disabled--color: white; --c--components--button--disabled--background--color: #b3cef0; + --c--components--la-gauffre--activated: false; } .cunningham-theme--dark { @@ -451,6 +452,9 @@ --c--components--button--tertiary-text--color-hover: var( --c--theme--colors--primary-text ); + --c--components--button--tertiary-text--color: var( + --c--theme--colors--primary-600 + ); --c--components--datagrid--header--color: var( --c--theme--colors--primary-text ); @@ -461,6 +465,9 @@ --c--components--datagrid--pagination--background-color-active: var( --c--theme--colors--primary-300 ); + --c--components--datagrid--pagination--border-color: var( + --c--theme--colors--primary-400 + ); --c--components--forms-checkbox--border-radius: 0; --c--components--forms-checkbox--color: var(--c--theme--colors--primary-text); --c--components--forms-checkbox--text--color: var( @@ -504,6 +511,7 @@ --c--theme--colors--primary-text ); --c--components--forms-textarea--border-radius: 0; + --c--components--la-gauffre--activated: true; } .clr-secondary-text { diff --git a/src/frontend/apps/impress/src/cunningham/cunningham-tokens.ts b/src/frontend/apps/impress/src/cunningham/cunningham-tokens.ts index ae7fd4f5..d435b859 100644 --- a/src/frontend/apps/impress/src/cunningham/cunningham-tokens.ts +++ b/src/frontend/apps/impress/src/cunningham/cunningham-tokens.ts @@ -276,6 +276,7 @@ export const tokens = { }, disabled: { color: 'white', background: { color: '#b3cef0' } }, }, + 'la-gauffre': { activated: false }, }, }, dark: { @@ -450,6 +451,7 @@ export const tokens = { 'color-hover': 'var(--c--theme--colors--primary-100)', }, 'color-hover': 'var(--c--theme--colors--primary-text)', + color: 'var(--c--theme--colors--primary-600)', }, }, datagrid: { @@ -464,6 +466,7 @@ export const tokens = { pagination: { 'background-color': 'transparent', 'background-color-active': 'var(--c--theme--colors--primary-300)', + 'border-color': 'var(--c--theme--colors--primary-400)', }, }, 'forms-checkbox': { @@ -503,6 +506,7 @@ export const tokens = { 'accent-color': 'var(--c--theme--colors--primary-text)', }, 'forms-textarea': { 'border-radius': '0' }, + 'la-gauffre': { activated: true }, }, }, }, diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/PanelEditor.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/PanelEditor.tsx index 0d0321b4..533fbe24 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/PanelEditor.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/PanelEditor.tsx @@ -102,6 +102,7 @@ export const PanelEditor = ({ $weight="bold" $size="m" $theme="primary" + $variation="600" $padding={{ vertical: 'small', horizontal: 'small' }} > {t('Table of content')} @@ -118,6 +119,7 @@ export const PanelEditor = ({ $weight="bold" $size="m" $theme="primary" + $variation="600" $padding={{ vertical: 'small', horizontal: 'small' }} > {t('Versions')} diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocHeader.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocHeader.tsx index 2e6f007c..36249f2b 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocHeader.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocHeader.tsx @@ -44,6 +44,7 @@ export const DocHeader = ({ doc, versionId }: DocHeaderProps) => { { icon={history} size="small" > - {t('Version history')} + {t('Version history')} )} {doc.abilities.destroy && ( )} diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalExport.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalExport.tsx index 612869c1..2dc57569 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalExport.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalExport.tsx @@ -152,7 +152,12 @@ export const ModalPDF = ({ onClose, doc }: ModalPDFProps) => { size={ModalSize.MEDIUM} title={ - + picture_as_pdf diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/assets/icon-trash.svg b/src/frontend/apps/impress/src/features/docs/doc-management/assets/icon-trash.svg deleted file mode 100644 index 2a446b24..00000000 --- a/src/frontend/apps/impress/src/features/docs/doc-management/assets/icon-trash.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalRemoveDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalRemoveDoc.tsx index 2e4fc9b1..39963bd1 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalRemoveDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalRemoveDoc.tsx @@ -14,7 +14,6 @@ import useCunninghamTheme from '@/cunningham/useCunninghamTheme'; import { useRemoveDoc } from '../api/useRemoveDoc'; import IconDoc from '../assets/icon-doc.svg'; -import IconRemove from '../assets/icon-trash.svg'; import { Doc } from '../types'; interface ModalRemoveDocProps { @@ -73,7 +72,9 @@ export const ModalRemoveDoc = ({ onClose, doc }: ModalRemoveDocProps) => { size={ModalSize.MEDIUM} title={ - + + delete_forever + {t('Deleting the document "{{title}}"', { title: doc.title })} diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalShare.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalShare.tsx index 33a8aa56..9357c3cd 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalShare.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/components/ModalShare.tsx @@ -1,7 +1,7 @@ import { t } from 'i18next'; import { createGlobalStyle } from 'styled-components'; -import { Box, Card, SideModal, Text } from '@/components'; +import { Box, Card, IconBG, SideModal, Text } from '@/components'; import { InvitationList } from '@/features/docs/members/invitation-list'; import { AddMembers } from '@/features/docs/members/members-add'; import { MemberList } from '@/features/docs/members/members-list'; @@ -62,9 +62,12 @@ export const ModalShare = ({ onClose, doc }: ModalShareProps) => { $padding="tiny" $gap="1rem" > - - share - + {t('Share')} diff --git a/src/frontend/apps/impress/src/features/docs/doc-versioning/components/VersionItem.tsx b/src/frontend/apps/impress/src/features/docs/doc-versioning/components/VersionItem.tsx index 738cc0c6..5dcf0e9f 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-versioning/components/VersionItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-versioning/components/VersionItem.tsx @@ -35,13 +35,13 @@ export const VersionItem = ({ as="li" $background={isActive ? colorsTokens()['primary-300'] : 'transparent'} $css={` - border-left: 4px solid transparent; - border-bottom: 1px solid ${colorsTokens()['primary-100']}; - &:hover{ - border-left: 4px solid ${colorsTokens()['primary-400']}; - background: ${colorsTokens()['primary-300']}; - } - `} + border-left: 4px solid transparent; + border-bottom: 1px solid ${colorsTokens()['primary-100']}; + &:hover{ + border-left: 4px solid ${colorsTokens()['primary-400']}; + background: ${colorsTokens()['primary-300']}; + } + `} $hasTransition $minWidth="13rem" > @@ -54,10 +54,15 @@ export const VersionItem = ({ $width="100%" > - + description - + {text} @@ -81,7 +86,7 @@ export const VersionItem = ({ icon={save} size="small" > - {t('Restore the version')} + {t('Restore the version')} diff --git a/src/frontend/apps/impress/src/features/docs/members/members-list/components/MemberItem.tsx b/src/frontend/apps/impress/src/features/docs/members/members-list/components/MemberItem.tsx index ccfbe192..c9b1e9d2 100644 --- a/src/frontend/apps/impress/src/features/docs/members/members-list/components/MemberItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/members/members-list/components/MemberItem.tsx @@ -116,11 +116,7 @@ export const MemberItem = ({