(
-
- Loading waterfall...}>
-
-
-
+ <>
+ {/* Safari performance of the waterfall chokes if using overflow-y: scroll, so we need the page to scroll instead.
+ Update navbar layout to accommodate this. */}
+
+
+ {/* TODO DEVPROD-11708: Use dynamic column limit in skeleton */}
+ }
+ >
+
+
+
+ >
);
+const PageContainer = styled.div`
+ padding: ${size.m} ${size.l};
+`;
+
export default Waterfall;
diff --git a/apps/spruce/src/pages/waterfall/styles.ts b/apps/spruce/src/pages/waterfall/styles.ts
new file mode 100644
index 000000000..e6d3b69d8
--- /dev/null
+++ b/apps/spruce/src/pages/waterfall/styles.ts
@@ -0,0 +1,39 @@
+import { css } from "@emotion/react";
+import styled from "@emotion/styled";
+import { wordBreakCss } from "components/styles";
+import { size } from "constants/tokens";
+
+const BUILD_VARIANT_WIDTH = 200;
+const INACTIVE_WIDTH = 80;
+
+// TODO DEVPROD-11708: Update with dynamic column count
+export const VERSION_LIMIT = 5;
+
+export const columnBasis = css`
+ flex-basis: calc(100% / ${VERSION_LIMIT});
+`;
+
+export const gridGroupCss = css`
+ display: flex;
+ gap: ${size.s};
+ flex-grow: 1;
+ padding-left: ${size.xs};
+ padding-right: ${size.xs};
+`;
+
+export const BuildVariantTitle = styled.div`
+ ${wordBreakCss}
+ flex-grow: 0;
+ flex-shrink: 0;
+ width: ${BUILD_VARIANT_WIDTH}px;
+`;
+
+export const Row = styled.div`
+ display: flex;
+ gap: ${size.xs};
+ margin-bottom: ${size.s};
+`;
+
+export const InactiveVersion = styled.div`
+ width: ${INACTIVE_WIDTH}px;
+`;