frostglass 1.0.0 → 1.0.1
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 +4 -2
- package/dist-lib/frostglass.css +1 -1
- package/dist-lib/frostglass.es.js +852 -992
- package/dist-lib/frostglass.es.js.map +1 -1
- package/dist-lib/frostglass.umd.js +2 -7
- package/dist-lib/frostglass.umd.js.map +1 -1
- package/package.json +83 -84
- package/dist-lib/vite.svg +0 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ pnpm add frostglass
|
|
|
34
34
|
|
|
35
35
|
**Peer Dependencies:**
|
|
36
36
|
```bash
|
|
37
|
-
npm install react react-dom
|
|
37
|
+
npm install react react-dom
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
## 🚀 Quick Start
|
|
@@ -220,7 +220,6 @@ For non-bundled projects, use via CDN:
|
|
|
220
220
|
<!-- Dependencies -->
|
|
221
221
|
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
|
|
222
222
|
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
|
|
223
|
-
<script src="https://unpkg.com/lucide@latest"></script>
|
|
224
223
|
|
|
225
224
|
<!-- FrostGlass -->
|
|
226
225
|
<link rel="stylesheet" href="https://unpkg.com/frostglass/dist-lib/frostglass.css">
|
|
@@ -229,6 +228,9 @@ For non-bundled projects, use via CDN:
|
|
|
229
228
|
<script>
|
|
230
229
|
const { GlassButton, GlassCard } = window.FrostGlass;
|
|
231
230
|
// Use components with React.createElement()
|
|
231
|
+
|
|
232
|
+
// Toast API (no React integration needed)
|
|
233
|
+
window.FrostGlass.toast.success('Saved!', { title: 'Success' });
|
|
232
234
|
</script>
|
|
233
235
|
```
|
|
234
236
|
|
package/dist-lib/frostglass.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--glass-border: 1px solid rgba(255, 255, 255, .5);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-bg-active: rgba(255, 255, 255, .95);--glass-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03), inset 0 0 0 1px rgba(255, 255, 255, .6);--glass-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04), inset 0 0 0 1px rgba(255, 255, 255, .8);--glass-blur: blur(16px);--glass-radius: 16px}.glass-btn,.glass-tab-trigger,.glass-menu-item,.glass-accordion-header,.glass-pagination-item,.glass-badge,.glass-tag,.glass-rating,.glass-switch-label,.glass-checkbox-container,.glass-radio-container,.glass-carousel-btn,.glass-close-btn,.glass-calendar,.glass-calendar-day,.glass-calendar-nav,.glass-calendar-header,.glass-upload-zone{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--glass-radius)}.glass-interactive{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--glass-radius);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.glass-interactive:hover{background:var(--glass-bg-hover);transform:translateY(-2px);box-shadow:var(--glass-shadow-hover)}.glass-interactive:active{transform:translateY(0);background:var(--glass-bg-active)}.glass-input{width:100%;padding:.8rem 1.2rem;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:12px;font-family:inherit;font-size:1rem;color:var(--color-text);outline:none;transition:all .2s ease;box-shadow:inset 0 2px 4px #00000005}.glass-input:focus{background:#fffc;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.glass-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;animation:fadeIn .2s forwards}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes dropdownEnter{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.glass-animate-enter{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1) forwards}.glass-close-btn{padding:8px;border-radius:50%;cursor:pointer;transition:all .2s ease;color:var(--color-text-dim);display:flex;align-items:center;justify-content:center}.glass-close-btn:hover{background:#0000000d;color:var(--color-accent);transform:rotate(90deg)}@keyframes dropdownExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.glass-dropdown-enter{animation:dropdownEnter .2s cubic-bezier(.2,0,.2,1) forwards}.glass-dropdown-exit{animation:dropdownExit .2s cubic-bezier(.2,0,.2,1) forwards}@keyframes slideInRight{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}.toast-enter{animation:slideInRight .4s cubic-bezier(.2,0,.2,1) forwards}.toast-container{position:fixed;top:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:10px;pointer-events:none;align-items:flex-end}.glass-toast{pointer-events:auto;width:fit-content;min-width:260px;max-width:380px;padding:.75rem 1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);box-shadow:0 4px 20px #00000014;border-radius:50px;display:flex;align-items:center;gap:10px;color:var(--color-text);position:relative;transition:all .3s ease}.glass-toast:hover{transform:translate(-5px);background:#fff}@keyframes gradientFlow{0%{background-position:0% 50%}25%{background-position:50% 100%}50%{background-position:100% 50%}75%{background-position:50% 0%}to{background-position:0% 50%}}.glass-textarea{width:100%;padding:.8rem 1.2rem;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:12px;font-family:inherit;font-size:1rem;color:var(--color-text);outline:none;transition:all .2s ease;box-shadow:inset 0 2px 4px #00000005;resize:vertical;min-height:100px}.glass-textarea:focus{background:#fffc;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.glass-switch-label{position:relative;display:inline-block;width:50px;height:28px}.glass-switch-input{opacity:0;width:0;height:0}.glass-switch-slider{position:absolute;cursor:pointer;inset:0;background-color:#ffffff4d;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:.4s;border-radius:34px;box-shadow:inset 0 2px 4px #0000000d}.glass-switch-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:0 2px 4px #0003}.glass-switch-input:checked+.glass-switch-slider{background:var(--color-primary);border-color:transparent}.glass-switch-input:focus+.glass-switch-slider{box-shadow:0 0 0 3px #3b82f626}.glass-switch-input:checked+.glass-switch-slider:before{transform:translate(20px)}.glass-checkbox-container{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;color:var(--color-text)}.glass-checkbox-input{display:none}.glass-checkbox-checkmark{width:20px;height:20px;background:#fff6;border:1px solid rgba(255,255,255,.4);border-radius:6px;margin-right:10px;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-checkbox-container:hover .glass-checkbox-checkmark{background:#fff9}.glass-checkbox-input:checked+.glass-checkbox-checkmark{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.glass-radio-container{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;color:var(--color-text)}.glass-radio-input{display:none}.glass-radio-circle{width:20px;height:20px;background:#fff6;border:1px solid rgba(255,255,255,.4);border-radius:50%;margin-right:10px;position:relative;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-radio-container:hover .glass-radio-circle{background:#fff9}.glass-radio-input:checked+.glass-radio-circle{border-color:var(--color-primary);background:#fffc}.glass-radio-input:checked+.glass-radio-circle:after{content:"";position:absolute;width:10px;height:10px;background:var(--color-primary);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.glass-slider-container{width:100%}.glass-slider{-webkit-appearance:none;width:100%;height:6px;background:#fff6;border-radius:3px;outline:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);transition:all .2s}.glass-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid rgba(255,255,255,.8);cursor:pointer;box-shadow:0 2px 6px #0000001a;transition:transform .1s}.glass-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 0 4px #ffffff4d}.glass-slider::-webkit-slider-thumb:active{background:var(--color-primary)}.glass-progress-container{width:100%;background:#ffffff4d;border:1px solid rgba(255,255,255,.3);border-radius:10px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-progress-bar{height:100%;background:var(--color-primary);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;border-radius:10px;transition:width .3s ease;animation:progress-stripe 1s linear infinite}@keyframes progress-stripe{0%{background-position:1rem 0}to{background-position:0 0}}.glass-badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:center;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.4);box-shadow:0 2px 5px #0000000d}.glass-tabs-list{display:inline-flex;padding:4px;background:#ffffff4d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;border:1px solid rgba(255,255,255,.2)}.glass-tab-trigger{padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--color-text-dim);background:transparent;border:none;cursor:pointer;transition:all .2s}.glass-tab-trigger:hover{color:var(--color-text);background:#ffffff4d}.glass-tab-trigger[data-state=active]{background:#fff;color:var(--color-primary);box-shadow:0 2px 8px #0000000d}.glass-btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;border-radius:12px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .3s ease;border:none;outline:none;gap:8px;position:relative;overflow:hidden}.glass-btn.primary{background:#ffffff40;border:1px solid rgba(255,255,255,.6);color:var(--color-primary);box-shadow:0 4px 6px #0000000d}.glass-btn.primary:hover{background:#fff6;box-shadow:0 6px 15px #0000001a;transform:translateY(-1px)}.glass-btn.gradient{background:linear-gradient(120deg,#ffe1eb,#d2fafa,#e6dcff,#ffe1eb,#d2fafa);background-size:300% 300%;animation:gradientFlow 15s ease infinite;border:1px solid rgba(255,255,255,.6);color:#475569;text-shadow:none;box-shadow:0 4px 15px #c8d2ff66}.glass-btn.gradient:hover{box-shadow:0 6px 20px #c8d2ff99;transform:translateY(-1px);filter:brightness(1.02)}.glass-btn.secondary{background:#ffffff80;border:1px solid rgba(255,255,255,.4);color:var(--color-text)}.glass-btn.secondary:hover{background:#ffffffa6;border-color:#fff9}.glass-btn.ghost{background:transparent;border:1px solid transparent;color:var(--color-text-dim)}.glass-btn.ghost:hover{background:#fff3;border-color:#ffffff4d;color:var(--color-primary);transform:translateY(-1px)}.glass-table-container{width:100%;overflow-x:auto;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 4px 6px -1px #0000000d}.glass-table{width:100%;border-collapse:collapse;font-size:.95rem;text-align:left}.glass-table thead tr{border-bottom:1px solid rgba(255,255,255,.3);background:#ffffff4d}.glass-table th{padding:1rem 1.5rem;font-weight:600;color:var(--color-text);white-space:nowrap}.glass-table tbody tr{border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s}.glass-table tbody tr:last-child{border-bottom:none}.glass-table tbody tr:hover{background:#ffffff4d}.glass-table td{padding:1rem 1.5rem;color:var(--color-text-dim)}.glass-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff80;border:1px solid rgba(255,255,255,.4);border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none}.glass-avatar img{width:100%;height:100%;object-fit:cover}.glass-avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--color-primary);background:#ffffff4d}.glass-tooltip-trigger{position:relative;display:inline-block}.glass-tooltip-content{position:absolute;z-index:50;padding:.5rem .75rem;font-size:.85rem;line-height:1.4;color:var(--color-text);background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:0 4px 12px #0000001a;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;bottom:100%;left:50%;transform:translate(-50%) translateY(5px);margin-bottom:8px}.glass-tooltip-trigger:hover .glass-tooltip-content{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.glass-alert{position:relative;width:100%;padding:1rem;border-radius:12px;display:flex;gap:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-bottom:1rem;border:1px solid transparent}.glass-alert-title{font-weight:600;margin-bottom:.25rem;color:inherit}.glass-alert-desc{font-size:.9rem;opacity:.9}.glass-skeleton{background:#ffffff4d;border-radius:8px;overflow:hidden;position:relative}.glass-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff4d 20%,#ffffff80 60%,#fff0);animation:shimmer 2s infinite}.glass-upload-zone{width:100%;border:2px dashed rgba(255,255,255,.4);border-radius:16px;padding:2rem;text-align:center;background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .3s ease;cursor:pointer;color:var(--color-text-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.glass-upload-zone:hover,.glass-upload-zone.active{background:#fff6;border-color:var(--color-primary);color:var(--color-primary)}.glass-upload-file-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.glass-upload-file-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#fff6;border:1px solid rgba(255,255,255,.3);border-radius:8px;font-size:.9rem}.glass-calendar{width:100%;max-width:320px;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:16px;padding:1rem;box-shadow:0 4px 6px -1px #0000000d}.glass-calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem}.glass-calendar-title{font-weight:600;color:var(--color-text)}.glass-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.glass-calendar-day-header{font-size:.8rem;color:var(--color-text-dim);padding:.5rem 0}.glass-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.9rem;cursor:pointer;transition:all .2s;color:var(--color-text)}.glass-calendar-day:hover:not(.disabled):not(.selected){background:#ffffff80}.glass-calendar-day.selected{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0000001a}.glass-calendar-day.today{border:1px solid var(--color-primary);color:var(--color-primary)}.glass-calendar-day.today.selected{color:#fff}.glass-calendar-day.disabled{opacity:.3;pointer-events:none}.glass-calendar-day.empty{pointer-events:none}@keyframes shimmer{to{transform:translate(100%)}}.glass-pagination{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.glass-pagination-item{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;border-radius:8px;background:#ffffff4d;border:1px solid rgba(255,255,255,.3);color:var(--color-text);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.glass-pagination-item:hover:not(.disabled){background:#fff9}.glass-pagination-item.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px #0000001a}.glass-pagination-item.disabled{opacity:.4;cursor:not-allowed}.glass-drawer-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;animation:fadeIn .3s forwards;overflow:hidden}.glass-drawer-content{position:fixed;top:0;bottom:0;width:300px;max-width:80%;background:#ffffffe6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 0 40px #0000001a;z-index:1001;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.6)}.glass-drawer-right{right:0;border-left:1px solid rgba(255,255,255,.5);border-right:none;transform:translate(100%);animation:slideInRight .3s cubic-bezier(.2,0,.2,1) forwards}.glass-drawer-left{left:0;border-right:1px solid rgba(255,255,255,.5);transform:translate(-100%);animation:slideInLeft .3s cubic-bezier(.2,0,.2,1) forwards}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.glass-drawer-header{padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center}.glass-drawer-body{flex:1;overflow-y:auto;padding:1.5rem}.glass-menu{display:flex;flex-direction:column;gap:4px;width:100%}.glass-menu-item{display:flex;align-items:center;padding:.75rem 1rem;border-radius:8px;color:var(--color-text-dim);cursor:pointer;transition:all .2s;text-decoration:none}.glass-menu-item:hover{background:#fff6;color:var(--color-text)}.glass-menu-item.active{background:#fff9;color:var(--color-primary);font-weight:500}.glass-accordion-item{border-bottom:1px solid rgba(0,0,0,.05)}.glass-accordion-item:last-child{border-bottom:none}.glass-accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 0;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:500;color:var(--color-text);transition:color .2s}.glass-accordion-header:hover{color:var(--color-primary)}.glass-accordion-content-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.glass-accordion-content-wrapper.expanded{grid-template-rows:1fr}.glass-accordion-content{overflow:hidden}.glass-accordion-inner{padding-bottom:1rem;opacity:0;transition:opacity .3s ease}.glass-accordion-content-wrapper.expanded .glass-accordion-inner{opacity:1}.glass-timeline{position:relative;padding-left:20px}.glass-timeline:before{content:"";position:absolute;left:6px;top:5px;bottom:5px;width:2px;background:#0000000d}.glass-timeline-item{position:relative;margin-bottom:1.5rem;padding-left:1.5rem}.glass-timeline-item:last-child{margin-bottom:0}.glass-timeline-dot{position:absolute;left:-20px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--color-primary);z-index:1}.glass-carousel{position:relative;width:100%;overflow:hidden;border-radius:16px}.glass-carousel-track{display:flex;transition:transform .5s ease-in-out;width:100%}.glass-carousel-slide{min-width:100%;height:100%;display:flex;align-items:center;justify-content:center}.glass-carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.4);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10;color:var(--color-text)}.glass-carousel-btn:hover{background:#fff9;color:var(--color-primary)}.glass-carousel-btn.prev{left:10px}.glass-carousel-btn.next{right:10px}.glass-popover-trigger{display:inline-block}.glass-popover-content{position:absolute;z-index:50;min-width:200px;padding:1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5);border-radius:12px;box-shadow:0 10px 25px #0000001a;opacity:0;transform:scale(.95);visibility:hidden;transition:all .2s cubic-bezier(.16,1,.3,1)}.glass-popover-content.open{opacity:1;transform:scale(1);visibility:visible}.glass-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.8rem;line-height:1.4;background:#fff6;border:1px solid rgba(255,255,255,.3);color:var(--color-text);transition:all .2s}.glass-tag .close-icon{margin-left:4px;cursor:pointer;opacity:.6}.glass-tag .close-icon:hover{opacity:1}.glass-spinner{border:2px solid rgba(0,0,0,.1);border-left-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.glass-rating{display:inline-flex;gap:4px}.glass-rating-star{cursor:pointer;color:#e2e8f0;transition:color .2s}.glass-rating-star.filled{color:#f59e0b}.glass-rating-star:hover,.glass-rating-star.hover{color:#fbbf24}
|
|
1
|
+
:root{--glass-border: 1px solid rgba(255, 255, 255, .5);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-bg-active: rgba(255, 255, 255, .95);--glass-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03), inset 0 0 0 1px rgba(255, 255, 255, .6);--glass-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04), inset 0 0 0 1px rgba(255, 255, 255, .8);--glass-blur: blur(16px);--glass-radius: 16px;--color-text: rgba(15, 23, 42, .92);--color-text-dim: rgba(15, 23, 42, .65);--color-primary: #3b82f6;--color-accent: #ef4444}.glass-btn,.glass-tab-trigger,.glass-menu-item,.glass-accordion-header,.glass-pagination-item,.glass-badge,.glass-tag,.glass-rating,.glass-switch-label,.glass-checkbox-container,.glass-radio-container,.glass-carousel-btn,.glass-close-btn,.glass-calendar,.glass-calendar-day,.glass-calendar-nav,.glass-calendar-header,.glass-upload-zone{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--glass-radius)}.glass-interactive{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--glass-radius);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.glass-interactive:hover{background:var(--glass-bg-hover);transform:translateY(-2px);box-shadow:var(--glass-shadow-hover)}.glass-interactive:active{transform:translateY(0);background:var(--glass-bg-active)}.glass-input{width:100%;padding:.8rem 1.2rem;background:#ffffff8c;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(0,0,0,.08);border-radius:12px;font-family:inherit;font-size:1rem;color:var(--color-text);outline:none;transition:all .2s ease;box-shadow:inset 0 2px 4px #00000005,inset 0 0 0 1px #ffffff40}.glass-input::placeholder{color:var(--color-text-dim);opacity:.75}.glass-input:hover:not(:focus){background:#ffffffad;border-color:#0000001f}.glass-input:focus{background:#fffc;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f62e,inset 0 2px 4px #00000005}.glass-input:disabled{opacity:.6;cursor:not-allowed}.glass-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;animation:fadeIn .2s forwards}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes dropdownEnter{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.glass-animate-enter{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1) forwards}.glass-close-btn{padding:8px;border-radius:50%;cursor:pointer;transition:all .2s ease;color:var(--color-text-dim);display:flex;align-items:center;justify-content:center}.glass-close-btn:hover{background:#0000000d;color:var(--color-accent);transform:rotate(90deg)}@keyframes dropdownExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.glass-dropdown-enter{animation:dropdownEnter .2s cubic-bezier(.2,0,.2,1) forwards}.glass-dropdown-exit{animation:dropdownExit .2s cubic-bezier(.2,0,.2,1) forwards}@keyframes slideInRight{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(120%);opacity:0}}.toast-enter{animation:slideInRight .4s cubic-bezier(.2,0,.2,1) forwards}.toast-exit{animation:slideOutRight .25s cubic-bezier(.2,0,.2,1) forwards}.toast-container{position:fixed;top:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:10px;pointer-events:none;align-items:flex-end}.glass-toast{pointer-events:auto;width:fit-content;min-width:260px;max-width:380px;padding:.75rem 1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);box-shadow:0 4px 20px #00000014;border-radius:50px;display:flex;align-items:center;gap:10px;color:var(--color-text);position:relative;transition:all .3s ease;will-change:transform,opacity}.glass-toast-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;background:#0000000a;flex-shrink:0}.glass-toast-content{display:flex;flex-direction:column;gap:2px;min-width:0}.glass-toast-title{font-weight:600;font-size:.92rem;line-height:1.2}.glass-toast-message{font-size:.88rem;color:var(--color-text-dim);line-height:1.25}.glass-toast-close{appearance:none;border:none;background:transparent;color:var(--color-text-dim);cursor:pointer;padding:4px 8px;line-height:1;border-radius:9999px;flex-shrink:0;transition:all .2s ease}.glass-toast-close:hover{background:#0000000f;color:var(--color-text)}.glass-toast--success{border-color:#10b98159}.glass-toast--success .glass-toast-icon{color:#10b981;background:#10b9811f}.glass-toast--error{border-color:#ef444459}.glass-toast--error .glass-toast-icon{color:#ef4444;background:#ef44441f}.glass-toast--warning{border-color:#f59e0b59}.glass-toast--warning .glass-toast-icon{color:#f59e0b;background:#f59e0b1f}.glass-toast--info{border-color:#3b82f659}.glass-toast--info .glass-toast-icon{color:#3b82f6;background:#3b82f61f}.glass-toast:hover{transform:translate(-5px);background:#fff}@keyframes gradientFlow{0%{background-position:0% 50%}25%{background-position:50% 100%}50%{background-position:100% 50%}75%{background-position:50% 0%}to{background-position:0% 50%}}.glass-textarea{width:100%;padding:.8rem 1.2rem;background:#ffffff8c;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(0,0,0,.08);border-radius:12px;font-family:inherit;font-size:1rem;color:var(--color-text);outline:none;transition:all .2s ease;box-shadow:inset 0 2px 4px #00000005,inset 0 0 0 1px #ffffff40;resize:vertical;min-height:100px}.glass-textarea::placeholder{color:var(--color-text-dim);opacity:.75}.glass-textarea:hover:not(:focus){background:#ffffffad;border-color:#0000001f}.glass-textarea:focus{background:#fffc;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f62e,inset 0 2px 4px #00000005}.glass-textarea:disabled{opacity:.6;cursor:not-allowed}.glass-switch-label{position:relative;display:inline-block;width:50px;height:28px}.glass-switch-input{opacity:0;width:0;height:0}.glass-switch-slider{position:absolute;cursor:pointer;inset:0;background-color:#ffffff4d;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:.4s;border-radius:34px;box-shadow:inset 0 2px 4px #0000000d}.glass-switch-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:0 2px 4px #0003}.glass-switch-input:checked+.glass-switch-slider{background:var(--color-primary);border-color:transparent}.glass-switch-input:focus+.glass-switch-slider{box-shadow:0 0 0 3px #3b82f626}.glass-switch-input:checked+.glass-switch-slider:before{transform:translate(20px)}.glass-checkbox-container{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;color:var(--color-text)}.glass-checkbox-input{display:none}.glass-checkbox-checkmark{width:20px;height:20px;background:#fff6;border:1px solid rgba(255,255,255,.4);border-radius:6px;margin-right:10px;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-checkbox-container:hover .glass-checkbox-checkmark{background:#fff9}.glass-checkbox-input:checked+.glass-checkbox-checkmark{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.glass-radio-container{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem;color:var(--color-text)}.glass-radio-input{display:none}.glass-radio-circle{width:20px;height:20px;background:#fff6;border:1px solid rgba(255,255,255,.4);border-radius:50%;margin-right:10px;position:relative;transition:all .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-radio-container:hover .glass-radio-circle{background:#fff9}.glass-radio-input:checked+.glass-radio-circle{border-color:var(--color-primary);background:#fffc}.glass-radio-input:checked+.glass-radio-circle:after{content:"";position:absolute;width:10px;height:10px;background:var(--color-primary);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.glass-slider-container{width:100%}.glass-slider{-webkit-appearance:none;width:100%;height:6px;background:#fff6;border-radius:3px;outline:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);transition:all .2s}.glass-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid rgba(255,255,255,.8);cursor:pointer;box-shadow:0 2px 6px #0000001a;transition:transform .1s}.glass-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 0 4px #ffffff4d}.glass-slider::-webkit-slider-thumb:active{background:var(--color-primary)}.glass-progress-container{width:100%;background:#ffffff4d;border:1px solid rgba(255,255,255,.3);border-radius:10px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.glass-progress-bar{height:100%;background:var(--color-primary);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;border-radius:10px;transition:width .3s ease;animation:progress-stripe 1s linear infinite}@keyframes progress-stripe{0%{background-position:1rem 0}to{background-position:0 0}}.glass-badge{display:inline-flex;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:center;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.4);box-shadow:0 2px 5px #0000000d}.glass-tabs-list{display:inline-flex;padding:4px;gap:4px;background:#ffffff8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;border:1px solid rgba(255,255,255,.35);box-shadow:0 10px 24px #00000014,inset 0 0 0 1px #ffffff59;max-width:100%;flex-wrap:wrap}.glass-tab-trigger{padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--color-text-dim);background:#fff0;border:none;cursor:pointer;transition:all .2s;position:relative}.glass-tab-trigger:hover{color:var(--color-text);background:#ffffff73}.glass-tab-trigger[data-state=active]{background:#ffffffeb;color:var(--color-primary);box-shadow:0 6px 16px #0000001a}.glass-tab-trigger[data-state=active]:after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;border-radius:9999px;background:var(--color-primary);opacity:.85}.glass-tab-trigger:focus-visible{outline:3px solid rgba(59,130,246,.25);outline-offset:2px}.glass-btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.2rem;border-radius:12px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .3s ease;border:none;outline:none;gap:8px;position:relative;overflow:hidden;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.glass-btn:focus-visible{outline:3px solid rgba(59,130,246,.25);outline-offset:2px}.glass-btn:disabled{cursor:not-allowed;transform:none!important;filter:none!important;opacity:.6}.glass-btn.primary{background:#ffffff52;border:1px solid rgba(255,255,255,.6);color:var(--color-primary);box-shadow:0 4px 6px #0000000d}.glass-btn.primary:hover{background:#fff6;box-shadow:0 6px 15px #0000001a;transform:translateY(-1px)}.glass-btn.gradient{background:linear-gradient(120deg,#ffe1eb,#d2fafa,#e6dcff,#ffe1eb,#d2fafa);background-size:300% 300%;animation:gradientFlow 15s ease infinite;border:1px solid rgba(255,255,255,.6);color:#475569;text-shadow:none;box-shadow:0 4px 15px #c8d2ff66}.glass-btn.gradient:disabled{animation:none;background:#ffffff59;border-color:#ffffff73;color:var(--color-text-dim);box-shadow:none}.glass-btn.gradient:hover{box-shadow:0 6px 20px #c8d2ff99;transform:translateY(-1px);filter:brightness(1.02)}.glass-btn.secondary{background:#ffffff80;border:1px solid rgba(255,255,255,.4);color:var(--color-text)}.glass-btn.secondary:hover{background:#ffffffa6;border-color:#fff9}.glass-btn.ghost{background:transparent;border:1px solid transparent;color:var(--color-text-dim)}.glass-btn.ghost:hover{background:#fff3;border-color:#ffffff4d;color:var(--color-primary);transform:translateY(-1px)}.glass-table-container{width:100%;overflow-x:auto;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 4px 6px -1px #0000000d}.glass-table{width:100%;border-collapse:collapse;font-size:.95rem;text-align:left}.glass-table thead tr{border-bottom:1px solid rgba(0,0,0,.85);background:#000000d9}.glass-table th{padding:1rem 1.5rem;font-weight:600;color:#ffffffeb;white-space:nowrap}.glass-table tbody tr{border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s}.glass-table tbody tr:last-child{border-bottom:none}.glass-table tbody tr:hover{background:#ffffff4d}.glass-table td{padding:1rem 1.5rem;color:var(--color-text-dim)}.glass-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff80;border:1px solid rgba(255,255,255,.4);border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none}.glass-avatar img{width:100%;height:100%;object-fit:cover}.glass-avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--color-primary);background:#ffffff4d}.glass-tooltip-trigger{position:relative;display:inline-block}.glass-tooltip-content{position:absolute;z-index:50;padding:.5rem .75rem;font-size:.85rem;line-height:1.4;color:var(--color-text);background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:0 4px 12px #0000001a;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;bottom:100%;left:50%;transform:translate(-50%) translateY(5px);margin-bottom:8px}.glass-tooltip-trigger:hover .glass-tooltip-content{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.glass-alert{position:relative;width:100%;padding:1rem;border-radius:12px;display:flex;gap:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-bottom:1rem;border:1px solid transparent}.glass-alert-title{font-weight:600;margin-bottom:.25rem;color:inherit}.glass-alert-desc{font-size:.9rem;opacity:.9}.glass-skeleton{background:#ffffff4d;border-radius:8px;overflow:hidden;position:relative}.glass-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff4d 20%,#ffffff80 60%,#fff0);animation:shimmer 2s infinite}.glass-upload-zone{width:100%;border:2px dashed rgba(255,255,255,.4);border-radius:16px;padding:2rem;text-align:center;background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .3s ease;cursor:pointer;color:var(--color-text-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.glass-upload-zone:hover,.glass-upload-zone.active{background:#fff6;border-color:var(--color-primary);color:var(--color-primary)}.glass-upload-file-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.glass-upload-file-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#fff6;border:1px solid rgba(255,255,255,.3);border-radius:8px;font-size:.9rem}.glass-calendar{width:100%;max-width:320px;background:#fff6;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.3);border-radius:16px;padding:1rem;box-shadow:0 4px 6px -1px #0000000d}.glass-calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem}.glass-calendar-title{font-weight:600;color:var(--color-text)}.glass-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.glass-calendar-day-header{font-size:.8rem;color:var(--color-text-dim);padding:.5rem 0}.glass-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.9rem;cursor:pointer;transition:all .2s;color:var(--color-text)}.glass-calendar-day:hover:not(.disabled):not(.selected){background:#ffffff80}.glass-calendar-day.selected{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0000001a}.glass-calendar-day.today{border:1px solid var(--color-primary);color:var(--color-primary)}.glass-calendar-day.today.selected{color:#fff}.glass-calendar-day.disabled{opacity:.3;pointer-events:none}.glass-calendar-day.empty{pointer-events:none}@keyframes shimmer{to{transform:translate(100%)}}.glass-pagination{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.glass-pagination-item{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;border-radius:8px;background:#ffffff4d;border:1px solid rgba(255,255,255,.3);color:var(--color-text);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.glass-pagination-item:hover:not(.disabled){background:#fff9}.glass-pagination-item.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px #0000001a}.glass-pagination-item.disabled{opacity:.4;cursor:not-allowed}.glass-drawer-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;animation:fadeIn .3s forwards;overflow:hidden}.glass-drawer-content{position:fixed;top:0;bottom:0;width:300px;max-width:80%;background:#ffffffe6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 0 40px #0000001a;z-index:1001;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.6)}.glass-drawer-right{right:0;border-left:1px solid rgba(255,255,255,.5);border-right:none;transform:translate(100%);animation:slideInRight .3s cubic-bezier(.2,0,.2,1) forwards}.glass-drawer-left{left:0;border-right:1px solid rgba(255,255,255,.5);transform:translate(-100%);animation:slideInLeft .3s cubic-bezier(.2,0,.2,1) forwards}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.glass-drawer-header{padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center}.glass-drawer-body{flex:1;overflow-y:auto;padding:1.5rem}.glass-menu{display:flex;flex-direction:column;gap:4px;width:100%}.glass-menu-item{display:flex;align-items:center;padding:.75rem 1rem;border-radius:8px;color:var(--color-text-dim);cursor:pointer;transition:all .2s;text-decoration:none}.glass-menu-item:hover{background:#fff6;color:var(--color-text)}.glass-menu-item.active{background:#fff9;color:var(--color-primary);font-weight:500}.glass-accordion-item{border-bottom:1px solid rgba(0,0,0,.05)}.glass-accordion-item:last-child{border-bottom:none}.glass-accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 0;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:500;color:var(--color-text);transition:color .2s}.glass-accordion-header:hover{color:var(--color-primary)}.glass-accordion-content-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.glass-accordion-content-wrapper.expanded{grid-template-rows:1fr}.glass-accordion-content{overflow:hidden}.glass-accordion-inner{padding-bottom:1rem;opacity:0;transition:opacity .3s ease}.glass-accordion-content-wrapper.expanded .glass-accordion-inner{opacity:1}.glass-timeline{position:relative;padding-left:20px}.glass-timeline:before{content:"";position:absolute;left:6px;top:5px;bottom:5px;width:2px;background:#0000000d}.glass-timeline-item{position:relative;margin-bottom:1.5rem;padding-left:1.5rem}.glass-timeline-item:last-child{margin-bottom:0}.glass-timeline-dot{position:absolute;left:-20px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--color-primary);z-index:1}.glass-carousel{position:relative;width:100%;overflow:hidden;border-radius:16px}.glass-carousel-track{display:flex;transition:transform .5s ease-in-out;width:100%}.glass-carousel-slide{min-width:100%;height:100%;display:flex;align-items:center;justify-content:center}.glass-carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.4);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10;color:var(--color-text)}.glass-carousel-btn:hover{background:#fff9;color:var(--color-primary)}.glass-carousel-btn.prev{left:10px}.glass-carousel-btn.next{right:10px}.glass-popover-trigger{display:inline-block}.glass-popover-content{position:absolute;z-index:50;min-width:200px;padding:1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5);border-radius:12px;box-shadow:0 10px 25px #0000001a;opacity:0;transform:scale(.95);visibility:hidden;transition:all .2s cubic-bezier(.16,1,.3,1)}.glass-popover-content.open{opacity:1;transform:scale(1);visibility:visible}.glass-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.8rem;line-height:1.4;background:#fff6;border:1px solid rgba(255,255,255,.3);color:var(--color-text);transition:all .2s}.glass-tag .close-icon{margin-left:4px;cursor:pointer;opacity:.6}.glass-tag .close-icon:hover{opacity:1}.glass-spinner{border:2px solid rgba(0,0,0,.1);border-left-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.glass-rating{display:inline-flex;gap:4px}.glass-rating-star{cursor:pointer;color:#e2e8f0;transition:color .2s}.glass-rating-star.filled{color:#f59e0b}.glass-rating-star:hover,.glass-rating-star.hover{color:#fbbf24}
|