ionbase-ui 0.27.0 → 0.29.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/components/AvatarGradient.d.ts +9 -6
- package/dist/components/AvatarGradient.d.ts.map +1 -1
- package/dist/components/AvatarGradient.js +1 -1
- package/dist/components/AvatarGradient.js.map +1 -1
- package/dist/components/ScrollProgress.d.ts.map +1 -1
- package/dist/components/ScrollProgress.js +2 -2
- package/dist/components/ScrollProgress.js.map +1 -1
- package/dist/figma-descriptions.json +30 -30
- package/dist/figma-map.json +5 -7
- package/dist/meta/AvatarGradient.json +35 -72
- package/dist/meta/Button.json +4 -0
- package/dist/meta/ScrollProgress.json +13 -4
- package/dist/meta/components.json +53 -77
- package/dist/meta/contrast.json +532 -576
- package/dist/meta/index.json +3 -4
- package/dist/meta/patterns/index.json +1 -1
- package/dist/styles/avatar-gradient.css +87 -95
- package/dist/styles/button.css +47 -18
- package/dist/styles/scroll-progress.css +81 -24
- package/dist/styles/tokens/base.css +26 -26
- package/dist/styles/tokens/theme-dark.css +6 -6
- package/dist/tokens/index.d.ts +10 -10
- package/dist/tokens/index.js +10 -10
- package/llms.txt +1 -1
- package/package.json +1 -1
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
{
|
|
44
44
|
"dont": "deriving `progress` from a scroll listener without throttling",
|
|
45
45
|
"why": "this re-renders the rail on every scroll frame"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"dont": "expecting every section to be visible at once",
|
|
49
|
+
"why": "the panel caps at 60vh and scrolls — a document-length index would otherwise grow off both edges of the viewport, taking the rows nearest the active one with it"
|
|
46
50
|
}
|
|
47
51
|
],
|
|
48
52
|
"stylesheet": "src/styles/scroll-progress.css",
|
|
@@ -57,18 +61,23 @@
|
|
|
57
61
|
"--font-weight-regular",
|
|
58
62
|
"--ion-duration-base",
|
|
59
63
|
"--ion-ease-out",
|
|
64
|
+
"--ion-shadow-shadow-md",
|
|
65
|
+
"--radius-full",
|
|
60
66
|
"--radius-md",
|
|
61
67
|
"--radius-sm",
|
|
62
|
-
"--spacing-
|
|
63
|
-
"--spacing-
|
|
64
|
-
"--spacing-
|
|
68
|
+
"--spacing-24",
|
|
69
|
+
"--spacing-4",
|
|
70
|
+
"--spacing-6",
|
|
65
71
|
"--spacing-8",
|
|
66
72
|
"--surface-default",
|
|
67
73
|
"--surface-muted",
|
|
74
|
+
"--text-default",
|
|
68
75
|
"--text-secondary",
|
|
69
76
|
"--text-tertiary",
|
|
70
77
|
"--type-body-sm",
|
|
71
|
-
"--type-body-sm-line-height"
|
|
78
|
+
"--type-body-sm-line-height",
|
|
79
|
+
"--type-caption",
|
|
80
|
+
"--type-caption-line-height"
|
|
72
81
|
],
|
|
73
82
|
"props": {
|
|
74
83
|
"progress": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "ionbase-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"generated": "by scripts/build-meta.mjs — do not edit; intent lives in meta/*.json",
|
|
5
5
|
"hooks": [
|
|
6
6
|
"useToast"
|
|
@@ -1190,10 +1190,10 @@
|
|
|
1190
1190
|
"name": "AvatarGradient",
|
|
1191
1191
|
"source": "src/components/AvatarGradient.tsx",
|
|
1192
1192
|
"propsType": "AvatarGradientProps",
|
|
1193
|
-
"description": "AvatarGradient is Avatar's initials-only sibling: a
|
|
1193
|
+
"description": "AvatarGradient is Avatar's initials-only sibling: a tinted, bevelled disc for\npeople who have no photo.\n\nIT IS A SEPARATE COMPONENT BECAUSE FIGMA DRAWS A SEPARATE COMPONENT, AND THE\nAXES ARE THE ARGUMENT\n\nIt has `Color`, which Avatar does not. It has no `Shape`, because a gradient\nthis directional only reads on a circle. It has no `Type`, because there is\nno image and no icon to fall back to — the initials are the whole content.\nFolding it into Avatar would mean a `color` prop that does nothing on three\nof Avatar's four states and a `shape` prop that this one has to reject.\n\nThere is no `icon` and no `src` fallback here on purpose. If you have a\nphoto, or nothing at all to put in the circle, that is `Avatar`.",
|
|
1194
1194
|
"import": "import { AvatarGradient } from 'ionbase-ui';",
|
|
1195
1195
|
"status": "stable",
|
|
1196
|
-
"summary": "Avatar's initials-only sibling: a
|
|
1196
|
+
"summary": "Avatar's initials-only sibling: a tinted, bevelled disc in one of seven colours, for people with no photo.",
|
|
1197
1197
|
"useWhen": [
|
|
1198
1198
|
"someone has no profile image and the fallback should still look deliberate rather than empty",
|
|
1199
1199
|
"a list of people reads better when each one is a different colour — the colour is recognisable long before the letters are legible"
|
|
@@ -1234,83 +1234,36 @@
|
|
|
1234
1234
|
"use": "the default. The one to reach for when nothing about the person suggests a colour"
|
|
1235
1235
|
},
|
|
1236
1236
|
"blue": {
|
|
1237
|
-
"use": "
|
|
1237
|
+
"use": "one of seven, picked to tell people apart"
|
|
1238
1238
|
},
|
|
1239
1239
|
"violet": {
|
|
1240
|
-
"use": "
|
|
1240
|
+
"use": "one of seven, picked to tell people apart"
|
|
1241
1241
|
},
|
|
1242
1242
|
"pink": {
|
|
1243
|
-
"use": "
|
|
1243
|
+
"use": "one of seven, picked to tell people apart"
|
|
1244
1244
|
},
|
|
1245
1245
|
"orange": {
|
|
1246
|
-
"use": "
|
|
1246
|
+
"use": "one of seven, picked to tell people apart"
|
|
1247
1247
|
},
|
|
1248
1248
|
"green": {
|
|
1249
|
-
"use": "as
|
|
1249
|
+
"use": "as the rest. Not a status — a green disc here does not mean online, and Avatar's `bottomIndicator` is what does"
|
|
1250
1250
|
},
|
|
1251
1251
|
"red": {
|
|
1252
|
-
"use": "as
|
|
1253
|
-
},
|
|
1254
|
-
"light": {
|
|
1255
|
-
"use": "dark text on a near-white disc, for dense surfaces where seven saturated circles would shout"
|
|
1252
|
+
"use": "as the rest. Not an error — this is identity, not state"
|
|
1256
1253
|
}
|
|
1257
1254
|
}
|
|
1258
1255
|
},
|
|
1259
1256
|
"a11y": {
|
|
1260
1257
|
"guarantees": [
|
|
1261
|
-
"`alt` falls back to `initials`, so the disc is never announced as an unlabelled image"
|
|
1258
|
+
"`alt` falls back to `initials`, so the disc is never announced as an unlabelled image",
|
|
1259
|
+
"all seven colours clear WCAG AA for the initials against the palest end of their own gradient, which is the worst case the text sits on"
|
|
1262
1260
|
],
|
|
1263
1261
|
"requires": [
|
|
1264
1262
|
"`alt` naming the person — \"Ada Lovelace\", not \"AB\". Two letters are not a name, and that is all a screen reader would otherwise get"
|
|
1265
1263
|
],
|
|
1266
1264
|
"notes": [
|
|
1267
|
-
"Colour is decoration here, never information. Nothing about which of the
|
|
1268
|
-
|
|
1269
|
-
"knownIssues": [
|
|
1270
|
-
{
|
|
1271
|
-
"pairing": "--color-base-white on --color-pink-500",
|
|
1272
|
-
"mode": "Light",
|
|
1273
|
-
"ratio": 3.53,
|
|
1274
|
-
"required": 4.5,
|
|
1275
|
-
"sc": "1.4.3",
|
|
1276
|
-
"states": [
|
|
1277
|
-
"default"
|
|
1278
|
-
],
|
|
1279
|
-
"status": "known, not yet fixed"
|
|
1280
|
-
},
|
|
1281
|
-
{
|
|
1282
|
-
"pairing": "--color-base-white on --color-orange-500",
|
|
1283
|
-
"mode": "Light",
|
|
1284
|
-
"ratio": 3.6,
|
|
1285
|
-
"required": 4.5,
|
|
1286
|
-
"sc": "1.4.3",
|
|
1287
|
-
"states": [
|
|
1288
|
-
"default"
|
|
1289
|
-
],
|
|
1290
|
-
"status": "known, not yet fixed"
|
|
1291
|
-
},
|
|
1292
|
-
{
|
|
1293
|
-
"pairing": "--color-base-white on --color-green-500",
|
|
1294
|
-
"mode": "Light",
|
|
1295
|
-
"ratio": 3.69,
|
|
1296
|
-
"required": 4.5,
|
|
1297
|
-
"sc": "1.4.3",
|
|
1298
|
-
"states": [
|
|
1299
|
-
"default"
|
|
1300
|
-
],
|
|
1301
|
-
"status": "known, not yet fixed"
|
|
1302
|
-
},
|
|
1303
|
-
{
|
|
1304
|
-
"pairing": "--color-base-white on --color-red-500",
|
|
1305
|
-
"mode": "Light",
|
|
1306
|
-
"ratio": 3.78,
|
|
1307
|
-
"required": 4.5,
|
|
1308
|
-
"sc": "1.4.3",
|
|
1309
|
-
"states": [
|
|
1310
|
-
"default"
|
|
1311
|
-
],
|
|
1312
|
-
"status": "known, not yet fixed"
|
|
1313
|
-
}
|
|
1265
|
+
"Colour is decoration here, never information. Nothing about which of the seven a person gets should be recoverable, because a screen reader cannot recover it.",
|
|
1266
|
+
"The first version of this component was a saturated disc with white initials and failed AA on four of its colours. It was fixed in Figma by inverting it — pale disc, coloured initials — rather than in code. Do not reintroduce the saturated version."
|
|
1314
1267
|
]
|
|
1315
1268
|
},
|
|
1316
1269
|
"antiPatterns": [
|
|
@@ -1331,32 +1284,43 @@
|
|
|
1331
1284
|
],
|
|
1332
1285
|
"stylesheet": "src/styles/avatar-gradient.css",
|
|
1333
1286
|
"tokens": [
|
|
1334
|
-
"--color-
|
|
1335
|
-
"--color-blue-
|
|
1287
|
+
"--color-blue-200",
|
|
1288
|
+
"--color-blue-300",
|
|
1289
|
+
"--color-blue-50",
|
|
1336
1290
|
"--color-blue-600",
|
|
1337
|
-
"--color-gray-100",
|
|
1338
1291
|
"--color-gray-200",
|
|
1339
|
-
"--color-gray-
|
|
1292
|
+
"--color-gray-300",
|
|
1293
|
+
"--color-gray-50",
|
|
1340
1294
|
"--color-gray-600",
|
|
1341
|
-
"--color-
|
|
1342
|
-
"--color-green-
|
|
1295
|
+
"--color-green-200",
|
|
1296
|
+
"--color-green-300",
|
|
1297
|
+
"--color-green-50",
|
|
1343
1298
|
"--color-green-600",
|
|
1344
|
-
"--color-orange-
|
|
1299
|
+
"--color-orange-200",
|
|
1300
|
+
"--color-orange-300",
|
|
1301
|
+
"--color-orange-50",
|
|
1345
1302
|
"--color-orange-600",
|
|
1346
|
-
"--color-pink-
|
|
1303
|
+
"--color-pink-200",
|
|
1304
|
+
"--color-pink-300",
|
|
1305
|
+
"--color-pink-50",
|
|
1347
1306
|
"--color-pink-600",
|
|
1348
|
-
"--color-purple-
|
|
1307
|
+
"--color-purple-200",
|
|
1308
|
+
"--color-purple-300",
|
|
1309
|
+
"--color-purple-50",
|
|
1349
1310
|
"--color-purple-600",
|
|
1350
|
-
"--color-red-
|
|
1311
|
+
"--color-red-200",
|
|
1312
|
+
"--color-red-300",
|
|
1313
|
+
"--color-red-50",
|
|
1351
1314
|
"--color-red-600",
|
|
1352
1315
|
"--font-family-sans",
|
|
1353
1316
|
"--font-weight-medium",
|
|
1354
1317
|
"--font-weight-regular",
|
|
1355
|
-
"--ion-avatar-gradient-
|
|
1318
|
+
"--ion-avatar-gradient-bevel",
|
|
1356
1319
|
"--ion-avatar-gradient-font-size",
|
|
1357
1320
|
"--ion-avatar-gradient-font-weight",
|
|
1358
1321
|
"--ion-avatar-gradient-from",
|
|
1359
1322
|
"--ion-avatar-gradient-line-height",
|
|
1323
|
+
"--ion-avatar-gradient-mid",
|
|
1360
1324
|
"--ion-avatar-gradient-sheen",
|
|
1361
1325
|
"--ion-avatar-gradient-sheen-mid",
|
|
1362
1326
|
"--ion-avatar-gradient-size",
|
|
@@ -1401,8 +1365,7 @@
|
|
|
1401
1365
|
"pink",
|
|
1402
1366
|
"orange",
|
|
1403
1367
|
"green",
|
|
1404
|
-
"red"
|
|
1405
|
-
"light"
|
|
1368
|
+
"red"
|
|
1406
1369
|
]
|
|
1407
1370
|
},
|
|
1408
1371
|
"initials": {
|
|
@@ -1881,6 +1844,7 @@
|
|
|
1881
1844
|
"--ion-button-pressed",
|
|
1882
1845
|
"--ion-button-raised",
|
|
1883
1846
|
"--ion-button-ring",
|
|
1847
|
+
"--ion-button-shadow",
|
|
1884
1848
|
"--ion-button-size",
|
|
1885
1849
|
"--ion-duration-base",
|
|
1886
1850
|
"--ion-duration-fast",
|
|
@@ -1896,6 +1860,9 @@
|
|
|
1896
1860
|
"--ion-shadow-raised-lifted-lg",
|
|
1897
1861
|
"--ion-shadow-raised-lifted-sm",
|
|
1898
1862
|
"--ion-shadow-raised-lifted-xs",
|
|
1863
|
+
"--ion-shadow-shadow-md",
|
|
1864
|
+
"--ion-shadow-shadow-sm",
|
|
1865
|
+
"--ion-shadow-shadow-xs",
|
|
1899
1866
|
"--radius-md",
|
|
1900
1867
|
"--spacing-12",
|
|
1901
1868
|
"--spacing-16",
|
|
@@ -6150,6 +6117,10 @@
|
|
|
6150
6117
|
{
|
|
6151
6118
|
"dont": "deriving `progress` from a scroll listener without throttling",
|
|
6152
6119
|
"why": "this re-renders the rail on every scroll frame"
|
|
6120
|
+
},
|
|
6121
|
+
{
|
|
6122
|
+
"dont": "expecting every section to be visible at once",
|
|
6123
|
+
"why": "the panel caps at 60vh and scrolls — a document-length index would otherwise grow off both edges of the viewport, taking the rows nearest the active one with it"
|
|
6153
6124
|
}
|
|
6154
6125
|
],
|
|
6155
6126
|
"stylesheet": "src/styles/scroll-progress.css",
|
|
@@ -6164,18 +6135,23 @@
|
|
|
6164
6135
|
"--font-weight-regular",
|
|
6165
6136
|
"--ion-duration-base",
|
|
6166
6137
|
"--ion-ease-out",
|
|
6138
|
+
"--ion-shadow-shadow-md",
|
|
6139
|
+
"--radius-full",
|
|
6167
6140
|
"--radius-md",
|
|
6168
6141
|
"--radius-sm",
|
|
6169
|
-
"--spacing-
|
|
6170
|
-
"--spacing-
|
|
6171
|
-
"--spacing-
|
|
6142
|
+
"--spacing-24",
|
|
6143
|
+
"--spacing-4",
|
|
6144
|
+
"--spacing-6",
|
|
6172
6145
|
"--spacing-8",
|
|
6173
6146
|
"--surface-default",
|
|
6174
6147
|
"--surface-muted",
|
|
6148
|
+
"--text-default",
|
|
6175
6149
|
"--text-secondary",
|
|
6176
6150
|
"--text-tertiary",
|
|
6177
6151
|
"--type-body-sm",
|
|
6178
|
-
"--type-body-sm-line-height"
|
|
6152
|
+
"--type-body-sm-line-height",
|
|
6153
|
+
"--type-caption",
|
|
6154
|
+
"--type-caption-line-height"
|
|
6179
6155
|
],
|
|
6180
6156
|
"props": {
|
|
6181
6157
|
"progress": {
|