MetaMask / MetaMask/metamask-design-system
Motion tokens action plan
- Dominant language
- TypeScript
- Stars
- 37
- Forks
- 14
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 60
Description
### **Description**
Create an action plan to guide developers on effectively using motion design tokens provided by MetaMask across all platforms (extension, mobile, portfolio). This plan will outline best practices for integrating motion design tokens using various technologies like CSS variables, Tailwind class names, and CSS-in-JS, ensuring a unified approach to implementing motion design.
### **Technical Details**
- **Goals**:
- Define the best practices for implementing motion design tokens across platforms.
- Provide clear usage examples tailored to each technology stack used in the MetaMask ecosystem.
- **Motion Design Token Integration**:
1. **CSS Variables**:
- Use cases: Styling in plain CSS or pre-processed stylesheets (e.g., SASS/LESS).
- Define and apply motion tokens for transitions, easing, and duration using `var(--token-name)` syntax.
- Example: `transition: var(--motion-slide-in) ease-in var(--motion-duration-short);`
2. **Tailwind CSS Class Names**:
- Extend Tailwind’s configuration with motion tokens (e.g., `theme.extend.transitionDuration` or `theme.extend.keyframes`).
- Example: Add reusable class names such as `motion-slide-in`, `ease-in-out`, and `duration-300`.
3. **CSS-in-JS (e.g., styled-components, Emotion)**:
- Incorporate tokens directly using a token utility or theme context.
- Example:
```jsx
import styled from 'styled-components';
const MotionWrapper = styled.div`
transition: ${(props) => props.theme.motion.slideIn} ${(props) => props.theme.motion.easeIn};
animation-duration: ${(props) => props.theme.motion.duration.short};
`;
```
- Highlight which approach is best suited for each platform (e.g., Tailwind for web apps, CSS-in-JS for React components, etc.).
- **Documentation and Tools**:
- Provide examples of token usage in CSS, Tailwind, and CSS-in-JS.
- Ensure motion tokens are included in design system documentation with platform-specific guidelines.
- Create a starter guide for developers, including common patterns and pitfalls.
- **Developer Onboarding**:
- Conduct workshops or demos to familiarize developers with motion token integration.
- Provide a sandbox environment or interactive documentation for hands-on experience.
### **Acceptance Criteria**
- Documentation on how to use motion tokens across:
- CSS variables
- Tailwind CSS
- CSS-in-JS (e.g., styled-components, Emotion)
- Integration examples for each platform: extension, mobile, portfolio.
- Updates to the design system to include token usage guidelines.
- Developer feedback loop to refine and improve the approach.
- A demo or prototype showcasing correct motion token implementation across platforms.
### **References**
- [[MetaMask Motion Design Principles](https://metamask-consensys.notion.site/Motion-13ff86d67d6880bfafd0ec499bb87489?pvs=73)](https://metamask-consensys.notion.site/Motion-13ff86d67d6880bfafd0ec499bb87489?pvs=73).
- Design system documentation and existing developer tooling.
- Relevant discussions in Slack, GitHub, or team meetings.
Contributor guide
Research direction
Start by reading the referenced MetaMask Motion Design Principles and reviewing the design system documentation and existing developer tooling. Define usage guidance and examples for CSS variables, Tailwind CSS, and CSS-in-JS across extension, mobile, and portfolio; done means the listed documentation, platform examples, token guidelines, feedback loop, and demo or prototype exist.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- css, react, tailwindcss
- Domain
- design, documentation, frontend
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100