From 5980b5f84349776f89ee6a1f4a44bc7f2f5c495a Mon Sep 17 00:00:00 2001 From: Lindsay M <126139086+lindsaym-fa@users.noreply.github.com> Date: Tue, 3 Jun 2025 16:27:24 -0400 Subject: [PATCH] Refactor form control sizing (#1005) * visual test setup * fix improper class placement in visual tests * add `wa-form-control-*-font-size` and `-wa-form-control-hint-*` custom properties * use new custom properties * dump of component sizing improvements * fix native color picker styles * update menu with relative sizes * tidy up menu, select, and tag sizing * use relative sizing across components * touch up custom properties * update docs and comments * update changelog * revert changes to visual tests to simplify PR * revert leftover change to visual tests * tidy up space doc markdown * fix default card spacing * fix card docs * wrap up new `--tag-max-size` for `` * change default `--tag-max-size` * prettier * touch up * clean up leftovers * fix native form control margins * set default toggle size relative to font size * correct toggle size in docs * Konnorrogers/lm form control sizing (#1025) * try a second updateComplete?? * try a second updateComplete?? * more timeouts? * try logging * more logging gp * maybe now * radio group test * add todo note' * add workflow dispatch for client tests --------- Co-authored-by: Konnor Rogers --- .github/workflows/client_tests.yml | 1 + package-lock.json | 23 +++++ packages/webawesome/docs/assets/styles/ui.css | 2 +- .../docs/docs/resources/changelog.md | 9 ++ .../docs/docs/tokens/component-groups.md | 69 ++++++------- packages/webawesome/docs/docs/tokens/space.md | 30 +++--- .../webawesome/docs/docs/tokens/typography.md | 33 ++++--- .../src/components/button/button.css | 8 +- .../webawesome/src/components/card/card.css | 6 +- .../webawesome/src/components/card/card.ts | 2 +- .../src/components/checkbox/checkbox.css | 6 +- .../components/color-picker/color-picker.css | 5 +- .../components/copy-button/copy-button.css | 2 +- .../components/icon-button/icon-button.css | 2 +- .../webawesome/src/components/input/input.css | 8 +- .../src/components/menu-item/menu-item.css | 16 +-- .../src/components/menu-label/menu-label.css | 4 +- .../webawesome/src/components/menu/menu.css | 4 +- .../src/components/option/option.css | 10 +- .../src/components/popover/popover.css | 2 +- .../components/radio-group/radio-group.css | 6 +- .../radio-group/radio-group.test.ts | 12 ++- .../webawesome/src/components/radio/radio.css | 10 +- .../src/components/rating/rating.css | 8 +- .../src/components/select/select.css | 97 +++++++------------ .../src/components/select/select.ts | 1 + .../src/components/slider/slider.css | 5 +- .../src/components/switch/switch.css | 3 +- .../src/components/tab-group/tab-group.css | 12 +-- .../webawesome/src/components/tab/tab.css | 6 +- .../webawesome/src/components/tag/tag.css | 14 +-- .../src/components/textarea/textarea.css | 4 +- .../src/components/tooltip/tooltip.css | 2 +- .../src/styles/component/form-control.css | 10 +- packages/webawesome/src/styles/native.css | 58 +++++++---- .../src/styles/themes/active/dimension.css | 2 +- .../webawesome/src/styles/themes/awesome.css | 8 +- .../src/styles/themes/awesome/dimension.css | 6 +- .../src/styles/themes/default/groups.css | 16 ++- .../src/styles/themes/default/space.css | 6 +- .../src/styles/themes/default/typography.css | 25 ++--- .../src/styles/themes/glossy/dimension.css | 2 +- .../src/styles/themes/matter/overrides.css | 6 +- .../src/styles/themes/playful/dimension.css | 2 +- .../webawesome/src/styles/themes/premium.css | 3 +- .../src/styles/themes/premium/overrides.css | 6 +- .../src/styles/themes/shoelace/overrides.css | 6 +- .../webawesome/src/styles/utilities/size.css | 86 +--------------- 48 files changed, 314 insertions(+), 350 deletions(-) diff --git a/.github/workflows/client_tests.yml b/.github/workflows/client_tests.yml index 7d44e099d..998eb7d52 100644 --- a/.github/workflows/client_tests.yml +++ b/.github/workflows/client_tests.yml @@ -4,6 +4,7 @@ name: Client Tests on: + workflow_dispatch: push: branches: [next] pull_request: diff --git a/package-lock.json b/package-lock.json index 187730bfd..9498eef31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2488,6 +2488,10 @@ "resolved": "packages/webawesome", "link": true }, + "node_modules/@shoelace-style/webawesome-pro": { + "resolved": "packages/webawesome-pro", + "link": true + }, "node_modules/@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -13987,6 +13991,25 @@ "engines": { "node": ">=14.17.0" } + }, + "packages/webawesome-pro": { + "name": "@shoelace-style/webawesome-pro", + "version": "3.0.0-alpha.13", + "license": "TODO", + "dependencies": { + "@ctrl/tinycolor": "^4.1.0", + "@floating-ui/dom": "^1.6.13", + "@shoelace-style/animations": "^1.2.0", + "@shoelace-style/localize": "^3.2.1", + "composed-offset-position": "^0.0.6", + "lit": "^3.2.1", + "qr-creator": "^1.0.0", + "style-observer": "^0.0.7" + }, + "devDependencies": {}, + "engines": { + "node": ">=14.17.0" + } } } } diff --git a/packages/webawesome/docs/assets/styles/ui.css b/packages/webawesome/docs/assets/styles/ui.css index f87f65367..903e0c354 100644 --- a/packages/webawesome/docs/assets/styles/ui.css +++ b/packages/webawesome/docs/assets/styles/ui.css @@ -127,7 +127,7 @@ > input { font: inherit; - margin-block: calc(-1 * var(--wa-space-smaller)); + margin-block: 0.75em; field-sizing: content; } diff --git a/packages/webawesome/docs/docs/resources/changelog.md b/packages/webawesome/docs/docs/resources/changelog.md index 1536192bf..abd802345 100644 --- a/packages/webawesome/docs/docs/resources/changelog.md +++ b/packages/webawesome/docs/docs/resources/changelog.md @@ -31,14 +31,23 @@ During the alpha period, things might break! We take breaking changes very serio - `` => `` - `` => `` - 🚨 BREAKING: removed the `size` attribute from ``; please set the size of child elements on the children directly +- 🚨 BREAKING: Greatly simplified the sizing strategy across components and utilities + - Removed `--wa-size`, `--wa-size-smaller`, `--wa-size-larger`, `--wa-space`, `--wa-space-smaller`, and `--wa-space-larger` + - Added tokens for `--wa-form-control-padding-inline`, `--wa-form-control-padding-block`, and `--wa-form-control-toggle-size` + - Refactored default `--wa-font-size-*` values to use an apparent 1.125 ratio and round rendered values to the nearest whole pixel + - Added convenience tokens for `--wa-font-size-smaller` and `--wa-font-size-larger` + - Updated components to use relative `em` values for internal padding and margin wherever appropriate - 🚨 BREAKING: removed the `hint` property and slot from ``; please apply hints directly to `` instead - Added a new free component: `` (#2 of 14 per stretch goals) - Added a `min-block-size` to `` to ensure the divider is visible regardless of container height [issue:675] - Added support for `name` in `` for exclusively opening one in a group +- Added `--checked-icon-scale` to `` +- Added `--tag-max-size` to `` when using `multiple` - Fixed a bug in `` that caused radios to uncheck when assigning a numeric value [issue:924] - Fixed `` so dividers properly show between buttons - Fixed the tooltip position in `` when using RTL - Fixed a bug in `` and native `
` styles that made the summary hard to click [issue:684] +- Fixed a handful of bugs unify form control height across components and native elements - Improved CSS utilities and Native Styles to use [CSS layers](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer) for easier end user customization (no more specificity conflicts — your CSS wins!) - Improved native `