+ 0,
+ })}
+ >
+ 0,
+ })}
+ padding={padding}
+ margin={margin}
+ >
+
+ North
+
+
+ West
+
+
+ Center
+
+
+ East
+
+
+ South
+
+
+
+
+
+ Padding
+ setPadding(Number.parseInt(e.target.value))}
+ direction="horizontal"
+ value={`${padding}`}
+ >
+
+
+
+
+
+
+
+ Margin
+ setMargin(Number.parseInt(e.target.value))}
+ direction="horizontal"
+ value={`${margin}`}
+ >
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/site/src/examples/border-layout/index.ts b/site/src/examples/border-layout/index.ts
index 8193af77894..707b2fd4306 100644
--- a/site/src/examples/border-layout/index.ts
+++ b/site/src/examples/border-layout/index.ts
@@ -4,4 +4,5 @@ export * from "./GapBetweenRegions";
export * from "./HideRegions";
export * from "./BorderItemPosition";
export * from "./BorderItemAlignment";
+export * from "./Spacing";
export * from "./StickyPositioning";
diff --git a/site/src/examples/grid-layout/Spacing.module.css b/site/src/examples/grid-layout/Spacing.module.css
new file mode 100644
index 00000000000..f8573747692
--- /dev/null
+++ b/site/src/examples/grid-layout/Spacing.module.css
@@ -0,0 +1,24 @@
+.spacingExampleGap:not(:last-child):after {
+ content: "";
+ background: var(--salt-category-5-subtle-background);
+ height: 100%;
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: calc(var(--gridLayout-rowGap) - 2px);
+ transform: translate(calc(var(--gridLayout-rowGap) + 1px), -1px);
+ border: dotted 1px var(--salt-category-3-subtle-borderColor);
+}
+.item {
+ position: relative;
+ border: solid 1px var(--salt-container-primary-borderColor);
+ background: var(--salt-container-primary-background);
+}
+.spacingExamplePadding {
+ border: dotted 1px var(--salt-category-3-subtle-borderColor);
+ background: var(--salt-category-3-subtle-background);
+}
+.spacingExampleMargin {
+ border: dotted 1px var(--salt-category-4-subtle-borderColor);
+ background: var(--salt-category-4-subtle-background);
+}
diff --git a/site/src/examples/grid-layout/Spacing.tsx b/site/src/examples/grid-layout/Spacing.tsx
new file mode 100644
index 00000000000..e7130c606fb
--- /dev/null
+++ b/site/src/examples/grid-layout/Spacing.tsx
@@ -0,0 +1,94 @@
+import {
+ FormField,
+ FormFieldLabel,
+ GridItem,
+ GridLayout,
+ RadioButton,
+ RadioButtonGroup,
+ StackLayout,
+} from "@salt-ds/core";
+import { clsx } from "clsx";
+import { type ReactElement, useState } from "react";
+import styles from "./Spacing.module.css";
+
+export const Spacing = (): ReactElement => {
+ const [gap, setGap] = useState