diff --git a/footways.yaml b/footways.yaml
index 3fe0a0e..eaa4cee 100644
--- a/footways.yaml
+++ b/footways.yaml
@@ -66,39 +66,34 @@ feature:
     {% if tags.sidewalk in ['no', 'none'] %}
       {% set sidewalk_left = 'no' %}
       {% set sidewalk_right = 'no' %}
-      {% set sides = sides|merge(['leftr', 'rightr']) %}
     {% endif %}
 
     {% if tags.sidewalk == 'separate' %}
       {% set sidewalk_left = 'separate' %}
       {% set sidewalk_right = 'separate' %}
-      {% set sides = sides|merge(['leftr', 'rightr']) %}
     {% endif %}
 
     {% if attribute(tags, 'sidewalk:both') %}
       {% set sidewalk_left = attribute(tags, 'sidewalk:both') %}
       {% set sidewalk_right = attribute(tags, 'sidewalk:both') %}
-      {% set sides = sides|merge(['leftr', 'rightr']) %}
     {% endif %}
 
     {% if attribute(tags, 'sidewalk:left') %}
       {% set sidewalk_left = attribute(tags, 'sidewalk:left') %}
-      {% set sides = sides|merge(['leftr']) %}
     {% endif %}
 
     {% if attribute(tags, 'sidewalk:left') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['left', 'both'] %}
       {% set sidewalk_left = 'yes' %}
-      {% set sides = sides|merge(['leftr', 'left']) %}
+      {% set sides = sides|merge(['left']) %}
     {% endif %}
 
     {% if attribute(tags, 'sidewalk:right') %}
       {% set sidewalk_right = attribute(tags, 'sidewalk:right') %}
-      {% set sides = sides|merge(['rightr']) %}
     {% endif %}
 
     {% if attribute(tags, 'sidewalk:right') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['right', 'both'] %}
       {% set sidewalk_right = 'yes' %}
-      {% set sides = sides|merge(['rightr', 'right']) %}
+      {% set sides = sides|merge(['right']) %}
     {% endif %}
 
     {% if type == 'node' %}
@@ -251,22 +246,6 @@ feature:
               offset: 6,
               color: const.categories.sidewalk.color
             },
-            'style:leftr': {
-              width: sidewalk_left ? 5 : 0,
-              offset: -2.5,
-              opacity: 0.3,
-              dashArray: '1,10',
-              lineCap: butt,
-              color: sidewalk_left in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color
-            },
-            'style:rightr': {
-              width: sidewalk_right ? 5 : 0,
-              offset: 2.5,
-              opacity: 0.3,
-              dashArray: '1,10',
-              lineCap: butt,
-              color: sidewalk_right in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color
-            },
       }) }}
     {% endif %}
   style:
@@ -334,30 +313,6 @@ feature:
     color: |
       {{ const.categories.sidewalk.color }}
 
-  style:leftr:
-    fill: false
-    width: |
-      {{ sidewalk_left ? 5 / map.metersPerPixel : 0 }}
-    offset: |
-      {{ -2.5 / map.metersPerPixel }}
-    opacity: 0.3
-    dashArray: '1,10'
-    lineCap: butt
-    color: |
-      {{ sidewalk_left in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }}
-
-  style:rightr:
-    fill: false
-    width: |
-      {{ sidewalk_right ? 5 / map.metersPerPixel : 0 }}
-    offset: |
-      {{ 2.5 / map.metersPerPixel }}
-    opacity: 0.3
-    dashArray: '1,10'
-    lineCap: butt
-    color: |
-      {{ sidewalk_right in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }}
-    
   styles: |
     {{ sides|join(',') }}
 info: |
@@ -435,27 +390,6 @@ info: |
     }) }}</td>
     <td>{{ tagTrans('highway', 'cycleway segregated=yes') }}</td>
   </tr>
