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

feat(custom-properties): Warn in development on invalid theme keys #2080

Merged
merged 1 commit into from Jan 29, 2022

Conversation

lachlanjc
Copy link
Member

@lachlanjc lachlanjc commented Jan 16, 2022

Closes #1728 by warning (in non-production environments) when invalid CSS custom properties are being generated, including a test.

I wrote a simplified validator based on the spec that checks for the right characters but does not check for "cannot start with a digit, two hyphens, or a hyphen followed by a digit", but figured this should cover the bulk of cases.

πŸ“¦ Published PR as canary version: 0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0

✨ Test out this PR locally via:

npm install @theme-ui/color-modes@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/color@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/components@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/core@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/css@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/custom-properties@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/editor@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install gatsby-plugin-theme-ui@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install gatsby-theme-style-guide@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install gatsby-theme-ui-layout@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/match-media@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/mdx@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/parse-props@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-base@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-bootstrap@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-bulma@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-dark@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-deep@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-funk@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-future@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-polaris@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-roboto@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-sketchy@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-swiss@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-system@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-tailwind@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/preset-tosh@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/presets@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/prism@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/sidenav@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/style-guide@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/tailwind@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/theme-provider@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install theme-ui@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
npm install @theme-ui/typography@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
# or 
yarn add @theme-ui/color-modes@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/color@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/components@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/core@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/css@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/custom-properties@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/editor@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add gatsby-plugin-theme-ui@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add gatsby-theme-style-guide@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add gatsby-theme-ui-layout@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/match-media@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/mdx@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/parse-props@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-base@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-bootstrap@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-bulma@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-dark@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-deep@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-funk@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-future@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-polaris@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-roboto@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-sketchy@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-swiss@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-system@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-tailwind@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/preset-tosh@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/presets@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/prism@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/sidenav@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/style-guide@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/tailwind@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/theme-provider@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add theme-ui@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0
yarn add @theme-ui/typography@0.14.0--canary.2080.bedf631c6c5280d5dc457bd4e2c38896a99bde38.0

Version

Published prerelease version: v0.14.0-develop.7

Changelog

πŸŽ‰ This release contains work from a new contributor! πŸŽ‰

Thank you, Brage (@braaar), for all your work!

πŸš€ Enhancement

  • feat(examples/next): Add new deps, fully use TSX, rebuild #2068 (@lachlanjc)
  • @theme-ui/custom-properties
    • feat(custom-properties): Warn in development on invalid theme keys #2080 (@lachlanjc)
  • @theme-ui/color-modes
    • feat(color-modes): Warn when theme color keys have leading/trailing whitespace #2099 (@lachlanjc)
  • theme-ui

πŸ› Bug Fix

πŸ‘¨β€πŸ’» Minor changes

  • docs(examples/next): fix case insensitive import (@hasparus)

🏠 Internal

Authors: 3

@lachlanjc lachlanjc added the enhancement New feature or request label Jan 16, 2022
@vercel
Copy link

vercel bot commented Jan 16, 2022

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

πŸ” Inspect: https://vercel.com/systemui/theme-ui/BziEqPzVS1tTB9XJeoAiv8fq5dwV
βœ… Preview: https://theme-ui-git-lachlanjc-1728-systemui.vercel.app

@hasparus
Copy link
Member

Nice one!

@hasparus
Copy link
Member

πŸš€ PR was released in v0.14.0 πŸš€

@hasparus hasparus added released This issue/pull request has been released. and removed prerelease This change is available in a prerelease. labels Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request released This issue/pull request has been released.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

custom-properties package exports properties with invalid (for CSS custom prop) names
2 participants