diff --git a/apps/builder/app/builder/features/breakpoints/breakpoints-selector.tsx b/apps/builder/app/builder/features/breakpoints/breakpoints-selector.tsx
index 14d72c2794..be6d465f09 100644
--- a/apps/builder/app/builder/features/breakpoints/breakpoints-selector.tsx
+++ b/apps/builder/app/builder/features/breakpoints/breakpoints-selector.tsx
@@ -1,4 +1,6 @@
import {
+ EnhancedTooltip,
+ Text,
Toolbar,
ToolbarToggleGroup,
ToolbarToggleItem,
@@ -8,9 +10,42 @@ import { CascadeIndicator } from "./cascade-indicator";
import { BpStarOffIcon, BpStarOnIcon } from "@webstudio-is/icons";
import { useSetInitialCanvasWidth } from ".";
import { selectedBreakpointIdStore } from "~/shared/nano-states";
-import { groupBreakpoints } from "~/shared/breakpoints";
+import { groupBreakpoints, isBaseBreakpoint } from "~/shared/breakpoints";
import type { Breakpoint, Breakpoints } from "@webstudio-is/project-build";
+const getTooltipContent = (breakpoint: Breakpoint) => {
+ if (isBaseBreakpoint(breakpoint)) {
+ return (
+ <>
+ Base
+
+ Styles on Base apply to all viewport sizes unless overwritten by another
+ breakpoint. Start your styling here.
+ >
+ );
+ }
+ if (breakpoint.maxWidth !== undefined) {
+ return (
+ <>
+ {breakpoint.maxWidth}px and down
+
+ Styles on this breakpoint apply to viewport widths {breakpoint.maxWidth}
+ px and down, unless overwritten by a smaller breakpoint.
+ >
+ );
+ }
+ if (breakpoint.minWidth !== undefined) {
+ return (
+ <>
+ {breakpoint.minWidth}px and up
+
+ Styles on this breakpoint apply to viewport widths {breakpoint.minWidth}
+ px and up, unless overwritten by a larger breakpoint.
+ >
+ );
+ }
+};
+
type BreakpointsSelector = {
breakpoints: Breakpoints;
selectedBreakpoint: Breakpoint;
@@ -38,26 +73,31 @@ export const BreakpointsSelector = ({
{groupBreakpoints(Array.from(breakpoints.values())).map(
(breakpoint) => {
return (
- {
- if (node) {
- refs.current.set(breakpoint.id, node);
- return;
- }
- refs.current.delete(breakpoint.id);
- }}
- value={breakpoint.id}
+
- {breakpoint.minWidth ??
- breakpoint.maxWidth ??
- (breakpoint.id === selectedBreakpoint.id ? (
-
- ) : (
-
- ))}
-
+ {
+ if (node) {
+ refs.current.set(breakpoint.id, node);
+ return;
+ }
+ refs.current.delete(breakpoint.id);
+ }}
+ value={breakpoint.id}
+ >
+ {breakpoint.minWidth ??
+ breakpoint.maxWidth ??
+ (breakpoint.id === selectedBreakpoint.id ? (
+
+ ) : (
+
+ ))}
+
+
);
}
)}