glass-studio-ui-pro 1.1.4 → 1.1.6
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 +30 -28
- package/dist/components/CgIcon.vue.d.ts +65 -0
- package/dist/components/CgNotification.vue.d.ts +32 -0
- package/dist/components/CmIcon.vue.d.ts +61 -0
- package/dist/core/license.d.ts +1 -0
- package/dist/index.d.ts +10 -7
- package/dist/liquid-glass-ui.es.js +648 -265
- package/dist/liquid-glass-ui.umd.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +6 -4
- package/src/lib/styles/_variables.scss +1 -1
- package/src/lib/styles/components/_button.scss +2 -2
- package/src/lib/styles/components/_card.scss +23 -11
- package/src/lib/styles/main.scss +21 -20
- /package/dist/components/{CmButton.vue.d.ts → CgButton.vue.d.ts} +0 -0
- /package/dist/components/{CmCard.vue.d.ts → CgCard.vue.d.ts} +0 -0
- /package/dist/components/{CmCheckbox.vue.d.ts → CgCheckbox.vue.d.ts} +0 -0
- /package/dist/components/{CmFilters.vue.d.ts → CgFilters.vue.d.ts} +0 -0
- /package/dist/components/{CmModal.vue.d.ts → CgModal.vue.d.ts} +0 -0
- /package/dist/components/{CmToolbar.vue.d.ts → CgToolbar.vue.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
# 💎 Glass Studio UI Pro
|
|
1
|
+
# 💎 Glass Studio UI Pro (Cg View Studio)
|
|
2
2
|
|
|
3
|
-
**Premium Liquid Glass UI Library for Vue 3**
|
|
3
|
+
**Premium Liquid Glass UI Library (Crystal Glass) for Vue 3**
|
|
4
4
|
|
|
5
5
|
> [!IMPORTANT]
|
|
6
|
-
> **
|
|
7
|
-
>
|
|
6
|
+
> **HỆ THỐNG ĐANG TRONG GIAI ĐOẠN BETA**: Đã mở dùng thử miễn phí đến ngày **01/05/2026**.
|
|
7
|
+
> Sau thời gian này, các tính năng Pro sẽ yêu cầu Giấy phép (License Key) chính thức.
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|
|
|
11
|
-
`glass-studio-ui-pro` is a high-performance Vue 3 UI library specialized in advanced Glassmorphism effects. It features real-time Liquid Distortion filters, multi-layered reflection systems, and professional-grade presets for crafting state-of-the-art premium interfaces.
|
|
11
|
+
`glass-studio-ui-pro` is a high-performance Vue 3 UI library specialized in advanced Glassmorphism effects. It features real-time Liquid Distortion filters, multi-layered reflection systems, and professional-grade presets for crafting state-of-the-art premium interfaces with the new **Cg (Crystal Glass)** design system.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -54,17 +54,17 @@ app.mount("#app");
|
|
|
54
54
|
|
|
55
55
|
### 3. Global SVG Filters (`App.vue`)
|
|
56
56
|
|
|
57
|
-
The liquid distortion engine requires the `
|
|
57
|
+
The liquid distortion engine requires the `CgFilters` component to be present at the root level (usually in `App.vue`):
|
|
58
58
|
|
|
59
59
|
```vue
|
|
60
60
|
<script setup>
|
|
61
|
-
import {
|
|
61
|
+
import { CgFilters } from "glass-studio-ui-pro";
|
|
62
62
|
</script>
|
|
63
63
|
|
|
64
64
|
<template>
|
|
65
65
|
<div id="app">
|
|
66
66
|
<router-view />
|
|
67
|
-
<
|
|
67
|
+
<CgFilters />
|
|
68
68
|
<!-- The core engine for glass distortion effects -->
|
|
69
69
|
</div>
|
|
70
70
|
</template>
|
|
@@ -79,53 +79,54 @@ To purchase a PRO license and unlock all premium glass effects, please visit [ht
|
|
|
79
79
|
1. **Register an account**: Create your developer account on the platform.
|
|
80
80
|
2. **Purchase**: Navigate to the **NPM Libraries** section, select **Glass Studio UI Pro**, and complete the payment process.
|
|
81
81
|
3. **Get your Key**: After successful payment, you will receive a unique `licenseKey`.
|
|
82
|
+
4. **Renewal**: If your license expires, you can renew it directly on the dashboard to immediately restore all premium effects.
|
|
82
83
|
|
|
83
84
|
---
|
|
84
85
|
|
|
85
86
|
## 🎨 Component Usage
|
|
86
87
|
|
|
87
|
-
###
|
|
88
|
+
### CgCard (Glass Surface)
|
|
88
89
|
A versatile container with backdrop blur and texture.
|
|
89
90
|
|
|
90
91
|
```vue
|
|
91
92
|
<template>
|
|
92
|
-
<
|
|
93
|
+
<CgCard type="heavy-frost" shadow="mist" distortion="wavy">
|
|
93
94
|
<h3>Liquid Glass Performance</h3>
|
|
94
95
|
<p>Content rendered with premium glass optics.</p>
|
|
95
|
-
</
|
|
96
|
+
</CgCard>
|
|
96
97
|
</template>
|
|
97
98
|
```
|
|
98
99
|
|
|
99
|
-
###
|
|
100
|
+
### CgButton (Glass Controls)
|
|
100
101
|
Interactive buttons with material presets and liquid glow.
|
|
101
102
|
|
|
102
103
|
```vue
|
|
103
104
|
<template>
|
|
104
|
-
<
|
|
105
|
+
<CgButton variant="primary" glow :blur="20" distortion="frosted">
|
|
105
106
|
Explore Pro
|
|
106
|
-
</
|
|
107
|
+
</CgButton>
|
|
107
108
|
</template>
|
|
108
109
|
```
|
|
109
110
|
|
|
110
|
-
###
|
|
111
|
+
### CgCheckbox (Liquid Selection)
|
|
111
112
|
Neon-lit checkboxes with animated state transitions.
|
|
112
113
|
|
|
113
114
|
```vue
|
|
114
115
|
<template>
|
|
115
|
-
<
|
|
116
|
+
<CgCheckbox v-model="isChecked" label="Enable Reflections" />
|
|
116
117
|
</template>
|
|
117
118
|
```
|
|
118
119
|
|
|
119
|
-
###
|
|
120
|
+
### CgToolbar (Adaptive Navigation)
|
|
120
121
|
Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
121
122
|
|
|
122
123
|
```vue
|
|
123
124
|
<template>
|
|
124
|
-
<
|
|
125
|
+
<CgToolbar width="floating" type="fine-frost" shadow="reflex">
|
|
125
126
|
<template #left><span>Logo</span></template>
|
|
126
|
-
<
|
|
127
|
-
<template #right><
|
|
128
|
-
</
|
|
127
|
+
<CgButton variant="ghost">Home</CgButton>
|
|
128
|
+
<template #right><CgButton variant="primary">Login</CgButton></template>
|
|
129
|
+
</CgToolbar>
|
|
129
130
|
</template>
|
|
130
131
|
```
|
|
131
132
|
|
|
@@ -133,7 +134,7 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
133
134
|
|
|
134
135
|
## 📖 API Reference
|
|
135
136
|
|
|
136
|
-
###
|
|
137
|
+
### CgCard Props
|
|
137
138
|
|
|
138
139
|
| Prop | Type | Default | Description |
|
|
139
140
|
| :--- | :--- | :--- | :--- |
|
|
@@ -143,7 +144,7 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
143
144
|
| `distortion`| `string` | `'none'` | Filter style: `wavy`, `frosted`, `grain`, `ripple`, `mist`. |
|
|
144
145
|
| `shadow` | `string` | `'none'` | Shadow style: `mist`, `reflex`. |
|
|
145
146
|
|
|
146
|
-
###
|
|
147
|
+
### CgButton Props
|
|
147
148
|
|
|
148
149
|
| Prop | Type | Default | Description |
|
|
149
150
|
| :--- | :--- | :--- | :--- |
|
|
@@ -153,7 +154,7 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
153
154
|
| `blur` | `number` | `12` | Backdrop blur intensity. |
|
|
154
155
|
| `active` | `boolean` | `false` | Visual active state toggle. |
|
|
155
156
|
|
|
156
|
-
###
|
|
157
|
+
### CgCheckbox Props
|
|
157
158
|
|
|
158
159
|
| Prop | Type | Default | Description |
|
|
159
160
|
| :--- | :--- | :--- | :--- |
|
|
@@ -161,7 +162,7 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
161
162
|
| `label` | `string` | `''` | Optional label text. |
|
|
162
163
|
| `disabled` | `boolean` | `false` | Prevents user interaction. |
|
|
163
164
|
|
|
164
|
-
###
|
|
165
|
+
### CgModal Props
|
|
165
166
|
|
|
166
167
|
| Prop | Type | Default | Description |
|
|
167
168
|
| :--- | :--- | :--- | :--- |
|
|
@@ -170,7 +171,7 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
170
171
|
| `type` | `Preset` | `'heavy-frost'` | Modal material style. |
|
|
171
172
|
| `shadow` | `string` | `'reflex'` | Surface reflection mode. |
|
|
172
173
|
|
|
173
|
-
###
|
|
174
|
+
### CgToolbar Props
|
|
174
175
|
|
|
175
176
|
| Prop | Type | Default | Description |
|
|
176
177
|
| :--- | :--- | :--- | :--- |
|
|
@@ -186,7 +187,8 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
|
|
|
186
187
|
This is the **Pro** version of the library. If a valid License Key is not detected or has expired:
|
|
187
188
|
|
|
188
189
|
- Components will enter **Secure Lock** state (Blackout/Restricted UI).
|
|
189
|
-
-
|
|
190
|
+
- Interactive elements will show a **"LICENSE_REQUIRED"** message.
|
|
191
|
+
- Console warnings will be triggered (e.g., **"SECURITY_ALERT: Components Locked"**).
|
|
190
192
|
- Advanced SVG Filters and material presets will be disabled to protect intellectual property.
|
|
191
193
|
|
|
192
194
|
You can check the current license status programmatically:
|
|
@@ -204,4 +206,4 @@ if (!status.isValid) {
|
|
|
204
206
|
|
|
205
207
|
## 📄 License
|
|
206
208
|
|
|
207
|
-
(C) 2026 Glass Studio &
|
|
209
|
+
(C) 2026 Glass Studio & CG Team. All rights reserved. Intellectual Property under private commercial license.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CgIcon - Liquid Glass 3D Icon Component
|
|
3
|
+
* Soap-bubble aesthetic with smooth directional light reflection,
|
|
4
|
+
* organic gooey physics, and animated iridescence.
|
|
5
|
+
*/
|
|
6
|
+
type LiquidMode = 'pulse' | 'splash' | 'bubble' | 'pop';
|
|
7
|
+
interface Props {
|
|
8
|
+
/** The icon component to render */
|
|
9
|
+
icon?: any;
|
|
10
|
+
/** Base size of the liquid body (container) */
|
|
11
|
+
size?: number;
|
|
12
|
+
/** Size of the icon symbol itself */
|
|
13
|
+
symbolSize?: number;
|
|
14
|
+
/** Base color name or hex (e.g. 'brand', 'red', '#ff0000') */
|
|
15
|
+
color?: string;
|
|
16
|
+
/** Shade weight (100-900) */
|
|
17
|
+
weight?: number | string;
|
|
18
|
+
/** Symbol opacity */
|
|
19
|
+
iconOpacity?: number;
|
|
20
|
+
/** Enable liquid physics */
|
|
21
|
+
liquid?: boolean;
|
|
22
|
+
/** Animation mode */
|
|
23
|
+
liquidMode?: LiquidMode;
|
|
24
|
+
/** Separate color for liquid body */
|
|
25
|
+
liquidColor?: string;
|
|
26
|
+
/** Liquid body weight */
|
|
27
|
+
liquidWeight?: number | string;
|
|
28
|
+
/** Liquid body opacity */
|
|
29
|
+
liquidOpacity?: number;
|
|
30
|
+
/** Enable environment glow */
|
|
31
|
+
glow?: boolean;
|
|
32
|
+
/** Intensity of the glow */
|
|
33
|
+
glowIntensity?: number;
|
|
34
|
+
/** Force active animation state */
|
|
35
|
+
active?: boolean;
|
|
36
|
+
}
|
|
37
|
+
declare function __VLS_template(): {
|
|
38
|
+
attrs: Partial<{}>;
|
|
39
|
+
slots: {
|
|
40
|
+
default?(_: {}): any;
|
|
41
|
+
};
|
|
42
|
+
refs: {};
|
|
43
|
+
rootEl: HTMLDivElement;
|
|
44
|
+
};
|
|
45
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
46
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
47
|
+
size: number;
|
|
48
|
+
active: boolean;
|
|
49
|
+
glow: boolean;
|
|
50
|
+
color: string;
|
|
51
|
+
symbolSize: number;
|
|
52
|
+
weight: number | string;
|
|
53
|
+
iconOpacity: number;
|
|
54
|
+
liquid: boolean;
|
|
55
|
+
liquidMode: LiquidMode;
|
|
56
|
+
liquidOpacity: number;
|
|
57
|
+
glowIntensity: number;
|
|
58
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
59
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
60
|
+
export default _default;
|
|
61
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
62
|
+
new (): {
|
|
63
|
+
$slots: S;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
type?: 'info' | 'success' | 'warning' | 'error';
|
|
3
|
+
title?: string;
|
|
4
|
+
message?: string;
|
|
5
|
+
duration?: number;
|
|
6
|
+
closable?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare function __VLS_template(): {
|
|
9
|
+
attrs: Partial<{}>;
|
|
10
|
+
slots: {
|
|
11
|
+
default?(_: {}): any;
|
|
12
|
+
};
|
|
13
|
+
refs: {};
|
|
14
|
+
rootEl: any;
|
|
15
|
+
};
|
|
16
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
17
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {
|
|
18
|
+
close: () => void;
|
|
19
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
20
|
+
type: "info" | "success" | "warning" | "error";
|
|
21
|
+
title: string;
|
|
22
|
+
duration: number;
|
|
23
|
+
message: string;
|
|
24
|
+
closable: boolean;
|
|
25
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
27
|
+
export default _default;
|
|
28
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
29
|
+
new (): {
|
|
30
|
+
$slots: S;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CmIcon - Liquid Bubble Icon Component
|
|
3
|
+
* Soap-bubble aesthetic with animated specular highlights,
|
|
4
|
+
* organic morphing shape, and burst animation sequence.
|
|
5
|
+
*/
|
|
6
|
+
type LiquidMode = 'idle' | 'pulse' | 'pop' | 'bubble';
|
|
7
|
+
interface Props {
|
|
8
|
+
/** The icon component to render */
|
|
9
|
+
icon?: any;
|
|
10
|
+
/** Base size of the liquid body */
|
|
11
|
+
size?: number;
|
|
12
|
+
/** Size of the icon symbol */
|
|
13
|
+
symbolSize?: number;
|
|
14
|
+
/** Color theme */
|
|
15
|
+
color?: string;
|
|
16
|
+
/** Shade weight */
|
|
17
|
+
weight?: number | string;
|
|
18
|
+
/** Enable liquid physics */
|
|
19
|
+
liquid?: boolean;
|
|
20
|
+
/** Animation mode */
|
|
21
|
+
liquidMode?: LiquidMode;
|
|
22
|
+
/** Liquid color override */
|
|
23
|
+
liquidColor?: string;
|
|
24
|
+
/** Enable glow */
|
|
25
|
+
glow?: boolean;
|
|
26
|
+
/** Glow intensity px */
|
|
27
|
+
glowIntensity?: number;
|
|
28
|
+
/** Force active state */
|
|
29
|
+
active?: boolean;
|
|
30
|
+
}
|
|
31
|
+
declare function __VLS_template(): {
|
|
32
|
+
attrs: Partial<{}>;
|
|
33
|
+
slots: {
|
|
34
|
+
default?(_: {}): any;
|
|
35
|
+
};
|
|
36
|
+
refs: {
|
|
37
|
+
containerRef: HTMLDivElement;
|
|
38
|
+
};
|
|
39
|
+
rootEl: HTMLDivElement;
|
|
40
|
+
};
|
|
41
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
42
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
43
|
+
size: number;
|
|
44
|
+
active: boolean;
|
|
45
|
+
glow: boolean;
|
|
46
|
+
color: string;
|
|
47
|
+
symbolSize: number;
|
|
48
|
+
weight: number | string;
|
|
49
|
+
liquid: boolean;
|
|
50
|
+
liquidMode: LiquidMode;
|
|
51
|
+
glowIntensity: number;
|
|
52
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
53
|
+
containerRef: HTMLDivElement;
|
|
54
|
+
}, HTMLDivElement>;
|
|
55
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
56
|
+
export default _default;
|
|
57
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
58
|
+
new (): {
|
|
59
|
+
$slots: S;
|
|
60
|
+
};
|
|
61
|
+
};
|
package/dist/core/license.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { default as
|
|
2
|
-
import { default as
|
|
3
|
-
import { default as
|
|
4
|
-
import { default as
|
|
5
|
-
import { default as
|
|
6
|
-
import { default as
|
|
1
|
+
import { default as CgCard } from './components/CgCard.vue';
|
|
2
|
+
import { default as CgButton } from './components/CgButton.vue';
|
|
3
|
+
import { default as CgCheckbox } from './components/CgCheckbox.vue';
|
|
4
|
+
import { default as CgFilters } from './components/CgFilters.vue';
|
|
5
|
+
import { default as CgModal } from './components/CgModal.vue';
|
|
6
|
+
import { default as CgToolbar } from './components/CgToolbar.vue';
|
|
7
|
+
import { default as CgNotification } from './components/CgNotification.vue';
|
|
8
|
+
import { default as CgIcon } from './components/CgIcon.vue';
|
|
9
|
+
import { default as CmIcon } from './components/CmIcon.vue';
|
|
7
10
|
import { getLicenseStatus } from './core/license';
|
|
8
|
-
export {
|
|
11
|
+
export { CgCard, CgButton, CgCheckbox, CgFilters, CgModal, CgToolbar, CgNotification, CgIcon, CmIcon, getLicenseStatus };
|
|
9
12
|
export interface GlassUIOptions {
|
|
10
13
|
licenseKey?: string;
|
|
11
14
|
}
|