Skip to content

Commit c6a9b93

Browse files
committed
Feat: Refactor sizing/spacing
1 parent adb6f87 commit c6a9b93

File tree

3 files changed

+98
-23
lines changed

3 files changed

+98
-23
lines changed

src/css/tokens/computed/sizing.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
--huge: var(--size-2xl);
5757
--massive: var(--size-3xl);
5858

59-
/* Short form (rem) */
59+
/* Aliases for brevity (rem) */
6060
--3xs: var(--size-3xs);
6161
--2xs: var(--size-2xs);
6262
--xs: var(--size-xs);

src/css/tokens/computed/spacing.css

Lines changed: 84 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,22 @@
33
*******************************/
44

55
/*
6-
Three semantic scales for negative space:
6+
Semantic scales for negative space:
77
88
SPACING (rem) - layout rhythm, between components
99
GAP (em) - between elements within components
1010
PADDING (em) - edge to content within components
11+
MARGIN (rem) - document flow (aliases spacing)
1112
1213
Same progression (0.125 → 4), different units:
1314
- rem = fixed to root (layout consistency)
1415
- em = scales with component (proportional sizing)
16+
- round(value, 1px) used for subpixel values (3xs, 2xs, s)
17+
18+
Numeric grid for manual tweaking:
19+
20+
SPACE (em) - 2px base unit, --space-1 through --space-40
21+
More precision than Tailwind's 4px grid.
1522
*/
1623

1724
:root {
@@ -25,10 +32,10 @@
2532
Use for: section breaks, space between components, page layout.
2633
*/
2734

28-
--spacing-3xs: 0.125rem;
29-
--spacing-2xs: 0.25rem;
35+
--spacing-3xs: round(0.125rem, 1px);
36+
--spacing-2xs: round(0.25rem, 1px);
3037
--spacing-xs: 0.5rem;
31-
--spacing-s: 0.75rem;
38+
--spacing-s: round(0.75rem, 1px);
3239
--spacing-m: 1rem;
3340
--spacing-l: 1.5rem;
3441
--spacing-xl: 2rem;
@@ -61,10 +68,10 @@
6168
Use for: space between elements within a component (icon+label, button groups).
6269
*/
6370

64-
--gap-3xs: 0.125em;
65-
--gap-2xs: 0.25em;
71+
--gap-3xs: round(0.125em, 1px);
72+
--gap-2xs: round(0.25em, 1px);
6673
--gap-xs: 0.5em;
67-
--gap-s: 0.75em;
74+
--gap-s: round(0.75em, 1px);
6875
--gap-m: 1em;
6976
--gap-l: 1.5em;
7077
--gap-xl: 2em;
@@ -84,6 +91,24 @@
8491
--gap-huge: var(--gap-2xl);
8592
--gap-massive: var(--gap-3xl);
8693

94+
/* Numeric scale (1em increments) */
95+
--gap-1: 1em;
96+
--gap-2: 2em;
97+
--gap-3: 3em;
98+
--gap-4: 4em;
99+
--gap-5: 5em;
100+
--gap-6: 6em;
101+
--gap-7: 7em;
102+
--gap-8: 8em;
103+
--gap-9: 9em;
104+
--gap-10: 10em;
105+
--gap-11: 11em;
106+
--gap-12: 12em;
107+
--gap-13: 13em;
108+
--gap-14: 14em;
109+
--gap-15: 15em;
110+
--gap-16: 16em;
111+
87112
/* -------------------
88113
Padding
89114
-------------------- */
@@ -93,10 +118,10 @@
93118
Use for: internal spacing from edge/border to content.
94119
*/
95120

96-
--padding-3xs: 0.125em;
97-
--padding-2xs: 0.25em;
121+
--padding-3xs: round(0.125em, 1px);
122+
--padding-2xs: round(0.25em, 1px);
98123
--padding-xs: 0.5em;
99-
--padding-s: 0.75em;
124+
--padding-s: round(0.75em, 1px);
100125
--padding-m: 1em;
101126
--padding-l: 1.5em;
102127
--padding-xl: 2em;
@@ -120,6 +145,10 @@
120145
--horizontally-padded: 0 var(--padding);
121146
--vertically-padded: var(--padding) 0;
122147

148+
/* Asymmetric padding (shape emphasis) */
149+
--padding-wide: 0.5em 1em;
150+
--padding-tall: 1em 0.5em;
151+
123152
/* -------------------
124153
Margin
125154
-------------------- */
@@ -157,4 +186,49 @@
157186
--horizontally-spaced: 0 var(--margin);
158187
--centered: var(--margin) auto;
159188

189+
/* -------------------
190+
Numeric Grid
191+
-------------------- */
192+
193+
/*
194+
2px base unit for fine-grained manual tweaking.
195+
More precision than Tailwind's 4px grid.
196+
Use for: pixel-perfect adjustments, design fine-tuning.
197+
*/
198+
199+
--space-unit: var(--relative-2px);
200+
201+
--space-1: var(--space-unit);
202+
--space-2: calc(var(--space-unit) * 2);
203+
--space-3: calc(var(--space-unit) * 3);
204+
--space-4: calc(var(--space-unit) * 4);
205+
--space-5: calc(var(--space-unit) * 5);
206+
--space-6: calc(var(--space-unit) * 6);
207+
--space-7: calc(var(--space-unit) * 7);
208+
--space-8: calc(var(--space-unit) * 8);
209+
--space-9: calc(var(--space-unit) * 9);
210+
--space-10: calc(var(--space-unit) * 10);
211+
--space-11: calc(var(--space-unit) * 11);
212+
--space-12: calc(var(--space-unit) * 12);
213+
--space-13: calc(var(--space-unit) * 13);
214+
--space-14: calc(var(--space-unit) * 14);
215+
--space-15: calc(var(--space-unit) * 15);
216+
--space-16: calc(var(--space-unit) * 16);
217+
--space-17: calc(var(--space-unit) * 17);
218+
--space-18: calc(var(--space-unit) * 18);
219+
--space-19: calc(var(--space-unit) * 19);
220+
--space-20: calc(var(--space-unit) * 20);
221+
--space-21: calc(var(--space-unit) * 21);
222+
--space-22: calc(var(--space-unit) * 22);
223+
--space-23: calc(var(--space-unit) * 23);
224+
--space-24: calc(var(--space-unit) * 24);
225+
--space-25: calc(var(--space-unit) * 25);
226+
--space-26: calc(var(--space-unit) * 26);
227+
--space-27: calc(var(--space-unit) * 27);
228+
--space-28: calc(var(--space-unit) * 28);
229+
--space-29: calc(var(--space-unit) * 29);
230+
--space-30: calc(var(--space-unit) * 30);
231+
--space-31: calc(var(--space-unit) * 31);
232+
--space-32: calc(var(--space-unit) * 32);
233+
160234
}

