[feat] categories: add icons for remaining category tabs (#6759)

Icons are provided for the main categories known to us.

The distinction between CATEGORY_GROUPS and CATEGORY_NAMES is abandoned in favor
of the latter.

HINT: we need single-color icons; transparent background and the color must be
`currentColor` so that the icons can be used in light/dark themes.

The following SVGs from the ionicons had to be revised (use ``currentColor``).

- client/simple/src/svg/ionicons/logo-rss.svg
- client/simple/src/svg/ionicons/radio-outline.svg
- client/simple/src/svg/ionicons/color-palette-outline.svg

For the following categories, I did not find any usable icons in Ionicons; new
SVGs were created for these categories.

- onions: client/simple/src/svg/ionicons/tor-browser.svg
- lyrics: client/simple/src/svg/ionicons/song-lyric-music.svg [1]
- packages: client/simple/src/svg/ionicons/package_2.svg [1]

[1] Based on Google's Material icons: https://fonts.google.com/icons

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Bnyro
2026-09-19 12:51:54 +02:00
parent 49064747a2
commit 52284fd320
12 changed files with 258 additions and 56 deletions

View File

@@ -11,7 +11,6 @@ from searx.weather import WeatherConditionType
__all__ = [
'CONSTANT_NAMES',
'CATEGORY_NAMES',
'CATEGORY_GROUPS',
'STYLE_NAMES',
'BRAND_CUSTOM_LINKS',
'WEATHER_TERMS',
@@ -26,33 +25,34 @@ CONSTANT_NAMES = {
}
CATEGORY_NAMES = {
'FILES': 'files',
'GENERAL': 'general',
'MUSIC': 'music',
'SOCIAL_MEDIA': 'social media',
'IMAGES': 'images',
'STOCK_IMAGES': 'stock images',
'VIDEOS': 'videos',
'RADIO': 'radio',
'TV': 'tv',
'IT': 'it',
'NEWS': 'news',
'MAP': 'map',
'ONIONS': 'onions',
'SCIENCE': 'science',
}
CATEGORY_GROUPS = {
# non-tab categories
'APPS': 'apps',
'DICTIONARIES': 'dictionaries',
'LYRICS': 'lyrics',
'PACKAGES': 'packages',
'Q_A': 'q&a',
'REPOS': 'repos',
'SOFTWARE_WIKIS': 'software wikis',
'WEB': 'web',
'SCIENTIFIC PUBLICATIONS': 'scientific publications',
"APPS": "apps",
"BLOGS": "blogs",
"DICTIONARIES": "dictionaries",
"FILES": "files",
"GENERAL": "general",
"ICONS": "icons",
"IMAGES": "images",
"IT": "it",
"LYRICS": "lyrics",
"MAP": "map",
"MOVIES": "movies",
"MUSIC": "music",
"NEWS": "news",
"ONIONS": "onions",
"PACKAGES": "packages",
"Q_A": "q&a",
"RADIO": "radio",
"REPOS": "repos",
"SCIENCE": "science",
"SCIENTIFIC PUBLICATIONS": "scientific publications",
"SOCIAL_MEDIA": "social media",
"SOFTWARE_WIKIS": "software wikis",
"STOCK_IMAGES": "stock images",
"TRANSLATE": "translate",
"TV": "tv",
"VIDEOS": "videos",
"WEATHER": "weather",
"WEB": "web",
}
STYLE_NAMES = {

View File

@@ -1,20 +1,30 @@
{% from 'simple/icons.html' import icon_big %}
{%- set category_icons = {
'apps': 'appstore',
'dictionaries': 'book',
'files': 'file-tray-full',
'general': 'search',
'images': 'image',
'it': 'layers',
'map': 'location',
'music': 'musical-notes',
'news': 'newspaper',
'radio': 'radio',
'science': 'school',
'social media': 'people',
'TV': 'tv',
'videos': 'play',
} -%}
"apps": "appstore",
"blogs": "rss",
"dictionaries": "book",
"files": "file-tray-full",
"general": "search",
"icons": "palette",
"images": "image",
"it": "layers",
"lyrics": "lyrics",
"map": "location",
"movies": "videocam",
"music": "musical-notes",
"news": "newspaper",
"onions": "tor",
"packages": "package",
"radio": "radio",
"repos": "file-tray-stacked",
"science": "school",
"social media": "people",
"stock images": "camera",
"translate": "language",
"TV": "tv",
"videos": "play",
"weather": "rainy",
} -%}
<div id="categories" class="search_categories">{{- '' -}}
<div id="categories_container">
{%- if not search_on_category_select or not display_tooltip -%}