-  {% for k, d in const.sidewalks %}
-  <tr>
-    <td>{{ markerLine({
-      styles: d.styles,
-      'style:leftr': {
-        width: 9,
-        offset: -1,
-        opacity: 0.3,
-        dashArray: '1,10',
-        lineCap: butt,
-        color: d.color
-      },
-      'style:left': {
-        width: 3,
-        offset: -7,
-        color: d.color
-      }
-    }) }}</td>
-    <td>{{ tagTrans('sidewalk', k) }}</td>
-  </tr>
-  {% endfor %}
   </table>
 filter:
   access:
diff --git a/index.json b/index.json
index 2d2f924..de2b7e7 100644
--- a/index.json
+++ b/index.json
@@ -205,6 +205,9 @@
                         {
                             "id": "footways"
                         },
+                        {
+                            "id": "street-sidewalks"
+                        },
                         {
                             "id": "kerbs"
                         }
diff --git a/lang/en.json b/lang/en.json
index 07f7664..5fa5392 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -99,6 +99,7 @@
     "category:financial": "Financial",
     "category:fixme": "Fix Me",
     "category:footways": "Footways",
+    "category:street-sidewalks": "Sidewalks of Streets",
     "category:gastro-smoking": "Smokefree Gastronomy",
     "category:gastro": "Gastronomy",
     "category:health": "Health",
