@nexub/themes 2.0.0 → 2.2.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/package.json +2 -2
- package/src/base.css +81 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexub/themes",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "CSS theme files for Nexub Design System — light, dark, and brand themes (Leap, Bookub, Payub, Founderub) as importable CSS.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/Nexub-AI/nexub-ds#readme",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"./founderub": "./src/founderub.css"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@nexub/tokens": "2.
|
|
40
|
+
"@nexub/tokens": "2.2.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@fontsource-variable/inter": "5.3.0",
|
package/src/base.css
CHANGED
|
@@ -320,6 +320,62 @@ code, kbd, pre, samp {
|
|
|
320
320
|
.nx-motion { --nx-x: 0px !important; --nx-y: 0px !important; --nx-scale: 1 !important; }
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
+
/* Stagger: children of .nx-stagger rise in one after another (40ms apart, up
|
|
324
|
+
to the 12th; later ones arrive with the 12th). Set --nx-stagger to change
|
|
325
|
+
the step. Re-key the parent to replay. */
|
|
326
|
+
.nx-stagger > * {
|
|
327
|
+
--nx-y: 8px;
|
|
328
|
+
animation:
|
|
329
|
+
nx-fade-in var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing) both,
|
|
330
|
+
nx-move-in var(--motion-spring-spatial-default-duration) var(--motion-spring-spatial-default-easing) both;
|
|
331
|
+
animation-delay: calc(var(--nx-i, 0) * var(--nx-stagger, 40ms));
|
|
332
|
+
}
|
|
333
|
+
.nx-stagger > :nth-child(2) { --nx-i: 1; }
|
|
334
|
+
.nx-stagger > :nth-child(3) { --nx-i: 2; }
|
|
335
|
+
.nx-stagger > :nth-child(4) { --nx-i: 3; }
|
|
336
|
+
.nx-stagger > :nth-child(5) { --nx-i: 4; }
|
|
337
|
+
.nx-stagger > :nth-child(6) { --nx-i: 5; }
|
|
338
|
+
.nx-stagger > :nth-child(7) { --nx-i: 6; }
|
|
339
|
+
.nx-stagger > :nth-child(8) { --nx-i: 7; }
|
|
340
|
+
.nx-stagger > :nth-child(9) { --nx-i: 8; }
|
|
341
|
+
.nx-stagger > :nth-child(10) { --nx-i: 9; }
|
|
342
|
+
.nx-stagger > :nth-child(11) { --nx-i: 10; }
|
|
343
|
+
.nx-stagger > :nth-child(n + 12) { --nx-i: 11; }
|
|
344
|
+
|
|
345
|
+
/* ListTransition items: grow in from zero height and fade in; exit collapses
|
|
346
|
+
and fades (quicker, no overshoot). Rows animate via grid-template-rows so
|
|
347
|
+
the item needs no measured height. */
|
|
348
|
+
.nx-list-item { display: grid; grid-template-rows: 1fr; }
|
|
349
|
+
.nx-list-item-inner { min-height: 0; overflow: hidden; }
|
|
350
|
+
@keyframes nx-rows-in { from { grid-template-rows: 0fr; } }
|
|
351
|
+
@keyframes nx-rows-out { to { grid-template-rows: 0fr; } }
|
|
352
|
+
.nx-list-item[data-state='enter'] {
|
|
353
|
+
animation:
|
|
354
|
+
nx-rows-in var(--motion-spring-spatial-default-duration) var(--motion-spring-spatial-default-easing),
|
|
355
|
+
nx-fade-in var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing);
|
|
356
|
+
}
|
|
357
|
+
.nx-list-item[data-state='exit'] {
|
|
358
|
+
pointer-events: none;
|
|
359
|
+
animation:
|
|
360
|
+
nx-rows-out var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing) forwards,
|
|
361
|
+
nx-fade-out var(--motion-spring-effects-fast-duration) var(--motion-spring-effects-fast-easing) forwards;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/* SkeletonSwap: skeleton and content share one grid cell and crossfade. */
|
|
365
|
+
.nx-swap { display: grid; }
|
|
366
|
+
.nx-swap > * { grid-area: 1 / 1; min-width: 0; }
|
|
367
|
+
.nx-swap-in { animation: nx-fade-in var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing) both; }
|
|
368
|
+
.nx-swap-out {
|
|
369
|
+
pointer-events: none;
|
|
370
|
+
animation: nx-fade-out var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing) forwards;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
@media (prefers-reduced-motion: reduce) {
|
|
374
|
+
.nx-stagger > * { --nx-y: 0px; animation-delay: 0s; }
|
|
375
|
+
.nx-list-item[data-state='enter'] { animation: nx-fade-in var(--motion-spring-effects-default-duration) var(--motion-spring-effects-default-easing); }
|
|
376
|
+
.nx-list-item[data-state='exit'] { animation: nx-fade-out var(--motion-spring-effects-fast-duration) var(--motion-spring-effects-fast-easing) forwards; }
|
|
377
|
+
}
|
|
378
|
+
|
|
323
379
|
/* ─── Cards: lift, press, sheen ──────────────────────────────────────────────
|
|
324
380
|
Lift: hover raises 2px on the spatial spring with elevation 1 → 2; leaving
|
|
325
381
|
settles faster on the effects spring (a transition uses the *destination*
|
|
@@ -589,3 +645,28 @@ html.nexub-scroll-lock.nexub-scroll-gutter { scrollbar-gutter: stable; }
|
|
|
589
645
|
[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(
|
|
590
646
|
[data-state=closed]
|
|
591
647
|
){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}
|
|
648
|
+
|
|
649
|
+
/* Drawer / Sheet on our springs. vaul's copy above stays verbatim (tsup checks
|
|
650
|
+
it); these override its .5s iOS curve. Enter rides spatial, exit is quicker
|
|
651
|
+
on effects and never overshoots. Placed after vaul's rules so ties win. */
|
|
652
|
+
.nx-drawer[data-vaul-drawer][data-vaul-snap-points='false'] {
|
|
653
|
+
animation-duration: var(--motion-spring-spatial-default-duration);
|
|
654
|
+
animation-timing-function: var(--motion-spring-spatial-default-easing);
|
|
655
|
+
}
|
|
656
|
+
.nx-drawer[data-vaul-drawer][data-vaul-snap-points='false'][data-state='closed'] {
|
|
657
|
+
animation-duration: var(--motion-spring-effects-default-duration);
|
|
658
|
+
animation-timing-function: var(--motion-spring-effects-default-easing);
|
|
659
|
+
}
|
|
660
|
+
.nx-drawer-overlay[data-vaul-overlay][data-vaul-snap-points='false'] {
|
|
661
|
+
animation-duration: var(--motion-spring-effects-default-duration);
|
|
662
|
+
animation-timing-function: var(--motion-spring-effects-default-easing);
|
|
663
|
+
}
|
|
664
|
+
.nx-drawer-overlay[data-vaul-overlay][data-state='closed'] {
|
|
665
|
+
animation-duration: var(--motion-spring-effects-fast-duration);
|
|
666
|
+
animation-timing-function: var(--motion-spring-effects-fast-easing);
|
|
667
|
+
}
|
|
668
|
+
/* Reduced motion: the panel fades instead of sliding. */
|
|
669
|
+
@media (prefers-reduced-motion: reduce) {
|
|
670
|
+
.nx-drawer[data-vaul-drawer][data-vaul-snap-points='false'][data-state='open'] { animation-name: fadeIn; }
|
|
671
|
+
.nx-drawer[data-vaul-drawer][data-vaul-snap-points='false'][data-state='closed'] { animation-name: fadeOut; }
|
|
672
|
+
}
|