Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(color): 🏷️ better type safety using colors in code #3176

Merged
merged 6 commits into from
Feb 20, 2025

Conversation

mimarz
Copy link
Collaborator

@mimarz mimarz commented Feb 19, 2025

In an effort to prevent bugs related to using indexs for fetching arbitary colors I have introduces stricter types for colorMetaData making safer lookups by name or number

Copy link

changeset-bot bot commented Feb 19, 2025

⚠️ No Changeset found

Latest commit: da76291

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

github-actions bot commented Feb 19, 2025

Preview deployments for this pull request:

Storybook - 20. Feb 2025 - 12:43

Storefront - 20. Feb 2025 - 12:43

Theme - 20. Feb 2025 - 12:43

Copy link
Contributor

github-actions bot commented Feb 19, 2025

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 50.37% 3204 / 6360
🔵 Statements 50.37% 3204 / 6360
🔵 Functions 85.31% 215 / 252
🔵 Branches 77.93% 558 / 716
File CoverageNo changed files found.
Generated in workflow #2151 for commit da76291 by the Vitest Coverage Report Action

In an effort to prevent bugs related to using indexs for fetching arbitary colors I have introduces stricter types for colorMetaData making safer lookups by name or number
@mimarz mimarz force-pushed the better-color-type-safety branch from 6ac921e to bbffcd0 Compare February 20, 2025 11:39
@mimarz mimarz requested a review from unekinn February 20, 2025 11:43
@mimarz mimarz marked this pull request as ready for review February 20, 2025 11:43
Copy link
Contributor

@unekinn unekinn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fin rydding! Eg har eit forslag du kan vurdere å titte på også.

@@ -59,7 +59,7 @@ export const ThemePages = () => {
for (let i = 0; i < lightColors.length; i++) {
const number = (i + 1) as ColorNumber;
style[
`--ds-color-neutral-${getColorInfoFromPosition(number)
`--ds-color-neutral-${getColorMetadataByNumber(number)
.displayName.replace(/\s+/g, '-')
Copy link
Contributor

@unekinn unekinn Feb 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Når du først er i gang, erstatte getColorMetadataByNumber(number).displayName og så ymse .toLowerCase og .replace med kun getColorMetadataByNumber(number).name? Til tross for littegrann diff i resulterande variabelnamn som eg skriv om under streken, trur eg det skal funke fint 😄


...det blir då samme verdi som før unntatt for base-contrast-subtle og base-contrast-default, som har displayname Contrast Subtle og Contrast Default (og dermed ikkje hadde base- prefix etter string-manipulering) 🤔

Det er litt pussig, eg har ikkje sett nøye nok på koden til å skjønne om det er eit poeng, men det virker rart. css-variabelen i våre genererte css-filer heiter jo også base-contrast-subtle og -default, så der er temabyggeren ute av sync. Men dersom vi berre fikser dette alle stadene getColorMetadataByNumber(number) blir brukt så vil det vel sikkert funke?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Helt enig med deg :) Var ikke helt klar over akkurat denne kodesnutten selv før idag. Har tenkt å se på en fiks for dette i egen PR da vi har som forventet bugs rundt det idag. https://designsystemet.slack.com/archives/C05U1MNKYCX/p1740059663332569

Tipper vi har nok flere bugs i temabygger relatert til farge da det er bruk indexer flere plasser som id for farger, noe som hverken matcher farge nummeret eller nå som vi endret på skalaen.

Har lenge planlagt at vi skulle gjøre noe med akkurat dette (#2920). Dette er steg i den retningen da jeg har sakt begynt å fikse opp i det nå som vi har hatt litt disponibel tid og faktisk fått bugs på det (som jeg har lenge fryktet kom til å skje).

@mimarz mimarz merged commit b8e8a3d into next Feb 20, 2025
14 checks passed
@mimarz mimarz deleted the better-color-type-safety branch February 20, 2025 19:29
mimarz added a commit that referenced this pull request Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants