Compare commits

...

29 Commits

Author SHA1 Message Date
Philip Abbey
065a0e47cf Update manifest.xml
Indentation confusion resolved. Whitespace changes only.
2025-11-12 11:22:53 +00:00
Philip Abbey
f24d95d739 320 add icon for numeric menu item type (#321)
All icons are now automatically scales by Pythono scripts.
2025-11-12 11:17:35 +00:00
Philip Abbey
0d6c3a10c6 Changed icons SVG
Changed the way colours were managed in the SVG files to make them more amenable to scripting. Changed the scripts to automate icon resizing.

Co-Authored-By: Joseph Abbey <me@josephabbey.dev>
2025-11-11 19:57:51 +00:00
Philip Abbey
38d9c2c06d Icons with lighter blue 2025-11-10 20:41:48 +00:00
Philip Abbey
1bdc117c13 Amended all icons 2025-11-09 23:03:29 +00:00
Philip Abbey
87499dba50 Amended error icon size 48 2025-11-09 22:57:46 +00:00
Philip Abbey
193f53bbf0 Update manifest.xml
Reverted this file, which should not have been committed.
2025-11-09 19:13:05 +00:00
Philip Abbey
024b2c727f Changed icons
New dual colour icons and a numeric menu item icon.
2025-11-09 19:10:31 +00:00
Joseph Abbey
75045b19d9 Fix for numeric menu items over Wi-Fi/LTE (#318)
Turns out the sync service will not run unless the picker has not only
been popped but the display also updated.

v3.7 needs a swift turnaround as its a bug reported by a user.
2025-11-07 23:23:42 +00:00
Philip Abbey
d6e32b777f Update HISTORY.md
Added v3.7 text.
2025-11-07 09:10:47 +00:00
Philip Abbey
1e17d93310 Fix for numeric menu items over Wi-Fi/LTE
Turns out the sync service will not run unless the picker has not only been popped but the display also updated.
2025-11-07 09:05:22 +00:00
Philip Abbey
cc53b25508 Update HomeAssistantTapMenuItem.mc
Code tidy only.
2025-11-07 09:03:05 +00:00
Philip Abbey
098dc81236 Space alignment in code (tidy) and v3.6 history amendment 2025-11-06 20:40:43 +00:00
Philip Abbey
5ab8229602 Update Numeric.md
Changed 'service' to 'action'. Careless omission for new documentation.

Signed-off-by: Philip Abbey <philipabbey@users.noreply.github.com>
2025-11-06 18:15:09 +00:00
Philip Abbey
8acc450c2c Update HISTORY.md
Amended v3.6 description.
2025-11-04 21:22:48 +00:00
Philip Abbey
1a52a942fd Added two screenshots for the Number Picker to Numeric.md (#316)
Amendment to documentation. Overlaps with changes a couple of changes on
#308 due to order.
2025-11-04 20:50:51 +00:00
Philip Abbey
d8b82f23e4 Merge branch 'main' into 315-add-screenshots-to-numericmd
Signed-off-by: Philip Abbey <philipabbey@users.noreply.github.com>
2025-11-04 20:50:24 +00:00
Philip Abbey
4943c87edb Icon script changes (#314)
A partial update that does not include managing the white variants of
the icons.
2025-11-04 20:49:22 +00:00
Philip Abbey
179c4d1bc5 Rename service to action (#308) 2025-11-04 20:48:58 +00:00
Joseph Abbey
6822cbe434 Allow floats for media_player picker limits 2025-11-04 19:09:45 +00:00
Joseph Abbey
fbeadf7ba9 Merge branch 'main' into rename-service-to-action 2025-11-04 19:02:19 +00:00
Joseph Abbey
b688cec8f6 Use minimum and maximum instead of const 2025-11-04 19:00:22 +00:00
Philip Abbey
4119665817 Added two screenshots for the Number Picker to Numeric.md 2025-11-02 23:15:59 +00:00
Philip Abbey
f0e263ae54 Update config.schema.json
Amended "Home Assistant Template" description.
2025-11-02 22:38:19 +00:00
Philip Abbey
abd6552916 Documentation changes
"Home Assistant" => "HomeAssistant" search & replace
Added schema change for "exit" feature.
Added initial Devices.md
2025-11-02 19:36:33 +00:00
Philip Abbey
60f754f3e3 Update HomeAssistantMenuItemFactory.mc
Reverting picker => data change, as I think the original was correct, compiled and functionally worked.
2025-11-02 17:41:21 +00:00
Joseph Abbey
bc5a7d04e4 Schema fixes and move "exit" into "tap_action" 2025-11-02 13:14:48 +00:00
Philip Abbey
643c4aa2e5 Icon script changes
A partial update that does not include managing the white variants of the icons,
2025-11-02 13:14:31 +00:00
Philip Abbey
8360a3e4a2 Documentation update
Mainly for the HTTP 410 error case.
2025-11-02 12:20:46 +00:00
122 changed files with 1727 additions and 359 deletions

194
Devices.md Normal file
View File

@@ -0,0 +1,194 @@
# Device Support & Characterisation
A page just to note a practical limit on support for some older devices.
## Application Memory Usage
On an `instinct2x` device:
| Version | Free Memory (bytes) on `instinct2x`| Free Memory (bytes) on `venu2`|
|:-------:|-----------------------------------:|------------------------------:|
| 3.5 | 62,360 | - |
| 3.6 | 65,696 | 53,832 |
A user has reported a maximum of 26 items with Ver 3.5. This measurement has shown that each menu item requires about 1.0~1.2 kB. Using the worked example below it is possible to predict how many menu items your particular device might be able to support by using indicative figures.
## Worked Example
As a worked example, for Ver 3.6 working on an `instinct2x` device:
| Feature | Memory (bytes) | Cost (bytes) |
|--------------------------------------|---------------:|-------------:|
| Declared available to application | 98,304 | |
| Measured available to application | 94,112 | (4,192 less) |
| Application used | 65,696 | |
| Free before fetching menu definition | 28,416 | |
| Free after fetching menu definition | 15,792 | 12,624 |
| Free after construction | 936 | 14,856 |
Our test menu presently contains a mix of 28 items, consisting of nested group, toggle, tap, info and numeric items with templates. So each item requires (12,624 + 14,856) / 28 = 982 bytes.
## Garmin Devices
The following table details all the devices as at 1 October 2025 and whether they are supported by Garmin HomeAssistant. The available application memory is also detailed so that it can be compared to an application version listed above. Of particular concern are the 'Instinct' range of devices, being the smallest we currently support. New feature requests are now being vetted against how they might affect our ability to support the 'Instinct' range of devices. At some point support may have to be withdrawn in order to allow the Garmin HomeAssistant application to grow further.
| Device | Supported | Application Memory |
|----------------------------|:---------:|--------------------:|
| d2bravo | N | 65,536 |
| d2bravo_titanium | N | 65,536 |
| fenix3 | N | 65,536 |
| fenix3_hr | N | 65,536 |
| fr230 | N | 65,536 |
| fr235 | N | 65,536 |
| fr630 | N | 65,536 |
| fr920xt | N | 65,536 |
| vivoactive | N | 65,536 |
| descentg1 | Y | 98,304 |
| instinct2 | Y | 98,304 |
| instinct2s | Y | 98,304 |
| instinct2x | Y | 98,304 |
| instinctcrossover | Y | 98,304 |
| approachs60 | N | 131,072 |
| enduro | Y | 131,072 |
| fenix5 | Y | 131,072 |
| fenix5s | Y | 131,072 |
| fenix6 | Y | 131,072 |
| fenix6s | Y | 131,072 |
| fenixchronos | Y | 131,072 |
| fr245 | Y | 131,072 |
| fr55 | Y | 131,072 |
| fr645 | Y | 131,072 |
| fr735xt | N | 131,072 |
| fr935 | Y | 131,072 |
| instinct3solar45mm | Y | 131,072 |
| instincte40mm | Y | 131,072 |
| instincte45mm | Y | 131,072 |
| venusq | Y | 131,072 |
| vivoactive3 | Y | 131,072 |
| vivoactive3d | N | 131,072 |
| vivoactive_hr | N | 131,072 |
| edge_520 | N | 262,144 |
| fr255 | Y | 524,288 |
| fr255s | Y | 524,288 |
| approachs50 | Y | 786,432 |
| approachs7042mm | Y | 786,432 |
| approachs7047mm | Y | 786,432 |
| d2airx10 | Y | 786,432 |
| d2mach1 | Y | 786,432 |
| descentg2 | Y | 786,432 |
| descentmk343mm | Y | 786,432 |
| descentmk351mm | Y | 786,432 |
| enduro3 | Y | 786,432 |
| epix2 | Y | 786,432 |
| epix2pro42mm | Y | 786,432 |
| epix2pro47mm | Y | 786,432 |
| epix2pro47mmsystem7preview | Y | 786,432 |
| epix2pro51mm | Y | 786,432 |
| fenix7 | Y | 786,432 |
| fenix7pro | Y | 786,432 |
| fenix7pronowifi | Y | 786,432 |
| fenix7s | Y | 786,432 |
| fenix7spro | Y | 786,432 |
| fenix7x | Y | 786,432 |
| fenix7xpro | Y | 786,432 |
| fenix7xpronowifi | Y | 786,432 |
| fenix843mm | Y | 786,432 |
| fenix847mm | Y | 786,432 |
| fenix8pro47mm | Y | 786,432 |
| fenix8solar47mm | Y | 786,432 |
| fenix8solar51mm | Y | 786,432 |
| fenixe | Y | 786,432 |
| fr165 | Y | 786,432 |
| fr165m | Y | 786,432 |
| fr255m | Y | 786,432 |
| fr255sm | Y | 786,432 |
| fr265 | Y | 786,432 |
| fr265s | Y | 786,432 |
| fr57042mm | Y | 786,432 |
| fr57047mm | Y | 786,432 |
| fr955 | Y | 786,432 |
| fr965 | Y | 786,432 |
| fr970 | Y | 786,432 |
| instinct3amoled45mm | Y | 786,432 |
| instinct3amoled50mm | Y | 786,432 |
| instinctcrossoveramoled | Y | 786,432 |
| marq2 | Y | 786,432 |
| marq2aviator | Y | 786,432 |
| system8preview | N | 786,432 |
| venu2 | Y | 786,432 |
| venu2plus | Y | 786,432 |
| venu2s | Y | 786,432 |
| venu3 | Y | 786,432 |
| venu3s | Y | 786,432 |
| venu441mm | Y | 786,432 |
| venu445mm | Y | 786,432 |
| venusq2 | Y | 786,432 |
| venusq2m | Y | 786,432 |
| venux1 | Y | 786,432 |
| vivoactive5 | Y | 786,432 |
| vivoactive6 | Y | 786,432 |
| approachs62 | N | 1,048,576 |
| d2air | Y | 1,048,576 |
| edge1030 | Y | 1,048,576 |
| edge1030bontrager | Y | 1,048,576 |
| edge1030plus | Y | 1,048,576 |
| edge1040 | Y | 1,048,576 |
| edge1050 | Y | 1,048,576 |
| edge520plus | Y | 1,048,576 |
| edge530 | Y | 1,048,576 |
| edge540 | Y | 1,048,576 |
| edge550 | Y | 1,048,576 |
| edge820 | Y | 1,048,576 |
| edge830 | Y | 1,048,576 |
| edge840 | Y | 1,048,576 |
| edge850 | Y | 1,048,576 |
| edgeexplore | Y | 1,048,576 |
| edgeexplore2 | Y | 1,048,576 |
| edgemtb | Y | 1,048,576 |
| edge_1000 | N | 1,048,576 |
| epix | N | 1,048,576 |
| fr645m | Y | 1,048,576 |
| legacyherocaptainmarvel | Y | 1,048,576 |
| legacyherofirstavenger | Y | 1,048,576 |
| legacysagadarthvader | Y | 1,048,576 |
| legacysagarey | Y | 1,048,576 |
| venu | Y | 1,048,576 |
| venud | Y | 1,048,576 |
| venusqm | Y | 1,048,576 |
| vivoactive3m | Y | 1,048,576 |
| vivoactive3mlte | Y | 1,048,576 |
| vivoactive4 | Y | 1,048,576 |
| vivoactive4s | Y | 1,048,576 |
| d2charlie | N | 1,310,720 |
| d2delta | Y | 1,310,720 |
| d2deltapx | Y | 1,310,720 |
| d2deltas | Y | 1,310,720 |
| descentmk1 | N | 1,310,720 |
| descentmk2 | Y | 1,310,720 |
| descentmk2s | Y | 1,310,720 |
| fenix5plus | Y | 1,310,720 |
| fenix5splus | Y | 1,310,720 |
| fenix5x | Y | 1,310,720 |
| fenix5xplus | Y | 1,310,720 |
| fenix6pro | Y | 1,310,720 |
| fenix6spro | Y | 1,310,720 |
| fenix6xpro | Y | 1,310,720 |
| fr245m | Y | 1,310,720 |
| fr745 | Y | 1,310,720 |
| fr945 | Y | 1,310,720 |
| fr945lte | Y | 1,310,720 |
| marqadventurer | Y | 1,310,720 |
| marqathlete | Y | 1,310,720 |
| marqaviator | Y | 1,310,720 |
| marqcaptain | Y | 1,310,720 |
| marqcommander | Y | 1,310,720 |
| marqdriver | Y | 1,310,720 |
| marqexpedition | Y | 1,310,720 |
| marqgolfer | Y | 1,310,720 |
| gpsmap66 | Y | 2,359,296 |
| gpsmap67 | Y | 2,359,296 |
| gpsmap86 | N | 2,359,296 |
| gpsmaph1 | Y | 2,359,296 |
| montana7xx | Y | 2,359,296 |
| oregon7xx | N | 2,359,296 |
| rino7xx | N | 2,359,296 |

View File

@@ -51,4 +51,6 @@
| 3.3 | Providing automatic detection for menu definition updates, but still requires an application restart. |
| 3.4 | Fixed a bug where templates failed to display in toggle menu items (at least on some devices). Fixed a bug where a menu item requesting to exit on completion appeared to indicate failure when using Wi-Fi or LTE. The fix uses a delay in exiting the application modelled as sufficient for a Venu 2 device, so this might need tweaking for other devices. Attempt to fixed an "Out of Memory" bug caused by v3.3 by making automatic checking for menu updates both optional and automatically turned off when insufficient memory is available. This last bug is device dependent and may require another attempt. Internationalisation improvements with thanks to [@krzys_h](https://github.com/krzys-h) for a new automated translations script. |
| 3.5 | Added support for Edge 550, 850 & MTB, Fenix 8 Pro 47mm, GPSMAP H1, Instinct Crossover AMOLED, Venu 4 41mm & 45mm, & Venu X1 devices which also required an SDK update to 8.3.0. The simulation of the Edge 850 device was off, as it failed to update the display and text was the wrong colour, but the buttons menu items operated HA correctly. The assumption is the simulation model is buggy until someone [reports](https://github.com/house-of-abbey/GarminHomeAssistant/issues) otherwise. |
| 3.6 | Added `numeric` menu item type thanks to [@thmichel](https://github.com/thmichel). This allows you to select a numeric value to set for an entity. Confirmations can now display a user supplied message. |
| 3.6 | Added `numeric` menu item type thanks to [@thmichel](https://github.com/thmichel). This allows you to select a numeric value to set for an entity. Confirmations can now display a user supplied message. [Schema update](README.md#old-deprecated-formats) to keep pace with HomeAssistant and correct a previous decision. Schema changes for consistency. |
| 3.7 | Bug fix for `numeric` menu items not working over Wi-Fi & LTE. |
| 3.8 | Added icon for `numeric` menu items and revised icons in general. |

View File

@@ -200,7 +200,14 @@ You can now specify alternative texts to use instead of "On" and "Off", e.g. "Lo
The [schema](https://raw.githubusercontent.com/house-of-abbey/GarminHomeAssistant/main/config.schema.json) is checked by using a URL directly back to this GitHub source repository, so you do not need to install that file. You can just copy & paste your entity names from the YAML configuration files used to configure HomeAssistant. With a submenu, there's a difference between `title` and `name`. The `name` goes on the menu item, and the `title` at the head of the submenu. If your dashboard definition fails to meet the schema, the application will simply drop items with the wrong field names without warning to protect itself.
### Old deprecated format
### Old Deprecated Formats
There are two reasons for the changes to the schema:
1. HomeAssistant made changes we feel we should track for consistency.
2. Retrospectively we decided there was a better way, just like HomeAssistant did. For these changes we apologise.
#### Service Field
Version 1.5 brought in a change to the JSON schema so the following old format remains useable but is no longer favoured.
@@ -245,6 +252,40 @@ The above should be replaced by the following:
This allows the `confirm` and `pin` fields to be accommodated in the `tap_action` along side the `action` tag, and follows the HomeAssistant YAML format more closely.
#### Exit Field
Version 2.31 added an "exit on tap" feature. In retrospect this field should have been nested inside the `tap_action` object.
> [!IMPORTANT] Deprecated:
```json
{
"entity": "automation.turn_off_stuff",
"name": "Turn off Stuff",
"type": "tap",
"tap_action": {
"action": "automation.trigger"
},
"exit": true
}
```
The above should be replaced by the following:
```json
{
"entity": "automation.turn_off_stuff",
"name": "Turn off Stuff",
"type": "tap",
"tap_action": {
"action": "automation.trigger",
"exit": true
},
}
```
A future move to v3.x will remove support for all deprecated JSON elements to simplify code. **Please ensure you track the schema changes in readiness.**
### More Examples
* [Switches](examples/Switches.md)
@@ -402,6 +443,8 @@ Check the latest unresolved [issues](https://github.com/house-of-abbey/GarminHom
9. When using Wi-Fi or LTE to toggle a light, the `toggle` will fail when the default or current state of the application's menu does not match the state of the light. The same applies to a cover or other thing that can be toggled. This is because the application is unable to initialise the menu with the current state without Bluetooth. Hence the Wi-Fi/LTE functionality is best used with `tap` items only.
10. There are memory limits, particularly for older devices. Please see the [explanation of the memory limits](Devices.md) and device support.
# Authors & Contributors
For an up to date list of all authors and contributors, please check the [contributor's page](https://github.com/house-of-abbey/GarminHomeAssistant/graphs/contributors). Thank you all for improving this application.

View File

@@ -315,9 +315,15 @@ JSON for copy & paste:
![No JSON](images/NoJson.png)
When the application persists in reporting "No JSON returned from HTTP request." this might be due to a mismatch between the Webhook ID and the device settings on the HomeAssistant server. We have discovered that the Webhook ID is required for HomeAssistant API calls with templates in order to work in a non-privileged account. The application options include the ability to clear the Webhook ID in the application forcing a new one to be set up. This should prevent the above error being shown on startup.
When the application persists in reporting _"No JSON returned from HTTP request"_ this might be due to a mismatch between the Webhook ID and the device settings on the HomeAssistant server. We have discovered that the Webhook ID is required for HomeAssistant API calls with templates in order to work in a non-privileged account. The application options include the ability to clear the Webhook ID in the application forcing a new one to be set up. This should prevent the above error being shown on startup.
Look for this option in the application settings:
![HTTP 410](images/http_410_error.jpg)
We now also have reports of an [HTTP 410](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/410) error occurring after an application update. With thanks to [@Aaroneisele55](https://github.com/Aaroneisele55) for resolving this issue also by the clearing of the Webhook ID. The cause of the problem remains unknown as updates do not generally require this correction between the Home Assistant server and the watch settings.
**Therefore, when the URL is known to work, any failure to return the JSON menu definition from an HTTPS request should try resetting the Webhook ID used with Home Assistant.**
To reset the Webhook ID look for this option in the application settings:
![Nabu Casa Setup](images/delete_webhook_id.png)

View File

@@ -47,7 +47,8 @@
"$ref": "#/$defs/enabled"
},
"exit": {
"$ref": "#/$defs/exit"
"$ref": "#/$defs/exit",
"deprecated": true
}
},
"required": [
@@ -58,6 +59,7 @@
"additionalProperties": false
},
"template": {
"deprecated": true,
"oneOf": [
{
"type": "object",
@@ -118,7 +120,8 @@
"$ref": "#/$defs/enabled"
},
"exit": {
"$ref": "#/$defs/exit"
"$ref": "#/$defs/exit",
"deprecated": true
}
},
"required": [
@@ -184,7 +187,8 @@
"$ref": "#/$defs/enabled"
},
"exit": {
"$ref": "#/$defs/exit"
"$ref": "#/$defs/exit",
"deprecated": true
}
},
"required": [
@@ -342,10 +346,12 @@
"const": "brightness"
},
"min": {
"const": 0
"type": "integer",
"minimum": 0
},
"max": {
"const": 255,
"type": "integer",
"max": 255,
"description": "Lights are not a percentage."
}
}
@@ -440,10 +446,12 @@
"const": "percentage"
},
"min": {
"const": 0
"type": "integer",
"minimum": 0
},
"max": {
"const": 100
"type": "integer",
"maximum": 100
}
}
}
@@ -475,10 +483,12 @@
"const": "position"
},
"min": {
"const": 0
"type": "integer",
"minimum": 0
},
"max": {
"const": 100
"type": "integer",
"maximum": 100
}
}
}
@@ -538,10 +548,12 @@
"const": "tilt_position"
},
"min": {
"const": 0
"type": "integer",
"minimum": 0
},
"max": {
"const": 100
"type": "integer",
"maximum": 100
}
}
}
@@ -565,10 +577,12 @@
"const": "position"
},
"min": {
"const": 0
"type": "integer",
"minimum": 0
},
"max": {
"const": 100
"type": "integer",
"maximum": 100
}
}
}
@@ -603,10 +617,13 @@
"const": "volume_level"
},
"min": {
"const": 0
"type": "number",
"minimum": 0
},
"max": {
"const": 1
"type": "number",
"maximum": 1,
"description": "Fraction [0,1], not percentage."
}
}
}
@@ -922,21 +939,11 @@
"title": "Home Assistant action name",
"pattern": "^[^.]+\\.[^.]+$"
},
"tap_action": {
"type": "object",
"title": "Action",
"description": "'confirm' and 'pin' fields are optional.",
"properties": {
"confirm": {
"$ref": "#/$defs/confirm"
},
"pin": {
"$ref": "#/$defs/pin"
}
}
},
"tap_action_tap": {
"$ref": "#/$defs/tap_action",
"allOf": [
{
"title": "Tap Action",
"description": "'confirm' and 'pin' fields are optional. 'action' is required.",
"properties": {
"service": {
"$ref": "#/$defs/action",
@@ -949,28 +956,57 @@
"type": "object",
"title": "Your actions's parameters",
"description": "The object containing the parameters and their values to be passed to the entity. No schema checking can be done here, you are on your own! On application crash, remove the parameters."
}
},
"oneOf": [
{
"required": [
"action"
],
"not": {
"required": [
"service"
]
}
},
"anyOf": [
{
"required": [
"service"
]
},
{
"required": [
"action"
]
}
]
},
{
"$ref": "#/$defs/tap_action"
}
]
},
"tap_action": {
"type": "object",
"title": "Tap Action",
"description": "'confirm' and 'pin' fields are optional.",
"properties": {
"confirm": {
"$ref": "#/$defs/confirm"
},
"pin": {
"$ref": "#/$defs/pin"
},
"exit": {
"$ref": "#/$defs/exit"
}
}
},
"content": {
"title": "Home Assistant Template",
"description": "Jinja2 template defining the text to display. Must be included in an 'info'. Optional in a 'toggle', 'tap' and 'group'. Special characters may not render in the glance context.",
"description": "Jinja2 template defining the text to display. Must be included in an 'info'. Optional in a 'toggle', 'tap', 'numeric' and 'group'. Special characters may not render in the glance context.",
"type": "string"
},
"confirm": {
"type": ["boolean", "string"],
"type": [
"boolean",
"string"
],
"default": false,
"title": "Confirmation",
"description": "Optional confirmation of the action before execution as a precaution. Use a Boolean for the default message. Specify a string to display a specific confirmation message."

View File

@@ -95,9 +95,9 @@ You can choose individual items that will quit after they have completed their a
"name": "Turn off Stuff",
"type": "tap",
"tap_action": {
"action": "automation.trigger"
},
"action": "automation.trigger",
"exit": true
},
}
```

View File

@@ -15,7 +15,7 @@ An example using a thermostat as a `numeric` menu item.
"type": "numeric",
"entity": "climate.room",
"tap_action": {
"service": "climate.set_temperature",
"action": "climate.set_temperature",
"picker": {
"step": 0.5,
"min": 10,
@@ -35,7 +35,7 @@ Field | Purpose
`min` | The minimum value the numeric entity can take. | Yes |
`max` | The maximum value the numeric entity can take. | Yes |
`attribute` | The attribute on the `entity` that holds the state to be read. | No |
`data_attribute` | The attribute on the `service` call that sets the state. | Yes |
`data_attribute` | The attribute on the `action` call that sets the state. | Yes |
It may well be the case that often `attribute` and `data_attribute` are the same attribute, as with this example.
@@ -45,7 +45,7 @@ You might define a "helper" entity as follows in Home Assistant:
<img src="../images/my_float.png" width="400" title="HomeAssistant Helper definition for an 'input_number'." style="margin:5px"/>
In this case, the state is the actual value, so the template uses `states(..)` instead of `state_attr(..)`, you must not set the optional `attribute` value in the JSON definition so that the application uses the correct template internally for querying the HA server for its present value. Your own template definition in the `content` field will need to follow suit too. The `data_attribute` must be set to `value` for the service call that sets the chosen value from the number carousel.
In this case, the state is the actual value, so the template uses `states(..)` instead of `state_attr(..)`, you must not set the optional `attribute` value in the JSON definition so that the application uses the correct template internally for querying the HA server for its present value. Your own template definition in the `content` field will need to follow suit too. The `data_attribute` must be set to `value` for the `action` call that sets the chosen value from the number carousel.
```json
{
@@ -54,7 +54,7 @@ In this case, the state is the actual value, so the template uses `states(..)` i
"type": "numeric",
"entity": "input_number.my_float",
"tap_action": {
"service": "input_number.set_value",
"action": "input_number.set_value",
"picker": {
"step": 0.5,
"min": -10.0,
@@ -76,7 +76,7 @@ The complication here is this amplifier uses one scale for changing the value, a
"type": "numeric",
"entity": "media_player.amplifier",
"tap_action": {
"service": "media_player.volume_set",
"action": "media_player.volume_set",
"picker": {
"step": 0.005,
"min": 0.2,
@@ -88,6 +88,8 @@ The complication here is this amplifier uses one scale for changing the value, a
}
```
<img src="../images/number_picker_raw.bmp" width="200" title="HomeAssistant Helper definition for an 'input_number'." style="margin:5px"/>
The above is a little awkward to change the volume as the picker's scale is unfamiliar. To make life easier you might choose to implement a "Template number" in HomeAssistant as defined in the following dialogue box.
<img src="../images/template_number.png" width="500" title="HomeAssistant Helper definition for an 'input_number'." style="margin:5px"/>
@@ -96,22 +98,24 @@ For copy and paste, the Jinja2 fields are as follows:
1. Template rendering with conversion to dB:
```
```jinja
{{ state_attr('media_player.amplifier','volume_level') * 100 -80 }}
```
2. Conversion from dB to range 0.0 to 1.0:
```
```jinja
{{ (value+80)/100 }}
```
3. Availability template:
```
```jinja
{{ not is_state('media_player.amplifier','unavailable') }}
```
<img src="../images/number_picker_db.bmp" width="200" title="HomeAssistant Helper definition for an 'input_number'." style="margin:5px"/>
As an alternative to using the GUI, the following can be pasted into HomeAssistant's `configuration.yaml`:
```yaml
@@ -145,7 +149,7 @@ The JSON menu definition can now use dB with the new template number as follows.
"type": "numeric",
"entity": "number.amplifier_db",
"tap_action": {
"service": "number.set_value",
"action": "number.set_value",
"picker": {
"step": 0.5,
"min": -60.0,

View File

@@ -118,8 +118,10 @@ You can choose individual items that will quit after they have completed their a
"entity": "light.hall_light",
"name": "Hall Light & Quit",
"type": "toggle",
"tap_action" {
"exit": true
}
}
```
## Disable Menu Item

23
iconResize.cmd Normal file
View File

@@ -0,0 +1,23 @@
@echo off
rem -----------------------------------------------------------------------------------
rem
rem Distributed under MIT Licence
rem See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
rem
rem -----------------------------------------------------------------------------------
rem
rem GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
rem tested on a Venu 2 device. The source code is provided at:
rem https://github.com/house-of-abbey/GarminHomeAssistant.
rem
rem J D Abbey & P A Abbey, 11 November 2025
rem
rem Run the icon generation Python scripts
rem
rem -----------------------------------------------------------------------------------
REM change the current directory to the batch file's location
cd /d %~dp0
python iconResize.py
python launcherIconResize.py
pause

View File

@@ -30,37 +30,32 @@
#
####################################################################################
from bs4 import BeautifulSoup, Comment
from bs4 import BeautifulSoup
import os
import shutil
output_dir_prefix = 'resources-icons-'
input_dir = output_dir_prefix + '48'
Doub = 0
Sing = 1
Half = 2
# Original icons for 416x416 screen size with 48x48 icons
original = (96, 48, 24)
# Convert icons to different screen sizes by these parameters
lookup = {
# Doub Sing Half
# 0 1 2
454: (106, 53, 27),
# 416: ( 96, 48, 24),
390: ( 90, 46, 23),
360: ( 84, 42, 21),
320: ( 74, 38, 19),
280: ( 64, 32, 16),
260: ( 60, 30, 15),
240: ( 56, 28, 14),
218: ( 50, 26, 13),
208: ( 48, 24, 12),
176: ( 42, 21, 11),
156: ( 36, 18, 9)
}
lookup = [
55,
53,
# 48,
46,
42,
38,
34, # Especially for the instinct3amoled50mm device that clip the icons
32,
30,
28,
26,
24,
"21-w",
21,
"18-w",
18
]
# Delete all but the original 48x48 icon directories
for entry in os.listdir("."):
@@ -68,8 +63,12 @@ for entry in os.listdir("."):
shutil.rmtree(entry)
# (Re-)Create the resized icon directories
for screen_size, icon_sizes in lookup.items():
output_dir = output_dir_prefix + str(icon_sizes[Sing])
for icon_size in lookup:
output_dir = output_dir_prefix + str(icon_size)
white = False
if isinstance(icon_size, str):
white = True
icon_size = int(icon_size.split("-")[0])
print("\nCreate directory:", output_dir)
if os.path.exists(output_dir) and os.path.isdir(output_dir):
shutil.rmtree(output_dir)
@@ -80,16 +79,14 @@ for screen_size, icon_sizes in lookup.items():
with open(input_dir + "/" + entry, "r") as f:
soup = BeautifulSoup(f.read(), features="xml")
svg: BeautifulSoup = list(soup.children)[0]
h = int(svg.attrs["height"])
if (h == original[Doub]):
svg.attrs["width"] = lookup[screen_size][Doub]
svg.attrs["height"] = lookup[screen_size][Doub]
elif (h == original[Sing]):
svg.attrs["width"] = lookup[screen_size][Sing]
svg.attrs["height"] = lookup[screen_size][Sing]
elif (h == original[Half]):
svg.attrs["width"] = lookup[screen_size][Half]
svg.attrs["height"] = lookup[screen_size][Half]
svg.attrs["width"] = icon_size
svg.attrs["height"] = icon_size
if white:
# Add white colour style
svg.find("style", id="colours").string = """
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
"""
with open(output_dir + "/" + entry, "wb") as o:
o.write(svg.encode("utf-8") + b"\n")
elif entry.endswith(".xml"):

BIN
images/http_410_error.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/number_picker_db.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

View File

@@ -40,9 +40,9 @@ output_dir_prefix = 'resources-launcher-'
input_dir = output_dir_prefix + '70-70'
# Convert icons to different screen sizes by these parameters
lookup = [26, 30, 33, 35, 36, 40, 54, 60, 61, 62, 65, 80]
lookup = [26, 30, 33, 35, 36, 38, 40, 52, 54, 56, 60, 61, 62, 65, 68, 80]
# Delete all but the original 48x48 icon directories
# Delete all but the original 70x70 icon directories
for entry in os.listdir("."):
if entry.startswith(output_dir_prefix) and entry != input_dir:
shutil.rmtree(entry)

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="18" viewBox="0 0 48 48" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="white" stroke="white"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 546 B

View File

@@ -1,7 +1,15 @@
<svg height="18" viewBox="0 0 200 500" width="18" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 651 B

View File

@@ -1 +1,15 @@
<svg height="18" viewBox="0 -960 960 960" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="white" stroke="white"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -0,0 +1,16 @@
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 673 B

View File

@@ -1 +1,13 @@
<svg height="18" viewBox="0 -960 960 960" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="white" stroke="white"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="18" viewBox="0 0 48 48" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="18" viewBox="0 0 200 500" width="18" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="18" viewBox="0 -960 960 960" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="18" viewBox="0 -960 960 960" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="18" viewBox="0 0 960 960" width="18" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="21" viewBox="0 0 48 48" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="white" stroke="white"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 546 B

View File

@@ -1,7 +1,15 @@
<svg height="21" viewBox="0 0 200 500" width="21" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="white" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 651 B

View File

@@ -1 +1,15 @@
<svg height="21" viewBox="0 -960 960 960" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="white" stroke="white"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -0,0 +1,16 @@
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 673 B

View File

@@ -1 +1,13 @@
<svg height="21" viewBox="0 -960 960 960" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="white" stroke="white"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #dddddd; }
.colour2 { color: #ffffff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="21" viewBox="0 0 48 48" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="21" viewBox="0 0 200 500" width="21" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="21" viewBox="0 -960 960 960" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="21" viewBox="0 -960 960 960" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="21" viewBox="0 0 960 960" width="21" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="24" viewBox="0 0 48 48" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="24" viewBox="0 0 960 960" width="24" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="24" viewBox="0 0 200 500" width="24" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="24" viewBox="0 0 960 960" width="24" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="24" viewBox="0 -960 960 960" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="24" viewBox="0 0 960 960" width="24" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="24" viewBox="0 0 960 960" width="24" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="24" viewBox="0 -960 960 960" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="24" viewBox="0 0 960 960" width="24" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="26" viewBox="0 0 48 48" width="26" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="26" viewBox="0 0 960 960" width="26" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="26" viewBox="0 0 200 500" width="26" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="26" viewBox="0 0 960 960" width="26" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="26" viewBox="0 -960 960 960" width="26" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="26" viewBox="0 0 960 960" width="26" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="26" viewBox="0 0 960 960" width="26" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="26" viewBox="0 -960 960 960" width="26" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="26" viewBox="0 0 960 960" width="26" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="28" viewBox="0 0 48 48" width="28" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="28" viewBox="0 0 960 960" width="28" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="28" viewBox="0 0 200 500" width="28" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="28" viewBox="0 0 960 960" width="28" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="28" viewBox="0 -960 960 960" width="28" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="28" viewBox="0 0 960 960" width="28" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="28" viewBox="0 0 960 960" width="28" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="28" viewBox="0 -960 960 960" width="28" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="28" viewBox="0 0 960 960" width="28" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="30" viewBox="0 0 48 48" width="30" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="30" viewBox="0 0 960 960" width="30" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="30" viewBox="0 0 200 500" width="30" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="30" viewBox="0 0 960 960" width="30" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="30" viewBox="0 -960 960 960" width="30" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="30" viewBox="0 0 960 960" width="30" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="30" viewBox="0 0 960 960" width="30" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="30" viewBox="0 -960 960 960" width="30" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="30" viewBox="0 0 960 960" width="30" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="32" viewBox="0 0 48 48" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="32" viewBox="0 0 960 960" width="32" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="32" viewBox="0 0 200 500" width="32" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="32" viewBox="0 0 960 960" width="32" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="32" viewBox="0 -960 960 960" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="32" viewBox="0 0 960 960" width="32" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="32" viewBox="0 0 960 960" width="32" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="32" viewBox="0 -960 960 960" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="32" viewBox="0 0 960 960" width="32" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="34" viewBox="0 0 48 48" width="34" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="34" viewBox="0 0 960 960" width="34" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="34" viewBox="0 0 200 500" width="34" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="34" viewBox="0 0 960 960" width="34" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="34" viewBox="0 -960 960 960" width="34" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="34" viewBox="0 0 960 960" width="34" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="34" viewBox="0 0 960 960" width="34" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="34" viewBox="0 -960 960 960" width="34" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="34" viewBox="0 0 960 960" width="34" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="38" viewBox="0 0 48 48" width="38" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="38" viewBox="0 0 960 960" width="38" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="38" viewBox="0 0 200 500" width="38" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="38" viewBox="0 0 960 960" width="38" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="38" viewBox="0 -960 960 960" width="38" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="38" viewBox="0 0 960 960" width="38" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="38" viewBox="0 0 960 960" width="38" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="38" viewBox="0 -960 960 960" width="38" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="38" viewBox="0 0 960 960" width="38" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="42" viewBox="0 0 48 48" width="42" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="42" viewBox="0 0 960 960" width="42" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="42" viewBox="0 0 200 500" width="42" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="42" viewBox="0 0 960 960" width="42" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="42" viewBox="0 -960 960 960" width="42" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="42" viewBox="0 0 960 960" width="42" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="42" viewBox="0 0 960 960" width="42" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="42" viewBox="0 -960 960 960" width="42" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="42" viewBox="0 0 960 960" width="42" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="46" viewBox="0 0 48 48" width="46" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="46" viewBox="0 0 960 960" width="46" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -1,7 +1,15 @@
<svg height="46" viewBox="0 0 200 500" width="46" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="0"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="200"/>
<rect fill="blue" height="100" rx="40" ry="40" width="200" x="0" y="400"/>
</g>
<svg height="46" viewBox="0 0 960 960" width="46" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80"/>
<circle class="colour2" cx="120" cy="480" r="80"/>
<circle class="colour2" cx="120" cy="720" r="80"/>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 653 B

View File

@@ -1 +1,15 @@
<svg height="46" viewBox="0 -960 960 960" width="46" xmlns="http://www.w3.org/2000/svg"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg height="46" viewBox="0 0 960 960" width="46" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<circle cx="480" cy="280" r="60"/>
<rect height="360" rx="40" ry="40" width="120" x="420" y="410"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,16 @@
<svg height="46" viewBox="0 0 960 960" width="46" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" fill-opacity="0.0" height="700" rx="100" ry="100" stroke-width="60" width="900" x="30" y="130"/>
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1 +1,13 @@
<svg height="46" viewBox="0 -960 960 960" width="46" xmlns="http://www.w3.org/2000/svg"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg height="46" viewBox="0 0 960 960" width="46" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z"/>
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48" viewBox="0 0 48 48"><path stroke="red" fill="red" d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" height="48" width="48">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" r="400" stroke-width="60" fill-opacity="0.0" />
<g class="colour2">
<rect x="420" y="220" width="120" height="360" rx="40" ry="40" />
<circle cx="480" cy="710" r="60" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 569 B

View File

@@ -1,7 +1,15 @@
<svg viewBox="0 0 200 500" width="48" height="48" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1, 0, 0, 1, 0, 0)">
<rect x="0" y="0" width="200" height="100" fill="blue" rx="40" ry="40"/>
<rect x="0" y="200" width="200" height="100" fill="blue" rx="40" ry="40"/>
<rect x="0" y="400" width="200" height="100" fill="blue" rx="40" ry="40"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" height="48" width="48">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="160"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="400"/>
<rect class="colour1" height="160" rx="20" ry="20" width="560" x="300" y="640"/>
<circle class="colour2" cx="120" cy="240" r="80" />
<circle class="colour2" cx="120" cy="480" r="80" />
<circle class="colour2" cx="120" cy="720" r="80" />
</svg>

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 672 B

View File

@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" viewBox="0 -960 960 960" width="48"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" fill="blue" stroke="blue"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" height="48" width="48">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
</style>
<circle class="colour1" cx="480" cy="480" r="400" stroke-width="60" fill-opacity="0.0" />
<g class="colour2">
<circle cx="480" cy="280" r="60" />
<rect x="420" y="410" width="120" height="360" rx="40" ry="40" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 521 B

View File

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" height="48" width="48">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
text.small { font: bold 400px sans-serif; }
text.large { font: bold 500px sans-serif; }
.colour1, .colour2 { fill: currentColor; }
rect.colour2 { stroke: currentColor; }
</style>
<rect class="colour2" x="30" y="130" width="900" height="700" rx="100" ry="100" stroke-width="60" fill-opacity="0.0" />
<text class="small colour1" x="110" y="610">1</text>
<text class="large colour2" x="350" y="640">2</text>
<text class="small colour1" x="650" y="610">3</text>
</svg>

After

Width:  |  Height:  |  Size: 688 B

View File

@@ -1 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" viewBox="0 -960 960 960" width="48"><path d="M445-80q-29 0-56-12t-45-35L127-403l21-23q14-15 34.5-18.5T221-438l99 53v-365q0-12.75 8.675-21.375 8.676-8.625 21.5-8.625 12.825 0 21.325 8.625T380-750v465l-144-77 156 198q10 12 23.76 18 13.76 6 29.24 6h205q38 0 64-26t26-64v-170q0-25.5-17.25-42.75T680-460H460v-60h219.646q50.148 0 85.251 35T800-400v170q0 63-43.5 106.5T650-80H445ZM203-665q-11.074-18.754-17.037-40.492Q180-727.229 180-750.246 180-821 229.725-870.5T350-920q70.55 0 120.275 49.738Q520-820.524 520-749.956q0 22.956-5.963 44.614Q508.074-683.685 497-665l-52-30q7-12 11-26t4-29.478Q460-796 427.882-828q-32.117-32-78-32Q304-860 272-827.917 240-795.833 240-750q0 15 4 29t11 26l-52 30Zm285 335Z" fill="blue" stroke="blue"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" height="48" width="48">
<style id="colours">
.colour1 { color: #0091ff; }
.colour2 { color: #00ccff; }
</style>
<style>
.colour1, .colour2 { fill: currentColor; }
</style>
<g>
<path class="colour1" d="m463.2,216.48c58.5,0 94.47,43.11 97.5,103.57l0,8l0,93.79l96.2,18.22c3.9,0.44 7.37,1.33 11.26,2.22c72.37,20 116.57,94.67 101.39,168.91l-1.73,8l-45.5,174.69c-9.53,36 -37.7,63.56 -73.23,71.56l-6.94,1.33l-104.86,15.56c-40.3,5.78 -79.3,-14.22 -98.8,-49.79l-3.47,-7.11l-1.3,-2.66c-10.4,-22.67 -25.57,-42.22 -44.64,-56.9l-8.24,-6.22l-81.47,-56.01l-4.34,-2.66l0,0l-4.34,-2.22l-102.26,-52.01c-10.83,-5.78 -17.77,-16.89 -17.77,-29.34c-1.3,-49.33 19.93,-87.12 61.1,-108.46c30.76,-15.56 71.06,-14.67 122.63,0.89l11.26,3.56l0,-185.35c0,-64.45 36.4,-111.57 97.5,-111.57l0.02,-0.01zm0,66.67c-19.93,0 -30.76,12 -32.5,38.67l0,6.22l0,232.91c0,24 -23.4,40.01 -45.07,31.11c-63.27,-27.12 -105.73,-33.34 -124.36,-23.56c-11.26,5.78 -18.2,12.89 -22.1,23.11l-1.73,5.33l82.33,42.22l7.8,4.45l0,0l7.8,4.45l81.47,56.01c29.46,20 53.73,47.56 70.63,79.57l5.2,11.11l1.3,2.66c5.2,12 16.9,19.11 29.46,19.11l4.34,0l104.86,-15.56c11.26,-1.77 20.8,-9.34 25.14,-20l1.73,-4.45l45.5,-174.24c10.83,-41.78 -13.43,-84.45 -53.73,-95.56l-3.03,-0.44l0,0l-125.66,-23.56c-14.3,-2.66 -24.7,-14.22 -26.44,-28l-0.43,-4.89l0,-121.79c0,-30.67 -10.83,-44.9 -32.5,-44.9l0,0.02z" />
<path class="colour2" d="m463.81,60.98c137.36,0 249.16,114.24 249.16,255.58c0,31.11 -5.64,61.34 -15.6,88.9l-6.07,-2.22c-6.5,-2.22 -15.16,-5.33 -26.44,-8c-10.4,-2.22 -20.8,-4 -31.63,-4.89c9.53,-22.67 14.73,-47.56 14.73,-73.79c0,-104.46 -82.33,-188.9 -184.17,-188.9c-101.83,0 -184.17,84.45 -184.17,188.9c0,46.23 16.03,88.9 43.34,121.79c-13.86,1.33 -26,3.12 -35.53,5.33c-15.6,4 -25.57,7.55 -32.93,12c-25.14,-40.01 -39.87,-88.01 -39.87,-139.13c0,-141.35 111.37,-255.58 249.16,-255.58l0.01,0.01z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 782 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -20,4 +20,5 @@
<bitmap id="GroupTypeIcon" filename="group_type.svg"/>
<bitmap id="TapTypeIcon" filename="tap_type.svg"/>
<bitmap id="InfoTypeIcon" filename="info_type.svg"/>
<bitmap id="NumericTypeIcon" filename="numeric_type.svg"/>
</drawables>

View File

@@ -1 +1,16 @@
<svg height="53" viewBox="0 0 48 48" width="53" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
<svg height="53" viewBox="0 0 960 960" width="53" xmlns="http://www.w3.org/2000/svg">
<style id="colours">
.colour1 { color: #aa0000; }
.colour2 { color: #ff1111; }
</style>
<style>
.colour1 { stroke: currentColor; }
.colour2 { fill: currentColor; }
text.large { font: bold 600px sans-serif; }
</style>
<circle class="colour1" cx="480" cy="480" fill-opacity="0.0" r="400" stroke-width="60"/>
<g class="colour2">
<rect height="360" rx="40" ry="40" width="120" x="420" y="220"/>
<circle cx="480" cy="710" r="60"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 548 B

Some files were not shown because too many files have changed in this diff Show More