While the defaults should work fine to get started it's also possible to configure almost any behaviour.
By default small, medium and large breakpoints are available. The number of breakpoints, their names as well as the starting point can all be changed. The number defines the minimal viewport width where this breakpoint will apply. By default the initial breakpoint is inferred from the viewport size, but can also be configured.
When configuring breakpoints with TypeScript use the following to override CustomBreakpoints types for proper type checking.
Regular pixel based values will not be adapted based on breakpoints, but linearly scaled between a minimum and a maximum breakpoint. In the middle between these two points the value will not scale at all. By specifying the factor the strength of the scaling can be defined.
For even more fine grained control it's possible to override the default scaling function. This method called value will receive the number of the property. This would be 10 in the case of { padding: 10 }. Additionally, the method will receive the current breakpoint. As shown below with this it's easily possible to calculate the value based on the breakpoint instead of scaling linearly.