Use native Windows cursor sprites

This commit is contained in:
webadderall
2026-09-05 05:59:58 +10:00
parent e2f4d36a9f
commit d404be1fdc
20 changed files with 287 additions and 105 deletions
@@ -1,3 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 7L10 22.8L13.38 19.51L15.61 24.16L18.57 22.66L16.54 18.55H21.5L10 7Z" fill="white" stroke="black" stroke-miterlimit="3.8637"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_2_1_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="12.73606,19.04075 7.80159,19.04075 9.82813,14.91828
6.88341,13.42515 4.62301,18.05872 1.26394,14.78295 1.26394,30.57485 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 243 B

After

Width:  |  Height:  |  Size: 509 B

@@ -1,3 +1,10 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 16C24 20.4111 20.4111 24 16 24C11.5889 24 8 20.4111 8 16C8 11.5889 11.5889 8 16 8C20.4111 8 24 11.5889 24 16ZM16 10C14.7546 10 13.5969 10.3818 12.637 11.0339L20.9662 19.3627C21.6182 18.4029 22 17.2454 22 16C22 12.6914 19.3086 10 16 10ZM16 22C17.3424 22 18.5788 21.5516 19.5794 20.8041L11.1957 12.4208C10.4484 13.4214 10 14.6578 10 16C10 19.3086 12.6914 22 16 22Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M17,23c0-4.41113-3.58887-8-8-8s-8,3.58887-8,8s3.58887,8,8,8
S17,27.41113,17,23z M9,29c-1.24542,0-2.40308-0.38184-3.36298-1.03394l8.32916-8.3288C14.61823,20.59711,15,21.75464,15,23
C15,26.30859,12.30859,29,9,29z M9,17c1.34235,0,2.5788,0.44843,3.57941,1.19592l-8.38367,8.3833C3.44836,25.57861,3,24.34222,3,23
C3,19.69141,5.69141,17,9,17z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 715 B

+23 -6
View File
@@ -1,7 +1,24 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.7361 11H17.7361V9H27.7361V11Z" fill="#FFFFFE"/>
<path d="M27.7361 25H17.7361V23H27.7361V25Z" fill="#FFFFFE"/>
<path d="M20.7361 16L18.7361 14V11H26.7361V14L24.7361 16V18L26.7361 20V23H18.7361V20L20.7361 18V16Z" fill="#FFFFFE"/>
<path d="M15.4721 18.5341H10.5377L12.5642 22.6566L9.61947 24.1497L7.35907 19.5161L4 22.7919V7L15.4721 18.5341Z" fill="#FFFFFE"/>
<path d="M20.2361 13H21.2361M21.2361 14H22.2361M22.2361 15H23.2361M22.2361 17H23.2361M22.2361 20H23.2361M21.2361 21H22.2361M23.2361 21H24.2361M24.2361 22H25.2361M20.2361 22H21.2361M22.2361 22H23.2361M22.2361 13H23.2361M24.2361 13H25.2361M17.7361 11H27.7361V9H17.7361V11ZM17.7361 25H27.7361V23H17.7361V25ZM20.7361 16L18.7361 14V11H26.7361V14L24.7361 16V18L26.7361 20V23H18.7361V20L20.7361 18V16ZM15.4721 18.5341H10.5377L12.5642 22.6566L9.61947 24.1497L7.35907 19.5161L4 22.7919V7L15.4721 18.5341Z" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<rect x="15" y="26" style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" width="10" height="2"/>
<rect x="15" y="12" style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" width="10" height="2"/>
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="18,21 16,23 16,26 24,26 24,23 22,21 22,19 24,17
24,14 16,14 16,17 18,19 "/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="24" x2="18.5" y2="24"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="18.5" y1="23" x2="19.5" y2="23"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="22" x2="20.5" y2="22"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="20" x2="20.5" y2="20"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="17" x2="20.5" y2="17"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="18.5" y1="16" x2="19.5" y2="16"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="20.5" y1="16" x2="21.5" y2="16"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="21.5" y1="15" x2="22.5" y2="15"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="15" x2="18.5" y2="15"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="15" x2="20.5" y2="15"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="24" x2="20.5" y2="24"/>
<line style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" x1="21.5" y1="24" x2="22.5" y2="24"/>
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="12.73606,18.4659 7.80159,18.4659 9.82813,14.34343
6.88341,12.8503 4.62301,17.48387 1.26394,14.2081 1.26394,30 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1012 B

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -1,3 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 15V7H17V15H25V17H17V25H15V17H7V15H15Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="15,15 15,7 17,7 17,15 25,15 25,17 17,17 17,25 15,25
15,17 7,17 7,15 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 454 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

+11 -2
View File
@@ -1,3 +1,12 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2941 17.5735V20.8824H9.63235L5 16.25L9.63235 11.6177H10.2941V14.9265H14.9265V10.2941H11.6177V9.63235L16.25 5L20.8824 9.63235V10.2941H17.5735V14.9265H22.2059V11.6177H22.8676L27.5 16.25L22.8676 20.8824H22.2059V17.5735H17.5735V22.2059H20.8824V22.8676L16.25 27.5L11.6177 22.8676V22.2059H14.9265V17.5735H10.2941Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="6.04412,21.32353 6.04412,24.63235 5.38235,24.63235
0.75,20 5.38235,15.36765 6.04412,15.36765 6.04412,18.67647 10.67647,18.67647 10.67647,14.04412 7.36765,14.04412
7.36765,13.38235 12,8.75 16.63235,13.38235 16.63235,14.04412 13.32353,14.04412 13.32353,18.67647 17.95588,18.67647
17.95588,15.36765 18.61765,15.36765 23.25,20 18.61765,24.63235 17.95588,24.63235 17.95588,21.32353 13.32353,21.32353
13.32353,25.95588 16.63235,25.95588 16.63235,26.61765 12,31.25 7.36765,26.61765 7.36765,25.95588 10.67647,25.95588
10.67647,21.32353 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 918 B

+10 -3
View File
@@ -1,4 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 6C6.38276 10.4329 9.60454 13.246 9.60454 13.246L22.1665 25.8079C22.4226 26.064 22.8379 26.064 23.094 25.8079L24.4509 24.4509L25.8079 23.094C26.064 22.8379 26.064 22.4226 25.8079 22.1665L13.246 9.60454C13.246 9.60454 10.4329 6.38276 6 6Z" fill="#FFFFFE" stroke="#000001" stroke-width="1.018" stroke-miterlimit="10"/>
<path d="M14.5446 18.1861L18.1919 14.5389" stroke="black" stroke-width="1.018" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<path style="fill:#FFFFFE;stroke:#000001;stroke-width:1.018;stroke-miterlimit:10;" d="M19.45094,12.54906"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-width:1.018;stroke-miterlimit:10;" d="M1,31
c0.38276-4.43288,3.60454-7.24599,3.60454-7.24599L17.16645,11.1921c0.25613-0.25613,0.6714-0.25613,0.92753,0l1.35696,1.35696
l1.35696,1.35696c0.25613,0.25613,0.25613,0.6714,0,0.92753L8.24599,27.39546C8.24599,27.39546,5.43288,30.61724,1,31z"/>
<line style="fill:#FFFFFF;stroke:#000000;stroke-width:1.018;stroke-miterlimit:10;" x1="14.54465" y1="13.8139" x2="18.19186" y2="17.46111"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 889 B