src/css/tokens/global/sizing.css

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,23 @@
77
These primitives are used to calculate all other size values.
88
99
To scale up for marketing sites: --base-size: 16
10+
All values scale proportionally from the 14px design baseline.
1011
*/
1112

1213
:root {
1314

14-
/* Base values (unitless pixel equivalents) */
15-
--base-3xs: 10;
16-
--base-2xs: 11;
17-
--base-xs: 12;
18-
--base-s: 13;
19-
--base-m: 14;
20-
--base-l: 16;
21-
--base-xl: 18;
22-
--base-2xl: 20;
23-
--base-3xl: 24;
24-
2515
/* Default base size - change this to scale the entire system */
26-
--base-size: var(--base-m);
16+
--base-size: 14;
17+
18+
/* Base values (unitless, scaled from 14px baseline ratios) */
19+
--base-3xs: round(calc((10 / 14) * var(--base-size)));
20+
--base-2xs: round(calc((11 / 14) * var(--base-size)));
21+
--base-xs: round(calc((12 / 14) * var(--base-size)));
22+
--base-s: round(calc((13 / 14) * var(--base-size)));
23+
--base-m: var(--base-size);
24+
--base-l: round(calc((16 / 14) * var(--base-size)));
25+
--base-xl: round(calc((18 / 14) * var(--base-size)));
26+
--base-2xl: round(calc((20 / 14) * var(--base-size)));
27+
--base-3xl: round(calc((24 / 14) * var(--base-size)));
2728

2829
}

0 commit comments

Comments
 (0)