@usableapp/cardds 0.5.1 → 0.5.2
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/CHANGELOG.md +6 -1
- package/css/base.css +6 -1
- package/css/step.css +1 -0
- package/dist/cardds.css +7 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
> For: a project that consumes `@usableapp/cardds` and its AI — what changed between versions, written as before → after, so a screen can be brought up to date without reading the source. Newest first. A consumer never edits cardds; if something here leaves you without a way to do what you did before, report the gap.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 0.5.2 — 2026-09-22
|
|
6
|
+
|
|
7
|
+
### Dots at the foot (Lh 2026-09-22)
|
|
8
|
+
A `BaseContent` whose last child is `PagerAt` now sits its dots at the bottom of the reading block, above the bar; the block fills the step for it. Nothing to change in an app.
|
|
9
|
+
|
|
10
|
+
## 0.5.1 — 2026-09-22
|
|
6
11
|
|
|
7
12
|
### Field type 26px, 56px tall (Lh 2026-09-22)
|
|
8
13
|
`--field-min-h` default is `--tap-lg` (56, was `--tap` 48) — every field stands as tall as the action field already did.
|
package/css/base.css
CHANGED
|
@@ -118,9 +118,14 @@ button { font: inherit; cursor: pointer; }
|
|
|
118
118
|
.base-content > .t-body { color: var(--base-content-body-ink, var(--on-surface)); max-width: 34ch; } /* full ink: a sentence is read, muted is for meta (Lh 2026-09-22 — the words on the base were grey and hard to read) */
|
|
119
119
|
/* an illustration among the words (Lh 2026-09-22): capped, so a tall picture never pushes the words under the bar;
|
|
120
120
|
the "where am I" dots under the words, centred — the same dots the centred card has under it */
|
|
121
|
-
.base-content > :is(img, .ph) { max-height: var(--base-content-media-h, 14rem); width: auto; height: auto; max-width: 100%; object-fit: contain; justify-self: start; } /* height auto: an <img> with width/height attributes keeps its ratio inside the cap — no band under the picture */
|
|
121
|
+
.base-content > :is(img, .ph) { max-height: var(--base-content-media-h, 14rem); width: auto; height: auto; max-width: 100%; object-fit: contain; justify-self: start; align-self: start; } /* height auto: an <img> with width/height attributes keeps its ratio inside the cap — no band under the picture */
|
|
122
122
|
.base-content > .ph { width: 100%; height: var(--base-content-media-h, 14rem); }
|
|
123
123
|
.base-content > .pager__at { justify-self: center; }
|
|
124
|
+
/* the dots at the FOOT of the block (Lh 2026-09-22): a block that ends on .pager__at becomes a flex column so the dots
|
|
125
|
+
ride its bottom edge — the words keep the top, the free room opens between. The block must fill its cell for that:
|
|
126
|
+
in .pages it is stretched to the cell; a lone .step > .base-content grows for it (step.css). */
|
|
127
|
+
.base-content:has(> .pager__at:last-child) { display: flex; flex-direction: column; }
|
|
128
|
+
.base-content > .pager__at:last-child { margin-top: auto; align-self: center; }
|
|
124
129
|
.base-content .cta-pack {
|
|
125
130
|
display: flex;
|
|
126
131
|
align-items: start; /* buttons keep their own height, never the row's */
|
package/css/step.css
CHANGED
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
.step > :is(.base-content, .pages) {
|
|
90
90
|
flex: 0 1 auto;
|
|
91
91
|
}
|
|
92
|
+
.step:has(> .base-content > .pager__at:last-child, > .pages > .base-content > .pager__at:last-child) > :is(.base-content, .pages) { flex: 1 1 auto; } /* dots at the foot: the block takes the column (base.css) */
|
|
92
93
|
.step > :is(.base-content, .pages) {
|
|
93
94
|
min-height: 0;
|
|
94
95
|
margin: var(--_lead, 0) var(--screen-pad) 0; /* the screen's gap, moved in here from above the step; the inset, taken back from the bleed */
|
package/dist/cardds.css
CHANGED
|
@@ -494,9 +494,14 @@ button { font: inherit; cursor: pointer; }
|
|
|
494
494
|
.base-content > .t-body { color: var(--base-content-body-ink, var(--on-surface)); max-width: 34ch; } /* full ink: a sentence is read, muted is for meta (Lh 2026-09-22 — the words on the base were grey and hard to read) */
|
|
495
495
|
/* an illustration among the words (Lh 2026-09-22): capped, so a tall picture never pushes the words under the bar;
|
|
496
496
|
the "where am I" dots under the words, centred — the same dots the centred card has under it */
|
|
497
|
-
.base-content > :is(img, .ph) { max-height: var(--base-content-media-h, 14rem); width: auto; height: auto; max-width: 100%; object-fit: contain; justify-self: start; } /* height auto: an <img> with width/height attributes keeps its ratio inside the cap — no band under the picture */
|
|
497
|
+
.base-content > :is(img, .ph) { max-height: var(--base-content-media-h, 14rem); width: auto; height: auto; max-width: 100%; object-fit: contain; justify-self: start; align-self: start; } /* height auto: an <img> with width/height attributes keeps its ratio inside the cap — no band under the picture */
|
|
498
498
|
.base-content > .ph { width: 100%; height: var(--base-content-media-h, 14rem); }
|
|
499
499
|
.base-content > .pager__at { justify-self: center; }
|
|
500
|
+
/* the dots at the FOOT of the block (Lh 2026-09-22): a block that ends on .pager__at becomes a flex column so the dots
|
|
501
|
+
ride its bottom edge — the words keep the top, the free room opens between. The block must fill its cell for that:
|
|
502
|
+
in .pages it is stretched to the cell; a lone .step > .base-content grows for it (step.css). */
|
|
503
|
+
.base-content:has(> .pager__at:last-child) { display: flex; flex-direction: column; }
|
|
504
|
+
.base-content > .pager__at:last-child { margin-top: auto; align-self: center; }
|
|
500
505
|
.base-content .cta-pack {
|
|
501
506
|
display: flex;
|
|
502
507
|
align-items: start; /* buttons keep their own height, never the row's */
|
|
@@ -1538,6 +1543,7 @@ button { font: inherit; cursor: pointer; }
|
|
|
1538
1543
|
.step > :is(.base-content, .pages) {
|
|
1539
1544
|
flex: 0 1 auto;
|
|
1540
1545
|
}
|
|
1546
|
+
.step:has(> .base-content > .pager__at:last-child, > .pages > .base-content > .pager__at:last-child) > :is(.base-content, .pages) { flex: 1 1 auto; } /* dots at the foot: the block takes the column (base.css) */
|
|
1541
1547
|
.step > :is(.base-content, .pages) {
|
|
1542
1548
|
min-height: 0;
|
|
1543
1549
|
margin: var(--_lead, 0) var(--screen-pad) 0; /* the screen's gap, moved in here from above the step; the inset, taken back from the bleed */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usableapp/cardds",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.",
|