+17 -7
View File
@@ -1,8 +1,18 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.9536 11V6.98606C10.9536 6.98606 10.9536 5.64808 12.2915 5.64808C13.6295 5.64808 13.6295 6.98606 13.6295 6.98606V11" fill="#FFFFFE"/>
<path d="M13.6295 11L13.6295 7.65505C13.6295 7.65505 13.6295 6.31707 14.9675 6.31707C16.3055 6.31707 16.3055 7.65505 16.3055 7.65505V11" fill="#FFFFFE"/>
<path d="M16.3055 11L16.3055 8.32404C16.3055 8.32404 16.3055 6.98606 17.6434 6.98606C18.9814 6.98606 18.9814 8.32404 18.9814 8.32404V14.6794C18.9814 14.6794 19.6504 21.3693 12.9605 21.3693C12.9605 21.3693 10.5 21.5 8.27759 19.3624L3.59466 14.0104C3.59466 14.0104 2.25668 12.6725 3.59466 11.3345C3.59466 11.3345 4.59814 10.331 6.27062 12.0035L7.43223 13.1651C7.74419 13.477 8.27758 13.2561 8.27758 12.8149V1.96863C8.27758 1.96863 8.27758 0.630646 9.61556 0.630646C10.9535 0.630646 10.9535 1.96863 10.9535 1.96863L10.9536 11" fill="#FFFFFE"/>
<path d="M29.4742 30C29.4742 26.9767 27.0233 24.5258 24 24.5258C20.9767 24.5258 18.5258 26.9767 18.5258 30C18.5258 30 19.5 31 24 31C28.5 31 29.4742 30 29.4742 30Z" fill="#FFFFFE"/>
<path d="M24 17C26.0782 17 27.7629 18.6847 27.7629 20.7629C27.7629 22.8411 26.0782 24.5258 24 24.5258C21.9218 24.5258 20.2371 22.8411 20.2371 20.7629C20.2371 18.6847 21.9218 17 24 17Z" fill="#FFFFFE"/>
<path d="M24 24.5258C27.0233 24.5258 29.4742 26.9767 29.4742 30C29.4742 30 28.5 31 24 31C19.5 31 18.5258 30 18.5258 30C18.5258 26.9767 20.9767 24.5258 24 24.5258ZM24 24.5258C26.0782 24.5258 27.7629 22.8411 27.7629 20.7629C27.7629 18.6847 26.0782 17 24 17C21.9218 17 20.2371 18.6847 20.2371 20.7629C20.2371 22.8411 21.9218 24.5258 24 24.5258ZM10.9536 11V6.98606C10.9536 6.98606 10.9536 5.64808 12.2915 5.64808C13.6295 5.64808 13.6295 6.98606 13.6295 6.98606V11L13.6295 7.65505C13.6295 7.65505 13.6295 6.31707 14.9675 6.31707C16.3055 6.31707 16.3055 7.65505 16.3055 7.65505V11L16.3055 8.32404C16.3055 8.32404 16.3055 6.98606 17.6434 6.98606C18.9814 6.98606 18.9814 8.32404 18.9814 8.32404V14.6794C18.9814 14.6794 19.6504 21.3693 12.9605 21.3693C12.9605 21.3693 10.5 21.5 8.27759 19.3624L3.59466 14.0104C3.59466 14.0104 2.25668 12.6725 3.59466 11.3345C3.59466 11.3345 4.59814 10.331 6.27062 12.0035L7.43223 13.1651C7.74419 13.477 8.27758 13.2561 8.27758 12.8149V1.96863C8.27758 1.96863 8.27758 0.630646 9.61556 0.630646C10.9535 0.630646 10.9535 1.96863 10.9535 1.96863L10.9536 11Z" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M8.71645,20.81533v4.01394c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-4.01394"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M11.39241,20.81533v3.34495c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-3.34495"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M14.06836,20.81533v2.67596c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-6.3554c0,0,0.66899-6.6899-6.02091-6.6899c0,0-2.46051-0.13066-4.68293,2.00697
l-4.68293,5.35192c0,0-1.33798,1.33798,0,2.67596c0,0,1.00348,1.00348,2.67596-0.66899l1.16161-1.16161
c0.31196-0.31196,0.84535-0.09102,0.84535,0.35016v10.8463c0,0,0,1.33798,1.33798,1.33798s1.33798-1.33798,1.33798-1.33798
v-9.03136"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M27.23709,1.81533c0,3.02331-2.45088,5.47419-5.47419,5.47419
s-5.47419-2.45088-5.47419-5.47419c0,0,0.97419-1,5.47419-1S27.23709,1.81533,27.23709,1.81533z"/>
<circle style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" cx="21.76291" cy="11.05243" r="3.76291"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

