Commit Graph

38 Commits

Author SHA1 Message Date
jbpenrath
2ee7450915 (react) fix flaky test
On CI, a test times out frequently. We increase the timeout
threshold to prevent that..

Resolve #355
2025-08-07 10:15:07 +02:00
jbpenrath
8e049bc21e 🐛(react) disable button link
According to its prop, the Button component can be rendered as
a link but in this case, the prop `disabled` has no effect. So to fix
that if the Button receives a `href` prop and is disabled, we apply
a modifier class `.c__button--disabled`.
2025-08-07 10:15:07 +02:00
jbpenrath
56d9ed88f0 💥(react) upgrade to React 19
https://react.dev/blog/2024/04/25/react-19-upgrade-guide
https://react.dev/blog/2024/12/05/react-19
2025-01-08 11:02:50 +01:00
Nathan Vasse
c63aff4861 📝(react) upgrade stories for Storybook 8
The old way of using Canvas is deprecated, we need to migrate all the
stories to the new standard.
2024-03-21 17:00:04 +01:00
Nathan Vasse
20f5bb703b ♻️(react) make className standard across components
The className prop was sometimes set onto the nested element and
sometimes on the container element, which was not consistent. Now
we always set the className onto the upmost element.
2024-03-19 14:15:35 +01:00
Nathan Vasse
c5e5d9fa85 📝(react) make color prop of Button appear in the doc
This prop color was not appearing in the ArgTypes because it was an override
attribute.

