Commit Graph

5 Commits

Author SHA1 Message Date
Valera Melnikov
0c345d8404
fix: calculate fluid tokens based on provider width (#29316)
## Description

- I added `--provider-width` CSS variable to the provider, which we get
with the help of [ResizeObserver
hook](https://github.com/jaredLunde/react-hook/tree/master/packages/resize-observer),
the variable is calculated through
[debounces](https://github.com/jaredLunde/react-hook/tree/master/packages/debounce)
every 100 ms.
- Styles for typography are now calculated only through CSS
- Split useFluidTokens hook into several, now there are separate hook
for sizing, spacing and typography
- Create a separate folder for hooks in the theme package

#### PR fixes following issue(s)
Fixes #29177 

#### Media

https://github.com/appsmithorg/appsmith/assets/11555074/7778c5a0-9ed9-4f9c-a2b6-787784ed3e1f



#### Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced fluid sizing, spacing, and typography hooks for responsive
design adjustments.
- Added global font stack utility for consistent typography across
platforms.
  - Enhanced theming capabilities with new hooks and utilities.

- **Improvements**
- Updated `ThemeProvider` to support new styling hooks and responsive
design features.
- Refined typography utilities for dynamic class name generation based
on design tokens.

- **Documentation**
- Added comments to clarify the use of `className` and `style`
properties in `ThemeProviderProps`.

- **Refactor**
  - Streamlined token access with updated `TokensAccessor` class.
- Consolidated typography and font metric types for better type safety
and clarity.

- **Bug Fixes**
- Fixed modal handling in `ComplexForm` component with improved state
management and accessibility.

- **Breaking Changes**
- Removed exports of deprecated typography module and fluid token
module.
- Changed public interface for theming hooks, which may affect existing
consumers.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-12-06 10:38:36 +03:00
Valera Melnikov
d3b48c500f
chore: move typography to themeprovider (#23904)
## Description
**Typography**
- Move typography to the provider.
- Add context for the theme provider
- Move `fontFaces` styles to the provider

**Tooltip**
- Add `isRounded` check for the tooltip (shift for the arrow)
- Fix the position of the arrow in the tooltip

**Tokens**
Move `rootUnit` from `sizing` since this is a common value and is used
not only for sizing. We will do the sizing iteration separately, if
necessary.

**Theming package**
Theming package refactoring. So now we have 4 folders (color, theme,
token, and typography) with related files

#### PR fixes following issue(s)
Fixes #21927

#### Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [x] Jest
- [ ] Cypress


## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-06-07 12:49:24 +03:00
Valera Melnikov
8635c251f5
chore: wds color algo improve (#22442)
## Description

- TokensAccessor improvement. The dependence on default values has been
removed, now what we pass to the input is what we get at the output.
- The themes are placed in a separate class and added tagging for it.
- The theme settings in storybook have been moved to the panel, color
input from the keyboard is now available
- The Chroma is controlled only for non achromatic colors.

## Type of change

> Please delete options that are not relevant.
- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?
- Manual

## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-04-18 13:47:21 +05:30
Valera Melnikov
e0f31c883f
feat: wds color generation algorithm (#22277) 2023-04-13 15:40:15 +05:30
Valera Melnikov
e50b31b65c
feat: wds button refactoring (#21849)
## Description

1. Moved `wds` to the `design-system` folder. 
2. Added `headless` package and `HeadlessButton`.
3. Added `theming` package. `ThemeProvider` and two classes were created
to work with
tokens([TokensAccessor](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-58832e8b8e8017648929473a90eb716e6a2671ba1749be3d4c5665b093bc3dc3))
and
colors([ColorsAccessor](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-f515e0eefc418c8bfc0710572e83a0029bd94f2fb975853f71730e5b11c774bd))
5. The token structure has been changed. The same class(TokensAccessor)
is now used to create CSS variables and tokens for
Figma([themeTokens.json](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-5ad75b848cb4254c0bd0bb0bf6a89eeccb628dc0012752172654e12e62d570d9))

The final storybook is
[here](https://widget-design-system-b1p6g13iq-get-appsmith.vercel.app/?path=/story/design-system-widgets--button).

## Type of change

- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update


## How Has This Been Tested?
- Manual

## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-04-05 18:09:11 +05:30