+17 -7
View File
@@ -1,8 +1,18 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.4775 21.8065C28.4775 24.2793 24 31 24 31C24 31 19.5225 24.2793 19.5225 21.8065C19.5225 19.3336 21.5272 17.329 24 17.329C26.4728 17.329 28.4775 19.3336 28.4775 21.8065Z" fill="#FFFFFE"/>
<path d="M24.0218 19.7807C25.1373 19.7807 26.0415 20.685 26.0415 21.8004C26.0415 22.9159 25.1373 23.8201 24.0218 23.8201C22.9064 23.8201 22.0021 22.9159 22.0021 21.8004C22.0021 20.685 22.9064 19.7807 24.0218 19.7807Z" fill="black"/>
<path d="M10.9535 11.1645V7.15057C10.9535 7.15057 10.9535 5.81259 12.2915 5.81259C13.6295 5.81259 13.6295 7.15057 13.6295 7.15057V11.1645" fill="#FFFFFE"/>
<path d="M13.6295 11.1645L13.6295 7.81956C13.6295 7.81956 13.6295 6.48158 14.9675 6.48158C16.3055 6.48158 16.3055 7.81956 16.3055 7.81956V11.1645" fill="#FFFFFE"/>
<path d="M16.3055 11.1645L16.3055 8.48855C16.3055 8.48855 16.3055 7.15057 17.6434 7.15057C18.9814 7.15057 18.9814 8.48855 18.9814 8.48855V14.8439C18.9814 14.8439 19.5226 21.5338 12.9605 21.5338C12.9605 21.5338 10.5 21.6645 8.27759 19.5269L3.59466 14.175C3.59466 14.175 2.25668 12.837 3.59466 11.499C3.59466 11.499 4.59814 10.4955 6.27062 12.168L7.43223 13.3296C7.74419 13.6416 8.27758 13.4206 8.27758 12.9794V2.13315C8.27758 2.13315 8.27758 0.795166 9.61556 0.795166C10.9535 0.795166 10.9535 2.13315 10.9535 2.13315L10.9535 11.1645" fill="#FFFFFE"/>
<path d="M28.4775 21.8065C28.4775 24.2793 24 31 24 31C24 31 19.5225 24.2793 19.5225 21.8065C19.5225 19.3336 21.5272 17.329 24 17.329C26.4728 17.329 28.4775 19.3336 28.4775 21.8065ZM24.0218 19.7807C25.1373 19.7807 26.0415 20.685 26.0415 21.8004C26.0415 22.9159 25.1373 23.8201 24.0218 23.8201C22.9064 23.8201 22.0021 22.9159 22.0021 21.8004C22.0021 20.685 22.9064 19.7807 24.0218 19.7807ZM10.9535 11.1645V7.15057C10.9535 7.15057 10.9535 5.81259 12.2915 5.81259C13.6295 5.81259 13.6295 7.15057 13.6295 7.15057V11.1645L13.6295 7.81956C13.6295 7.81956 13.6295 6.48158 14.9675 6.48158C16.3055 6.48158 16.3055 7.81956 16.3055 7.81956V11.1645L16.3055 8.48855C16.3055 8.48855 16.3055 7.15057 17.6434 7.15057C18.9814 7.15057 18.9814 8.48855 18.9814 8.48855V14.8439C18.9814 14.8439 19.5226 21.5338 12.9605 21.5338C12.9605 21.5338 10.5 21.6645 8.27759 19.5269L3.59466 14.175C3.59466 14.175 2.25668 12.837 3.59466 11.499C3.59466 11.499 4.59814 10.4955 6.27062 12.168L7.43223 13.3296C7.74419 13.6416 8.27758 13.4206 8.27758 12.9794V2.13315C8.27758 2.13315 8.27758 0.795166 9.61556 0.795166C10.9535 0.795166 10.9535 2.13315 10.9535 2.13315L10.9535 11.1645Z" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M26.73873,10.09111c0-2.47283-4.47746-9.19352-4.47746-9.19352
s-4.47746,6.72069-4.47746,9.19352s2.00463,4.47746,4.47746,4.47746S26.73873,12.56394,26.73873,10.09111z"/>
<circle cx="22.28308" cy="10.09717" r="2.01972"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M9.21481,20.73308v4.01394c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-4.01394"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M11.89077,20.73308v3.34495c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-3.34495"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M14.56673,20.73308v2.67596c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-6.3554c0,0,0.54113-6.6899-6.02091-6.6899c0,0-2.46051-0.13066-4.68293,2.00697
l-4.68293,5.35192c0,0-1.33798,1.33798,0,2.67596c0,0,1.00348,1.00348,2.67596-0.66899l1.16161-1.16162
c0.31196-0.31196,0.84535-0.09102,0.84535,0.35016v10.8463c0,0,0,1.33798,1.33798,1.33798s1.33798-1.33798,1.33798-1.33798
v-9.03136"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,6 +1,17 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.9535 16.6291V12.6152C15.9535 12.6152 15.9535 11.2772 17.2915 11.2772C18.6295 11.2772 18.6295 12.6152 18.6295 12.6152V16.6291" fill="#FFFFFE"/>
<path d="M18.6295 16.6291L18.6295 13.2842C18.6295 13.2842 18.6295 11.9462 19.9675 11.9462C21.3055 11.9462 21.3055 13.2842 21.3055 13.2842V16.6291" fill="#FFFFFE"/>
<path d="M21.3055 16.6291L21.3055 13.9531C21.3055 13.9531 21.3055 12.6152 22.6434 12.6152C23.9814 12.6152 23.9814 13.9531 23.9814 13.9531V20.3085C23.9814 20.3085 24.6504 26.9984 17.9605 26.9984C17.9605 26.9984 15.5 27.1291 13.2776 24.9915L8.59466 19.6396C8.59466 19.6396 7.25668 18.3016 8.59466 16.9636C8.59466 16.9636 9.59814 15.9601 11.2706 17.6326L12.4322 18.7942C12.7442 19.1062 13.2776 18.8852 13.2776 18.444V7.59775C13.2776 7.59775 13.2776 6.25977 14.6156 6.25977C15.9535 6.25977 15.9535 7.59775 15.9535 7.59775V16.6291" fill="#FFFFFE"/>
<path d="M15.9535 16.6291V12.6152C15.9535 12.6152 15.9535 11.2772 17.2915 11.2772C18.6295 11.2772 18.6295 12.6152 18.6295 12.6152V16.6291L18.6295 13.2842C18.6295 13.2842 18.6295 11.9462 19.9675 11.9462C21.3055 11.9462 21.3055 13.2842 21.3055 13.2842V16.6291L21.3055 13.9531C21.3055 13.9531 21.3055 12.6152 22.6434 12.6152C23.9814 12.6152 23.9814 13.9531 23.9814 13.9531V20.3085C23.9814 20.3085 24.6504 26.9984 17.9605 26.9984C17.9605 26.9984 15.5 27.1291 13.2776 24.9915L8.59466 19.6396C8.59466 19.6396 7.25668 18.3016 8.59466 16.9636C8.59466 16.9636 9.59814 15.9601 11.2706 17.6326L12.4322 18.7942C12.7442 19.1062 13.2776 18.8852 13.2776 18.444V7.59775C13.2776 7.59775 13.2776 6.25977 14.6156 6.25977C15.9535 6.25977 15.9535 7.59775 15.9535 7.59775V16.6291Z" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<g>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M8.95354,21.00077v4.01394c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-4.01394"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M11.6295,21.00077v3.34495c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-3.34495"/>
<path style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" d="M14.30546,21.00077v2.67596c0,0,0,1.33798,1.33798,1.33798
s1.33798-1.33798,1.33798-1.33798v-6.3554c0,0,0.66899-6.6899-6.02091-6.6899c0,0-2.46051-0.13066-4.68293,2.00697
l-4.68293,5.35192c0,0-1.33798,1.33798,0,2.67596c0,0,1.00348,1.00348,2.67596-0.66899l1.16162-1.16162
c0.31196-0.31196,0.84535-0.09102,0.84535,0.35016v10.8463c0,0,0,1.33798,1.33798,1.33798s1.33798-1.33798,1.33798-1.33798
v-9.03136"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,3 +1,9 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.7452 18.9809L8.45754 16.6932L8 17.1508V23.5563H14.4056L14.8631 23.0988L12.5754 20.8111L20.8111 12.5754L23.0988 14.8631L23.5563 14.4056V8H17.1508L16.6932 8.45754L18.9809 10.7452L10.7452 18.9809Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="3.96706,26.20278 1.67937,23.91508 1.22183,24.37262
1.22183,30.77818 7.62738,30.77818 8.08492,30.32063 5.79722,28.03294 14.03294,19.79722 16.32063,22.08492 16.77818,21.62738
16.77818,15.22183 10.37262,15.22183 9.91508,15.67937 12.20278,17.96706 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 631 B

