UNIT 27
Everything you’ve built was for someone else. This one is yours. Build a dark/light mode developer portfolio with a localStorage theme toggle, spring hover animations, and your own projects.
Everything you have built in this curriculum — the language sites, the restaurant, the pitch — was for someone else. This unit, you build for yourself. A professional portfolio is the most important site a developer can publish, and now you have the skills to build one that is actually good.
The default character is Jordan Bearcub, a Sisseton-Wahpeton Oyate citizen and CS student. Their identity, story, and projects are the starting scaffold. You replace that content with your own — your name, your projects, your community, your goals.
The new technical concept is localStorage: a way to save data in the user’s browser so it persists after the page closes. You use it to remember whether the visitor prefers dark or light mode — so the next time they open your site, it loads in the mode they chose. Combined with a CSS variable theme system, the whole site switches with one class toggle on <body>.
:root defaults and a .light-mode class override on bodylocalStorage.setItem and localStorage.getItem so choices persist across page loads and sessionsclassList.toggle and classList.contains to switch between themes and keep the toggle button label in synccubic-bezier spring-easing curves to hover animations that overshoot and settle, creating a physical, polished feelA full professional portfolio site with four core sections: a full-screen hero, an about section with skill tags, a projects gallery, and a contact form.
The site defaults to dark mode. A toggle button in the corner switches it to light mode — and the preference is saved in the browser so it persists the next time the page is opened. Project cards lift with a spring hover animation. Skill tags bounce when touched. Every color in every section uses CSS variables, so both themes work with zero duplicate styling.
You have built more than a dozen sites to get here. This one has your name on it. Make it yours.
Your learning path
Portfolio design draws from UX research and professional development resources. The representation framing in this unit — Native professionals in tech — draws from Indigenous STEM education scholarship and Tribal college research. Students are encouraged to connect with AISES (American Indian Science and Engineering Society) and their Tribal Nation’s education programs as next steps.
Portfolio Design & Professional Development
Native Professionals in Technology & STEM
Web Development: CSS & JavaScript Patterns
This unit aligns with computer science, language arts, social studies, and Indigenous education standards across MN, ND, and SD. Click a panel to expand.
:root defaults and a .light-mode class override on body, with no duplicate element-level color declarationslocalStorage.getItem and localStorage.setItem so the chosen theme persists across browser sessionsclassList.toggle and classList.contains to switch themes and keep the toggle button label synchronized with the current statecubic-bezier(0.34, 1.56, 0.64, 1) spring-easing to hover animations that overshoot and settle for a physical, polished interaction feel--bg, --surface, and --accent make the theme system self-explanatory and maintainable. Stage 4 teaches this practice explicitly as a professional habit.)