update stock props

This commit is contained in:
Evan Carroll 2026-01-23 20:36:03 -06:00
parent fe40fd32ab
commit 98590f63e7
18 changed files with 898 additions and 1 deletions

View file

@ -0,0 +1,47 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
<defs>
<linearGradient id="keyboardBody" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#3a3a3a"/>
<stop offset="100%" stop-color="#2a2a2a"/>
</linearGradient>
<linearGradient id="keyTop" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#4a4a4a"/>
<stop offset="100%" stop-color="#3a3a3a"/>
</linearGradient>
<filter id="keyShadow" x="-10%" y="-10%" width="120%" height="130%">
<feDropShadow dx="0" dy="1" stdDeviation="0.5" flood-color="#000000" flood-opacity="0.4"/>
</filter>
</defs>
<!-- Keyboard body -->
<rect x="8" y="40" width="104" height="50" rx="4" fill="url(#keyboardBody)"/>
<rect x="8" y="40" width="104" height="50" rx="4" fill="none" stroke="#222" stroke-width="1"/>
<!-- Top row: Play, Pause, Stop -->
<!-- Play key -->
<rect x="14" y="46" width="22" height="16" rx="2" fill="url(#keyTop)" filter="url(#keyShadow)"/>
<polygon points="22,50 22,58 29,54" fill="#4CAF50"/>
<!-- Pause key -->
<rect x="40" y="46" width="22" height="16" rx="2" fill="url(#keyTop)" filter="url(#keyShadow)"/>
<rect x="47" y="50" width="3" height="8" fill="#FFC107"/>
<rect x="52" y="50" width="3" height="8" fill="#FFC107"/>
<!-- Stop key -->
<rect x="66" y="46" width="22" height="16" rx="2" fill="url(#keyTop)" filter="url(#keyShadow)"/>
<rect x="72" y="50" width="10" height="8" fill="#F44336"/>
<!-- Mute key -->
<rect x="92" y="46" width="14" height="16" rx="2" fill="url(#keyTop)" filter="url(#keyShadow)"/>
<!-- Speaker icon -->
<polygon points="95,52 97,52 100,49 100,59 97,56 95,56" fill="#fff"/>
<!-- X for mute -->
<line x1="101" y1="51" x2="104" y2="57" stroke="#F44336" stroke-width="1.5" stroke-linecap="round"/>
<line x1="104" y1="51" x2="101" y2="57" stroke="#F44336" stroke-width="1.5" stroke-linecap="round"/>
<!-- URL bar -->
<rect x="14" y="66" width="92" height="18" rx="2" fill="#fff" filter="url(#keyShadow)"/>
<rect x="14" y="66" width="92" height="18" rx="2" fill="none" stroke="#888" stroke-width="0.5"/>
<text x="18" y="78" font-family="monospace" font-size="7" fill="#4CAF50">https://</text>
<line x1="52" y1="69" x2="52" y2="81" stroke="#333" stroke-width="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
<defs>
<linearGradient id="screenSurface" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#FFFFFF"/>
<stop offset="100%" stop-color="#F0F0F0"/>
</linearGradient>
<linearGradient id="caseGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#4A4A4A"/>
<stop offset="100%" stop-color="#2A2A2A"/>
</linearGradient>
<filter id="screenShadow" x="-5%" y="-5%" width="110%" height="110%">
<feDropShadow dx="1" dy="2" stdDeviation="2" flood-color="#000000" flood-opacity="0.3"/>
</filter>
</defs>
<!-- Mounting bracket / case at top -->
<rect x="10" y="8" width="100" height="8" rx="2" fill="url(#caseGrad)"/>
<!-- Screen surface - 16:9 aspect ratio (96x54) -->
<rect x="12" y="18" width="96" height="54" fill="url(#screenSurface)" filter="url(#screenShadow)"/>
<!-- Screen border/frame -->
<rect x="12" y="18" width="96" height="54" fill="none" stroke="#333" stroke-width="1.5"/>
<!-- Bottom weight bar -->
<rect x="12" y="70" width="96" height="4" rx="1" fill="#3A3A3A"/>
<!-- Pull tab -->
<rect x="54" y="74" width="12" height="6" rx="1" fill="#555"/>
<circle cx="60" cy="80" r="3" fill="#666"/>
<circle cx="60" cy="80" r="1.5" fill="#444"/>
<!-- Tripod stand -->
<rect x="58" y="84" width="4" height="20" fill="#333"/>
<!-- Tripod legs -->
<line x1="60" y1="104" x2="30" y2="115" stroke="#333" stroke-width="3" stroke-linecap="round"/>
<line x1="60" y1="104" x2="90" y2="115" stroke="#333" stroke-width="3" stroke-linecap="round"/>
<line x1="60" y1="104" x2="60" y2="116" stroke="#333" stroke-width="3" stroke-linecap="round"/>
<!-- Rubber feet -->
<circle cx="30" cy="115" r="2" fill="#222"/>
<circle cx="90" cy="115" r="2" fill="#222"/>
<circle cx="60" cy="116" r="2" fill="#222"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
<defs>
<linearGradient id="ustScreen" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#FAFAFA"/>
<stop offset="50%" stop-color="#FFFFFF"/>
<stop offset="100%" stop-color="#F5F5F5"/>
</linearGradient>
<filter id="ustShadow" x="-5%" y="-5%" width="110%" height="120%">
<feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#000000" flood-opacity="0.25"/>
</filter>
</defs>
<!-- Thin black frame - 16:9 ratio (106x60) centered -->
<rect x="7" y="30" width="106" height="60" rx="1" fill="#1a1a1a" filter="url(#ustShadow)"/>
<!-- Screen surface - 16:9 with thin bezel -->
<rect x="9" y="32" width="102" height="56" fill="url(#ustScreen)"/>
<!-- Subtle inner shadow on screen edges -->
<rect x="9" y="32" width="102" height="56" fill="none" stroke="#E0E0E0" stroke-width="0.5"/>
<!-- Frame edge highlight (top) -->
<line x1="8" y1="30" x2="112" y2="30" stroke="#333" stroke-width="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -88,6 +88,12 @@ get_tags() {
misc)
echo '["misc", "droppable"]'
;;
screen)
echo '["screen", "projector", "droppable"]'
;;
keyboard)
echo '["keyboard", "media", "droppable"]'
;;
*)
echo '["prop", "droppable"]'
;;