@triagly/sdk 0.1.1-beta.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.
@@ -0,0 +1,73 @@
1
+ import { FeedbackMetadata } from './types';
2
+ /**
3
+ * Collect browser and page metadata
4
+ */
5
+ export declare function collectMetadata(customMetadata?: Record<string, any>): FeedbackMetadata;
6
+ /**
7
+ * Capture screenshot of current page
8
+ */
9
+ export declare function captureScreenshot(): Promise<string | null>;
10
+ /**
11
+ * Simple rate limiter using localStorage
12
+ */
13
+ export declare class RateLimiter {
14
+ private key;
15
+ private maxAttempts;
16
+ private windowMs;
17
+ constructor(key: string, maxAttempts?: number, windowMs?: number);
18
+ canProceed(): boolean;
19
+ recordAttempt(): void;
20
+ getTimeUntilReset(): number;
21
+ private getData;
22
+ private setData;
23
+ }
24
+ /**
25
+ * Generate unique ID
26
+ */
27
+ export declare function generateId(): string;
28
+ /**
29
+ * Console log capture for debugging
30
+ */
31
+ export interface ConsoleLog {
32
+ level: 'error' | 'warn' | 'log';
33
+ message: string;
34
+ timestamp: string;
35
+ stack?: string;
36
+ }
37
+ export declare class ConsoleLogger {
38
+ private buffer;
39
+ private maxLogs;
40
+ private levels;
41
+ private originalConsole;
42
+ private isActive;
43
+ constructor(maxLogs?: number, levels?: ('error' | 'warn' | 'log')[]);
44
+ /**
45
+ * Start capturing console logs
46
+ */
47
+ start(): void;
48
+ /**
49
+ * Stop capturing and restore original console methods
50
+ */
51
+ stop(): void;
52
+ /**
53
+ * Capture a log entry
54
+ */
55
+ private captureLog;
56
+ /**
57
+ * Sanitize sensitive data from logs
58
+ */
59
+ private sanitize;
60
+ /**
61
+ * Get all captured logs
62
+ */
63
+ getLogs(): ConsoleLog[];
64
+ /**
65
+ * Clear all captured logs
66
+ */
67
+ clear(): void;
68
+ /**
69
+ * Get logs count
70
+ */
71
+ getCount(): number;
72
+ }
73
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAYtF;AA0BD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBhE;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;gBAEb,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAsB;IAMlF,UAAU,IAAI,OAAO;IAgBrB,aAAa,IAAI,IAAI;IAerB,iBAAiB,IAAI,MAAM;IAc3B,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,OAAO;CAOhB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,eAAe,CAIrB;IACF,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,OAAO,GAAE,MAAW,EAAE,MAAM,GAAE,CAAC,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,EAAsB;IAY1F;;OAEG;IACH,KAAK,IAAI,IAAI;IA6Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,OAAO,CAAC,UAAU;IAiDlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACH,OAAO,IAAI,UAAU,EAAE;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGnB"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@triagly/sdk",
3
+ "version": "0.1.1-beta.1",
4
+ "description": "JavaScript SDK for Triagly - Turn user feedback into GitHub issues instantly",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "browser": "dist/index.min.js",
9
+ "files": [
10
+ "dist",
11
+ "themes",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "rollup -c",
16
+ "dev": "rollup -c -w",
17
+ "test": "echo \"Error: no test specified\" && exit 1",
18
+ "prepare": "husky",
19
+ "release": "standard-version",
20
+ "release:minor": "standard-version --release-as minor",
21
+ "release:major": "standard-version --release-as major",
22
+ "release:patch": "standard-version --release-as patch",
23
+ "release:first": "standard-version --first-release",
24
+ "release:beta": "standard-version --prerelease beta",
25
+ "release:alpha": "standard-version --prerelease alpha",
26
+ "publish:latest": "npm publish --access public",
27
+ "publish:beta": "npm publish --access public --tag beta",
28
+ "publish:alpha": "npm publish --access public --tag alpha",
29
+ "ship": "pnpm release && git push --follow-tags origin main && pnpm publish:latest",
30
+ "ship:beta": "pnpm release:beta && git push --follow-tags origin main && pnpm publish:beta",
31
+ "prepublishOnly": "pnpm build"
32
+ },
33
+ "keywords": [
34
+ "feedback",
35
+ "github",
36
+ "issues",
37
+ "bug-tracking",
38
+ "user-feedback",
39
+ "widget",
40
+ "triagly",
41
+ "feedback-widget",
42
+ "screenshot",
43
+ "bug-report"
44
+ ],
45
+ "author": "Joshua Colvin",
46
+ "license": "MIT",
47
+ "homepage": "https://triagly.com",
48
+ "bugs": {
49
+ "url": "https://github.com/joshuacolvin/triagly/issues"
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/joshuacolvin/triagly.git",
54
+ "directory": "sdk/js"
55
+ },
56
+ "devDependencies": {
57
+ "@commitlint/cli": "^20.1.0",
58
+ "@commitlint/config-conventional": "^20.0.0",
59
+ "@rollup/plugin-node-resolve": "^16.0.3",
60
+ "@rollup/plugin-typescript": "^12.1.4",
61
+ "@types/node": "^24.8.1",
62
+ "husky": "^9.1.7",
63
+ "rollup": "^4.52.5",
64
+ "rollup-plugin-terser": "^7.0.2",
65
+ "standard-version": "^9.5.0",
66
+ "tslib": "^2.6.2",
67
+ "typescript": "^5.3.3"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public"
71
+ }
72
+ }
@@ -0,0 +1,256 @@
1
+ # Triagly SDK Themes
2
+
3
+ Pre-built themes for the Triagly feedback widget.
4
+
5
+ ## Available Themes
6
+
7
+ ### 🎨 **Default** (Built-in)
8
+ No additional CSS needed. Clean blue theme with rounded corners.
9
+
10
+ **Preview:** Standard indigo button, white modal, clean design
11
+
12
+ ---
13
+
14
+ ### 🌙 **Dark**
15
+ Dark mode theme with high contrast, perfect for dark websites.
16
+
17
+ **Preview:** Dark gray button and modal, light text
18
+
19
+ ```html
20
+ <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/dark.css">
21
+ ```
22
+
23
+ **Uses:** Pure CSS variables - easy to customize further
24
+
25
+ ---
26
+
27
+ ### ✨ **Minimal**
28
+ Clean, minimal design with outlined button and subtle styling.
29
+
30
+ **Preview:** Transparent button with border, minimal shadows
31
+
32
+ ```html
33
+ <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/minimal.css">
34
+ ```
35
+
36
+ **Uses:** CSS variables + border styling (can't use box-shadow inset in variables)
37
+
38
+ ---
39
+
40
+ ### 🌈 **Gradient**
41
+ Beautiful purple gradient design for modern websites.
42
+
43
+ **Preview:** Purple gradient button and header, smooth animations
44
+
45
+ ```html
46
+ <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/gradient.css">
47
+ ```
48
+
49
+ **Uses:** Direct CSS rules (gradients can't be stored in CSS variables)
50
+
51
+ ---
52
+
53
+ ### 🌊 **Ocean**
54
+ Fresh blue/teal ocean theme with calming colors.
55
+
56
+ **Preview:** Cyan/blue colors, light and airy design
57
+
58
+ ```html
59
+ <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/ocean.css">
60
+ ```
61
+
62
+ **Uses:** Pure CSS variables - easy to customize further
63
+
64
+ ---
65
+
66
+ ## Usage
67
+
68
+ ### CDN (Easiest)
69
+
70
+ ```html
71
+ <!-- Include theme before SDK -->
72
+ <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/dark.css">
73
+
74
+ <script type="module">
75
+ import Triagly from 'https://unpkg.com/@triagly/sdk';
76
+
77
+ const triagly = new Triagly({
78
+ projectId: 'your-project-id',
79
+ apiUrl: 'https://your-api.com',
80
+ });
81
+ </script>
82
+ ```
83
+
84
+ ### NPM
85
+
86
+ ```bash
87
+ npm install @triagly/sdk
88
+ ```
89
+
90
+ ```javascript
91
+ import Triagly from '@triagly/sdk';
92
+ import '@triagly/sdk/themes/dark.css';
93
+
94
+ const triagly = new Triagly({
95
+ projectId: 'your-project-id',
96
+ apiUrl: 'https://your-api.com',
97
+ });
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Important Notes
103
+
104
+ ### CSS Variable Limitations
105
+
106
+ **What works in CSS variables:**
107
+ - ✅ Colors: `#ff0066`, `rgb()`, `rgba()`
108
+ - ✅ Sizes: `12px`, `1rem`, `500px`
109
+ - ✅ Simple shadows: `0 4px 12px rgba(0,0,0,0.3)`
110
+
111
+ **What doesn't work in CSS variables:**
112
+ - ❌ Gradients: `linear-gradient()`, `radial-gradient()`
113
+ - ❌ Inset shadows: `0 0 0 2px #color inset`
114
+ - ❌ Multiple backgrounds
115
+
116
+ For these effects, themes use direct CSS rules with `!important`.
117
+
118
+ ---
119
+
120
+ ## Custom Theme
121
+
122
+ Create your own theme using CSS custom properties:
123
+
124
+ ```css
125
+ :root {
126
+ /* Button */
127
+ --triagly-button-bg: #your-color;
128
+ --triagly-button-bg-hover: #your-hover-color;
129
+ --triagly-button-text: #ffffff;
130
+ --triagly-button-radius: 8px;
131
+
132
+ /* Modal */
133
+ --triagly-modal-bg: #ffffff;
134
+ --triagly-modal-radius: 12px;
135
+
136
+ /* And more... see full list below */
137
+ }
138
+ ```
139
+
140
+ ### All Available CSS Variables
141
+
142
+ ```css
143
+ :root {
144
+ /* Button */
145
+ --triagly-button-bg
146
+ --triagly-button-bg-hover
147
+ --triagly-button-text
148
+ --triagly-button-radius
149
+ --triagly-button-shadow
150
+ --triagly-button-shadow-hover
151
+
152
+ /* Modal */
153
+ --triagly-modal-bg
154
+ --triagly-modal-radius
155
+ --triagly-modal-shadow
156
+ --triagly-modal-max-width
157
+
158
+ /* Overlay */
159
+ --triagly-overlay-bg
160
+
161
+ /* Header */
162
+ --triagly-header-bg
163
+ --triagly-header-border
164
+ --triagly-header-text
165
+
166
+ /* Form */
167
+ --triagly-form-bg
168
+ --triagly-label-text
169
+ --triagly-input-bg
170
+ --triagly-input-border
171
+ --triagly-input-border-focus
172
+ --triagly-input-text
173
+ --triagly-input-radius
174
+
175
+ /* Buttons */
176
+ --triagly-btn-primary-bg
177
+ --triagly-btn-primary-bg-hover
178
+ --triagly-btn-primary-text
179
+ --triagly-btn-secondary-bg
180
+ --triagly-btn-secondary-bg-hover
181
+ --triagly-btn-secondary-text
182
+ --triagly-btn-radius
183
+
184
+ /* Status Messages */
185
+ --triagly-success-bg
186
+ --triagly-success-text
187
+ --triagly-error-bg
188
+ --triagly-error-text
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Dynamic Theme Switching
195
+
196
+ Switch themes at runtime:
197
+
198
+ ```javascript
199
+ function applyTheme(themeName) {
200
+ // Remove existing theme
201
+ document.getElementById('triagly-theme')?.remove();
202
+
203
+ // Add new theme
204
+ if (themeName !== 'default') {
205
+ const link = document.createElement('link');
206
+ link.id = 'triagly-theme';
207
+ link.rel = 'stylesheet';
208
+ link.href = `https://unpkg.com/@triagly/sdk/themes/${themeName}.css`;
209
+ document.head.appendChild(link);
210
+ }
211
+ }
212
+
213
+ // Apply dark theme
214
+ applyTheme('dark');
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Automatic Dark Mode
220
+
221
+ Match system dark mode preference:
222
+
223
+ ```javascript
224
+ const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');
225
+
226
+ function applyAutoTheme() {
227
+ if (prefersDark.matches) {
228
+ // Load dark theme
229
+ import('@triagly/sdk/themes/dark.css');
230
+ }
231
+ }
232
+
233
+ // Apply on load
234
+ applyAutoTheme();
235
+
236
+ // Listen for changes
237
+ prefersDark.addEventListener('change', applyAutoTheme);
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Contributing Themes
243
+
244
+ Want to contribute a theme?
245
+
246
+ 1. Create a new `.css` file in `themes/`
247
+ 2. Use the CSS custom properties
248
+ 3. Add documentation here
249
+ 4. Submit a PR!
250
+
251
+ ---
252
+
253
+ **More Info:**
254
+ - [Main Documentation](../README.md)
255
+ - [Styling Guide](../docs/guides/STYLING.md)
256
+
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Triagly SDK - Dark Theme
3
+ *
4
+ * Usage:
5
+ * <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/dark.css">
6
+ *
7
+ * Or import in JavaScript:
8
+ * import '@triagly/sdk/themes/dark.css';
9
+ */
10
+
11
+ :root {
12
+ /* Button */
13
+ --triagly-button-bg: #1f2937;
14
+ --triagly-button-bg-hover: #374151;
15
+ --triagly-button-text: #f9fafb;
16
+ --triagly-button-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
17
+ --triagly-button-shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.5);
18
+
19
+ /* Modal */
20
+ --triagly-modal-bg: #1f2937;
21
+ --triagly-modal-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
22
+
23
+ /* Overlay */
24
+ --triagly-overlay-bg: rgba(0, 0, 0, 0.8);
25
+
26
+ /* Header */
27
+ --triagly-header-bg: #111827;
28
+ --triagly-header-border: #374151;
29
+ --triagly-header-text: #f9fafb;
30
+
31
+ /* Form */
32
+ --triagly-form-bg: #1f2937;
33
+ --triagly-label-text: #e5e7eb;
34
+ --triagly-input-bg: #111827;
35
+ --triagly-input-border: #374151;
36
+ --triagly-input-border-focus: #6366f1;
37
+ --triagly-input-text: #f9fafb;
38
+
39
+ /* Buttons */
40
+ --triagly-btn-primary-bg: #6366f1;
41
+ --triagly-btn-primary-bg-hover: #4f46e5;
42
+ --triagly-btn-secondary-bg: #374151;
43
+ --triagly-btn-secondary-bg-hover: #4b5563;
44
+ --triagly-btn-secondary-text: #f9fafb;
45
+
46
+ /* Status */
47
+ --triagly-success-bg: #064e3b;
48
+ --triagly-success-text: #6ee7b7;
49
+ --triagly-error-bg: #7f1d1d;
50
+ --triagly-error-text: #fca5a5;
51
+ }
52
+
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Triagly SDK - Gradient Theme
3
+ *
4
+ * Usage:
5
+ * <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/gradient.css">
6
+ *
7
+ * Or import in JavaScript:
8
+ * import '@triagly/sdk/themes/gradient.css';
9
+ */
10
+
11
+ :root {
12
+ /* Colors for gradient */
13
+ --triagly-button-text: #ffffff;
14
+ --triagly-button-radius: 30px;
15
+ --triagly-button-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
16
+ --triagly-button-shadow-hover: 0 8px 25px rgba(102, 126, 234, 0.5);
17
+
18
+ /* Modal */
19
+ --triagly-modal-bg: #ffffff;
20
+ --triagly-modal-radius: 24px;
21
+ --triagly-modal-shadow: 0 25px 80px rgba(0, 0, 0, 0.3);
22
+
23
+ /* Overlay */
24
+ --triagly-overlay-bg: rgba(0, 0, 0, 0.6);
25
+
26
+ /* Header */
27
+ --triagly-header-border: transparent;
28
+ --triagly-header-text: #ffffff;
29
+
30
+ /* Form */
31
+ --triagly-form-bg: #ffffff;
32
+ --triagly-label-text: #374151;
33
+ --triagly-input-bg: #f9fafb;
34
+ --triagly-input-border: #e5e7eb;
35
+ --triagly-input-border-focus: #667eea;
36
+ --triagly-input-text: #111827;
37
+ --triagly-input-radius: 12px;
38
+
39
+ /* Buttons */
40
+ --triagly-btn-primary-text: #ffffff;
41
+ --triagly-btn-secondary-bg: #f3f4f6;
42
+ --triagly-btn-secondary-bg-hover: #e5e7eb;
43
+ --triagly-btn-radius: 12px;
44
+ }
45
+
46
+ /* Gradient backgrounds (can't use CSS variables for gradients) */
47
+ .triagly-button {
48
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
49
+ }
50
+
51
+ .triagly-button:hover {
52
+ background: linear-gradient(135deg, #764ba2 0%, #667eea 100%) !important;
53
+ }
54
+
55
+ .triagly-header {
56
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
57
+ }
58
+
59
+ .triagly-btn-primary {
60
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
61
+ }
62
+
63
+ .triagly-btn-primary:hover:not(:disabled) {
64
+ background: linear-gradient(135deg, #764ba2 0%, #667eea 100%) !important;
65
+ }
66
+
67
+ /* Special styling for close button on gradient header */
68
+ .triagly-close {
69
+ color: rgba(255, 255, 255, 0.8) !important;
70
+ }
71
+
72
+ .triagly-close:hover {
73
+ background: rgba(255, 255, 255, 0.2) !important;
74
+ color: #ffffff !important;
75
+ }
76
+
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Triagly SDK Themes
3
+ *
4
+ * Pre-built themes for the Triagly feedback widget.
5
+ * Import these CSS files to apply different visual styles.
6
+ */
7
+
8
+ declare module '@triagly/sdk/themes/dark.css';
9
+ declare module '@triagly/sdk/themes/minimal.css';
10
+ declare module '@triagly/sdk/themes/gradient.css';
11
+ declare module '@triagly/sdk/themes/ocean.css';
12
+
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Triagly SDK - Minimal Theme
3
+ *
4
+ * Usage:
5
+ * <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/minimal.css">
6
+ *
7
+ * Or import in JavaScript:
8
+ * import '@triagly/sdk/themes/minimal.css';
9
+ */
10
+
11
+ :root {
12
+ /* Button */
13
+ --triagly-button-bg: transparent;
14
+ --triagly-button-bg-hover: #f9fafb;
15
+ --triagly-button-text: #111827;
16
+
17
+ /* Modal */
18
+ --triagly-modal-bg: #ffffff;
19
+ --triagly-modal-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
20
+
21
+ /* Overlay */
22
+ --triagly-overlay-bg: rgba(0, 0, 0, 0.3);
23
+
24
+ /* Header */
25
+ --triagly-header-bg: #fafafa;
26
+ --triagly-header-border: #e5e7eb;
27
+ --triagly-header-text: #111827;
28
+
29
+ /* Form */
30
+ --triagly-form-bg: #ffffff;
31
+ --triagly-label-text: #6b7280;
32
+ --triagly-input-bg: #fafafa;
33
+ --triagly-input-border: #e5e7eb;
34
+ --triagly-input-border-focus: #d1d5db;
35
+ --triagly-input-text: #111827;
36
+
37
+ /* Buttons */
38
+ --triagly-btn-primary-bg: #111827;
39
+ --triagly-btn-primary-bg-hover: #374151;
40
+ --triagly-btn-secondary-bg: transparent;
41
+ --triagly-btn-secondary-bg-hover: #f9fafb;
42
+ --triagly-btn-secondary-text: #6b7280;
43
+
44
+ /* Borders */
45
+ --triagly-btn-radius: 6px;
46
+ --triagly-modal-radius: 8px;
47
+ --triagly-button-radius: 6px;
48
+ }
49
+
50
+ /* Button with border (can't use inset shadow in variable) */
51
+ .triagly-button {
52
+ border: 2px solid #e5e7eb !important;
53
+ box-shadow: none !important;
54
+ }
55
+
56
+ .triagly-button:hover {
57
+ border-color: #6366f1 !important;
58
+ box-shadow: none !important;
59
+ }
60
+
61
+ /* Secondary button with border */
62
+ .triagly-btn-secondary {
63
+ border: 1px solid #e5e7eb !important;
64
+ }
65
+
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Triagly SDK - Ocean Theme
3
+ *
4
+ * Usage:
5
+ * <link rel="stylesheet" href="https://unpkg.com/@triagly/sdk/themes/ocean.css">
6
+ *
7
+ * Or import in JavaScript:
8
+ * import '@triagly/sdk/themes/ocean.css';
9
+ */
10
+
11
+ :root {
12
+ /* Button */
13
+ --triagly-button-bg: #0ea5e9;
14
+ --triagly-button-bg-hover: #0284c7;
15
+ --triagly-button-text: #ffffff;
16
+ --triagly-button-shadow: 0 4px 12px rgba(14, 165, 233, 0.3);
17
+ --triagly-button-shadow-hover: 0 6px 16px rgba(14, 165, 233, 0.4);
18
+
19
+ /* Modal */
20
+ --triagly-modal-bg: #ffffff;
21
+ --triagly-modal-shadow: 0 20px 60px rgba(6, 182, 212, 0.2);
22
+
23
+ /* Overlay */
24
+ --triagly-overlay-bg: rgba(6, 78, 59, 0.3);
25
+
26
+ /* Header */
27
+ --triagly-header-bg: #ecfeff;
28
+ --triagly-header-border: #06b6d4;
29
+ --triagly-header-text: #0e7490;
30
+
31
+ /* Form */
32
+ --triagly-form-bg: #ffffff;
33
+ --triagly-label-text: #0e7490;
34
+ --triagly-input-bg: #f0fdfa;
35
+ --triagly-input-border: #99f6e4;
36
+ --triagly-input-border-focus: #06b6d4;
37
+ --triagly-input-text: #164e63;
38
+
39
+ /* Buttons */
40
+ --triagly-btn-primary-bg: #0ea5e9;
41
+ --triagly-btn-primary-bg-hover: #0284c7;
42
+ --triagly-btn-secondary-bg: #ecfeff;
43
+ --triagly-btn-secondary-bg-hover: #cffafe;
44
+ --triagly-btn-secondary-text: #0e7490;
45
+
46
+ /* Status */
47
+ --triagly-success-bg: #ccfbf1;
48
+ --triagly-success-text: #0f766e;
49
+ --triagly-error-bg: #fecdd3;
50
+ --triagly-error-text: #be123c;
51
+ }
52
+