softui-css 1.11.0 → 1.12.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/README.md +1 -1
- package/dist/softui.css +200 -1
- package/dist/softui.js +670 -595
- package/dist/softui.min.css +1 -1
- package/dist/softui.min.js +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
| Feature | Description |
|
|
34
34
|
|---|---|
|
|
35
|
-
| **
|
|
35
|
+
| **68+ Components** | Buttons, Cards, Modals, Tables, Tabs, Calendar, Charts, Pricing, and more |
|
|
36
36
|
| **Dark Mode** | Add `data-theme="dark"` and everything adapts |
|
|
37
37
|
| **Zero Dependencies** | Pure CSS + vanilla JS. No build step required |
|
|
38
38
|
| **CSS Variables** | Fully customizable via custom properties |
|
package/dist/softui.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! SoftUI v1.
|
|
1
|
+
/*! SoftUI v1.12.0 — A Neumorphic CSS Library */
|
|
2
2
|
|
|
3
3
|
/* ===========================================
|
|
4
4
|
CSS Variables / Tokens
|
|
@@ -2508,6 +2508,109 @@ a.sui-btn-warning:visited {
|
|
|
2508
2508
|
background: var(--sui-danger);
|
|
2509
2509
|
}
|
|
2510
2510
|
|
|
2511
|
+
/* ===========================================
|
|
2512
|
+
Radio Card / Checkbox Card
|
|
2513
|
+
=========================================== */
|
|
2514
|
+
.sui-radio-card,
|
|
2515
|
+
.sui-checkbox-card {
|
|
2516
|
+
position: relative;
|
|
2517
|
+
display: block;
|
|
2518
|
+
cursor: pointer;
|
|
2519
|
+
}
|
|
2520
|
+
|
|
2521
|
+
.sui-radio-card input,
|
|
2522
|
+
.sui-checkbox-card input {
|
|
2523
|
+
position: absolute;
|
|
2524
|
+
opacity: 0;
|
|
2525
|
+
width: 0;
|
|
2526
|
+
height: 0;
|
|
2527
|
+
}
|
|
2528
|
+
|
|
2529
|
+
.sui-radio-card .sui-radio-card-content,
|
|
2530
|
+
.sui-checkbox-card .sui-checkbox-card-content {
|
|
2531
|
+
display: flex;
|
|
2532
|
+
align-items: flex-start;
|
|
2533
|
+
gap: 14px;
|
|
2534
|
+
padding: 16px 20px;
|
|
2535
|
+
background: var(--sui-bg);
|
|
2536
|
+
border-radius: var(--sui-radius-sm);
|
|
2537
|
+
box-shadow: var(--sui-shadow-raised-sm);
|
|
2538
|
+
transition: box-shadow var(--sui-transition-fast), transform var(--sui-transition-fast);
|
|
2539
|
+
}
|
|
2540
|
+
|
|
2541
|
+
.sui-radio-card:hover .sui-radio-card-content,
|
|
2542
|
+
.sui-checkbox-card:hover .sui-checkbox-card-content {
|
|
2543
|
+
transform: translateY(-2px);
|
|
2544
|
+
box-shadow: var(--sui-shadow-raised);
|
|
2545
|
+
}
|
|
2546
|
+
|
|
2547
|
+
.sui-radio-card input:checked ~ .sui-radio-card-content,
|
|
2548
|
+
.sui-checkbox-card input:checked ~ .sui-checkbox-card-content {
|
|
2549
|
+
box-shadow: 0 0 0 2px var(--sui-primary), var(--sui-shadow-raised-sm);
|
|
2550
|
+
}
|
|
2551
|
+
|
|
2552
|
+
/* Check indicator */
|
|
2553
|
+
.sui-radio-card .sui-radio-card-content::before,
|
|
2554
|
+
.sui-checkbox-card .sui-checkbox-card-content::before {
|
|
2555
|
+
content: '';
|
|
2556
|
+
width: 20px;
|
|
2557
|
+
height: 20px;
|
|
2558
|
+
flex-shrink: 0;
|
|
2559
|
+
border-radius: 50%;
|
|
2560
|
+
box-shadow: var(--sui-shadow-inset-sm);
|
|
2561
|
+
background: var(--sui-bg);
|
|
2562
|
+
background-repeat: no-repeat;
|
|
2563
|
+
background-position: center;
|
|
2564
|
+
transition: background-color var(--sui-transition-fast), box-shadow var(--sui-transition-fast);
|
|
2565
|
+
margin-top: 2px;
|
|
2566
|
+
}
|
|
2567
|
+
|
|
2568
|
+
.sui-checkbox-card .sui-checkbox-card-content::before {
|
|
2569
|
+
border-radius: var(--sui-radius-xs);
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
.sui-radio-card input:checked ~ .sui-radio-card-content::before {
|
|
2573
|
+
background-color: var(--sui-primary);
|
|
2574
|
+
box-shadow: none;
|
|
2575
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Ccircle cx='5' cy='5' r='3' fill='%23fff'/%3E%3C/svg%3E");
|
|
2576
|
+
background-size: 10px;
|
|
2577
|
+
}
|
|
2578
|
+
|
|
2579
|
+
.sui-checkbox-card input:checked ~ .sui-checkbox-card-content::before {
|
|
2580
|
+
background-color: var(--sui-primary);
|
|
2581
|
+
box-shadow: none;
|
|
2582
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
|
|
2583
|
+
background-size: 11px;
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2586
|
+
.sui-radio-card input:focus-visible ~ .sui-radio-card-content,
|
|
2587
|
+
.sui-checkbox-card input:focus-visible ~ .sui-checkbox-card-content {
|
|
2588
|
+
outline: 2px solid var(--sui-primary);
|
|
2589
|
+
outline-offset: 2px;
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
.sui-radio-card input:disabled ~ .sui-radio-card-content,
|
|
2593
|
+
.sui-checkbox-card input:disabled ~ .sui-checkbox-card-content {
|
|
2594
|
+
opacity: 0.5;
|
|
2595
|
+
cursor: not-allowed;
|
|
2596
|
+
transform: none;
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
/* Card body text */
|
|
2600
|
+
.sui-radio-card-title,
|
|
2601
|
+
.sui-checkbox-card-title {
|
|
2602
|
+
font-weight: 600;
|
|
2603
|
+
font-size: 14px;
|
|
2604
|
+
color: var(--sui-text);
|
|
2605
|
+
margin-bottom: 2px;
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
.sui-radio-card-desc,
|
|
2609
|
+
.sui-checkbox-card-desc {
|
|
2610
|
+
font-size: 13px;
|
|
2611
|
+
color: var(--sui-text-muted);
|
|
2612
|
+
}
|
|
2613
|
+
|
|
2511
2614
|
/* ===========================================
|
|
2512
2615
|
Badges — Positioned (notification dot)
|
|
2513
2616
|
=========================================== */
|
|
@@ -7000,6 +7103,39 @@ select.sui-datatable-filter {
|
|
|
7000
7103
|
.sui-sheet-backdrop.sui-sheet-static.sui-sheet-shake .sui-sheet-top { transform: translateY(8px); }
|
|
7001
7104
|
.sui-sheet-backdrop.sui-sheet-static.sui-sheet-shake .sui-sheet-bottom { transform: translateY(-8px); }
|
|
7002
7105
|
|
|
7106
|
+
/* Drawer (bottom sheet with drag handle) */
|
|
7107
|
+
.sui-drawer .sui-sheet-bottom {
|
|
7108
|
+
height: auto;
|
|
7109
|
+
max-height: 85vh;
|
|
7110
|
+
transition: transform var(--sui-transition-base) ease;
|
|
7111
|
+
}
|
|
7112
|
+
|
|
7113
|
+
.sui-drawer-handle {
|
|
7114
|
+
display: flex;
|
|
7115
|
+
justify-content: center;
|
|
7116
|
+
padding: 10px 0 6px;
|
|
7117
|
+
cursor: grab;
|
|
7118
|
+
}
|
|
7119
|
+
|
|
7120
|
+
.sui-drawer-handle::after {
|
|
7121
|
+
content: '';
|
|
7122
|
+
width: 36px;
|
|
7123
|
+
height: 4px;
|
|
7124
|
+
border-radius: var(--sui-radius-full);
|
|
7125
|
+
background: var(--sui-bg-dark);
|
|
7126
|
+
}
|
|
7127
|
+
|
|
7128
|
+
.sui-drawer-handle:active { cursor: grabbing; }
|
|
7129
|
+
|
|
7130
|
+
/* Drawer snap points */
|
|
7131
|
+
.sui-drawer .sui-sheet-bottom.sui-drawer-snap-half {
|
|
7132
|
+
height: 50vh;
|
|
7133
|
+
}
|
|
7134
|
+
|
|
7135
|
+
.sui-drawer .sui-sheet-bottom.sui-drawer-snap-full {
|
|
7136
|
+
height: 85vh;
|
|
7137
|
+
}
|
|
7138
|
+
|
|
7003
7139
|
/* ==============================
|
|
7004
7140
|
Popover
|
|
7005
7141
|
============================== */
|
|
@@ -13085,6 +13221,27 @@ select.sui-datatable-filter {
|
|
|
13085
13221
|
/* Timeline */
|
|
13086
13222
|
[dir="rtl"] .sui-timeline-separator { margin-right: 0; margin-left: 16px; }
|
|
13087
13223
|
|
|
13224
|
+
/* ===========================================
|
|
13225
|
+
Mask (clip-path shapes)
|
|
13226
|
+
=========================================== */
|
|
13227
|
+
.sui-mask {
|
|
13228
|
+
-webkit-clip-path: var(--sui-mask);
|
|
13229
|
+
clip-path: var(--sui-mask);
|
|
13230
|
+
}
|
|
13231
|
+
|
|
13232
|
+
.sui-mask-circle { --sui-mask: circle(50%); }
|
|
13233
|
+
.sui-mask-squircle { --sui-mask: polygon(50% 0%, 66% 0%, 78% 1%, 87% 4%, 93% 8%, 97% 14%, 99% 22%, 100% 34%, 100% 50%, 100% 66%, 99% 78%, 97% 86%, 93% 92%, 87% 96%, 78% 99%, 66% 100%, 50% 100%, 34% 100%, 22% 99%, 13% 96%, 7% 92%, 3% 86%, 1% 78%, 0% 66%, 0% 50%, 0% 34%, 1% 22%, 3% 14%, 7% 8%, 13% 4%, 22% 1%, 34% 0%); }
|
|
13234
|
+
.sui-mask-heart { --sui-mask: polygon(50% 15%, 43% 6%, 35% 1%, 25% 0%, 15% 3%, 7% 10%, 2% 20%, 0% 32%, 2% 44%, 8% 55%, 16% 65%, 26% 76%, 37% 86%, 50% 100%, 63% 86%, 74% 76%, 84% 65%, 92% 55%, 98% 44%, 100% 32%, 98% 20%, 93% 10%, 85% 3%, 75% 0%, 65% 1%, 57% 6%); }
|
|
13235
|
+
.sui-mask-star { --sui-mask: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
|
|
13236
|
+
.sui-mask-diamond { --sui-mask: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); }
|
|
13237
|
+
.sui-mask-hexagon { --sui-mask: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); }
|
|
13238
|
+
.sui-mask-triangle { --sui-mask: polygon(50% 0%, 100% 100%, 0% 100%); }
|
|
13239
|
+
.sui-mask-pentagon { --sui-mask: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); }
|
|
13240
|
+
.sui-mask-octagon { --sui-mask: polygon(29% 0%, 71% 0%, 100% 29%, 100% 71%, 71% 100%, 29% 100%, 0% 71%, 0% 29%); }
|
|
13241
|
+
.sui-mask-cross { --sui-mask: polygon(33% 0%, 67% 0%, 67% 33%, 100% 33%, 100% 67%, 67% 67%, 67% 100%, 33% 100%, 33% 67%, 0% 67%, 0% 33%, 33% 33%); }
|
|
13242
|
+
.sui-mask-shield { --sui-mask: polygon(50% 0%, 100% 12%, 100% 65%, 50% 100%, 0% 65%, 0% 12%); }
|
|
13243
|
+
.sui-mask-parallelogram { --sui-mask: polygon(20% 0%, 100% 0%, 80% 100%, 0% 100%); }
|
|
13244
|
+
|
|
13088
13245
|
/* ===========================================
|
|
13089
13246
|
Reduced Motion
|
|
13090
13247
|
=========================================== */
|
|
@@ -13097,4 +13254,46 @@ select.sui-datatable-filter {
|
|
|
13097
13254
|
}
|
|
13098
13255
|
}
|
|
13099
13256
|
|
|
13257
|
+
/* ===========================================
|
|
13258
|
+
Print Styles
|
|
13259
|
+
=========================================== */
|
|
13260
|
+
@media print {
|
|
13261
|
+
body {
|
|
13262
|
+
background: #fff !important;
|
|
13263
|
+
color: #000 !important;
|
|
13264
|
+
}
|
|
13265
|
+
|
|
13266
|
+
.sui-navbar, .sui-sidebar, .sui-dock, .sui-speed-dial,
|
|
13267
|
+
.sui-modal-backdrop, .sui-sheet-backdrop, .sui-toast-container,
|
|
13268
|
+
.sui-tour-overlay, .sui-tour-tooltip, .sui-command-dialog,
|
|
13269
|
+
.sui-tooltip, .sui-popover-content, .sui-dropdown-menu,
|
|
13270
|
+
.sui-context-menu {
|
|
13271
|
+
display: none !important;
|
|
13272
|
+
}
|
|
13273
|
+
|
|
13274
|
+
*, *::before, *::after {
|
|
13275
|
+
box-shadow: none !important;
|
|
13276
|
+
text-shadow: none !important;
|
|
13277
|
+
}
|
|
13278
|
+
|
|
13279
|
+
.sui-card, .sui-stat, .sui-alert, .sui-table {
|
|
13280
|
+
border: 1px solid #ddd !important;
|
|
13281
|
+
break-inside: avoid;
|
|
13282
|
+
}
|
|
13283
|
+
|
|
13284
|
+
.sui-btn {
|
|
13285
|
+
border: 1px solid #999 !important;
|
|
13286
|
+
}
|
|
13287
|
+
|
|
13288
|
+
a[href]::after {
|
|
13289
|
+
content: " (" attr(href) ")";
|
|
13290
|
+
font-size: 0.85em;
|
|
13291
|
+
color: #666;
|
|
13292
|
+
}
|
|
13293
|
+
|
|
13294
|
+
a.sui-btn::after, a.sui-navbar-link::after, a.sui-page-link::after {
|
|
13295
|
+
content: none;
|
|
13296
|
+
}
|
|
13297
|
+
}
|
|
13298
|
+
|
|
13100
13299
|
|