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