summaryrefslogtreecommitdiff
path: root/scss/values/spacing/_spacing.scss
diff options
context:
space:
mode:
authorJoe Carstairs <118172583+jcarstairs-scottlogic@users.noreply.github.com>2024-01-19 07:32:30 +0000
committerGitHub <noreply@github.com>2024-01-19 07:32:30 +0000
commit0b2fbe3f5b9e2fcf0da2b320af504d5cca759045 (patch)
tree6616775cbd5090eca7656eefa45dc2767a602d2f /scss/values/spacing/_spacing.scss
parentda96287803ea26f4cc35173f9f34b71a1d6adfa5 (diff)
Layout and typography improvements (#63)
* Adds soft hyphens to homepage * auto-hyphenates! * Tighter line-height in logo * Fixes spacing and typography below xs breakpoint * Fixes xs-sm spacing and typography * Fixes border widths * Link hover uses wavy underline instead of fat underline * Fixes committee img layout on <xs * Nice separators between committee members * Better styling for committee member heading * Consistent start-end block padding for sections * Better breadcrumb styling * Neatens alignment in footer * Renames scss/variables -> scss/custom-properties * Pulls out colours SCSS variables * Merges margins and padding values * Moves variables/colours -> values/colours * Starts migrating spacing values to SCSS * Pulls out typography logic to SCSS variables/functions * Removes unneeded --er custom property * Calculates grid-total-width-absolute in SCSS * Forwards constants with @forward * Removes TODOs and unnecessary assignment to --width-prose
Diffstat (limited to 'scss/values/spacing/_spacing.scss')
-rw-r--r--scss/values/spacing/_spacing.scss32
1 files changed, 32 insertions, 0 deletions
diff --git a/scss/values/spacing/_spacing.scss b/scss/values/spacing/_spacing.scss
new file mode 100644
index 0000000..4fd94e8
--- /dev/null
+++ b/scss/values/spacing/_spacing.scss
@@ -0,0 +1,32 @@
+@use 'sass:list';
+@use 'sass:map';
+
+@use 'constants';
+@use 'grid';
+
+/**
+ * - size: sm, md, lg
+ * - direction: inline, block
+ */
+@function spacing($direction, $size, $breakpoint: initial) {
+ $factor: map.get(
+ map.get(constants.$spacing-factor, $direction),
+ $size
+ );
+
+ @if list.index([xxl xl lg md sm], ($breakpoint)) {
+ @return grid.er-to-absolute($factor, $breakpoint);
+ }
+ @else if $breakpoint == xs {
+ @return clamp(
+ spacing($direction, $size, initial),
+ grid.er-to-absolute($factor, xs),
+ spacing($direction, $size, sm)
+ );
+ }
+ @else if $breakpoint == initial {
+ @return calc($factor * 0.0625rem);
+ }
+ @error "Invalid breakpoint: #{$breakpoint}";
+}
+