|
|
@@ -0,0 +1,34 @@
|
|
|
+type BreakpointName = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'
|
|
|
+
|
|
|
+type Breakpoint = {
|
|
|
+ name: BreakpointName
|
|
|
+ minWidth: number
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Maps window width to Bootstrap 5 breakpoint names
|
|
|
+ * Breakpoints based on Bootstrap 5 documentation:
|
|
|
+ * xs: 0-575px
|
|
|
+ * sm: 576-767px
|
|
|
+ * md: 768-991px
|
|
|
+ * lg: 992-1199px
|
|
|
+ * xl: 1200-1399px
|
|
|
+ * xxl: ≥1400px
|
|
|
+ * @param {number} width - Window width in pixels
|
|
|
+ * @returns {BreakpointName} Bootstrap breakpoint name
|
|
|
+ */
|
|
|
+export function getBootstrap5Breakpoint(
|
|
|
+ width: number
|
|
|
+): BreakpointName | undefined {
|
|
|
+ const breakpoints: Breakpoint[] = [
|
|
|
+ { name: 'xxl', minWidth: 1400 },
|
|
|
+ { name: 'xl', minWidth: 1200 },
|
|
|
+ { name: 'lg', minWidth: 992 },
|
|
|
+ { name: 'md', minWidth: 768 },
|
|
|
+ { name: 'sm', minWidth: 576 },
|
|
|
+ { name: 'xs', minWidth: 0 },
|
|
|
+ ]
|
|
|
+
|
|
|
+ const breakpoint = breakpoints.find(bp => width >= bp.minWidth)
|
|
|
+ return breakpoint?.name
|
|
|
+}
|