summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix(media-queries): use pixel based media queriesArmand Philippot2022-06-092-6/+9
| | | | | | | | Everything was working fine with Firefox but it seems Chromium still has issues with `em` unit in media queries. The toolbar modals (search, settings and also main nav) was not displaying correctly on small devices. Some styles was missing. By switching to pixels based media queries, the bug seems fixed.
* fix(settings): avoid cropped tooltip on small devicesArmand Philippot2022-06-0924-404/+260
| | | | | | I changed the settings disposition to make tooltip positioning easier. Jest complains about ref passed but everything seems to work as expected so I'm not sure it is relevant. Maybe a bug with cloneElement.
* fix(settings): close tooltip when modal is closingArmand Philippot2022-06-087-73/+83
| | | | | The event was not captured so the tooltip remained open when the settings was closed. It prevented to click on the toolbar buttons.
* build(sitemap): rename next-sitemap config fileArmand Philippot2022-06-071-0/+0
|
* chore: improve accessibility (#20)Armand Philippot2022-06-0754-136/+458
|\ | | | | Improve images, code blocks, cards and progress bar accessibility.
| * chore: add a label to progress barArmand Philippot2022-06-077-50/+58
| | | | | | | | | | | | The progress element is a form element, so a label is required to be accessible. Since I'm not using it without label, I transform the optional info parameter to a mandatory label parameter.
| * chore: add an aria label to code blocksArmand Philippot2022-06-073-0/+19
| | | | | | | | | | Prism is adding a tabindex to code blocks, so I think an aria label can help screen reader users to identify the tabbed content.
| * chore(cards): use post title as link labelArmand Philippot2022-06-078-49/+90
| |
| * chore: use image title as figure label if no caption is providedArmand Philippot2022-06-074-12/+14
| |
| * chore: add aria hidden attribute to SVG iconsArmand Philippot2022-06-0732-25/+277
|/
* build(deps): bump dependenciesArmand Philippot2022-06-072-970/+971
|
* test: add end to end tests (#19)Armand Philippot2022-06-03124-130/+1204
|\ | | | | | | In addition to Jest tests, I configure Cypress to test some pages and features. I also fix some Jest errors due to images import.
| * test(unit): fix Jest errors due to images importArmand Philippot2022-06-034-1/+6
| | | | | | | | | | I mocked some SVG files and moves the branding photo to public directory. It is more a workaround than a real fix but it works so...
| * test(e2e): add settings form testArmand Philippot2022-06-031-0/+177
| |
| * test(e2e): add other pages testArmand Philippot2022-06-034-0/+27
| | | | | | | | | | Sometimes a build can be successful but the page is not working, so these tests allows me to check if the page is correctly loaded.
| * test(e2e): add contact page testArmand Philippot2022-06-031-0/+41
| |
| * test(e2e): add loading more button test for blog pageArmand Philippot2022-06-031-0/+44
| |
| * build(test): add a pre-push hook to run unit testsArmand Philippot2022-06-031-0/+4
| |
| * docs: add a section about TestingArmand Philippot2022-06-021-1/+27
| |
| * test(e2e): add back to top button visibility testArmand Philippot2022-06-021-0/+14
| |
| * test(e2e): add search feature testArmand Philippot2022-06-021-0/+41
| |
| * test(e2e): add Footer navigation testArmand Philippot2022-06-021-0/+12
| |
| * test(e2e): add main navigation testArmand Philippot2022-06-021-0/+62
| |
| * test: install and configure cypressArmand Philippot2022-06-02110-128/+749
|/ | | | I also configure Jest to avoid conflicts between Cypress and Jest.
* fix: improve settings accessibility (#18)Armand Philippot2022-06-027-58/+86
|\ | | | | | | | | The settings modal had some accessibility issues: * the SVG title was not used as radio button label, * the state of the help button was only visual.
| * fix: improve help button accessibility with aria-pressedArmand Philippot2022-06-023-5/+13
| |
| * fix: ensure radio buttons are accessibleArmand Philippot2022-06-024-53/+73
|/ | | | | It seems I cannot use the SVG title as label. So I removed the title and added a visually hidden span to set the radio buttons label.
* build(deps): bump dependenciesArmand Philippot2022-06-012-756/+796
|
* chore(a11y): improve website settings accessibility (#17)Armand Philippot2022-06-0172-1408/+2557
|\ | | | | The previous switch buttons (using checkbox) was not a11y compliant. So I change my approach to use radio buttons and to clearly separate the two different states. I also convert the Ackee select setting to improve consistency between settings.
| * chore: replace the Ackee select by a toggle componentArmand Philippot2022-06-0138-745/+716
| |
| * chore: replace the toggle componentArmand Philippot2022-06-0127-496/+534
| |
| * chore: add a RadioGroup componentArmand Philippot2022-05-316-2/+348
| |
| * chore: add a Fieldset componentArmand Philippot2022-05-315-0/+216
| |
| * chore: replace Checkbox component with a BooleanField componentArmand Philippot2022-05-3124-220/+789
| | | | | | | | | | Checkbox and radio buttons are working the same way so I decided to group them in a same component.
| * build(deps): bump dependenciesArmand Philippot2022-05-272-145/+154
|/
* chore: fix some typographic issuesArmand Philippot2022-05-251-53/+53
| | | | | | | | Formatjs (ICU actually) uses single quotes as escape character so some French translation had issues because of apostrophe. I replaced the character used. I took the opportunity to use the correct characters for some other typographic rules (non-breaking spaces, suspension points…)
* build(docker): increase CPU and Memory limitsArmand Philippot2022-05-251-8/+8
| | | | | Some images failed to load and the staging build was randomly crashing with exit code 137 (memory issue).
* fix(settings): reduce font-size on small devicesArmand Philippot2022-05-2515-12/+142
| | | | | With French translation, words are a little longer so I reduce the font size on small devices to avoid line breaking.
* chore: update header photoArmand Philippot2022-05-251-0/+0
|
* fix: reset focus to top of the page on route changeArmand Philippot2022-05-251-2/+8
|
* build(deps): bump all dependenciesArmand Philippot2022-05-255-3061/+2391
| | | | | | | I moved the website picture from useSettings to the layout component since it is only used here. This reduce the number of Jest errors. However, there's still some issues with some images import...
* refactor: use storybook and atomic design (#16)Armand Philippot2022-05-24614-13051/+36543
|\ | | | | BREAKING CHANGE: rewrite most of the Typescript types, so the content format (the meta in particular) needs to be updated.
| * chore: update contentsArmand Philippot2022-05-241-0/+0
| |
| * chore: close search form when launching searchArmand Philippot2022-05-242-0/+14
| |
| * chore: update translationArmand Philippot2022-05-242-1056/+760
| |
| * chore: handle article fallback and revalidationArmand Philippot2022-05-241-25/+26
| | | | | | | | | | | | By using useSWR I can fetch the changes from the backend. By using fallback, I can access new articles without rebuilding the entire app.
| * chore: give autofocus to the toolbar search formArmand Philippot2022-05-246-48/+98
| |
| * docs: add Storybook in Development stepsArmand Philippot2022-05-241-0/+17
| |
| * chore: add a search form on 404 pageArmand Philippot2022-05-241-0/+9
| |
| * chore: add a search form when posts list prints no resultsArmand Philippot2022-05-2413-53/+164
| |