iwantcoding.com
🔥 Daily 👥 Rooms 🏆 Top Log in Sign up

Certificate

A short "certificate of completion" page for the SCSS track: what you should now be able to do, what to bookmark, and what to ship as a portfolio piece. Useful as the wrap-up screen for the lessons.

SCSS skills + portfolio checklist

EXAMPLE
# ===== Skills checklist =====
# After working through the SCSS track you should be able to:
# [x] Compile SCSS to CSS via Dart Sass (sass --watch, Vite, esbuild)
# [x] Use @use / @forward correctly — and avoid @import
# [x] Build a design-token system with maps + a token() function
# [x] Author themable components via CSS variables + SCSS interpolation
# [x] Write mixins with arguments AND @content blocks
# [x] Use breakpoints from a map with a respond-to mixin
# [x] Run sass-migrator to migrate legacy stylesheets to modules
# [x] Lint with Stylelint to enforce conventions
# [x] Convert tokens + components into reusable npm packages
# [x] Debug a 'why is this rule winning' specificity question

# ===== Bookmark =====
# - https://sass-lang.com/documentation/   the canonical docs
# - https://github.com/sass/sass-migrator   automated module migration
# - https://stylelint.io                    linting + a recess-order plugin
# - https://www.refactoringui.com/          design systems with token thinking
# - https://every-layout.dev/                composable layout primitives

# ===== Portfolio piece (1-2 hours) =====
# Build and publish a small design system that demonstrates:
# 1) A _tokens.scss with color, space, radius, shadow tokens (as maps)
# 2) A token() function with a clear error on misuse
# 3) A respond-to($bp) mixin from a breakpoints map
# 4) Three small components: Button, Card, Field
#    - Each themable via CSS variables
#    - Hover / focus states with motion-safe variants
#    - Dark mode via a [data-theme='dark'] selector
# 5) A demo page in /docs that imports the components and toggles theme
# 6) A README that shows how to consume the system in another project
# 7) Published to npm (private or public, your choice) OR a public Github repo

# ===== What 'good' looks like =====
# - No literal hex codes in component SCSS; everything via token()
# - One source of truth for breakpoints
# - Stylelint clean (extends recommended-scss + recess-order)
# - Compiles with both Vite (sass package) and standalone sass CLI
# - Bundle size budget: < 30KB gzipped for the entire component CSS
# - Sass-migrator clean (no @import warnings in CI)

# ===== Common mistakes to avoid =====
# - One giant variables.scss with 200 $ entries -> use maps + token()
# - Hard-coded breakpoints scattered across files -> respond-to() mixin
# - Mixing units (px, em, rem) without a convention -> rem for typography + space
# - Editor scope leak via @use 'tokens' as *; -> stay namespaced
# - Forgetting cross-browser tests on focus rings + reduced motion

# ===== Next steps =====
# - Container queries with @container in modern Sass
# - PostCSS pipelines (autoprefixer, cssnano) for production
# - CSS modules + Sass for component-scoped styles in frameworks
# - Design system docs via Storybook with the @storybook/preset-scss preset
# - WCAG colour contrast checks in CI (axe-core, pa11y)

# ===== Self-test =====
# If you can:
# 1) Read someone else's SCSS and predict the compiled CSS
# 2) Migrate a 1000-line legacy stylesheet from @import to modules in an afternoon
# 3) Justify each design decision in a token system to a designer
# you have completed the track. Ship the portfolio piece and call it done.

# ===== Track wrap-up =====
# Modern SCSS is a thin layer on top of CSS that pays for itself the moment
# your stylesheets become more than one file. The valuable bits are:
# - Modules (@use / @forward) for scope + clarity
# - Tokens as data for a maintainable design system
# - Mixins for shared layout / responsive logic
# - Functions for typed transforms (em-to-rem, token lookup)
# Use these four well and you stop fighting the cascade.

Why it matters

A small published design system — tokens, a few components, themable via CSS variables — is the artifact that proves you have internalised modern SCSS. Most teams need someone who can build that in an afternoon; that artifact in your portfolio is what gets you onto the team.

Tip: Tweak the snippet with Try it Yourself », then sit the quiz at the bottom of the page.

Example

Example
// /certificate/sass
Try it Yourself »

Discussion

Loading…