@nevil5249/shadowcraft 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/generate-plugin.js +49 -0
- package/index.js +80 -0
- package/package.json +23 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
|
|
8
|
+
// Read the shadows.js file
|
|
9
|
+
const shadowsDataPath = path.join(__dirname, '../src/data/shadows.js');
|
|
10
|
+
let shadowsCode = fs.readFileSync(shadowsDataPath, 'utf-8');
|
|
11
|
+
|
|
12
|
+
// Use regex to extract the object properties robustly
|
|
13
|
+
const objectPattern = /{([^}]+)}/g;
|
|
14
|
+
let match;
|
|
15
|
+
let pluginCode = `
|
|
16
|
+
import plugin from 'tailwindcss/plugin.js';
|
|
17
|
+
|
|
18
|
+
export default plugin(function({ addUtilities }) {
|
|
19
|
+
const newUtilities = {
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
// Extract each shadow object and parse manually
|
|
23
|
+
while ((match = objectPattern.exec(shadowsCode)) !== null) {
|
|
24
|
+
const objectString = match[1];
|
|
25
|
+
|
|
26
|
+
// Extract className
|
|
27
|
+
const classMatch = objectString.match(/className:\s*["']([^"']+)["']/);
|
|
28
|
+
// Extract css
|
|
29
|
+
const cssMatch = objectString.match(/css:\s*["']([^"']+)["']/);
|
|
30
|
+
|
|
31
|
+
if (classMatch && cssMatch) {
|
|
32
|
+
const className = classMatch[1];
|
|
33
|
+
let cssValue = cssMatch[1].replace('box-shadow: ', '').replace(';', '').trim();
|
|
34
|
+
// Also remove any inset replacements from previous css edits
|
|
35
|
+
if (cssValue.startsWith('inset ')) cssValue = cssValue;
|
|
36
|
+
|
|
37
|
+
pluginCode += ` '.${className}': { boxShadow: '${cssValue}' },\n`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
pluginCode += ` };
|
|
42
|
+
|
|
43
|
+
addUtilities(newUtilities, ['responsive', 'hover']);
|
|
44
|
+
});
|
|
45
|
+
`;
|
|
46
|
+
|
|
47
|
+
const outputPath = path.join(__dirname, 'index.js');
|
|
48
|
+
fs.writeFileSync(outputPath, pluginCode);
|
|
49
|
+
console.log('Successfully generated plugin index.js');
|
package/index.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
|
|
2
|
+
import plugin from 'tailwindcss/plugin.js';
|
|
3
|
+
|
|
4
|
+
export default plugin(function({ addUtilities }) {
|
|
5
|
+
const newUtilities = {
|
|
6
|
+
'.shd-subtle-01': { boxShadow: '0 1px 2px rgba(0,0,0,0.02), 0 2px 4px rgba(0,0,0,0.02), 0 4px 8px rgba(0,0,0,0.02)' },
|
|
7
|
+
'.shd-inset-premium': { boxShadow: 'inset 0 2px 4px rgba(0,0,0,0.04), inset 0 4px 8px rgba(0,0,0,0.04), inset 0 8px 16px rgba(0,0,0,0.04)' },
|
|
8
|
+
'.shd-glass': { boxShadow: '0 4px 12px rgba(19,91,236,0.08), 0 0 0 1px rgba(19,91,236,0.05)' },
|
|
9
|
+
'.shd-floating-modal': { boxShadow: '0 2px 4px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.04), 0 32px 64px rgba(0,0,0,0.05)' },
|
|
10
|
+
'.shd-ambient-01': { boxShadow: '0 1px 3px rgba(0,0,0,0.03), 0 3px 6px rgba(0,0,0,0.03)' },
|
|
11
|
+
'.shd-structural-01': { boxShadow: '0 1px 1px rgba(0,0,0,0.02), 0 2px 4px rgba(0,0,0,0.02), 0 4px 8px rgba(0,0,0,0.03), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.04)' },
|
|
12
|
+
'.shd-crisp-01': { boxShadow: '0 1px 2px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.1)' },
|
|
13
|
+
'.shd-diffused-01': { boxShadow: '0 4px 6px rgba(0,0,0,0.01), 0 10px 15px rgba(0,0,0,0.02), 0 20px 25px rgba(0,0,0,0.02), 0 25px 50px rgba(0,0,0,0.04)' },
|
|
14
|
+
'.shd-blueprint-01': { boxShadow: '0 0 0 1px rgba(19,91,236,0.1), 0 4px 16px rgba(19,91,236,0.06)' },
|
|
15
|
+
'.shd-recessed-input': { boxShadow: 'inset 0 1px 2px rgba(0,0,0,0.06), inset 0 2px 4px rgba(0,0,0,0.04)' },
|
|
16
|
+
'.shd-soft-lift': { boxShadow: '0 2px 8px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.04)' },
|
|
17
|
+
'.shd-paper-01': { boxShadow: '0 1px 1px rgba(0,0,0,0.04), 0 2px 2px rgba(0,0,0,0.03), 0 4px 4px rgba(0,0,0,0.02)' },
|
|
18
|
+
'.shd-volumetric-01': { boxShadow: '0 0.5px 1px rgba(0,0,0,0.03), 0 1px 2px rgba(0,0,0,0.03), 0 2px 4px rgba(0,0,0,0.03), 0 4px 8px rgba(0,0,0,0.03), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.03)' },
|
|
19
|
+
'.shd-shallow-inset': { boxShadow: 'inset 0 1px 1px rgba(0,0,0,0.05)' },
|
|
20
|
+
'.shd-geometric-01': { boxShadow: '0 0 0 1px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.04)' },
|
|
21
|
+
'.shd-hover-01': { boxShadow: '0 4px 8px rgba(0,0,0,0.04), 0 8px 16px rgba(0,0,0,0.04), 0 16px 32px rgba(0,0,0,0.02)' },
|
|
22
|
+
'.shd-deep-structural': { boxShadow: '0 2px 4px rgba(0,0,0,0.01), 0 4px 8px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.04), 0 32px 64px rgba(0,0,0,0.05), 0 64px 128px rgba(0,0,0,0.06)' },
|
|
23
|
+
'.shd-micro-01': { boxShadow: '0 0.5px 1px rgba(0,0,0,0.05)' },
|
|
24
|
+
'.shd-glass-panel': { boxShadow: '0 4px 12px rgba(19,91,236,0.04), 0 8px 24px rgba(19,91,236,0.03), 0 0 0 1px rgba(19,91,236,0.06)' },
|
|
25
|
+
'.shd-frosted-01': { boxShadow: '0 2px 8px rgba(0,0,0,0.02), 0 0 0 1px rgba(0,0,0,0.04)' },
|
|
26
|
+
'.shd-pillow-01': { boxShadow: '0 2px 4px rgba(0,0,0,0.02), 0 4px 8px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.02), 0 16px 32px rgba(0,0,0,0.02)' },
|
|
27
|
+
'.shd-raised-btn': { boxShadow: '0 1px 2px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.06), 0 4px 8px rgba(0,0,0,0.04)' },
|
|
28
|
+
'.shd-concave-01': { boxShadow: 'inset 0 2px 4px rgba(0,0,0,0.06), inset 0 -1px 2px rgba(255,255,255,0.5)' },
|
|
29
|
+
'.shd-layer-cake': { boxShadow: '0 1px 2px rgba(0,0,0,0.015), 0 2px 4px rgba(0,0,0,0.015), 0 4px 8px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.025), 0 16px 32px rgba(0,0,0,0.03), 0 32px 64px rgba(0,0,0,0.035), 0 64px 128px rgba(0,0,0,0.04)' },
|
|
30
|
+
'.shd-razor-01': { boxShadow: '0 1px 1px rgba(0,0,0,0.08)' },
|
|
31
|
+
'.shd-atmospheric-01': { boxShadow: '0 8px 32px rgba(0,0,0,0.04), 0 16px 64px rgba(0,0,0,0.02)' },
|
|
32
|
+
'.shd-topo-rise': { boxShadow: '0 1px 2px rgba(0,0,0,0.03), 0 3px 6px rgba(0,0,0,0.03), 0 6px 12px rgba(0,0,0,0.03), 0 12px 24px rgba(0,0,0,0.03)' },
|
|
33
|
+
'.shd-inner-glow': { boxShadow: 'inset 0 0 8px rgba(19,91,236,0.06), inset 0 0 16px rgba(19,91,236,0.03)' },
|
|
34
|
+
'.shd-column-01': { boxShadow: '4px 0 8px rgba(0,0,0,0.02), 8px 0 16px rgba(0,0,0,0.02)' },
|
|
35
|
+
'.shd-ridge-01': { boxShadow: '0 -1px 2px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.04)' },
|
|
36
|
+
'.shd-float-tag': { boxShadow: '0 2px 4px rgba(0,0,0,0.03), 0 4px 8px rgba(0,0,0,0.03), 0 0 0 1px rgba(0,0,0,0.03)' },
|
|
37
|
+
'.shd-matte-01': { boxShadow: '0 1px 3px rgba(0,0,0,0.04), 0 2px 6px rgba(0,0,0,0.03)' },
|
|
38
|
+
'.shd-dropdown-01': { boxShadow: '0 4px 8px rgba(0,0,0,0.04), 0 8px 16px rgba(0,0,0,0.04), 0 16px 32px rgba(0,0,0,0.04), 0 0 0 1px rgba(0,0,0,0.03)' },
|
|
39
|
+
'.shd-shelf-01': { boxShadow: '0 2px 2px rgba(0,0,0,0.02), 0 4px 4px rgba(0,0,0,0.02), 0 8px 8px rgba(0,0,0,0.03)' },
|
|
40
|
+
'.shd-ghost-01': { boxShadow: '0 0 0 1px rgba(0,0,0,0.04), 0 2px 8px rgba(0,0,0,0.02)' },
|
|
41
|
+
'.shd-sunken-01': { boxShadow: 'inset 0 1px 3px rgba(0,0,0,0.08), inset 0 2px 6px rgba(0,0,0,0.04), inset 0 4px 12px rgba(0,0,0,0.02)' },
|
|
42
|
+
'.shd-panoramic-01': { boxShadow: '0 4px 8px rgba(0,0,0,0.02), 0 12px 24px rgba(0,0,0,0.03), 0 24px 48px rgba(0,0,0,0.04), 0 48px 96px rgba(0,0,0,0.03)' },
|
|
43
|
+
'.shd-emboss-01': { boxShadow: '0 1px 0 rgba(255,255,255,0.8), 0 -1px 1px rgba(0,0,0,0.04)' },
|
|
44
|
+
'.shd-penumbra-01': { boxShadow: '0 2px 8px rgba(0,0,0,0.015), 0 8px 32px rgba(0,0,0,0.025), 0 32px 64px rgba(0,0,0,0.03)' },
|
|
45
|
+
'.shd-blueprint-card': { boxShadow: '0 0 0 1px rgba(19,91,236,0.08), 0 2px 8px rgba(19,91,236,0.04), 0 4px 16px rgba(19,91,236,0.03)' },
|
|
46
|
+
'.shd-horizon-01': { boxShadow: '0 4px 16px rgba(0,0,0,0.02), 0 -1px 0 rgba(0,0,0,0.04)' },
|
|
47
|
+
'.shd-iso-base': { boxShadow: '4px 4px 0 rgba(0,0,0,0.03), 8px 8px 0 rgba(0,0,0,0.02)' },
|
|
48
|
+
'.shd-float-action': { boxShadow: '0 4px 8px rgba(0,0,0,0.06), 0 8px 16px rgba(0,0,0,0.06), 0 16px 32px rgba(0,0,0,0.04)' },
|
|
49
|
+
'.shd-sidebar-01': { boxShadow: '2px 0 4px rgba(0,0,0,0.02), 4px 0 8px rgba(0,0,0,0.02), 8px 0 16px rgba(0,0,0,0.02)' },
|
|
50
|
+
'.shd-notch-01': { boxShadow: 'inset 0 2px 2px rgba(0,0,0,0.04), inset 2px 0 2px rgba(0,0,0,0.02), inset -2px 0 2px rgba(0,0,0,0.02)' },
|
|
51
|
+
'.shd-cloud-01': { boxShadow: '0 8px 16px rgba(0,0,0,0.02), 0 16px 32px rgba(0,0,0,0.015), 0 32px 64px rgba(0,0,0,0.01), 0 64px 128px rgba(0,0,0,0.005)' },
|
|
52
|
+
'.shd-monolith-01': { boxShadow: '0 1px 2px rgba(0,0,0,0.04), 0 2px 4px rgba(0,0,0,0.04), 0 4px 8px rgba(0,0,0,0.04), 0 8px 16px rgba(0,0,0,0.04), 0 16px 32px rgba(0,0,0,0.04), 0 32px 64px rgba(0,0,0,0.04), 0 64px 128px rgba(0,0,0,0.04)' },
|
|
53
|
+
'.shd-wire-01': { boxShadow: '0 0 0 1px rgba(0,0,0,0.06)' },
|
|
54
|
+
'.shd-depth-field': { boxShadow: '0 1px 2px rgba(0,0,0,0.02), 0 4px 8px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.03)' },
|
|
55
|
+
'.shd-silk-01': { boxShadow: '0 1px 4px rgba(0,0,0,0.01), 0 2px 8px rgba(0,0,0,0.015), 0 4px 16px rgba(0,0,0,0.02)' },
|
|
56
|
+
'.shd-apex-01': { boxShadow: '0 8px 16px rgba(0,0,0,0.04), 0 16px 32px rgba(0,0,0,0.04), 0 32px 64px rgba(0,0,0,0.06), 0 64px 128px rgba(0,0,0,0.04)' },
|
|
57
|
+
'.shd-letterpress-01': { boxShadow: 'inset 0 1px 0 rgba(255,255,255,0.6), inset 0 -1px 2px rgba(0,0,0,0.1)' },
|
|
58
|
+
'.shd-rim-01': { boxShadow: '0 0 0 1px rgba(255,255,255,0.8), 0 0 0 2px rgba(0,0,0,0.04), 0 2px 8px rgba(0,0,0,0.03)' },
|
|
59
|
+
'.shd-foundation-01': { boxShadow: '0 1px 2px rgba(0,0,0,0.03), 0 2px 4px rgba(0,0,0,0.03), 0 4px 8px rgba(0,0,0,0.03), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.03)' },
|
|
60
|
+
'.shd-glass-tile': { boxShadow: '0 2px 8px rgba(19,91,236,0.05), 0 0 0 1px rgba(19,91,236,0.08), inset 0 1px 0 rgba(255,255,255,0.6)' },
|
|
61
|
+
'.shd-projection-01': { boxShadow: '0 20px 40px rgba(0,0,0,0.03), 0 40px 80px rgba(0,0,0,0.02)' },
|
|
62
|
+
'.shd-tectonic-01': { boxShadow: '0 1px 1px rgba(0,0,0,0.04), 0 4px 8px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.02), 0 0 0 1px rgba(0,0,0,0.03)' },
|
|
63
|
+
'.shd-draft-01': { boxShadow: '0 0 0 1px rgba(19,91,236,0.06), 1px 1px 0 rgba(19,91,236,0.04), 2px 2px 0 rgba(19,91,236,0.02)' },
|
|
64
|
+
'.shd-gravity-01': { boxShadow: '0 2px 4px rgba(0,0,0,0.02), 0 4px 8px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.03), 0 16px 32px rgba(0,0,0,0.04), 0 32px 64px rgba(0,0,0,0.05), 0 64px 128px rgba(0,0,0,0.06)' },
|
|
65
|
+
'.shd-indigo-glow': { boxShadow: '0 4px 14px rgba(79, 70, 229, 0.2), 0 0 0 1px rgba(79, 70, 229, 0.1)' },
|
|
66
|
+
'.shd-crimson-depth': { boxShadow: '0 10px 25px rgba(220, 38, 38, 0.15), 0 4px 6px rgba(220, 38, 38, 0.05)' },
|
|
67
|
+
'.shd-emerald-aura': { boxShadow: '0 8px 32px rgba(16, 185, 129, 0.12), 0 0 0 1px rgba(16, 185, 129, 0.08)' },
|
|
68
|
+
'.shd-amber-flare': { boxShadow: '0 12px 24px rgba(245, 158, 11, 0.15), 0 1px 2px rgba(245, 158, 11, 0.1)' },
|
|
69
|
+
'.shd-violet-pulse': { boxShadow: '0 0 0 2px rgba(139, 92, 246, 0.1), 0 10px 40px rgba(139, 92, 246, 0.2)' },
|
|
70
|
+
'.shd-azure-inset': { boxShadow: 'inset 0 2px 10px rgba(37, 99, 235, 0.15), inset 0 4px 20px rgba(37, 99, 235, 0.05)' },
|
|
71
|
+
'.shd-rose-diffusion': { boxShadow: '0 20px 50px rgba(225, 29, 72, 0.1), 0 4px 12px rgba(225, 29, 72, 0.05)' },
|
|
72
|
+
'.shd-teal-structural': { boxShadow: '0 1px 3px rgba(13, 148, 136, 0.2), 0 8px 16px rgba(13, 148, 136, 0.1)' },
|
|
73
|
+
'.shd-sunset-vol': { boxShadow: '0 5px 15px rgba(234, 88, 12, 0.1), 0 15px 35px rgba(234, 88, 12, 0.1), 0 50px 100px rgba(234, 88, 12, 0.05)' },
|
|
74
|
+
'.shd-neon-rim': { boxShadow: '0 0 0 1px rgba(34, 197, 94, 0.2), 0 0 15px rgba(34, 197, 94, 0.1)' },
|
|
75
|
+
'.shd-cyber-blue': { boxShadow: '0 0 40px rgba(30, 64, 175, 0.2), inset 0 0 10px rgba(30, 64, 175, 0.1)' },
|
|
76
|
+
'.shd-plasma-float': { boxShadow: '0 10px 30px rgba(147, 51, 234, 0.15), 0 2px 5px rgba(147, 51, 234, 0.1)' },
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
addUtilities(newUtilities, ['responsive', 'hover']);
|
|
80
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nevil5249/shadowcraft",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "A premium design framework for multi-layered interface depth and structural volumetric fidelity via Tailwind CSS.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"tailwind",
|
|
12
|
+
"plugin",
|
|
13
|
+
"shadows",
|
|
14
|
+
"architectural",
|
|
15
|
+
"design",
|
|
16
|
+
"ui"
|
|
17
|
+
],
|
|
18
|
+
"author": "Nevil Gadhia",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"tailwindcss": "^3.4.1"
|
|
22
|
+
}
|
|
23
|
+
}
|