Project Brief and Requirements
Build a small design system for a developer dashboard. The dashboard should include a responsive application shell, navigation, cards, buttons, badges, forms, and a theme switcher.
The project should demonstrate a complete Sass workflow rather than a collection of unrelated examples.
Functional requirements
- Centralize primitive and semantic design tokens.
- Organize SCSS using modules and partials.
- Implement reusable container and focus-ring mixins.
- Generate a controlled set of button and badge variants from maps.
- Support responsive layouts using mobile-first media queries.
- Use CSS custom properties for runtime light and dark themes.
- Use CSS Modules when integrating components into React.
- Compile production CSS and inspect the generated output.
- Verify keyboard focus, readable contrast, and narrow-screen behavior.
Suggested directory structure
src/scss/
abstracts/
_tokens.scss
_functions.scss
_mixins.scss
_index.scss
base/
_reset.scss
_typography.scss
components/
_buttons.scss
_cards.scss
_badges.scss
layout/
_dashboard.scss
themes/
_themes.scss
main.scss
The implementation should keep tokens, reusable abstractions, base styles, layout rules, and components separate. Avoid introducing a dependency merely to demonstrate a feature that Sass already supports.
Specifications & Requirements
- Primary technology:
Dart Sass and SCSS - Optional framework:
React with CSS Modules - Required themes:
Light and dark - Required output:
Compiled CSS and documented source
Knowledge Check
Which architecture best supports a reusable design system?