Fixes #235
2024-02-28 17:31:02 +01:00
Nathan Vasse
3800cd8142 📝(react) create a stories for all buttons
Previously we were using a deprecated Storybook feature by using
canvas for multiple Stories and it was also rendering buttons not
aligned, so this new story is a better choice.
2024-01-02 15:26:13 +01:00
Nathan Vasse
e90a5dd6e6 (react) add text variants to Button
These variant are smaller buttons without background that can be used
in cases where we want the Button to have a minimal design.
2024-01-02 15:26:13 +01:00
Lebaud Antoine
430f893645 🩹(react) update stylesheet to use modern SASS
Replaced deprecated '@import' with '@use' to align with best practices.
Refactored stylesheet to behave as a partial, enhancing SASS compilation
efficiency.
2023-10-24 20:32:42 +02:00
Nathan Vasse
01528b9377 (react) render Button as link
For a variety of reasons, such as accessibility or integration with
external react-router deps style we needed to be able to provide the
ability to render the Button component as link in order to be able
to provide link-specific attribute for rendering such as href.
2023-10-23 15:27:47 +02:00
Anthony Le Courric
cf3a589d7f 🩹(react) export Button props
In some cases we need the props of a component to be exported,
to be able to use them in other components. This commit exports
the props of the Button component.
2023-10-05 09:19:26 +02:00
Nathan Vasse
cce8eccf5b (theme) add themes management
This is made in order to be able to handle natively multiple themes
for the future light/dark themes and also allow consumers to create
their own.
2023-10-04 15:18:00 +02:00
Nathan Vasse
c0028966f1 (react) add a nano button, proper icon sizes
Previously we had to hack the button in order to display small clickable
icons, like the clear button in the DatePicker. By introducing a new
nano button we can natively achieve that. Also make more homegenous
font size and icon sizes in existing button sizes.
2023-09-11 12:07:49 +02:00
Nathan Vasse
4e6e5a2e52 💄(react) fix Button style
QA-based updates to the Button components. It includes global UI updates
to make the Button to match the sketches.
2023-09-11 12:07:49 +02:00
Romain Le Cellier
3471e2e0b2 (react) add Button token font-family
Components font-family have to be customizable.
2023-08-04 17:42:18 +02:00
Nathan Vasse
d85f9edac8 🚨(lint) update file for prettier 3.0.0
Prettier 3.0.0 comes with new standards so we need to upgrade our files
to comply with it.
2023-07-18 16:59:39 +02:00
Nathan Vasse
30d08a956b (react) add fullWidth props to Button
Can be useful in many situations.
2023-06-01 12:05:32 +02:00
Nathan Vasse
cfdac8dba9 💄(react) migrate to Roboto Flex
Previously we were using standard Roboto Font but we were struggling to
get the same boldness as the ones from the Figma sketches. It appears
that Figma uses Roboto Flex, so by installing it we can now nearly
perfectly align our visuals with the ones form the sketches. I had to
do some custom tweaks with the weights of the font because if we
use exactly the same font-weight as in Figma the render is still different.
2023-05-26 16:39:02 +02:00
Nathan Vasse
ce6eb50a98 ♻️(react) migrate ArgsTable to ArgTypes and rework imports
Storybook was emitting warnings errors about the fact that ArgsTable
is deprecated, and also I rewrote imports as those are not the one
used in the doc anymore, this will prevent breaking changes in the
upcoming upgrades.
2023-05-23 10:10:40 +02:00
Nathan Vasse
8cda41772d ♻️(react) fix Storybook source blocks
Due to the recent upgrade to Storybook 7, the source blocks of Canvases
were broken, they were only showing args. This was mainly due to the fact
that as of Storybook 7 the meta tags of the MDX files have changed, thus
causing the issue. These are now based on imports. We also needed to rename
index.stories.mdx files to index.mdx because Storybook was throwing errors,
maybe due to a conflicts with index.stories.tsx files and new imports.
Anyway this way of naming MDX files seems to be the recommend one based on
the official documentation.
2023-05-23 10:10:40 +02:00
Nathan Vasse
77721c3b6d ♻️(react) migrate to Storybook 7
This new release comes with breaking changes for stories and mdx docs.
2023-05-15 11:04:06 +02:00
Nathan Vasse
1d3b1456ca (react) add forwardRef to Button
This could be useful to everyone. But at the moment is was needed for the
Select field be able to use Downshift with Button.
2023-05-12 11:13:38 +02:00
Nathan Vasse
d4a574c30f 🔧(react) fix types file broken imports
Generated types for the react package were broken because they were
still using absolute imports which cannot work in standalone .d.ts
files because they cannot rely on the local baseUrl compiler option.
Thus, we introduced an alias that we are able to reliably replace
during type generation.
2023-05-04 16:53:29 +02:00
jbpenrath
1be02f5a85 💄(react) remove button box shadow effect
On hover and active, buttons have a box shadow effect that is too heavy
visually so we remove this effect for now.
2023-04-21 11:33:46 +02:00
jbpenrath
b1925959fe ️(react) improve button accessibility
Rework buttons in order to improve accessibility by increasing color
contrast and shape change across states.
2023-04-12 17:21:19 +02:00
Nathan Vasse
05242ffbcd (react) add button sizes
Add two sizes for the Button component: small and medium. They
are present on the new delivered sketches concerning pagination
but dont exists yet.
2023-03-28 12:00:27 +02:00
Nathan Vasse
f3e3b568fc (react) add active state on button
Previously we had no way of forcing a button to render in
an active state.
2023-03-28 12:00:27 +02:00
jbpenrath
8bf13ae3ad ️(react) add aria-label property to the only icon button story
As this button has no label only an icon, the a11y checker reports us
that there is no accessible label for this component.
2023-02-28 10:29:23 +01:00
Nathan Vasse
722b66b3ae (react) add button with icon only
Previously using Button with only an icon made it render with an
internal offset, that wasn't really nice-looking. Now we force the
button to be squared.
2023-02-15 16:00:14 +01:00
Nathan Vasse
dd2a93ffdf 📝(doc) create a global category for Components
This way we ensure that the main categories of the Storybook docs
are well separated, improving readability.
2023-01-20 17:00:31 +01:00
Nathan Vasse
b908136224 (tokens) generate css utility classes
These were the missing parts in order to use every design tokens
of Cunningham. Including: spacing, font weight, size, family, and
colors. In order to be really versatile and to allow users to
define new design tokens I had to re-organize the way those tokens
are sub divided in sub objects in cunningham.ts file. That's why
sub division are created for theme.typ.sizes for instance.
2023-01-20 17:00:31 +01:00
Nathan Vasse
b07f9cc869 (react) add danger color to Button
We adding do's and don't to the documentation I realized that the
danger button was really important in some cases even if the style
was not delivered by designers. Example: Delete buttons.
2023-01-18 11:29:33 +01:00
Nathan Vasse
163bb1f9c8 📝(react) add do's and don't to Button doc
Based on the work delivered by designers, we simply replicates those
in the storybook documentation in order to centralize everything
related to the Button component.
2023-01-18 11:29:33 +01:00
Nathan Vasse
05f9252029 (react) add icon to Button
The DS does not offer an icons set yet but it seems important to
already provide a support for external icons in Button.
2023-01-18 11:29:33 +01:00
Nathan Vasse
9fa0ff8ad3 📝(react) add documentation for Button component
Let's leverage the power of Storybook ! Use MDX file to create a
top notch documentation.
2023-01-18 11:29:33 +01:00
Nathan Vasse
7b6d130d7d (react) implement Button with official tokens
Now that we have all the official design tokens we can use them
to build the button component in various colors matching the
design system's ones.
2023-01-18 11:29:33 +01:00
Nathan Vasse
be1c9d000b (react) add tokens.ts files handling
These files will be used to define the custom design tokens per components.
They are automatically aggregated by the packages/react/cunningham.ts file,
this is why handling typescript config file was important.
2023-01-11 11:01:56 +01:00
Nathan Vasse
75f2617726 (components) add react repo
This repo only contains a Button which is here only for demonstration purpose.
Its purpose is to contain all the future react-based components of the
design system.
2022-12-07 17:07:18 +01:00