@birdycom/omniaui 0.12.3 → 0.12.5

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/oc-theme.css CHANGED
@@ -1,4 +1,4 @@
1
- /* File: oc-theme.css — generated from tokens/semantic.json by @birdycom/omniacss 0.12.3. Do not edit. */
1
+ /* File: oc-theme.css — generated from tokens/semantic.json by @birdycom/omniacss 0.12.5. Do not edit. */
2
2
  /* Semantic theme tokens: every color is light-dark() of an Omnia palette token (oc-colors.css). */
3
3
  /* Same source as the desktop export: npx omniacss tokens --format json|dtcg|python */
4
4
  :root {
@@ -1,7 +1,7 @@
1
1
  /* File: packages/ui/src/parts/site-price-card.css
2
- Map: card -> head + discount badge -> period toggle -> monthly / yearly price (:has) -> features -> featured
3
- Price card: one plan with a monthly / yearly switch (radio inputs + :has(), no JavaScript).
4
- The toggle is the segmented component; give every card its own radio name. */
2
+ Map: card -> head + discount badge -> period toggle -> monthly / yearly / lifetime price (:has) -> features -> featured
3
+ Price card: one plan with a monthly / yearly switch, optionally a third "lifetime" option (radio inputs + :has(),
4
+ no JavaScript). The toggle is the segmented component; give every card its own radio name. */
5
5
 
6
6
  .oc-price-card {
7
7
  display: flex;
@@ -31,9 +31,12 @@
31
31
  }
32
32
  .oc-price-card:has(.oc-price-card__toggle input[value="monthly"]:checked) .oc-price-card__discount { opacity: 0.55; }
33
33
 
34
- .oc-price-card__toggle { align-self: flex-start; }
34
+ .oc-price-card__toggle { align-self: flex-start; max-inline-size: 100%; }
35
+ /* Three options (monthly / yearly / lifetime) take the full card width, in equal parts, so they fit a narrow card. */
36
+ .oc-price-card__toggle:has(> :nth-child(3)) { align-self: stretch; }
37
+ .oc-price-card__toggle:has(> :nth-child(3)) .oc-segmented-item { flex: 1; min-inline-size: 0; padding-inline: 0.25rem; letter-spacing: 0; text-align: center; }
35
38
 
36
- /* Price rows: monthly shows by default, yearly when its radio is checked. */
39
+ /* Price rows: monthly shows by default, yearly or lifetime when its radio is checked. */
37
40
  .oc-price-card__price {
38
41
  display: flex;
39
42
  flex-wrap: wrap;
@@ -41,9 +44,12 @@
41
44
  gap: 0.35rem;
42
45
  margin: 0;
43
46
  }
44
- .oc-price-card__price--yearly { display: none; }
45
- .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--yearly { display: flex; }
46
- .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--monthly { display: none; }
47
+ .oc-price-card__price--yearly,
48
+ .oc-price-card__price--lifetime { display: none; }
49
+ .oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--yearly,
50
+ .oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--lifetime { display: flex; }
51
+ .oc-price-card:has(.oc-price-card__toggle input:is([value="yearly"], [value="lifetime"]):checked) .oc-price-card__price--monthly,
52
+ .oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--yearly { display: none; }
47
53
 
48
54
  .oc-price-card__amount { font-size: 2.5rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
49
55
  .oc-price-card__period { color: var(--oc-muted-foreground); font-size: 0.9rem; }
package/dist/showcase.css CHANGED
@@ -240,19 +240,20 @@
240
240
  background: oklch(from var(--oc-accent-from) l c h / 0.14);
241
241
  color: light-dark(var(--oc-accent-from), oklch(from var(--oc-accent-from) max(l, 0.72) c h));
242
242
  }
243
- /* Pulse: the ring starts at --oc-status-dot-pulse-alpha of the accent and grows to --oc-status-dot-pulse-size.
243
+ /* Live dot in a pill (.oc-pill > .oc-status-dot): the ring starts at --oc-status-dot-pulse-alpha of the accent and grows
244
+ to --oc-status-dot-pulse-size. Scoped to the pill: a plain .oc-status-dot is the status light (parts/app-status-dot.css).
244
245
  --strong starts at the full accent with a wider ring. */
245
- .oc-status-dot {
246
+ .oc-pill .oc-status-dot {
246
247
  --oc-status-dot-pulse-alpha: 0.6;
247
248
  --oc-status-dot-pulse-size: 8px;
248
249
  inline-size: 0.5rem;
249
250
  aspect-ratio: 1;
250
251
  border-radius: 50%;
251
252
  background: var(--oc-accent-from);
252
- animation: oc-pulse 2s infinite;
253
+ animation: oc-status-dot-ring 2s infinite;
253
254
  }
254
- .oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
255
- @keyframes oc-pulse {
255
+ .oc-pill .oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
256
+ @keyframes oc-status-dot-ring {
256
257
  0% { box-shadow: 0 0 0 0 oklch(from var(--oc-accent-from) l c h / var(--oc-status-dot-pulse-alpha)); }
257
258
  70%, 100% { box-shadow: 0 0 0 var(--oc-status-dot-pulse-size) transparent; }
258
259
  }
@@ -413,5 +414,5 @@
413
414
 
414
415
  @media (prefers-reduced-motion: reduce) {
415
416
  .oc-backdrop::before, .oc-backdrop::after, .oc-backdrop > .oc-backdrop__blob,
416
- .oc-icon-tile--float, .oc-marquee__track, .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
417
+ .oc-icon-tile--float, .oc-marquee__track, .oc-pill .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
417
418
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@birdycom/omniaui",
3
- "version": "0.12.3",
3
+ "version": "0.12.5",
4
4
  "description": "OmniaUI components: CSS-first UI built on native HTML (dialog, popover, details) with light-dark() theming — no JavaScript required. Includes the omniaui CLI (add/list).",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -57,7 +57,7 @@
57
57
  "omniaui": "./bin/omniaui.mjs"
58
58
  },
59
59
  "peerDependencies": {
60
- "@birdycom/omniacss": "^0.12.3"
60
+ "@birdycom/omniacss": "^0.12.5"
61
61
  },
62
62
  "peerDependenciesMeta": {
63
63
  "@birdycom/omniacss": {