@aziontech/theme 4.3.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/v4/globals.css +52 -4
- package/dist/v4/globals.scss +52 -4
- package/package.json +1 -1
- package/src/tokens/semantic/layouts.data.d.ts +8 -2
- package/src/tokens/semantic/layouts.data.d.ts.map +1 -1
- package/src/tokens/semantic/layouts.data.js +85 -24
- package/src/tokens/semantic/texts.data.d.ts +28 -0
- package/src/tokens/semantic/texts.data.d.ts.map +1 -1
- package/src/tokens/semantic/texts.data.js +40 -0
package/dist/v4/globals.css
CHANGED
|
@@ -704,8 +704,9 @@
|
|
|
704
704
|
--layout-measure-focused: var(--container-4xl);
|
|
705
705
|
--layout-measure-form: var(--container-4xl);
|
|
706
706
|
--layout-measure-form-create: var(--container-5xl);
|
|
707
|
-
--layout-measure-
|
|
708
|
-
--
|
|
707
|
+
--layout-measure-content: var(--container-3xl);
|
|
708
|
+
--layout-measure-site: var(--container-6xl);
|
|
709
|
+
--layout-measure-site-header: var(--container-7xl);
|
|
709
710
|
--layout-measure-control: var(--container-3xs);
|
|
710
711
|
--text-big-number-md-font-size: 1.25rem;
|
|
711
712
|
--text-big-number-md-line-height: 1.25;
|
|
@@ -719,6 +720,20 @@
|
|
|
719
720
|
--text-big-number-lg-line-height: 1.25;
|
|
720
721
|
--text-big-number-lg-font-weight: 400;
|
|
721
722
|
--text-big-number-lg-font-family: Proto Mono;
|
|
723
|
+
--text-amount-lg-text-wrap-style: balance;
|
|
724
|
+
--text-amount-lg-font-size: 1.875rem;
|
|
725
|
+
--text-amount-lg-line-height: 1.25;
|
|
726
|
+
--text-amount-lg-font-weight: 400;
|
|
727
|
+
--text-amount-lg-letter-spacing: -0.08em;
|
|
728
|
+
--text-amount-md-text-wrap-style: balance;
|
|
729
|
+
--text-amount-md-font-size: 1rem;
|
|
730
|
+
--text-amount-md-line-height: 1.25;
|
|
731
|
+
--text-amount-md-font-weight: 400;
|
|
732
|
+
--text-amount-md-letter-spacing: -0.08em;
|
|
733
|
+
--text-amount-sm-font-size: 1rem;
|
|
734
|
+
--text-amount-sm-line-height: 1.5;
|
|
735
|
+
--text-amount-sm-font-weight: 400;
|
|
736
|
+
--text-amount-sm-letter-spacing: -0.08em;
|
|
722
737
|
--text-heading-2xl-font-size: 1.875rem;
|
|
723
738
|
--text-heading-2xl-line-height: 1.25;
|
|
724
739
|
--text-heading-2xl-font-weight: 400;
|
|
@@ -835,6 +850,8 @@
|
|
|
835
850
|
--text-big-number-md-font-size: 1.5rem;
|
|
836
851
|
--text-big-number-sm-font-size: 1.25rem;
|
|
837
852
|
--text-big-number-lg-font-size: 2.25rem;
|
|
853
|
+
--text-amount-lg-font-size: 3rem;
|
|
854
|
+
--text-amount-md-font-size: 1.25rem;
|
|
838
855
|
--text-heading-2xl-font-size: 3rem;
|
|
839
856
|
--text-heading-xl-font-size: 1.875rem;
|
|
840
857
|
--text-heading-md-font-size: 1.25rem;
|
|
@@ -845,6 +862,8 @@
|
|
|
845
862
|
@media (min-width: 768px) {
|
|
846
863
|
--text-big-number-md-font-size: 2.25rem;
|
|
847
864
|
--text-big-number-lg-font-size: 3.5rem;
|
|
865
|
+
--text-amount-lg-font-size: 3.5rem;
|
|
866
|
+
--text-amount-md-font-size: 1.5rem;
|
|
848
867
|
--text-heading-2xl-font-size: 3.5rem;
|
|
849
868
|
--text-heading-xl-font-size: 2.25rem;
|
|
850
869
|
--text-heading-lg-font-size: 1.875rem;
|
|
@@ -1148,6 +1167,29 @@
|
|
|
1148
1167
|
font-family: var(--text-big-number-lg-font-family);
|
|
1149
1168
|
}
|
|
1150
1169
|
|
|
1170
|
+
@utility text-amount-lg {
|
|
1171
|
+
text-wrap-style: var(--text-amount-lg-text-wrap-style);
|
|
1172
|
+
font-size: var(--text-amount-lg-font-size);
|
|
1173
|
+
line-height: var(--text-amount-lg-line-height);
|
|
1174
|
+
font-weight: var(--text-amount-lg-font-weight);
|
|
1175
|
+
letter-spacing: var(--text-amount-lg-letter-spacing);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
@utility text-amount-md {
|
|
1179
|
+
text-wrap-style: var(--text-amount-md-text-wrap-style);
|
|
1180
|
+
font-size: var(--text-amount-md-font-size);
|
|
1181
|
+
line-height: var(--text-amount-md-line-height);
|
|
1182
|
+
font-weight: var(--text-amount-md-font-weight);
|
|
1183
|
+
letter-spacing: var(--text-amount-md-letter-spacing);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
@utility text-amount-sm {
|
|
1187
|
+
font-size: var(--text-amount-sm-font-size);
|
|
1188
|
+
line-height: var(--text-amount-sm-line-height);
|
|
1189
|
+
font-weight: var(--text-amount-sm-font-weight);
|
|
1190
|
+
letter-spacing: var(--text-amount-sm-letter-spacing);
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1151
1193
|
@utility text-heading-2xl {
|
|
1152
1194
|
font-size: var(--text-heading-2xl-font-size);
|
|
1153
1195
|
line-height: var(--text-heading-2xl-line-height);
|
|
@@ -1396,14 +1438,20 @@
|
|
|
1396
1438
|
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1397
1439
|
}
|
|
1398
1440
|
|
|
1399
|
-
@utility layout-column-
|
|
1400
|
-
--layout-column-measure: var(--layout-measure-
|
|
1441
|
+
@utility layout-column-content {
|
|
1442
|
+
--layout-column-measure: var(--layout-measure-content);
|
|
1401
1443
|
margin-inline: auto;
|
|
1402
1444
|
width: 100%;
|
|
1403
1445
|
max-width: var(--layout-column-measure);
|
|
1404
1446
|
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1405
1447
|
}
|
|
1406
1448
|
|
|
1449
|
+
@utility layout-column-site {
|
|
1450
|
+
margin-inline: auto;
|
|
1451
|
+
width: 100%;
|
|
1452
|
+
max-width: min(var(--layout-measure-site), 100% - 2 * var(--layout-boundary-inline));
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1407
1455
|
@utility layout-field-control {
|
|
1408
1456
|
&:not(#\#) { display: flex; flex: 1 1 0%; justify-content: flex-end; max-width: var(--layout-measure-control); }
|
|
1409
1457
|
}
|
package/dist/v4/globals.scss
CHANGED
|
@@ -704,8 +704,9 @@
|
|
|
704
704
|
--layout-measure-focused: var(--container-4xl);
|
|
705
705
|
--layout-measure-form: var(--container-4xl);
|
|
706
706
|
--layout-measure-form-create: var(--container-5xl);
|
|
707
|
-
--layout-measure-
|
|
708
|
-
--
|
|
707
|
+
--layout-measure-content: var(--container-3xl);
|
|
708
|
+
--layout-measure-site: var(--container-6xl);
|
|
709
|
+
--layout-measure-site-header: var(--container-7xl);
|
|
709
710
|
--layout-measure-control: var(--container-3xs);
|
|
710
711
|
--text-big-number-md-font-size: 1.25rem;
|
|
711
712
|
--text-big-number-md-line-height: 1.25;
|
|
@@ -719,6 +720,20 @@
|
|
|
719
720
|
--text-big-number-lg-line-height: 1.25;
|
|
720
721
|
--text-big-number-lg-font-weight: 400;
|
|
721
722
|
--text-big-number-lg-font-family: Proto Mono;
|
|
723
|
+
--text-amount-lg-text-wrap-style: balance;
|
|
724
|
+
--text-amount-lg-font-size: 1.875rem;
|
|
725
|
+
--text-amount-lg-line-height: 1.25;
|
|
726
|
+
--text-amount-lg-font-weight: 400;
|
|
727
|
+
--text-amount-lg-letter-spacing: -0.08em;
|
|
728
|
+
--text-amount-md-text-wrap-style: balance;
|
|
729
|
+
--text-amount-md-font-size: 1rem;
|
|
730
|
+
--text-amount-md-line-height: 1.25;
|
|
731
|
+
--text-amount-md-font-weight: 400;
|
|
732
|
+
--text-amount-md-letter-spacing: -0.08em;
|
|
733
|
+
--text-amount-sm-font-size: 1rem;
|
|
734
|
+
--text-amount-sm-line-height: 1.5;
|
|
735
|
+
--text-amount-sm-font-weight: 400;
|
|
736
|
+
--text-amount-sm-letter-spacing: -0.08em;
|
|
722
737
|
--text-heading-2xl-font-size: 1.875rem;
|
|
723
738
|
--text-heading-2xl-line-height: 1.25;
|
|
724
739
|
--text-heading-2xl-font-weight: 400;
|
|
@@ -835,6 +850,8 @@
|
|
|
835
850
|
--text-big-number-md-font-size: 1.5rem;
|
|
836
851
|
--text-big-number-sm-font-size: 1.25rem;
|
|
837
852
|
--text-big-number-lg-font-size: 2.25rem;
|
|
853
|
+
--text-amount-lg-font-size: 3rem;
|
|
854
|
+
--text-amount-md-font-size: 1.25rem;
|
|
838
855
|
--text-heading-2xl-font-size: 3rem;
|
|
839
856
|
--text-heading-xl-font-size: 1.875rem;
|
|
840
857
|
--text-heading-md-font-size: 1.25rem;
|
|
@@ -845,6 +862,8 @@
|
|
|
845
862
|
@media (min-width: 768px) {
|
|
846
863
|
--text-big-number-md-font-size: 2.25rem;
|
|
847
864
|
--text-big-number-lg-font-size: 3.5rem;
|
|
865
|
+
--text-amount-lg-font-size: 3.5rem;
|
|
866
|
+
--text-amount-md-font-size: 1.5rem;
|
|
848
867
|
--text-heading-2xl-font-size: 3.5rem;
|
|
849
868
|
--text-heading-xl-font-size: 2.25rem;
|
|
850
869
|
--text-heading-lg-font-size: 1.875rem;
|
|
@@ -1148,6 +1167,29 @@
|
|
|
1148
1167
|
font-family: var(--text-big-number-lg-font-family);
|
|
1149
1168
|
}
|
|
1150
1169
|
|
|
1170
|
+
@utility text-amount-lg {
|
|
1171
|
+
text-wrap-style: var(--text-amount-lg-text-wrap-style);
|
|
1172
|
+
font-size: var(--text-amount-lg-font-size);
|
|
1173
|
+
line-height: var(--text-amount-lg-line-height);
|
|
1174
|
+
font-weight: var(--text-amount-lg-font-weight);
|
|
1175
|
+
letter-spacing: var(--text-amount-lg-letter-spacing);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
@utility text-amount-md {
|
|
1179
|
+
text-wrap-style: var(--text-amount-md-text-wrap-style);
|
|
1180
|
+
font-size: var(--text-amount-md-font-size);
|
|
1181
|
+
line-height: var(--text-amount-md-line-height);
|
|
1182
|
+
font-weight: var(--text-amount-md-font-weight);
|
|
1183
|
+
letter-spacing: var(--text-amount-md-letter-spacing);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
@utility text-amount-sm {
|
|
1187
|
+
font-size: var(--text-amount-sm-font-size);
|
|
1188
|
+
line-height: var(--text-amount-sm-line-height);
|
|
1189
|
+
font-weight: var(--text-amount-sm-font-weight);
|
|
1190
|
+
letter-spacing: var(--text-amount-sm-letter-spacing);
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1151
1193
|
@utility text-heading-2xl {
|
|
1152
1194
|
font-size: var(--text-heading-2xl-font-size);
|
|
1153
1195
|
line-height: var(--text-heading-2xl-line-height);
|
|
@@ -1396,14 +1438,20 @@
|
|
|
1396
1438
|
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1397
1439
|
}
|
|
1398
1440
|
|
|
1399
|
-
@utility layout-column-
|
|
1400
|
-
--layout-column-measure: var(--layout-measure-
|
|
1441
|
+
@utility layout-column-content {
|
|
1442
|
+
--layout-column-measure: var(--layout-measure-content);
|
|
1401
1443
|
margin-inline: auto;
|
|
1402
1444
|
width: 100%;
|
|
1403
1445
|
max-width: var(--layout-column-measure);
|
|
1404
1446
|
&:is(.layout-boundary, .layout-boundary-inline) { max-width: calc(var(--layout-column-measure) + 2 * var(--layout-boundary-inline)); }
|
|
1405
1447
|
}
|
|
1406
1448
|
|
|
1449
|
+
@utility layout-column-site {
|
|
1450
|
+
margin-inline: auto;
|
|
1451
|
+
width: 100%;
|
|
1452
|
+
max-width: min(var(--layout-measure-site), 100% - 2 * var(--layout-boundary-inline));
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1407
1455
|
@utility layout-field-control {
|
|
1408
1456
|
&:not(#\#) { display: flex; flex: 1 1 0%; justify-content: flex-end; max-width: var(--layout-measure-control); }
|
|
1409
1457
|
}
|
package/package.json
CHANGED
|
@@ -23,11 +23,17 @@ export const layoutsData: {
|
|
|
23
23
|
'layout-measure-focused': string;
|
|
24
24
|
'layout-measure-form': string;
|
|
25
25
|
'layout-measure-form-create': string;
|
|
26
|
-
'layout-measure-
|
|
27
|
-
'
|
|
26
|
+
'layout-measure-content': string;
|
|
27
|
+
'layout-measure-site': string;
|
|
28
|
+
'layout-measure-site-header': string;
|
|
28
29
|
'layout-measure-control': string;
|
|
29
30
|
};
|
|
30
31
|
export const layoutsUtilities: {
|
|
32
|
+
'layout-column-site': {
|
|
33
|
+
'margin-inline': string;
|
|
34
|
+
width: string;
|
|
35
|
+
'max-width': string;
|
|
36
|
+
};
|
|
31
37
|
'layout-field-control': {
|
|
32
38
|
'&:not(#\\#)': {
|
|
33
39
|
display: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layouts.data.d.ts","sourceRoot":"","sources":["layouts.data.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH
|
|
1
|
+
{"version":3,"file":"layouts.data.d.ts","sourceRoot":"","sources":["layouts.data.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;EAuIC;AAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IC"}
|
|
@@ -75,38 +75,61 @@ export const layoutsData = {
|
|
|
75
75
|
* the far left of a 1600px row from the input it names, and the eye has to travel
|
|
76
76
|
* the whole measure to pair them.
|
|
77
77
|
*
|
|
78
|
-
*
|
|
79
|
-
* read line by line, and past ~90 characters the eye loses the start of the next
|
|
80
|
-
* on the return sweep — a limit that has nothing to do with how wide the payload
|
|
81
|
-
* which is why it is far tighter than every other measure here and why it does not
|
|
82
|
-
* move when a rail collapses and frees up room. A
|
|
83
|
-
* rails; this caps what is between them.
|
|
78
|
+
* CONTENT pages are the one column capped by TYPOGRAPHY rather than by layout. Prose
|
|
79
|
+
* is read line by line, and past ~90 characters the eye loses the start of the next
|
|
80
|
+
* line on the return sweep — a limit that has nothing to do with how wide the payload
|
|
81
|
+
* is, which is why it is far tighter than every other measure here and why it does not
|
|
82
|
+
* move when a rail collapses and frees up room. A documentation page is already
|
|
83
|
+
* flanked by two rails; this caps what is between them.
|
|
84
|
+
*
|
|
85
|
+
* IT IS NAMED FOR THE PAYLOAD, NOT FOR THE SECTION. The cap is a line length, so every
|
|
86
|
+
* page whose payload is flowing copy takes it — documentation today, the blog and any
|
|
87
|
+
* other article page next — and none of them has to re-derive the same limit under a
|
|
88
|
+
* name that says "docs". By the same rule, a page inside the documentation that is NOT
|
|
89
|
+
* read line by line (its home, a directory of cards) takes a wider measure: what picks
|
|
90
|
+
* the column is the payload, never the URL.
|
|
84
91
|
*/
|
|
85
92
|
'layout-measure': 'var(--container-7xl)', // 1620px — data pages
|
|
86
93
|
'layout-measure-focused': 'var(--container-4xl)', // 1024px — home
|
|
87
94
|
'layout-measure-form': 'var(--container-4xl)', // 1024px — settings, forms
|
|
88
95
|
'layout-measure-form-create': 'var(--container-5xl)', // 1192px — create flows
|
|
89
|
-
'layout-measure-
|
|
96
|
+
'layout-measure-content': 'var(--container-3xl)', // 876px — prose columns (docs, blog)
|
|
90
97
|
|
|
91
98
|
/*
|
|
92
|
-
* MEASURE (site) — the marketing site's
|
|
93
|
-
*
|
|
99
|
+
* MEASURE (site) — the marketing site's columns, and the only measures in this file
|
|
100
|
+
* that are not a console page's. There are TWO, because the page and the bar above it
|
|
101
|
+
* do not answer the same question.
|
|
102
|
+
*
|
|
103
|
+
* --layout-measure-site IS THE PAGE'S FRAME. The azion.com pages are a single
|
|
104
|
+
* vertical frame: the hero's inner column, every section below it, the docs home and
|
|
105
|
+
* the footer all sit on the SAME centred column, and the border-x that runs down the
|
|
106
|
+
* page is only continuous because they agree to the pixel. That is why this is a token
|
|
107
|
+
* rather than a width re-typed per band — the frame is one decision, and one place is
|
|
108
|
+
* where it has to live.
|
|
109
|
+
*
|
|
110
|
+
* --layout-measure-site-header IS THE BAR'S, AND IT IS DELIBERATELY ONE RUNG WIDER.
|
|
111
|
+
* A bar is chrome, not content: it carries the brand at one end of the window and the
|
|
112
|
+
* account actions at the other, held apart by a navigation region in the middle, so it
|
|
113
|
+
* wants the room a reading frame deliberately refuses. Held to the page's measure that
|
|
114
|
+
* middle region ran out of room on a laptop long before the page did. The bar is the
|
|
115
|
+
* ONE band allowed outside the frame, and it says so in a token of its own — which is
|
|
116
|
+
* also what keeps the exception reviewable in both directions: nobody widens the bar by
|
|
117
|
+
* retuning the page, and nobody widens the page by retuning the bar.
|
|
94
118
|
*
|
|
95
|
-
* The
|
|
96
|
-
*
|
|
97
|
-
* and
|
|
98
|
-
*
|
|
99
|
-
* band — the frame is one decision, and one place is where it has to live.
|
|
119
|
+
* The two part company only above the caps, and by a fixed step. Measured against the
|
|
120
|
+
* page frame: one shared inset up to 1280, 2px apart at 1440 (the frame has just
|
|
121
|
+
* capped), 82 at 1600, and a flat 92 from 1668 up, where the bar caps too — half the
|
|
122
|
+
* 232px between the two measures, less the boundary the bar keeps.
|
|
100
123
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* have to line up. Retuning either must not move the other.
|
|
124
|
+
* Both are rungs of the shared container ladder (primitives/shape/container.js), not
|
|
125
|
+
* numbers chosen for a page. The page snaps to the scale, the scale does not bend to
|
|
126
|
+
* the page, which is the same rule --layout-measure follows. They are their own tokens
|
|
127
|
+
* rather than references to a console measure because the questions differ: a console
|
|
128
|
+
* measure caps a PAYLOAD (a table, a form), while these are the widths of a FRAME and
|
|
129
|
+
* of the chrome above it. Retuning any of the three must not move the others.
|
|
108
130
|
*/
|
|
109
|
-
'
|
|
131
|
+
'layout-measure-site': 'var(--container-6xl)', // 1388px — the marketing site column
|
|
132
|
+
'layout-measure-site-header': 'var(--container-7xl)', // 1620px — the site bar, one rung wider
|
|
110
133
|
/*
|
|
111
134
|
* MEASURE (control) — the widest the *right side* of an item-group field row may
|
|
112
135
|
* get. An ItemGroup row is two columns: the content names the field (title +
|
|
@@ -137,7 +160,7 @@ const COLUMN_MEASURE = {
|
|
|
137
160
|
'layout-column-focused': 'var(--layout-measure-focused)',
|
|
138
161
|
'layout-column-form': 'var(--layout-measure-form)',
|
|
139
162
|
'layout-form-create': 'var(--layout-measure-form-create)',
|
|
140
|
-
'layout-column-
|
|
163
|
+
'layout-column-content': 'var(--layout-measure-content)'
|
|
141
164
|
}
|
|
142
165
|
|
|
143
166
|
/**
|
|
@@ -244,11 +267,49 @@ export const layoutsUtilities = {
|
|
|
244
267
|
// 1192px column a 256px control side left every input pinned to the far right,
|
|
245
268
|
// a head-turn away from the label naming it; 472px pulls the control back
|
|
246
269
|
// toward its label and gives the radio blocks room to read.
|
|
247
|
-
name === 'layout-form-create'
|
|
270
|
+
name === 'layout-form-create'
|
|
271
|
+
? { '--layout-measure-control': 'var(--container-md)' }
|
|
272
|
+
: undefined
|
|
248
273
|
)
|
|
249
274
|
])
|
|
250
275
|
),
|
|
251
276
|
|
|
277
|
+
/*
|
|
278
|
+
* THE SITE FRAME — the marketing page's column, and the one column in this file whose
|
|
279
|
+
* cap is a FRAME width rather than a content width.
|
|
280
|
+
*
|
|
281
|
+
* IT IS INSET FROM THE WINDOW AT EVERY WIDTH, and that is the whole reason it exists as
|
|
282
|
+
* a utility. On a wide screen the inset is free: --layout-measure-site is narrower than
|
|
283
|
+
* the window, `margin-inline: auto` centres the column, and its rules read as the page's
|
|
284
|
+
* vertical frame with canvas either side. Below the cap that stops doing anything — the
|
|
285
|
+
* column becomes the window — and the two rules land ON the window edges, where a
|
|
286
|
+
* hairline is not a frame, it is a seam against the bezel. So the frame that organises
|
|
287
|
+
* the whole desktop layout simply ceased to exist on a phone, and the headline above it
|
|
288
|
+
* (which pads by the boundary) opened a boundary inside a rule drawn at x=0.
|
|
289
|
+
*
|
|
290
|
+
* ONE `min()` COVERS THE WHOLE RANGE, WITH NO BREAKPOINT. The cap is whichever binds
|
|
291
|
+
* first: the measure, or the window less a boundary a side. While the measure is the
|
|
292
|
+
* smaller the column is capped and centred and the boundary term is inert; once the
|
|
293
|
+
* window is narrower than the measure — precisely where the cap has stopped working —
|
|
294
|
+
* the boundary term takes over and IS the inset. The two mechanisms hand off to each
|
|
295
|
+
* other, so a phone gets the same framed column a desktop gets, one boundary in from
|
|
296
|
+
* each edge.
|
|
297
|
+
*
|
|
298
|
+
* NO PADDING, DELIBERATELY. The inset belongs to the frame, not to the copy: the bands
|
|
299
|
+
* inside are grids whose `gap-px` rules have to reach the frame's own verticals, and a
|
|
300
|
+
* padding here would pull them off it. A band that wants its content inset too adds
|
|
301
|
+
* `layout-boundary-inline` on top (that is what SectionContainer's `padded` does).
|
|
302
|
+
*
|
|
303
|
+
* This is the shape /site/pricing worked out band by band and carried in a wrapper div;
|
|
304
|
+
* as a utility it is one element, pixel-identical at every width, and every other page
|
|
305
|
+
* and the footer get it by naming the column instead of re-deriving it.
|
|
306
|
+
*/
|
|
307
|
+
'layout-column-site': {
|
|
308
|
+
'margin-inline': 'auto',
|
|
309
|
+
width: '100%',
|
|
310
|
+
'max-width': 'min(var(--layout-measure-site), 100% - 2 * var(--layout-boundary-inline))'
|
|
311
|
+
},
|
|
312
|
+
|
|
252
313
|
/*
|
|
253
314
|
* The control side of an item-group field row: the same geometry every settings row
|
|
254
315
|
* hand-repeated, with the cap coming from --layout-measure-control so a band retunes
|
|
@@ -28,6 +28,34 @@ export const textsData: {
|
|
|
28
28
|
fontWeight: number;
|
|
29
29
|
fontFamily: string;
|
|
30
30
|
};
|
|
31
|
+
'text-amount-lg': {
|
|
32
|
+
textWrapStyle: string;
|
|
33
|
+
fontSize: {
|
|
34
|
+
_: string;
|
|
35
|
+
sm: string;
|
|
36
|
+
md: string;
|
|
37
|
+
};
|
|
38
|
+
lineHeight: number;
|
|
39
|
+
fontWeight: number;
|
|
40
|
+
letterSpacing: string;
|
|
41
|
+
};
|
|
42
|
+
'text-amount-md': {
|
|
43
|
+
textWrapStyle: string;
|
|
44
|
+
fontSize: {
|
|
45
|
+
_: string;
|
|
46
|
+
sm: string;
|
|
47
|
+
md: string;
|
|
48
|
+
};
|
|
49
|
+
lineHeight: number;
|
|
50
|
+
fontWeight: number;
|
|
51
|
+
letterSpacing: string;
|
|
52
|
+
};
|
|
53
|
+
'text-amount-sm': {
|
|
54
|
+
fontSize: string;
|
|
55
|
+
lineHeight: number;
|
|
56
|
+
fontWeight: number;
|
|
57
|
+
letterSpacing: string;
|
|
58
|
+
};
|
|
31
59
|
'text-heading-2xl': {
|
|
32
60
|
fontSize: {
|
|
33
61
|
_: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texts.data.d.ts","sourceRoot":"","sources":["texts.data.js"],"names":[],"mappings":"AAwBA
|
|
1
|
+
{"version":3,"file":"texts.data.d.ts","sourceRoot":"","sources":["texts.data.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqNE,8FAA8F;;;;;;;;;;;;;;;;;;EAkB/F"}
|
|
@@ -41,6 +41,46 @@ export const textsData = {
|
|
|
41
41
|
fontWeight: fontWeight.normal,
|
|
42
42
|
fontFamily: fontFamily.display
|
|
43
43
|
},
|
|
44
|
+
// ── The amount ladder (Currency) ─────────────────────────────────────────
|
|
45
|
+
//
|
|
46
|
+
// The three sizes `Currency` typesets a monetary amount at, one per reading
|
|
47
|
+
// distance: `sm` inside a table row or list cell, `md` an amount stated as a fact on
|
|
48
|
+
// a card, `lg` the headline figure of a pricing card. Each MIRRORS the heading/label
|
|
49
|
+
// token it used to borrow (`text-label-lg`, `text-heading-md`, `text-heading-2xl`) —
|
|
50
|
+
// same size ramp, same leading, same weight — and adds the one thing that made
|
|
51
|
+
// borrowing wrong: the amount's negative tracking.
|
|
52
|
+
//
|
|
53
|
+
// `-0.08em` is PROPORTIONAL, and deliberately so, which is why it lives here and not
|
|
54
|
+
// in `tracking.js`. That scale is absolute (`rem`) on purpose so a step resolves to a
|
|
55
|
+
// fixed measure at any font size (see its docstring), and it therefore holds no
|
|
56
|
+
// `-0.08em`-equivalent step. A figure is the one place where the tracking has to
|
|
57
|
+
// scale WITH the glyphs: the Figma amount specifies −1.28px @16px, −1.92px @24px and
|
|
58
|
+
// −4.48px @56px, which is one ratio, not three steps. Expressing it as `em` is what
|
|
59
|
+
// makes a single declaration correct at all three sizes and at every breakpoint of
|
|
60
|
+
// `lg`'s responsive ramp.
|
|
61
|
+
//
|
|
62
|
+
// Dedicated tokens rather than tracking added to the borrowed ones: `text-heading-2xl`
|
|
63
|
+
// sets every hero headline in the system, and a hero is prose, not a numeral.
|
|
64
|
+
'text-amount-lg': {
|
|
65
|
+
textWrapStyle: 'balance',
|
|
66
|
+
fontSize: { _: fontSize['3xl'], sm: fontSize['5xl'], md: fontSize['6xl'] },
|
|
67
|
+
lineHeight: leading.tight,
|
|
68
|
+
fontWeight: fontWeight.normal,
|
|
69
|
+
letterSpacing: '-0.08em'
|
|
70
|
+
},
|
|
71
|
+
'text-amount-md': {
|
|
72
|
+
textWrapStyle: 'balance',
|
|
73
|
+
fontSize: { _: fontSize.base, sm: fontSize.xl, md: fontSize['2xl'] },
|
|
74
|
+
lineHeight: leading.tight,
|
|
75
|
+
fontWeight: fontWeight.normal,
|
|
76
|
+
letterSpacing: '-0.08em'
|
|
77
|
+
},
|
|
78
|
+
'text-amount-sm': {
|
|
79
|
+
fontSize: fontSize.base,
|
|
80
|
+
lineHeight: leading.normal,
|
|
81
|
+
fontWeight: fontWeight.normal,
|
|
82
|
+
letterSpacing: '-0.08em'
|
|
83
|
+
},
|
|
44
84
|
'text-heading-2xl': {
|
|
45
85
|
fontSize: { _: fontSize['3xl'], sm: fontSize['5xl'], md: fontSize['6xl'] },
|
|
46
86
|
lineHeight: leading.tight,
|