@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/components.css +22 -15
- package/dist/components.min.css +1 -1
- package/dist/oc-theme.css +1 -1
- package/dist/parts/site-price-card.css +14 -8
- package/dist/showcase.css +7 -6
- package/package.json +2 -2
package/dist/components.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* File: oc-theme.css — generated from tokens/semantic.json by @birdycom/omniacss 0.12.
|
|
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 {
|
|
@@ -3880,19 +3880,20 @@ details.oc-collapsible[open]::details-content { block-size: auto; }
|
|
|
3880
3880
|
background: oklch(from var(--oc-accent-from) l c h / 0.14);
|
|
3881
3881
|
color: light-dark(var(--oc-accent-from), oklch(from var(--oc-accent-from) max(l, 0.72) c h));
|
|
3882
3882
|
}
|
|
3883
|
-
/*
|
|
3883
|
+
/* Live dot in a pill (.oc-pill > .oc-status-dot): the ring starts at --oc-status-dot-pulse-alpha of the accent and grows
|
|
3884
|
+
to --oc-status-dot-pulse-size. Scoped to the pill: a plain .oc-status-dot is the status light (parts/app-status-dot.css).
|
|
3884
3885
|
--strong starts at the full accent with a wider ring. */
|
|
3885
|
-
.oc-status-dot {
|
|
3886
|
+
.oc-pill .oc-status-dot {
|
|
3886
3887
|
--oc-status-dot-pulse-alpha: 0.6;
|
|
3887
3888
|
--oc-status-dot-pulse-size: 8px;
|
|
3888
3889
|
inline-size: 0.5rem;
|
|
3889
3890
|
aspect-ratio: 1;
|
|
3890
3891
|
border-radius: 50%;
|
|
3891
3892
|
background: var(--oc-accent-from);
|
|
3892
|
-
animation: oc-
|
|
3893
|
+
animation: oc-status-dot-ring 2s infinite;
|
|
3893
3894
|
}
|
|
3894
|
-
.oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
|
|
3895
|
-
@keyframes oc-
|
|
3895
|
+
.oc-pill .oc-status-dot--strong { --oc-status-dot-pulse-alpha: 1; --oc-status-dot-pulse-size: 10px; }
|
|
3896
|
+
@keyframes oc-status-dot-ring {
|
|
3896
3897
|
0% { box-shadow: 0 0 0 0 oklch(from var(--oc-accent-from) l c h / var(--oc-status-dot-pulse-alpha)); }
|
|
3897
3898
|
70%, 100% { box-shadow: 0 0 0 var(--oc-status-dot-pulse-size) transparent; }
|
|
3898
3899
|
}
|
|
@@ -4053,7 +4054,7 @@ details.oc-collapsible[open]::details-content { block-size: auto; }
|
|
|
4053
4054
|
|
|
4054
4055
|
@media (prefers-reduced-motion: reduce) {
|
|
4055
4056
|
.oc-backdrop::before, .oc-backdrop::after, .oc-backdrop > .oc-backdrop__blob,
|
|
4056
|
-
.oc-icon-tile--float, .oc-marquee__track, .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
|
|
4057
|
+
.oc-icon-tile--float, .oc-marquee__track, .oc-pill .oc-status-dot, .oc-reveal, .oc-site-header { animation: none; }
|
|
4057
4058
|
}
|
|
4058
4059
|
|
|
4059
4060
|
/* ===================================================================
|
|
@@ -10113,9 +10114,9 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
|
|
|
10113
10114
|
|
|
10114
10115
|
/* parts/site-price-card.css */
|
|
10115
10116
|
/* File: packages/ui/src/parts/site-price-card.css
|
|
10116
|
-
Map: card -> head + discount badge -> period toggle -> monthly / yearly price (:has) -> features -> featured
|
|
10117
|
-
Price card: one plan with a monthly / yearly switch (radio inputs + :has(),
|
|
10118
|
-
The toggle is the segmented component; give every card its own radio name. */
|
|
10117
|
+
Map: card -> head + discount badge -> period toggle -> monthly / yearly / lifetime price (:has) -> features -> featured
|
|
10118
|
+
Price card: one plan with a monthly / yearly switch, optionally a third "lifetime" option (radio inputs + :has(),
|
|
10119
|
+
no JavaScript). The toggle is the segmented component; give every card its own radio name. */
|
|
10119
10120
|
|
|
10120
10121
|
.oc-price-card {
|
|
10121
10122
|
display: flex;
|
|
@@ -10145,9 +10146,12 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
|
|
|
10145
10146
|
}
|
|
10146
10147
|
.oc-price-card:has(.oc-price-card__toggle input[value="monthly"]:checked) .oc-price-card__discount { opacity: 0.55; }
|
|
10147
10148
|
|
|
10148
|
-
.oc-price-card__toggle { align-self: flex-start; }
|
|
10149
|
+
.oc-price-card__toggle { align-self: flex-start; max-inline-size: 100%; }
|
|
10150
|
+
/* Three options (monthly / yearly / lifetime) take the full card width, in equal parts, so they fit a narrow card. */
|
|
10151
|
+
.oc-price-card__toggle:has(> :nth-child(3)) { align-self: stretch; }
|
|
10152
|
+
.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; }
|
|
10149
10153
|
|
|
10150
|
-
/* Price rows: monthly shows by default, yearly when its radio is checked. */
|
|
10154
|
+
/* Price rows: monthly shows by default, yearly or lifetime when its radio is checked. */
|
|
10151
10155
|
.oc-price-card__price {
|
|
10152
10156
|
display: flex;
|
|
10153
10157
|
flex-wrap: wrap;
|
|
@@ -10155,9 +10159,12 @@ a.oc-message__quote:focus-visible { outline: 2px solid var(--oc-ring); outline-o
|
|
|
10155
10159
|
gap: 0.35rem;
|
|
10156
10160
|
margin: 0;
|
|
10157
10161
|
}
|
|
10158
|
-
.oc-price-card__price--yearly
|
|
10159
|
-
.oc-price-
|
|
10160
|
-
.oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--
|
|
10162
|
+
.oc-price-card__price--yearly,
|
|
10163
|
+
.oc-price-card__price--lifetime { display: none; }
|
|
10164
|
+
.oc-price-card:has(.oc-price-card__toggle input[value="yearly"]:checked) .oc-price-card__price--yearly,
|
|
10165
|
+
.oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--lifetime { display: flex; }
|
|
10166
|
+
.oc-price-card:has(.oc-price-card__toggle input:is([value="yearly"], [value="lifetime"]):checked) .oc-price-card__price--monthly,
|
|
10167
|
+
.oc-price-card:has(.oc-price-card__toggle input[value="lifetime"]:checked) .oc-price-card__price--yearly { display: none; }
|
|
10161
10168
|
|
|
10162
10169
|
.oc-price-card__amount { font-size: 2.5rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
|
|
10163
10170
|
.oc-price-card__period { color: var(--oc-muted-foreground); font-size: 0.9rem; }
|