Open src/styles/main.css and the app in the browser side-by-side:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #0a0a1a;
color: #e0e0e0;
font-family: system-ui, -apple-system, sans-serif;
font-size: 14px;
line-height: 1.5;
}
.toolbar {
background-color: #1a1a2e;
padding: 8px;
}
.tool-btn {
background-color: #16213e;
color: #e0e0e0;
border: 1px solid #2a2a4a;
border-radius: 6px;
padding: 8px 12px;
cursor: pointer;
font-size: 13px;
}
.tool-btn:hover {
background-color: #0f3460;
border-color: #00b4d8;
}
.tool-btn:active {
transform: scale(0.97);
}
Open DevTools → select a button → see the Box Model diagram (content/padding/border/margin):
| Layer | Color in DevTools | What It Is |
|---|---|---|
| Content | Blue | The actual text/image inside |
| Padding | Green | Space between content and border |
| Border | Yellow | The visible edge |
| Margin | Orange | Space outside the border |
In DevTools Styles panel, live-edit values. Change colors, adjust padding, try different fonts.
Try these experiments:
| Experiment | What Happens |
|---|---|
| margin: -10px | Elements overlap — negative margins pull things closer |
| padding: 50% | Padding calculated as % of parent width — creates a square |
| border-radius: 50% | Turns any square element into a perfect circle! |
Style the section headers, labels, and range inputs to match the dark theme:
.settings-panel {
background-color: #1a1a2e;
padding: 16px;
}
.settings-panel h2 {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 2px;
color: #a0a0b0;
margin-bottom: 16px;
}
git switch -c design/PIXELCRAFT-003-dark-theme
git add src/styles/main.css
git commit -m "Apply dark theme and button styles (PIXELCRAFT-003)"
git push origin design/PIXELCRAFT-003-dark-theme
# PR → Review → Merge → Close ticket ✅
Declarative vs imperative programming.
CSS is declarative: you say "make this blue" and the browser figures out HOW (which pixels to change, when to repaint). JavaScript is imperative: you say "step 1, step 2, step 3."