@@ -1,3 +1,9 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.9809 20.8111L16.6932 23.0988L17.1508 23.5563H23.5563V17.1508L23.0988 16.6932L20.8111 18.9809L12.5754 10.7452L14.8631 8.45754L14.4056 8H8V14.4056L8.45754 14.8631L10.7452 12.5754L18.9809 20.8111Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="12.20278,28.03294 9.91508,30.32063 10.37262,30.77818
16.77818,30.77818 16.77818,24.37262 16.32063,23.91508 14.03294,26.20278 5.79722,17.96706 8.08492,15.67937 7.62738,15.22183
1.22183,15.22183 1.22183,21.62738 1.67937,22.08492 3.96706,19.79722 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 631 B

@@ -1,3 +1,9 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2941 16.9559H22.2059V20.2647H22.8676L27.5 15.6324L22.8676 11H22.2059V14.3088H10.2941V11H9.63235L5 15.6324L9.63235 20.2647H10.2941V16.9559Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="6.04412,27.32353 17.95588,27.32353 17.95588,30.63235
18.61765,30.63235 23.25,26 18.61765,21.36765 17.95588,21.36765 17.95588,24.67647 6.04412,24.67647 6.04412,21.36765
5.38235,21.36765 0.75,26 5.38235,30.63235 6.04412,30.63235 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 614 B