diff --git a/street-sidewalks.yaml b/street-sidewalks.yaml
new file mode 100644
index 0000000..9df3293
--- /dev/null
+++ b/street-sidewalks.yaml
@@ -0,0 +1,446 @@
+query:
+  15: |
+    (
+    way[footway=sidewalk];
+    way["area:highway"=sidewalk];
+    relation["area:highway"=sidewalk];
+    relation[type=multipolygon][highway=sidewalk];
+    way[sidewalk~"^(yes|both|left|right|no|separate|none)$"];
+    way["sidewalk:left"~"(yes|no|separate)$"];
+    way["sidewalk:right"~"(yes|no|separate)$"];
+    way["sidewalk:both"~"(yes|no|separate)$"];
+    )
+feature:
+  pre: |
+    {% set sides = ['default'] %}
+    {% set sidewalk_left = null %}{% set sidewalk_right = null %}
+    {% set category = tags.highway %}
+
+    {% if attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['yes', 'both', 'left', 'both', 'right'] or tags.footway == 'sidewalk' %}
+      {% set category = 'sidewalk' %}
+    {% endif %}
+
+    {% if tags.footway == 'sidewalk' %}
+      {% set sides = sides|merge(['main']) %}
+    {% endif %}
+
+    {% if tags.sidewalk in ['no', 'none'] %}
+      {% set sidewalk_left = 'no' %}
+      {% set sidewalk_right = 'no' %}
+      {% set sides = sides|merge(['leftr', 'rightr']) %}
+    {% endif %}
+
+    {% if tags.sidewalk == 'separate' %}
+      {% set sidewalk_left = 'separate' %}
+      {% set sidewalk_right = 'separate' %}
+      {% set sides = sides|merge(['leftr', 'rightr']) %}
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:both') %}
+      {% set sidewalk_left = attribute(tags, 'sidewalk:both') %}
+      {% set sidewalk_right = attribute(tags, 'sidewalk:both') %}
+      {% set sides = sides|merge(['leftr', 'rightr']) %}
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:left') %}
+      {% set sidewalk_left = attribute(tags, 'sidewalk:left') %}
+      {% set sides = sides|merge(['leftr']) %}
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:left') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['left', 'both'] %}
+      {% set sidewalk_left = 'yes' %}
+      {% set sides = sides|merge(['leftr', 'left']) %}
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:right') %}
+      {% set sidewalk_right = attribute(tags, 'sidewalk:right') %}
+      {% set sides = sides|merge(['rightr']) %}
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:right') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['right', 'both'] %}
+      {% set sidewalk_right = 'yes' %}
+      {% set sides = sides|merge(['rightr', 'right']) %}
+    {% endif %}
+
+  description: |
+    {% if tags.footway %}
+    {{ tagTrans('footway', tags.footway) }}
+    {% elseif tags.highway %}
+      {% if tags.highway in ['path', 'cycleway'] and tags.segregated %}
+        {{ tagTrans('highway', 'cycleway segregated=' ~ tags.segregated) }}
+      {% else %}
+        {{ tagTrans('highway', tags.highway) }}
+      {% endif %}
+    {% elseif tags.railway %}
+    {{ tagTrans('railway', tags.railway) }}
+    {% elseif attribute(tags, 'area:highway') %}
+    {{ tagTrans('highway', attribute(tags, 'area:highway')) }}
+    {% endif %}
+  body: |
+    <ul>
+    {% if attribute(tags, 'sidewalk:left')|default(attribute(tags, 'sidewalk:both')) or tags.sidewalk in ['left', 'both'] %}
+      <li>{{ keyTrans('sidewalk:left') }}:<ul>
+        <li>{{ tagTrans('sidewalk', attribute(tags, 'sidewalk:left')|default(attribute(tags, 'sidewalk:both'))) }}</li>
+        {% if attribute(tags, 'sidewalk:left:width')|default(attribute(tags, 'sidewalk:both:width')) %}<li>
+          <span class='key'>{{ keyTrans('width') }}:</span>
+          <span class='value'>{{ attribute(tags, 'sidewalk:left:width')|default(attribute(tags, 'sidewalk:both:width'))|formatUnit }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:left:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair')) %}<li>
+          <span class='key'>{{ keyTrans('wheelchair') }}:</span>
+          <span class='value'>{{ tagTrans('wheelchair', attribute(tags, 'sidewalk:left:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:left:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface')) %}<li>
+          <span class='key'>{{ keyTrans('surface') }}:</span>
+          <span class='value'>{{ tagTrans('surface', attribute(tags, 'sidewalk:left:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:left:tactile_paving') %}<li>
+          <span class='key'>{{ keyTrans('tactile_paving') }}:</span>
+          <span class='value'>{{ tagTrans('tactile_paving', attribute(tags, 'sidewalk:left:tactile_paving')|default(attribute(tags, 'sidewalk:both:tactile_paving'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:left:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness')) %}<li>
+          <span class='key'>{{ keyTrans('smoothness') }}:</span>
+          <span class='value'>{{ tagTrans('smoothness', attribute(tags, 'sidewalk:left:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness'))) }}</span>
+        </li>{% endif %}
+        {% set v = attribute(tags, 'sidewalk:left:incline')|default(attribute(tags, 'sidewalk:both:incline'))|default(tags.incline) %}
+        {% if v %}<li>
+          <span class='key'>{{ keyTrans('incline') }}:</span>
+          <span class='value'>{{ v in ['up', 'down', 'yes'] ? tagTrans('incline', v) : v }}</span>
+        </li>{% endif %}
+      </ul></li>
+    {% endif %}
+
+    {% if attribute(tags, 'sidewalk:right')|default(attribute(tags, 'sidewalk:both')) or tags.sidewalk in ['right', 'both'] %}
+      <li>{{ keyTrans('sidewalk:right') }}:<ul>
+        <li>{{ tagTrans('sidewalk', attribute(tags, 'sidewalk:right')|default(attribute(tags, 'sidewalk:both'))) }}</li>
+        {% if attribute(tags, 'sidewalk:right:width')|default(attribute(tags, 'sidewalk:both:width')) %}<li>
+          <span class='key'>{{ keyTrans('width') }}:</span>
+          <span class='value'>{{ attribute(tags, 'sidewalk:right:width')|default(attribute(tags, 'sidewalk:both:width'))|formatUnit }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:right:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair')) %}<li>
+          <span class='key'>{{ keyTrans('wheelchair') }}:</span>
+          <span class='value'>{{ tagTrans('wheelchair', attribute(tags, 'sidewalk:right:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:right:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface')) %}<li>
+          <span class='key'>{{ keyTrans('surface') }}:</span>
+          <span class='value'>{{ tagTrans('surface', attribute(tags, 'sidewalk:right:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:right:tactile_paving') %}<li>
+          <span class='key'>{{ keyTrans('tactile_paving') }}:</span>
+          <span class='value'>{{ tagTrans('tactile_paving', attribute(tags, 'sidewalk:right:tactile_paving')|default(attribute(tags, 'sidewalk:both:tactile_paving'))) }}</span>
+        </li>{% endif %}
+        {% if attribute(tags, 'sidewalk:right:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness')) %}<li>
+          <span class='key'>{{ keyTrans('smoothness') }}:</span>
+          <span class='value'>{{ tagTrans('smoothness', attribute(tags, 'sidewalk:right:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness'))) }}</span>
+        </li>{% endif %}
+        {% set v = attribute(tags, 'sidewalk:right:incline')|default(attribute(tags, 'sidewalk:both:incline'))|default(tags.incline) %}
+        {% if i %}<li>
+          <span class='key'>{{ keyTrans('incline') }}:</span>
+          <span class='value'>{{ v in ['up', 'down', 'yes'] ? tagTrans('incline', v) : v }}</span>
+        </li>{% endif %}
+       </ul></li>
+    {% endif %}
+    </ul>
+  markerSymbol: ""
+  listMarkerSymbol: |
+    {% if tags.area == 'yes' or tags.type == 'multipolygon' or attribute(tags, 'area:highway') %}
+      polygon
+    {% else %}
+      {{ markerLine({
+           'styles': sides|join(','),
+           'style:main': {
+              width: cycleway and tags.segregated == 'yes' ? 2 : const.categories[category].width|default(3),
+              color: const.categories[category].color,
+              dashArray: tags.highway == 'steps' ? '3,3' :
+                cycleway and tags.segregated != 'yes' ? '8,8' :
+                '',
+              lineCap: tags.highway == 'steps' or (cycleway and tags.segregated != 'yes') ? 'butt' : 'round',
+              offset: cycleway and tags.segregated == 'yes' ? 1 : 0
+            },
+            'style:left': {
+              width: 3,
+              offset: -6,
+              color: const.sidewalks[sidewalk_left].color
+            },
+            'style:right': {
+              width: 3,
+              offset: 6,
+              color: const.sidewalks[sidewalk_right].color
+            },
+            'style:leftr': {
+              width: sidewalk_left ? 5 : 0,
+              offset: -2.5,
+              opacity: 0.3,
+              dashArray: '1,10',
+              lineCap: butt,
+              color: const.sidewalks[sidewalk_left].color
+            },
+            'style:rightr': {
+              width: sidewalk_right ? 5 : 0,
+              offset: 2.5,
+              opacity: 0.3,
+              dashArray: '1,10',
+              lineCap: butt,
+              color: const.sidewalks[sidewalk_right].color
+            },
+      }) }}
+    {% endif %}
+  style:
+    opacity: 0
+    fillOpacity: 0
+    width: 5
+  style:main:
+    fill: |
+      {% if tags.area == 'yes' or tags.type == 'multipolygon' or attribute(tags, 'area:highway') %}true{% else %}false{% endif %}
+    width: |
+      {% if attribute(tags, 'area:highway') %}
+      0
+      {% elseif tags.area == 'yes' or tags.type == 'multipolygon' %}
+      1
+      {% else %}
+      {{ const.categories[category].width|default(3) }}
+      {% endif %}
+    color: |
+      {{ const.categories[category].color }}
+    dashArray: |
+      {% if tags.highway == 'steps' %}
+      3,3
+      {% elseif cycleway and tags.segregated != 'yes' %}
+      8,8
+      {% endif %}
+    lineCap: |
+      {% if tags.highway == 'steps' or (cycleway and tags.segregated != 'yes') %}butt{% else %}round{% endif %}
+
+  style:left:
+    fill: false
+    width: 3
+    offset: |
+      {{ -5 / map.metersPerPixel }}
+    color: |
+      {{ const.sidewalks[sidewalk_left].color }}
+
+  style:right:
+    fill: false
+    width: 3
+    offset: |
+      {{ 5 / map.metersPerPixel }}
+    color: |
+      {{ const.sidewalks[sidewalk_right].color }}
+
+  style:leftr:
+    fill: false
+    width: |
+      {{ sidewalk_left ? 5 / map.metersPerPixel : 0 }}
+    offset: |
+      {{ -2.5 / map.metersPerPixel }}
+    opacity: 0.5
+    dashArray: '1,10'
+    lineCap: butt
+    color: |
+      {{ const.sidewalks[sidewalk_left].color }}
+
+  style:rightr:
+    fill: false
+    width: |
+      {{ sidewalk_right ? 5 / map.metersPerPixel : 0 }}
+    offset: |
+      {{ 2.5 / map.metersPerPixel }}
+    opacity: 0.5
+    dashArray: '1,10'
+    lineCap: butt
+    color: |
+      {{ const.sidewalks[sidewalk_right].color }}
+    
+  styles: |
+    {{ sides|join(',') }}
+info: |
+  <table>
+  {% for k, d in const.categories if k != 'cycleway' %}
+    <tr>
+      <td>{{ markerLine({
+        width: d.width|default(3),
+        color: d.color,
+        dashArray: d.dashArray
+      }) }}</td>
+    <td>{{ tagTrans(d.key|default('highway'), k) }}</td>
+    </tr>
+  {% endfor %}
+  {% for k, d in const.sidewalks %}
+  <tr>
+    <td>{{ markerLine({
+      styles: d.styles,
+      'style:leftr': {
+        width: 9,
+        offset: -1,
+        opacity: 0.3,
+        dashArray: '1,10',
+        lineCap: butt,
+        color: d.color
+      },
+      'style:left': {
+        width: 3,
+        offset: -7,
+        color: d.color
+      }
+    }) }}</td>
+    <td>{{ tagTrans('sidewalk', k) }}</td>
+  </tr>
+  {% endfor %}
+  </table>
+filter:
+  access:
+    name: '{{ keyTrans("access") }}'
+    type: select
+    placeholder: '<{{ trans("any value") }}>'
+    valueName: '{{ tagTrans("access", value) }}'
+    values:
+      'yes': {}
+      private: {}
+      permissive: {}
+      customers: {}
+      discouraged: {}
+      '!':
+        name: <{{ trans('empty value') }}>
+        query: nwr[!access]
+        weight: -3
+      '?':
+        name: <{{ trans("other") }}>
+        query: nwr[access]["access"!~"^(public|private|permissive|customers|discouraged|unknown|yes)$"]
+        weight: -2
+      unknown:
+        name: '<{{ trans("unknown") }}>'
+        query: nwr["access"="unknown"]
+        weight: -1
+  surface:
+    name: '{{ keyTrans("surface") }}'
+    type: select
+    placeholder: '<{{ trans("any value") }}>'
+    valueName: '{{ tagTrans("surface", value) }}'
+    query: |
+      {% if value == 'all_paved' %}
+      {% set value = "(paved|asphalt|chipseal|concrete|concrete:lanes|concrete:plates|paving_stones|sett|unhewn_cobblestone|cobblestone|metal|wood|rubber)" %}
+      {% elseif value == 'all_unpaved' %}
+      {% set value = "(unpaved|compacted|fine_gravel|gravel|rock|pebblestone|ground|dirt|earth|grass|grass_paver|mud|sand|woodchips|snow|ice|salt|clay)" %}
+      {% endif %}
+
+      (
+        nwr[!sidewalk][!"sidewalk:both"][!"sidewalk:right"][!"sidewalk:left"][surface~"^{{ value }}$"];
+        nwr[~"sidewalk(:left|:right|:both|):surface"~"^{{ value }}$"];
+      )
+    values:
+      all_paved:
+        name: "<{{ tagTrans('surface', 'paved') }}>"
+        weight: -1
+      all_unpaved:
+        name: "<{{ tagTrans('surface', 'unpaved') }}>"
+        weight: -1
+      acrylic: {}
+      artificial_turf: {}
+      asphalt: {}
+      carpet: {}
+      chipseal: {}
+      clay: {}
+      cobblestone: {}
+      compacted: {}
+      concrete: {}
+      concrete:lanes: {}
+      concrete:plates: {}
+      dirt: {}
+      earth: {}
+      fine_gravel: {}
+      grass: {}
+      grass_paver: {}
+      gravel: {}
+      ground: {}
+      ice: {}
+      metal: {}
+      metal_grid: {}
+      mud: {}
+      paved: {}
+      paving_stones: {}
+      pebblestone: {}
+      rock: {}
+      rubber: {}
+      salt: {}
+      sand: {}
+      sett: {}
+      snow: {}
+      stepping_stones: {}
+      tartan: {}
+      unhewn_cobblestone: {}
+      unpaved: {}
+      wood: {}
+      woodchips: {}
+      '!':
+        name: <{{ trans('empty value') }}>
+        query: |
+          (
+          nwr[!sidewalk][!"sidewalk:both"][!"sidewalk:right"][!"sidewalk:left"][!"surface"];
+          nwr["sidewalk:left"="yes"][!"sidewalk:left:surface"];
+          nwr["sidewalk:right"="yes"][!"sidewalk:right:surface"];
+          nwr["sidewalk:both"="yes"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:left:surface"];
+          nwr["sidewalk:both"="yes"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:right:surface"];
+          nwr["sidewalk"="left"][!"sidewalk:left:surface"];
+          nwr["sidewalk"="right"][!"sidewalk:right:surface"];
+          nwr["sidewalk"="both"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:left:surface"];
+          nwr["sidewalk"="both"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:right:surface"];
+          )
+        weight: -4
+      '?':
+        name: <{{ trans("other") }}>
+        query: nwr[surface]["surface"!~"^(acrylic|artificial_turf|asphalt|carpet|chipseal|clay|cobblestone|compacted|concrete|concrete:lanes|concrete:plates|dirt|earth|fine_gravel|grass|grass_paver|gravel|ground|ice|metal|metal_grid|mud|paved|paving_stones|pebblestone|rock|rubber|salt|sand|sett|snow|stepping_stones|tartan|unhewn_cobblestone|unpaved|wood|woodchips)$"]
+        weight: -3
+      unknown:
+        name: '<{{ trans("unknown") }}>'
+        weight: -2
+  smoothness:
+    name: '{{ keyTrans("smoothness") }}'
+    type: select
+    placeholder: '<{{ trans("any value") }}>'
+    valueName: '{{ tagTrans("smoothness", value) }}'
+    query: '(nwr[smoothness="{{ value }}"];nwr[~"sidewalk:(left|right|both):smoothness"~"{{ value }}"];)'
+    values:
+      bad: {}
+      excellent: {}
+      good: {}
+      horrible: {}
+      impassable: {}
+      intermediate: {}
+      very_bad: {}
+      very_horrible: {}
+      '!':
+        name: <{{ trans('empty value') }}>
+        query: |
+          (
+          nwr[!"smoothness"];
+          nwr["sidewalk:left"="yes"][!"sidewalk:left:smoothness"];
+          nwr["sidewalk:right"="yes"][!"sidewalk:right:smoothness"];
+          nwr["sidewalk:both"="yes"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:left:smoothness"];
+          nwr["sidewalk:both"="yes"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:right:smoothness"];
+          nwr["sidewalk"="left"][!"sidewalk:left:smoothness"];
+          nwr["sidewalk"="right"][!"sidewalk:right:smoothness"];
+          nwr["sidewalk"="both"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:left:smoothness"];
+          nwr["sidewalk"="both"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:right:smoothness"];
+          )
+        weight: -3
+      '?':
+        name: <{{ trans("other") }}>
+        query: nwr[smoothness]["smoothness"!~"^(bad|excellent|good|horrible|impassable|intermediate|very_bad|very_horrible)$"]
+        weight: -2
+      unknown:
+        name: '<{{ trans("unknown") }}>'
+        weight: -1
+const:
+  categories:
+    sidewalk:
+      color: '#ff007f'
+      key: footway
+  sidewalks:
+    'separate':
+      color: '#ff007f'
+      styles: 'leftr'
+    'yes':
+      color: '#af0000'
+      styles: 'leftr,left'
+    'no':
+      color: '#000000'
+      styles: 'leftr'