screen-breakpoint.ts 886 B

12345678910111213141516171819202122232425262728293031323334
  1. type BreakpointName = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'
  2. type Breakpoint = {
  3. name: BreakpointName
  4. minWidth: number
  5. }
  6. /**
  7. * Maps window width to Bootstrap 5 breakpoint names
  8. * Breakpoints based on Bootstrap 5 documentation:
  9. * xs: 0-575px
  10. * sm: 576-767px
  11. * md: 768-991px
  12. * lg: 992-1199px
  13. * xl: 1200-1399px
  14. * xxl: ≥1400px
  15. * @param {number} width - Window width in pixels
  16. * @returns {BreakpointName} Bootstrap breakpoint name
  17. */
  18. export function getBootstrapBreakpoint(
  19. width: number
  20. ): BreakpointName | undefined {
  21. const breakpoints: Breakpoint[] = [
  22. { name: 'xxl', minWidth: 1400 },
  23. { name: 'xl', minWidth: 1200 },
  24. { name: 'lg', minWidth: 992 },
  25. { name: 'md', minWidth: 768 },
  26. { name: 'sm', minWidth: 576 },
  27. { name: 'xs', minWidth: 0 },
  28. ]
  29. const breakpoint = breakpoints.find(bp => width >= bp.minWidth)
  30. return breakpoint?.name
  31. }