@@ -1,3 +1,9 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.2143 10.1429H11V9.5L15.5 5L20 9.5V10.1429H16.7857V21.7143H20V22.3571L15.5 26.8571L11 22.3571V21.7143H14.2143V10.1429Z" fill="#FFFFFE" stroke="#000001" stroke-width="0.99351" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-width:0.99351;stroke-miterlimit:10;" points="3.71429,14.21429 0.5,14.21429
0.5,13.57143 5,9.07143 9.5,13.57143 9.5,14.21429 6.28571,14.21429 6.28571,25.78572 9.5,25.78572 9.5,26.42857 5,30.92857
0.5,26.42857 0.5,25.78572 3.71429,25.78572 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 601 B

+7 -2
View File
@@ -1,3 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21 9.5V7.5H17V8H15V7.5H11V9.5H15V22.5H11V24.5H15V24H17V24.5H21V22.5H17V9.5H21Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="21,9.5 21,7.5 17,7.5 17,8 15,8 15,7.5 11,7.5 11,9.5
15,9.5 15,22.5 11,22.5 11,24.5 15,24.5 15,24 17,24 17,24.5 21,24.5 21,22.5 17,22.5 17,9.5 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 528 B

+7 -2
View File
@@ -1,3 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3929 12.1072V25H17.1071V12.1072H20.5V11.4286L15.75 6.67857L11 11.4286V12.1072H14.3929Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" points="4.64286,25.73214 4.64286,12.83929 7.35714,12.83929
7.35714,25.73214 10.75,25.73214 10.75,26.41072 6,31.16072 1.25,26.41072 1.25,25.73214 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 523 B

