community-group
style-dictionary
community-group | style-dictionary | |
---|---|---|
8 | 5 | |
1,455 | 3,650 | |
1.2% | 1.4% | |
4.3 | 6.3 | |
20 days ago | 3 days ago | |
HTML | JavaScript | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
community-group
-
Design Systems: From Atomic Design to a Global Solution
The initiative is open for contributions from individuals and is not owned by a specific company or organization. It is sponsored by various entities and supported by the community, including organizations like Open UI, W3C, and the Design Tokens Community Group.
-
Six new variables features launching today
Looking ahead, we aim to support native design token interoperability, aligning with the W3C community groupโs ongoing standardization efforts. One of the major pieces weโre still working on is how modes and themes work within their spec. While we could launch our version now, we prefer to wait for a unified industry consensus to avoid fragmenting the space with conflicting standards.
-
The Future of CSS: Easy Light-Dark Mode Color Switching with Light-Dark()
I've done a LOT of dark mode work, to the point where I'd consider myself an expert here[1].
I'm not a fan of this. This solves one tiny aspect of the larger problem in a non-scalable way that will inevitably lead to bloat and inflexibility. It's a really a naive approach that hasn't taken into account design at scale, nor the future of where design is heading.
Typically when doing theming, you have two axes - a visual mode axis (i.e. light/dark/high contrast/colorblind modes/etc) and a theme axis (i.e. docs/sheets/slides, each with a different brand color). While this does solve an aspect of the visual mode axis, as soon as you add either a new theme or a visual accessibility mode, you'll be forced to refactor. I see that as codesmell.
I also don't think this helps support a better future of theming support. If we think about the future of theming, what we see today is a convergence of design patterns. Nearly everyone is doing theming at scale in at least roughly the same way (a semantic token layer that points to different primitive colors depending on the theme), and the differences between implementations continues to diminish over time. The convergence of patterns is a good thing - it means more code can be shared.
If you wanted to actually solve theming, what you should work for is not a constrained helper function like light-dark(), but instead a shared token schema. Today nearly every company has their own token schema and different ways of naming things in the semantic token layer. If we had a shard language here, not only would it be trivial to add light/dark theming (just redefine a few variables that are already provided for you), code could be shared between sites and inherit the theming/branding.
[1] Most recently leading Figma's dark mode stream, and currently leading their variables feature work to enable others to easily do light/dark/etc. I've consulted with 50+ enterprise tier companies on their theming. Also contributed to the W3C design token proposal for theme/mode support: https://github.com/design-tokens/community-group/issues/210. Previously worked on Jira's dark mode + a few other projects.
-
My variables wishlist
I had to do some reading on the actual W3 spec here, and I think I see what you're saying about compatibility with the rest of the ecosystem. Assigning a component or instance as a variable would probably be something like using an entire function as a token, which isn't one of the supported types. (Neither is Boolean though, which Figma does support, but maybe behind the scenes that's just a numeric 0 or 1?)
-
Does anyone else find variables overwhelming?
One item to call out though is the W3C draft support. Unfortunately we need to wait until they add a way to handle theming for tokens before we can implement it. We're working with them closely on this, and as soon as it's in the spec, we'll support it.
-
Figma Variables!! So excited to finally launch this. AMA about our future of token support.
Discussion on github for it is here: https://github.com/design-tokens/community-group/issues/210
-
Figma to create design tokens to be utilized by the FE
Hello! I don't have experience creating the tokens in Figma specifically, but there are some general best practices (erhm, let's call them suggestions, a design token standard is on its way!) you'll want to keep in mind.
-
How do you keep your styling consistent?
This looks really good /u/MediocreAdeptness38! I think you have discovered design tokens here. There's a ton of exploration being done in this space, and many people are arriving at conclusions similar to yours. There isn't a standard (yet!), but there are a ton of best practices that go into architecting your design tokens.
style-dictionary
-
Syncing Figma Variables and StyleDictionary with GitHub Actions
function getStyleDictionaryConfig(brand) { return { source: [`tokens/brands/${brand}/*.json`, 'tokens/globals/**/*.json'], platforms: { /** * Available platforms: https://amzn.github.io/style-dictionary/#/config?id=platform */ web: { transformGroup: 'web', buildPath: `build/web/${brand}/`, files: [ { destination: 'tokens.scss', format: 'scss/variables', }, ], }, }, } } /** * Build the tokens for each brand. * {@see - Example based on https://github.com/amzn/style-dictionary/tree/main/examples/advanced/multi-brand-multi-platform} */ ['microsoft', 'xbox'].map(function (brand) { ['web'].map(function (platform) { const StyleDictionary = StyleDictionaryPackage.extend( getStyleDictionaryConfig(brand), ) StyleDictionary.buildPlatform(platform) }) })
-
Specify VS Style Dictionary
Check out the official examples projects provided by Style Dictionary. In our case, we just used the basic example ๐
-
Any wait to generate a full JSON of tailwind?
Did you know about Style Dictionary https://github.com/amzn/style-dictionary Its a tool that creates Design Tokens for different platforms using a JSON file. Sounds similar to what you are trying to achieve.
- This is my favorite Github issue ๐ฆ
-
Introduction to Variabless
Cool. Can you compare this to https://github.com/amzn/style-dictionary?
What are some alternatives?
Awesome-Design-Tokens - A list of resources on all things to do with Design Tokens
theo - Theo is a an abstraction for transforming and formatting Design Tokens
fluentui-blazor - Microsoft Fluent UI Blazor components library. For use with ASP.NET Core Blazor applications
bootstrap-ui-components - Bootstrap UI Components - Free Core Version of Ayro UI, A Bootstrap HTML UI Library, with Beautiful & Essential UI Components and Minimal Design System.
a11y-color-tokens - Generate accessible UI colors from your base color tokens.
uikit - ๐ Component code and tests for the Australian Government design system
Awesome-Design-Tools - The best design tools and plugins for everything ๐
coolcss - The last CSS framework I'll (hopefully) ever have to make
variabless - JS & CSS - A Match Made in Heaven ๐
theme-ui - Build consistent, themeable React apps based on constraint-based design principles
cmake-js - CMake.js - a Node.js native addon build tool