Skip to content

Latest commit

 

History

History
executable file
·
59 lines (53 loc) · 2.64 KB

File metadata and controls

executable file
·
59 lines (53 loc) · 2.64 KB

CSS Debugging tips and tricks

This time we will focus on debugging CSS styles when working with React. We will hunt down a few example bugs with browser Dev Tools Inspector and identify good ways how to fix them. Vertical alignment, flexbox, animations, responsive designs, CSS-in-JS, overwriting default library styles and other useful tips await.

Setup

Before workshop:

git clone https://github.com/msd-code-academy/react-workshop.git
cd react-workshop/03-css-debug/
npm i

At the workshop start:

git pull  # because we might do last-minute fixes
npm start

Content

cd src/examples/
  • 00 Intro
    • Using browser inspector (right click > Inspect)
      • No step-by-step debug
      • So good class names are more important
      • Or at least React component names, including HOC
      • Temporary background / outline also useful
    • Know thy framework / use consistent code style to simplify search in code
      • Choose a library that does not use !important rules
    • CSS vs CSS-in-JS => hot reload vs cleaner code over time
  • 01 Vertical alignment
  • 02 Z-index
    • Stacking context
    • static content is for elements that keep to themselves
    • if they need to overlap in arbitrary ways, best to go absolute
    • or grid (order in HTML according to Z order, manual row+column for position)
  • 03 Selector specificity
    • CSS Cascade and Specificity
    • Simplified model - do a sum of "values" for each part of the selector:
      • 1 for div or ::before
      • 10 for .class or :hover
      • 100 for #id
      • 999 for inline
      • 1000 for !important in the rule
  • 04 Responsive design
    • Always test, open multiple windows or connect devices
    • flex-wrap, grid-template-columns, <Col md={12} />, min-width, ... not just @media
  • 05 Transitions
    • transition property applied from the "after" / "new" selector
    • height: auto cannot be calculated, use min/max-height or fixed heights for transitions (or JS library)
  • Q&A