@alivecss/aliveui 1.0.3 → 1.1.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/vite.mjs CHANGED
@@ -599,6 +599,9 @@ function generateBase(_config) {
599
599
  ::before,
600
600
  ::after {
601
601
  box-sizing: border-box;
602
+ border-width: 0;
603
+ border-style: solid;
604
+ border-color: currentColor;
602
605
  }
603
606
 
604
607
  html {
@@ -618,6 +621,39 @@ body {
618
621
  -moz-osx-font-smoothing: grayscale;
619
622
  }
620
623
 
624
+ blockquote,
625
+ dl,
626
+ dd,
627
+ h1,
628
+ h2,
629
+ h3,
630
+ h4,
631
+ h5,
632
+ h6,
633
+ hr,
634
+ figure,
635
+ p,
636
+ pre {
637
+ margin: 0;
638
+ }
639
+
640
+ fieldset {
641
+ margin: 0;
642
+ padding: 0;
643
+ }
644
+
645
+ legend {
646
+ padding: 0;
647
+ }
648
+
649
+ ol,
650
+ ul,
651
+ menu {
652
+ list-style: none;
653
+ margin: 0;
654
+ padding: 0;
655
+ }
656
+
621
657
  button,
622
658
  input,
623
659
  optgroup,
@@ -627,9 +663,24 @@ textarea {
627
663
  font-size: 100%;
628
664
  font-weight: inherit;
629
665
  line-height: inherit;
666
+ letter-spacing: inherit;
630
667
  color: inherit;
631
668
  margin: 0;
632
669
  padding: 0;
670
+ background-color: transparent;
671
+ background-image: none;
672
+ }
673
+
674
+ button,
675
+ [type='button'],
676
+ [type='reset'],
677
+ [type='submit'] {
678
+ -webkit-appearance: button;
679
+ cursor: pointer;
680
+ }
681
+
682
+ :disabled {
683
+ cursor: default;
633
684
  }
634
685
 
635
686
  button,
@@ -637,6 +688,28 @@ select {
637
688
  text-transform: none;
638
689
  }
639
690
 
691
+ img,
692
+ svg,
693
+ video,
694
+ canvas,
695
+ audio,
696
+ iframe,
697
+ embed,
698
+ object {
699
+ display: block;
700
+ vertical-align: middle;
701
+ }
702
+
703
+ img,
704
+ video {
705
+ max-width: 100%;
706
+ height: auto;
707
+ }
708
+
709
+ [hidden] {
710
+ display: none;
711
+ }
712
+
640
713
  /* \u2500\u2500 Design tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
641
714
  :root {
642
715
  /* Motion durations */
@@ -834,6 +907,30 @@ select {
834
907
  .alive-loop-ping { animation: alive-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; }
835
908
  .alive-loop-bounce { animation: alive-bounce 1s infinite; }
836
909
 
910
+ /* \u2500\u2500 Scroll-reveal (data-alive-scroll) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
911
+
912
+ [data-alive-scroll] {
913
+ opacity: 0;
914
+ transform: translateY(8px);
915
+ }
916
+ [data-alive-scroll].is-visible {
917
+ animation: alive-fade-up var(--alive-duration-slow) var(--alive-ease-emphasized) both;
918
+ }
919
+ [data-alive-scroll="fade"] {
920
+ opacity: 0;
921
+ transform: none;
922
+ }
923
+ [data-alive-scroll="fade"].is-visible {
924
+ animation: alive-fade-in var(--alive-duration-normal) var(--alive-ease-standard) both;
925
+ }
926
+ [data-alive-scroll="scale"] {
927
+ opacity: 0;
928
+ transform: scale(0.94);
929
+ }
930
+ [data-alive-scroll="scale"].is-visible {
931
+ animation: alive-scale-in var(--alive-duration-slow) var(--alive-ease-emphasized) both;
932
+ }
933
+
837
934
  /* Reduced motion \u2014 respect system preference */
838
935
  @media (prefers-reduced-motion: reduce) {
839
936
  .alive-enter,
@@ -856,6 +953,18 @@ select {
856
953
  transform: none;
857
954
  }
858
955
 
956
+ [data-alive-scroll],
957
+ [data-alive-scroll="fade"],
958
+ [data-alive-scroll="scale"] {
959
+ opacity: 1;
960
+ transform: none;
961
+ }
962
+ [data-alive-scroll].is-visible,
963
+ [data-alive-scroll="fade"].is-visible,
964
+ [data-alive-scroll="scale"].is-visible {
965
+ animation: none;
966
+ }
967
+
859
968
  /* depth system \u2014 disable hover lift and active press */
860
969
  .d2,
861
970
  .d2:hover,
@@ -2188,6 +2297,251 @@ select {
2188
2297
  color: rgba(0,0,0,0.3);
2189
2298
  user-select: none;
2190
2299
  }
2300
+
2301
+ /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
2302
+ AliveUI Build \u2014 Display & marketing components
2303
+ Browser frame \xB7 Phone frame \xB7 Stat card \xB7 Checklist \xB7 Dot grid
2304
+ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */
2305
+
2306
+ /* \u2500\u2500 Browser Frame \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2307
+ .alive-browser {
2308
+ border-radius: 12px;
2309
+ overflow: hidden;
2310
+ border: 1px solid rgba(0,0,0,0.1);
2311
+ background: #fff;
2312
+ box-shadow: 0 24px 64px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.06);
2313
+ }
2314
+ .alive-browser-bar {
2315
+ display: flex;
2316
+ align-items: center;
2317
+ gap: 8px;
2318
+ padding: 10px 16px;
2319
+ background: #f3f3f3;
2320
+ border-bottom: 1px solid rgba(0,0,0,0.08);
2321
+ flex-shrink: 0;
2322
+ }
2323
+ .alive-browser-dots {
2324
+ display: flex;
2325
+ gap: 6px;
2326
+ flex-shrink: 0;
2327
+ }
2328
+ .alive-browser-dot {
2329
+ width: 10px;
2330
+ height: 10px;
2331
+ border-radius: 50%;
2332
+ opacity: 0.85;
2333
+ }
2334
+ .alive-browser-dot:nth-child(1) { background: #ff5f57; }
2335
+ .alive-browser-dot:nth-child(2) { background: #febc2e; }
2336
+ .alive-browser-dot:nth-child(3) { background: #28c840; }
2337
+ .alive-browser-url {
2338
+ flex: 1;
2339
+ max-width: 280px;
2340
+ margin: 0 auto;
2341
+ padding: 4px 12px;
2342
+ border-radius: 6px;
2343
+ background: rgba(0,0,0,0.06);
2344
+ border: 1px solid rgba(0,0,0,0.08);
2345
+ font-size: 0.7rem;
2346
+ color: rgba(0,0,0,0.35);
2347
+ text-align: center;
2348
+ font-family: ui-monospace, monospace;
2349
+ white-space: nowrap;
2350
+ overflow: hidden;
2351
+ text-overflow: ellipsis;
2352
+ user-select: none;
2353
+ }
2354
+ .alive-browser-body {
2355
+ overflow: hidden;
2356
+ }
2357
+ /* Dark variant */
2358
+ .alive-browser-dark {
2359
+ border-color: rgba(255,255,255,0.1);
2360
+ background: #0f0f0f;
2361
+ box-shadow: 0 32px 80px rgba(0,0,0,0.6), 0 8px 24px rgba(0,0,0,0.4);
2362
+ }
2363
+ .alive-browser-dark .alive-browser-bar {
2364
+ background: #161616;
2365
+ border-bottom-color: rgba(255,255,255,0.07);
2366
+ }
2367
+ .alive-browser-dark .alive-browser-url {
2368
+ background: rgba(255,255,255,0.05);
2369
+ border-color: rgba(255,255,255,0.07);
2370
+ color: rgba(255,255,255,0.2);
2371
+ }
2372
+
2373
+ /* \u2500\u2500 Phone Frame \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2374
+ .alive-phone {
2375
+ position: relative;
2376
+ display: inline-flex;
2377
+ flex-direction: column;
2378
+ border-radius: 40px;
2379
+ border: 8px solid #1c1c1e;
2380
+ background: #fff;
2381
+ overflow: hidden;
2382
+ box-shadow:
2383
+ 0 32px 80px rgba(0,0,0,0.35),
2384
+ inset 0 0 0 1px rgba(255,255,255,0.1),
2385
+ 0 0 0 1px rgba(0,0,0,0.5);
2386
+ }
2387
+ .alive-phone::before {
2388
+ content: '';
2389
+ position: absolute;
2390
+ top: 10px;
2391
+ left: 50%;
2392
+ transform: translateX(-50%);
2393
+ width: 90px;
2394
+ height: 22px;
2395
+ background: #1c1c1e;
2396
+ border-radius: 11px;
2397
+ z-index: 10;
2398
+ }
2399
+ .alive-phone-screen {
2400
+ width: 100%;
2401
+ overflow: hidden;
2402
+ flex: 1;
2403
+ }
2404
+ .alive-phone-dark {
2405
+ background: #0f0f0f;
2406
+ }
2407
+ .alive-phone-dark .alive-phone-screen {
2408
+ background: #0f0f0f;
2409
+ }
2410
+ /* Sizes */
2411
+ .alive-phone-sm { width: 220px; border-radius: 32px; border-width: 6px; }
2412
+ .alive-phone-sm::before { width: 70px; height: 18px; border-radius: 9px; }
2413
+ .alive-phone-lg { width: 340px; border-radius: 48px; border-width: 10px; }
2414
+ .alive-phone-lg::before { width: 110px; height: 26px; border-radius: 13px; }
2415
+
2416
+ /* \u2500\u2500 Stat Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2417
+ .alive-stat {
2418
+ padding: 1.5rem;
2419
+ border-radius: 12px;
2420
+ background: #fff;
2421
+ border: 1px solid rgba(0,0,0,0.07);
2422
+ box-shadow: 0 2px 8px rgba(0,0,0,0.04);
2423
+ }
2424
+ .alive-stat-label {
2425
+ font-size: 0.75rem;
2426
+ font-weight: 600;
2427
+ letter-spacing: 0.06em;
2428
+ color: rgba(0,0,0,0.4);
2429
+ text-transform: uppercase;
2430
+ margin-bottom: 0.5rem;
2431
+ }
2432
+ .alive-stat-value {
2433
+ font-size: 2.25rem;
2434
+ font-weight: 700;
2435
+ letter-spacing: -0.04em;
2436
+ line-height: 1;
2437
+ color: rgba(0,0,0,0.9);
2438
+ margin-bottom: 0.5rem;
2439
+ font-variant-numeric: tabular-nums;
2440
+ }
2441
+ .alive-stat-change {
2442
+ display: inline-flex;
2443
+ align-items: center;
2444
+ gap: 4px;
2445
+ font-size: 0.8125rem;
2446
+ font-weight: 600;
2447
+ }
2448
+ .alive-stat-up { color: #16a34a; }
2449
+ .alive-stat-down { color: #dc2626; }
2450
+ /* Dark variant */
2451
+ .alive-stat-dark {
2452
+ background: rgba(255,255,255,0.05);
2453
+ border-color: rgba(255,255,255,0.09);
2454
+ box-shadow: none;
2455
+ }
2456
+ .alive-stat-dark .alive-stat-label { color: rgba(255,255,255,0.35); }
2457
+ .alive-stat-dark .alive-stat-value { color: #ffffff; }
2458
+
2459
+ /* \u2500\u2500 Feature Checklist \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2460
+ .alive-checklist {
2461
+ display: flex;
2462
+ flex-direction: column;
2463
+ gap: 0.875rem;
2464
+ }
2465
+ .alive-checklist-item {
2466
+ display: flex;
2467
+ align-items: flex-start;
2468
+ gap: 0.75rem;
2469
+ font-size: 0.9375rem;
2470
+ color: rgba(0,0,0,0.75);
2471
+ line-height: 1.45;
2472
+ }
2473
+ .alive-checklist-icon {
2474
+ flex-shrink: 0;
2475
+ width: 20px;
2476
+ height: 20px;
2477
+ border-radius: 50%;
2478
+ background: rgba(74,222,128,0.15);
2479
+ border: 1.5px solid rgba(74,222,128,0.4);
2480
+ display: flex;
2481
+ align-items: center;
2482
+ justify-content: center;
2483
+ margin-top: 2px;
2484
+ }
2485
+ .alive-checklist-icon::after {
2486
+ content: '';
2487
+ display: block;
2488
+ width: 5px;
2489
+ height: 9px;
2490
+ border-right: 2px solid #16a34a;
2491
+ border-bottom: 2px solid #16a34a;
2492
+ transform: rotate(45deg) translate(-1px, -1px);
2493
+ }
2494
+ /* Dark variant */
2495
+ .alive-checklist-dark .alive-checklist-item { color: rgba(255,255,255,0.75); }
2496
+ .alive-checklist-dark .alive-checklist-icon {
2497
+ background: rgba(74,222,128,0.12);
2498
+ border-color: rgba(74,222,128,0.3);
2499
+ }
2500
+
2501
+ /* \u2500\u2500 Dot Grid Background \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2502
+ .alive-dot-grid {
2503
+ background-image: radial-gradient(circle, rgba(0,0,0,0.12) 1px, transparent 1px);
2504
+ background-size: 24px 24px;
2505
+ }
2506
+ .alive-dot-grid-sm { background-size: 16px 16px; }
2507
+ .alive-dot-grid-lg { background-size: 32px 32px; }
2508
+ .alive-dot-grid-dark {
2509
+ background-image: radial-gradient(circle, rgba(255,255,255,0.12) 1px, transparent 1px);
2510
+ }
2511
+
2512
+ /* \u2500\u2500 Terminal / Code Block \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
2513
+ .alive-terminal {
2514
+ border-radius: 10px;
2515
+ overflow: hidden;
2516
+ background: #0f0f0f;
2517
+ border: 1px solid rgba(255,255,255,0.08);
2518
+ box-shadow: 0 16px 48px rgba(0,0,0,0.4);
2519
+ font-family: ui-monospace, 'Cascadia Code', 'Fira Code', monospace;
2520
+ }
2521
+ .alive-terminal-bar {
2522
+ display: flex;
2523
+ align-items: center;
2524
+ gap: 8px;
2525
+ padding: 10px 16px;
2526
+ background: #161616;
2527
+ border-bottom: 1px solid rgba(255,255,255,0.06);
2528
+ flex-shrink: 0;
2529
+ }
2530
+ .alive-terminal-body {
2531
+ padding: 1.25rem 1.5rem;
2532
+ font-size: 0.8125rem;
2533
+ line-height: 1.7;
2534
+ color: rgba(255,255,255,0.75);
2535
+ overflow: auto;
2536
+ }
2537
+ .alive-terminal-prompt {
2538
+ color: rgba(255,255,255,0.25);
2539
+ user-select: none;
2540
+ }
2541
+ .alive-terminal-cmd { color: #60a5fa; }
2542
+ .alive-terminal-out { color: rgba(255,255,255,0.45); }
2543
+ .alive-terminal-ok { color: #4ade80; }
2544
+ .alive-terminal-err { color: #f87171; }
2191
2545
  `;
2192
2546
  }
2193
2547
  var init_base = __esm({