+43 -38
View File
@@ -1,39 +1,44 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 7H22V11L18 15V17L22 21V26H10V21L14 17V15L10 11V7Z" fill="#FFFFFE"/>
<path d="M22 7V11L18 15V17L22 21V26" stroke="#000001" stroke-miterlimit="10"/>
<path d="M10 26V21L14 17V15L10 11V7" stroke="#000001" stroke-miterlimit="10"/>
<path d="M23 28H9V26H23V28Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<path d="M23 7H9V5H23V7Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 18H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 19H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 21H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 21H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 22H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 22H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 23H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 23H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 22H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M18.5 23H19.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M19.5 24H20.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 24H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 24H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 24H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M12.5 23H13.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M11.5 24H12.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M11.5 9H12.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 9H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 9H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 9H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M19.5 9H20.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M12.5 10H13.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 10H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 10H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M18.5 10H19.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 11H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 11H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 12H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 12H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 13H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 11H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 16H16.5" stroke="#000001" stroke-miterlimit="10"/>
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g transform="translate(0 32) scale(1 -1)">
<polygon style="fill:#FFFFFE;" points="10,25.5 22,25.5 22,21.5 18,17.5 18,15.5 22,11.5 22,6.5 10,6.5 10,11.5 14,15.5 14,17.5
10,21.5 "/>
<polyline style="fill:none;stroke:#000001;stroke-miterlimit:10;" points="22,25.5 22,21.5 18,17.5 18,15.5 22,11.5 22,6.5 "/>
<polyline style="fill:none;stroke:#000001;stroke-miterlimit:10;" points="10,6.5 10,11.5 14,15.5 14,17.5 10,21.5 10,25.5 "/>
<rect x="9" y="4.5" style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" width="14" height="2"/>
<rect x="9" y="25.5" style="fill:#FFFFFE;stroke:#000001;stroke-miterlimit:10;" width="14" height="2"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="14.5" x2="16.5" y2="14.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="16.5" y1="13.5" x2="17.5" y2="13.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="16.5" y1="11.5" x2="17.5" y2="11.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="14.5" y1="11.5" x2="15.5" y2="11.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="10.5" x2="16.5" y2="10.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="13.5" y1="10.5" x2="14.5" y2="10.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="14.5" y1="9.5" x2="15.5" y2="9.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="16.5" y1="9.5" x2="17.5" y2="9.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="10.5" x2="18.5" y2="10.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="18.5" y1="9.5" x2="19.5" y2="9.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="8.5" x2="20.5" y2="8.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="8.5" x2="18.5" y2="8.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="8.5" x2="16.5" y2="8.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="13.5" y1="8.5" x2="14.5" y2="8.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="12.5" y1="9.5" x2="13.5" y2="9.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="11.5" y1="8.5" x2="12.5" y2="8.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="11.5" y1="23.5" x2="12.5" y2="23.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="13.5" y1="23.5" x2="14.5" y2="23.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="23.5" x2="16.5" y2="23.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="23.5" x2="18.5" y2="23.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="19.5" y1="23.5" x2="20.5" y2="23.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="12.5" y1="22.5" x2="13.5" y2="22.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="14.5" y1="22.5" x2="15.5" y2="22.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="16.5" y1="22.5" x2="17.5" y2="22.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="18.5" y1="22.5" x2="19.5" y2="22.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="13.5" y1="21.5" x2="14.5" y2="21.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="21.5" x2="16.5" y2="21.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="14.5" y1="20.5" x2="15.5" y2="20.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="16.5" y1="20.5" x2="17.5" y2="20.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="19.5" x2="16.5" y2="19.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="17.5" y1="21.5" x2="18.5" y2="21.5"/>
<line style="fill:none;stroke:#000001;stroke-miterlimit:10;" x1="15.5" y1="16.5" x2="16.5" y2="16.5"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -888,7 +888,8 @@ function CursorStylePreview({
style === "windows11"
) {
const resolvedPreviewSize =
(previewSize ?? BUILTIN_CURSOR_PREVIEW_SIZE) * getCursorStyleSizeMultiplier(style);
(previewSize ?? BUILTIN_CURSOR_PREVIEW_SIZE) *
(style === "windows11" ? 1 : getCursorStyleSizeMultiplier(style));
return (
<div
className="flex items-center justify-center"
@@ -1247,8 +1248,10 @@ export function SettingsPanel({
try {
const macosPreview = cursorSetAssets.macos.arrow.url;
const tahoePreview = cursorSetAssets.tahoe.arrow.url;
const windows11Preview = cursorSetAssets.windows11.arrow.url;
const minimalPreview = await createTrimmedSvgPreview(minimalCursorUrl, 512);
const [windows11Preview, minimalPreview] = await Promise.all([
createTrimmedSvgPreview(cursorSetAssets.windows11.arrow.url, 512),
createTrimmedSvgPreview(minimalCursorUrl, 512),
]);
const invertedPreview = await createInvertedPreview(tahoePreview);
if (!cancelled) {
@@ -0,0 +1,25 @@
import { describe, expect, it } from "vitest";
import { cursorSetAssets, getCursorStyleSizeMultiplier } from "./uploadedCursorAssets";
describe("Windows system cursor assets", () => {
it("uses the native 32px cursor hotspots", () => {
expect(cursorSetAssets.windows11.arrow.fallbackAnchor).toEqual({ x: 0, y: 0 });
expect(cursorSetAssets.windows11.pointer.fallbackAnchor).toEqual({ x: 6 / 32, y: 0 });
expect(cursorSetAssets.windows11["resize-ew"].fallbackAnchor).toEqual({
x: 11 / 32,
y: 4 / 32,
});
expect(cursorSetAssets.windows11["resize-ns"].fallbackAnchor).toEqual({
x: 4 / 32,
y: 11 / 32,
});
expect(cursorSetAssets.windows11["not-allowed"].fallbackAnchor).toEqual({
x: 8 / 32,
y: 8 / 32,
});
});
it("normalizes the Windows cursor set from the measured arrow pixel height", () => {
expect(getCursorStyleSizeMultiplier("windows11")).toBeCloseTo(32 / 19.0625, 8);
});
});
@@ -17,10 +17,10 @@ import tahoePointerUrl from "../../../assets/cursors/tahoe/pointinghand-1__40-10
import tahoeResizeEwUrl from "../../../assets/cursors/tahoe/resizeeastwest-1__50-50.svg";
import tahoeResizeNsUrl from "../../../assets/cursors/tahoe/resizenorthsouth-1__50-49.svg";
import windows11ArrowUrl from "../../../assets/cursors/windows11/arrow__31-22.svg";
import windows11ClosedHandUrl from "../../../assets/cursors/windows11/grabbing__50-50.svg";
import windows11CrosshairUrl from "../../../assets/cursors/windows11/cross__50-50.svg";
import windows11NotAllowedUrl from "../../../assets/cursors/windows11/block__50-50.svg";
import windows11CrosshairUrl from "../../../assets/cursors/windows11/cross__50-50.svg";
import windows11OpenHandUrl from "../../../assets/cursors/windows11/grab__50-50.svg";
import windows11ClosedHandUrl from "../../../assets/cursors/windows11/grabbing__50-50.svg";
import windows11PointerUrl from "../../../assets/cursors/windows11/pointer__54-35.svg";
import windows11ResizeEwUrl from "../../../assets/cursors/windows11/resize-horizontal__51-49.svg";
import windows11ResizeNsUrl from "../../../assets/cursors/windows11/resize-vertical__48-50.svg";
@@ -35,7 +35,8 @@ const MACOS_POINTER_CONTENT_HEIGHT = 386;
const TAHOE_POINTER_ASSET_HEIGHT = 958;
const TAHOE_POINTER_CONTENT_HEIGHT = 851;
const WINDOWS11_CURSOR_VIEWBOX_HEIGHT = 32;
const WINDOWS11_ARROW_CONTENT_HEIGHT = 18;
// Alpha bounds measured after correcting the bottom-up Windows system SVG coordinates.
const WINDOWS11_ARROW_CONTENT_HEIGHT = 19.0625;
// Measured from the raw pointer assets using the non-shadow pixel bounds.
const MACOS_CURSOR_STYLE_SIZE_MULTIPLIER =
@@ -68,6 +69,15 @@ function asset(
};
}
function windowsSystemAsset(url: string, hotspotX: number, hotspotY: number) {
return asset(
url,
(hotspotX / WINDOWS11_CURSOR_VIEWBOX_HEIGHT) * 100,
(hotspotY / WINDOWS11_CURSOR_VIEWBOX_HEIGHT) * 100,
{ preserveCanvas: true },
);
}
export const cursorSetAssets: Record<
Exclude<CursorSetStyle, "tahoe-inverted">,
Record<CursorAssetKey, UploadedCursorAsset>
@@ -95,15 +105,16 @@ export const cursorSetAssets: Record<
"not-allowed": asset(tahoeNotAllowedUrl, 23, 0),
},
windows11: {
arrow: asset(windows11ArrowUrl, 31, 22, { preserveCanvas: true }),
text: asset(windows11TextUrl, 50, 50, { preserveCanvas: true }),
pointer: asset(windows11PointerUrl, 54, 35, { preserveCanvas: true }),
crosshair: asset(windows11CrosshairUrl, 50, 50, { preserveCanvas: true }),
"open-hand": asset(windows11OpenHandUrl, 50, 50, { preserveCanvas: true }),
"closed-hand": asset(windows11ClosedHandUrl, 50, 50, { preserveCanvas: true }),
"resize-ew": asset(windows11ResizeEwUrl, 51, 49, { preserveCanvas: true }),
"resize-ns": asset(windows11ResizeNsUrl, 48, 50, { preserveCanvas: true }),
"not-allowed": asset(windows11NotAllowedUrl, 50, 50, { preserveCanvas: true }),
// Hotspots are from the 32px frames embedded in the matching Windows .cur files.
arrow: windowsSystemAsset(windows11ArrowUrl, 0, 0),
text: windowsSystemAsset(windows11TextUrl, 16, 16),
pointer: windowsSystemAsset(windows11PointerUrl, 6, 0),
crosshair: windowsSystemAsset(windows11CrosshairUrl, 16, 16),
"open-hand": windowsSystemAsset(windows11OpenHandUrl, 16, 16),
"closed-hand": windowsSystemAsset(windows11ClosedHandUrl, 16, 16),
"resize-ew": windowsSystemAsset(windows11ResizeEwUrl, 11, 4),
"resize-ns": windowsSystemAsset(windows11ResizeNsUrl, 4, 11),
"not-allowed": windowsSystemAsset(windows11NotAllowedUrl, 8, 8),
},
};