1 /* http://meyerweb.com/eric/tools/css/reset/
3 License: none (public domain)
6 html, body, div, span, applet, object, iframe,
7 h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 a, abbr, acronym, address, big, cite, code,
9 del, dfn, em, img, ins, kbd, q, s, samp,
10 small, strike, strong, sub, sup, tt, var,
12 dl, dt, dd, ol, ul, li,
13 fieldset, form, label, legend,
14 table, caption, tbody, tfoot, thead, tr, th, td,
15 article, aside, canvas, details, embed,
16 figure, figcaption, footer, header, hgroup,
17 menu, nav, output, ruby, section, summary,
18 time, mark, audio, video {
24 vertical-align: baseline;
26 /* HTML5 display-role reset for older browsers */
27 article, aside, details, figcaption, figure,
28 footer, header, hgroup, menu, nav, section {
40 blockquote:before, blockquote:after,
46 border-collapse: collapse;
49 a { text-decoration: none;}
51 * 1. Corrects font family not being inherited in all browsers.
52 * 2. Corrects font size not being inherited in all browsers.
53 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
60 font-family: inherit; /* 1 */
61 font-size: 100%; /* 2 */
67 * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
76 /* Hide default number spinner controls */
77 input[type="number"]::-webkit-inner-spin-button,
78 input[type="number"]::-webkit-outer-spin-button {
83 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
84 * and `video` controls.
85 * 2. Corrects inability to style clickable `input` types in iOS.
86 * 3. Improves usability and consistency of cursor style between image-type
91 html input[type="button"], /* 1 */
93 input[type="submit"] {
94 -webkit-appearance: button; /* 2 */
95 cursor: pointer; /* 3 */
99 * Re-set default cursor for disabled elements.
108 * 1. Addresses box sizing set to `content-box` in IE 8/9.
109 * 2. Removes excess padding in IE 8/9.
112 input[type="checkbox"],
113 input[type="radio"] {
114 box-sizing: border-box; /* 1 */
119 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
120 * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
121 * (include `-moz` to future-proof).
124 input[type="search"] {
125 -webkit-appearance: none; /* 1 */
126 -moz-box-sizing: border-box;
127 -webkit-box-sizing: border-box; /* 2 */
128 box-sizing: border-box;
132 * Removes inner padding and search cancel button in Safari 5 and Chrome
136 input[type="search"]::-webkit-search-cancel-button,
137 input[type="search"]::-webkit-search-decoration {
138 -webkit-appearance: none;
142 * Removes inner padding and border in Firefox 4+.
145 button::-moz-focus-inner,
146 input::-moz-focus-inner {
152 ** Markup free clearing
153 ** Details: http://www.positioniseverything.net/easyclearing.html
157 content: " "; /* 1 */
158 display: table; /* 2 */
169 /* IE/Edge needs these overrides for markers to show up */
170 .layer-osm path.oneway-marker-path { fill: #000; }
171 .layer-osm path.sided-marker-natural-path { fill: rgb(170, 170, 170); }
172 .layer-osm path.sided-marker-coastline-path { fill: #77dede; }
173 .layer-osm path.sided-marker-barrier-path { fill: #ddd; }
174 .layer-osm path.sided-marker-man_made-path { fill: #fff; }
176 /* IE/Edge rule for <use> marker style */
177 .layer-osm path.viewfield-marker-path {
182 stroke-opacity: 0.75;
184 .fill-wireframe .layer-osm path.viewfield-marker-path { /* IE/Edge rule for <use> marker style */
188 /* the above fill: none rule affects paths in <use> shadow dom only in Firefox */
189 .layer-osm use.icon path { fill: #333; } /* FF svg Maki icons */
190 .layer-osm .turn use path { fill: #000; } /* FF turn restriction icons */
191 #turn-only-shape2, #turn-only-u-shape2 { fill: #7092ff; } /* FF turn-only, turn-only-u */
192 #turn-no-shape2, #turn-no-u-shape2 { fill: #e06d5f; } /* FF turn-no, turn-no-u */
193 #turn-yes-shape2, #turn-yes-u-shape2 { fill: #8cd05f; } /* FF turn-yes, turn-yes-u */
196 /* No interactivity except what we specifically allow */
199 .data-layer.keepRight *,
200 .data-layer.improveOSM * {
201 pointer-events: none;
205 pointer-events: visibleStroke;
209 /* `.target` objects are interactive */
210 /* They can be picked up, clicked, hovered, or things can connect to them */
215 pointer-events: fill;
222 pointer-events: stroke;
226 stroke: currentColor;
227 stroke-linecap: round;
228 stroke-linejoin: round;
232 /* `.target-nope` objects are explicitly forbidden to join to */
233 .surface:not(.nope-disabled) .node.target.target-nope,
234 .surface:not(.nope-disabled) .way.target.target-nope {
239 /* `.active` objects (currently being drawn or dragged) are not interactive */
240 /* This is important to allow the events to drop through to whatever is */
241 /* below them on the map, so you can still hover and connect to other things. */
243 pointer-events: none !important;
246 /* points, notes & QA */
248 /* points, notes, markers */
257 g.qa_error.active .stroke,
258 g.note.active .stroke {
281 g.qa_error.hover:not(.selected) .shadow,
282 g.note.hover:not(.selected) .shadow,
283 g.point.related:not(.selected) .shadow,
284 g.point.hover:not(.selected) .shadow {
288 g.qa_error.selected .shadow,
289 g.note.selected .shadow,
290 g.point.selected .shadow {
294 /* g.note ellipse.stroke, */
295 g.point ellipse.stroke {
298 .mode-drag-note g.note.active ellipse.stroke,
299 .mode-drag-node g.point.active ellipse.stroke {
304 /* vertices and midpoints */
313 g.vertex.shared .stroke {
330 g.vertex.related:not(.selected) .shadow,
331 g.vertex.hover:not(.selected) .shadow,
332 g.midpoint.related:not(.selected) .shadow,
333 g.midpoint.hover:not(.selected) .shadow {
337 g.vertex.selected .shadow {
343 .preset-icon .icon.iD-other-line {
346 .preset-icon-container path.line.casing {
351 stroke-linecap: round;
352 stroke-linejoin: round;
364 stroke-linecap: round;
365 stroke-linejoin: round;
368 path.shadow.related:not(.selected),
369 path.shadow.hover:not(.selected) {
373 path.shadow.selected {
383 /* Labels / Markers */
390 .oneway .textpath.tag-waterway {
394 .onewaygroup path.oneway,
395 .viewfieldgroup path.viewfield,
396 .sidedgroup path.sided {
402 text.pointlabel-halo,
406 dominant-baseline: middle;
411 -webkit-transition: opacity 100ms linear;
412 transition: opacity 100ms linear;
413 -moz-transition: opacity 100ms linear;
416 /* Opera doesn't support dominant-baseline. See #715 */
417 /* Safari 10 seems to have regressed too */
418 .linelabel-halo .textpath,
419 .linelabel .textpath {
420 baseline-shift: -33%;
421 dominant-baseline: auto;
424 .labels-group.halo text {
428 stroke-miterlimit: 1;
432 opacity: 0 !important;
438 .icon.areaicon-halo {
442 stroke-miterlimit: 1;
450 /* Wikidata-tagged */
451 g.point.tag-wikidata path.stroke {
456 g.point.tag-wikidata .icon {
460 /* Selected Members */
461 g.vertex.selected-member .shadow,
462 g.point.selected-member .shadow,
463 path.shadow.selected-member {
464 stroke-opacity: 0.95;
469 g.point.highlighted .shadow,
470 path.shadow.highlighted {
471 stroke-opacity: 0.95;
474 g.vertex.highlighted .shadow {
476 stroke-opacity: 0.95;
480 /* Turn Restrictions */
481 .points-group.turns g.turn rect,
482 .points-group.turns g.turn circle {
486 /* Turn restriction paths and vertices */
487 .surface.tr .way.target,
488 .surface.tr path.shadow.selected,
489 .surface.tr path.shadow.related {
493 .surface.tr path.shadow.selected,
494 .surface.tr path.shadow.related,
495 .surface.tr g.vertex.selected .shadow,
496 .surface.tr g.vertex.related .shadow {
500 .surface.tr path.shadow.related.allow,
501 .surface.tr g.vertex.related.allow .shadow {
504 .surface.tr path.shadow.related.restrict,
505 .surface.tr g.vertex.related.restrict .shadow {
508 .surface.tr path.shadow.related.only,
509 .surface.tr g.vertex.related.only .shadow {
515 `highlight-edited` - visual diff activated
516 `added` - entity was created by the user
517 `moved` - node has different coordinates
518 `geometry-edited` - way has different nodes
519 `segment-edited` - one or both adjacents nodes moved
520 `retagged` - some tagging change has occurred
523 /* Vertex visual diffs */
524 .highlight-edited g.points g.node.vertex.added > circle.shadow,
525 .highlight-edited g.points g.node.vertex.retagged > circle.shadow,
526 .highlight-edited g.points g.node.vertex.moved > circle.shadow {
529 .highlight-edited g.points g.node.vertex.added > circle.shadow {
530 fill: rgb(133, 255, 103);
532 .highlight-edited g.points g.node.vertex.retagged > circle.shadow {
535 .highlight-edited g.points g.node.vertex.moved > circle.shadow {
536 fill: rgb(255, 126, 46);
539 /* Point visual diffs */
540 .highlight-edited g.points g.node.point.added > path.shadow,
541 .highlight-edited g.points g.node.point.retagged > path.shadow,
542 .highlight-edited g.points g.node.point.moved > path.shadow {
546 .highlight-edited g.points g.node.point.added > path.shadow {
547 stroke: rgb(133, 255, 103);
549 .highlight-edited g.points g.node.point.retagged > path.shadow {
552 .highlight-edited g.points g.node.point.moved > path.shadow {
553 stroke: rgb(255, 126, 46);
556 /* Line/area segment visual diffs
557 - segments are rendered on top of the ways for convenience and to differentiate
558 them from entire line diffs, so make them thin
560 .highlight-edited g.lines > path.line.segment-edited,
561 .highlight-edited g.areas > path.area.segment-edited {
562 stroke: rgb(255, 126, 46);
563 stroke-dasharray: 10, 3;
564 stroke-width: 1.5 !important;
568 /* Entire line/area visual diffs */
569 .highlight-edited path.line.shadow.added,
570 .highlight-edited path.line.shadow.retagged,
571 .highlight-edited path.line.shadow.geometry-edited,
572 .highlight-edited path.area.shadow.added,
573 .highlight-edited path.area.shadow.retagged,
574 .highlight-edited path.area.shadow.geometry-edited {
577 .highlight-edited.fill-wireframe path.line.shadow.added,
578 .highlight-edited.fill-wireframe path.line.shadow.retagged,
579 .highlight-edited.fill-wireframe path.line.shadow.geometry-edited,
580 .highlight-edited.fill-wireframe path.area.shadow.added,
581 .highlight-edited.fill-wireframe path.area.shadow.retagged,
582 .highlight-edited.fill-wireframe path.area.shadow.geometry-edited {
585 .highlight-edited path.line.shadow.added,
586 .highlight-edited path.area.shadow.added {
587 stroke: rgb(133, 255, 103);
589 .highlight-edited path.area.shadow.retagged,
590 .highlight-edited path.line.shadow.retagged {
593 .highlight-edited path.line.shadow.geometry-edited,
594 .highlight-edited path.area.shadow.geometry-edited {
595 stroke: rgb(255, 126, 46);
598 /* Default - light gray */
600 stroke: rgb(170, 170, 170);
605 stroke: rgba(255, 255, 255, 0.3);
606 fill: rgba(255, 255, 255, 0.3);
609 .preset-icon-fill path.fill {
610 stroke: rgb(170, 170, 170);
611 fill: rgba(170, 170, 170, 0.3);
614 path.shadow.old-multipolygon,
615 path.stroke.old-multipolygon {
616 stroke-dasharray: 100, 5;
617 stroke-linecap: butt;
622 path.stroke.tag-barrier-hedge,
623 path.stroke.tag-landuse-flowerbed,
624 path.stroke.tag-landuse-forest,
625 path.stroke.tag-landuse-grass,
626 path.stroke.tag-landuse-recreation_ground,
627 path.stroke.tag-landuse-village_green,
628 path.stroke.tag-leisure-garden,
629 path.stroke.tag-leisure-golf_course,
630 path.stroke.tag-leisure-nature_reserve,
631 path.stroke.tag-leisure-park,
632 path.stroke.tag-leisure-pitch,
633 path.stroke.tag-leisure-track,
634 path.stroke.tag-natural,
635 path.stroke.tag-natural-wood {
636 stroke: rgb(140, 208, 95);
638 path.fill.tag-barrier-hedge,
639 path.fill.tag-landuse-flowerbed,
640 path.fill.tag-landuse-forest,
641 path.fill.tag-landuse-grass,
642 path.fill.tag-landuse-recreation_ground,
643 path.fill.tag-landuse-village_green,
644 path.fill.tag-leisure-garden,
645 path.fill.tag-leisure-golf_course,
646 path.fill.tag-leisure-nature_reserve,
647 path.fill.tag-leisure-park,
648 path.fill.tag-leisure-pitch,
649 path.fill.tag-leisure-track,
650 path.fill.tag-natural,
651 path.fill.tag-natural-wood {
652 stroke: rgba(140, 208, 95, 0.3);
653 fill: rgba(140, 208, 95, 0.3);
655 .pattern-color-forest,
656 .pattern-color-forest_broadleaved,
657 .pattern-color-forest_needleleaved,
658 .pattern-color-forest_leafless,
660 .pattern-color-grass {
661 fill: rgba(140, 208, 95, 0.3);
666 path.stroke.tag-amenity-fountain,
667 path.stroke.tag-leisure-swimming_pool,
668 path.stroke.tag-natural-bay,
669 path.stroke.tag-natural-water {
670 stroke: rgb(119, 211, 222);
672 path.fill.tag-amenity-fountain,
673 path.fill.tag-leisure-swimming_pool,
674 path.fill.tag-natural-bay,
675 path.fill.tag-natural-water {
676 stroke: rgba(119, 211, 222, 0.3);
677 fill: rgba(119, 211, 222, 0.3);
679 .pattern-color-waves,
680 .pattern-color-water_standing,
681 .pattern-color-pond {
682 fill: rgba(119, 211, 222, 0.3);
687 path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
688 path.stroke.tag-leisure-pitch.tag-sport-baseball,
689 path.stroke.tag-leisure-pitch.tag-sport-softball,
690 path.stroke.tag-leisure-track,
691 path.stroke.tag-natural-beach,
692 path.stroke.tag-natural-sand,
693 path.stroke.tag-natural-scrub,
694 path.stroke.tag-amenity-childcare,
695 path.stroke.tag-amenity-kindergarten,
696 path.stroke.tag-amenity-school,
697 path.stroke.tag-amenity-college,
698 path.stroke.tag-amenity-university,
699 path.stroke.tag-amenity-research_institute {
700 stroke: rgba(255, 255, 148, 0.75);
702 path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
703 path.fill.tag-leisure-pitch.tag-sport-baseball,
704 path.fill.tag-leisure-pitch.tag-sport-softball,
705 path.fill.tag-leisure-track,
706 path.fill.tag-natural-beach,
707 path.fill.tag-natural-sand,
708 path.fill.tag-natural-scrub,
709 path.fill.tag-amenity-childcare,
710 path.fill.tag-amenity-kindergarten,
711 path.fill.tag-amenity-school,
712 path.fill.tag-amenity-college,
713 path.fill.tag-amenity-university,
714 path.fill.tag-amenity-research_institute {
715 stroke: rgba(255, 255, 148, 0.25);
716 fill: rgba(255, 255, 148, 0.25);
718 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
719 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-baseball,
720 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-softball,
721 .preset-icon-fill path.area.stroke.tag-leisure-track,
722 .preset-icon-fill path.area.stroke.tag-natural-beach,
723 .preset-icon-fill path.area.stroke.tag-natural-sand,
724 .preset-icon-fill path.area.stroke.tag-natural-scrub,
725 .preset-icon-fill path.area.stroke.tag-amenity-childcare,
726 .preset-icon-fill path.area.stroke.tag-amenity-kindergarten,
727 .preset-icon-fill path.area.stroke.tag-amenity-school,
728 .preset-icon-fill path.area.stroke.tag-amenity-college,
729 .preset-icon-fill path.area.stroke.tag-amenity-university,
730 .preset-icon-fill path.area.stroke.tag-amenity-research_institute {
731 stroke: rgb(232, 232, 0);
733 .pattern-color-beach,
735 .pattern-color-scrub {
736 fill: rgba(255, 255, 148, 0.2);
741 path.stroke.tag-landuse-residential,
742 path.stroke.tag-status-construction {
743 stroke: rgb(196, 189, 25);
745 path.fill.tag-landuse-residential,
746 path.fill.tag-status-construction {
747 stroke: rgba(196, 189, 25, 0.3);
748 fill: rgba(196, 189, 25, 0.3);
750 .pattern-color-construction {
751 fill: rgba(196, 189, 25, 0.3);
756 path.stroke.tag-landuse-retail,
757 path.stroke.tag-landuse-commercial,
758 path.stroke.tag-landuse-landfill,
759 path.stroke.tag-military,
760 path.stroke.tag-landuse-military {
761 stroke: rgb(214, 136, 26);
763 path.fill.tag-landuse-retail,
764 path.fill.tag-landuse-commercial,
765 path.fill.tag-landuse-landfill,
766 path.fill.tag-military,
767 path.fill.tag-landuse-military {
768 stroke: rgba(214, 136, 26, 0.3);
769 fill: rgba(214, 136, 26, 0.3);
771 .pattern-color-landfill {
772 fill: rgba(214, 136, 26, 0.3);
777 path.stroke.tag-landuse-industrial,
778 path.stroke.tag-power-plant {
779 stroke: rgb(228, 164, 245);
781 path.fill.tag-landuse-industrial,
782 path.fill.tag-power-plant {
783 stroke: rgba(228, 164, 245, 0.3);
784 fill: rgba(228, 164, 245, 0.3);
789 path.stroke.tag-natural-wetland {
790 stroke: rgb(153, 225, 170);
792 path.fill.tag-natural-wetland {
793 stroke: rgba(153, 225, 170, 0.3);
794 fill: rgba(153, 225, 170, 0.3);
796 .preset-icon-fill path.area.fill.tag-natural-wetland {
797 fill: rgba(153, 225, 170, 0.2);
799 .pattern-color-wetland,
800 .pattern-color-wetland_marsh,
801 .pattern-color-wetland_swamp,
802 .pattern-color-wetland_bog,
803 .pattern-color-wetland_reedbed {
804 fill: rgba(153, 225, 170, 0.3);
808 /* Light Green things */
809 path.stroke.tag-landuse-cemetery,
810 path.stroke.tag-landuse-farmland,
811 path.stroke.tag-landuse-grass.tag-golf-green,
812 path.stroke.tag-landuse-meadow,
813 path.stroke.tag-landuse-orchard,
814 path.stroke.tag-landuse-vineyard {
815 stroke: rgb(191, 232, 63);
817 path.fill.tag-landuse-cemetery,
818 path.fill.tag-landuse-farmland,
819 path.fill.tag-landuse-grass.tag-golf-green,
820 path.fill.tag-landuse-meadow,
821 path.fill.tag-landuse-orchard,
822 path.fill.tag-landuse-vineyard {
823 stroke: rgba(191, 232, 63, 0.3);
824 fill: rgba(191, 232, 63, 0.3);
826 .preset-icon-fill path.area.fill.tag-landuse-cemetery,
827 .preset-icon-fill path.area.fill.tag-landuse-farmland,
828 .preset-icon-fill path.area.fill.tag-landuse-grass.tag-golf-green,
829 .preset-icon-fill path.area.fill.tag-landuse-meadow,
830 .preset-icon-fill path.area.fill.tag-landuse-orchard,
831 .preset-icon-fill path.area.fill.tag-landuse-vineyard {
832 fill: rgba(191, 232, 63, 0.4);
834 .pattern-color-cemetery,
835 .pattern-color-cemetery_buddhist,
836 .pattern-color-cemetery_christian,
837 .pattern-color-cemetery_jewish,
838 .pattern-color-cemetery_muslim,
839 .pattern-color-farmland,
840 .pattern-color-golf_green,
841 .pattern-color-meadow,
842 .pattern-color-orchard,
843 .pattern-color-vineyard {
844 fill: rgba(191, 232, 63, 0.3);
849 path.stroke.tag-landuse-farmyard {
850 stroke: rgb(245, 220, 186);
852 path.fill.tag-landuse-farmyard {
853 stroke: rgba(245, 220, 186, 0.3);
854 fill: rgba(245, 220, 186, 0.3);
856 .preset-icon-fill path.area.stroke.tag-landuse-farmyard {
857 stroke: rgb(226, 177, 111);
859 .pattern-color-farmyard {
860 fill: rgba(245, 220, 186, 0.3);
864 /* Dark Gray things */
865 path.stroke.tag-amenity-parking,
866 path.stroke.tag-landuse-railway,
867 path.stroke.tag-landuse-quarry,
868 path.stroke.tag-leisure-pitch.tag-sport-basketball,
869 path.stroke.tag-leisure-pitch.tag-sport-skateboard,
870 path.stroke.tag-man_made-adit,
871 path.stroke.tag-man_made-groyne,
872 path.stroke.tag-man_made-breakwater,
873 path.stroke.tag-natural-bare_rock,
874 path.stroke.tag-natural-cave_entrance,
875 path.stroke.tag-natural-cliff,
876 path.stroke.tag-natural-rock,
877 path.stroke.tag-natural-scree,
878 path.stroke.tag-natural-stone,
879 path.stroke.tag-natural-shingle,
880 path.stroke.tag-waterway-dam,
881 path.stroke.tag-waterway-weir {
882 stroke: rgb(170, 170, 170);
884 path.fill.tag-amenity-parking,
885 path.fill.tag-landuse-railway,
886 path.fill.tag-landuse-quarry,
887 path.fill.tag-leisure-pitch.tag-sport-basketball,
888 path.fill.tag-leisure-pitch.tag-sport-skateboard,
889 path.fill.tag-man_made-adit,
890 path.fill.tag-man_made-groyne,
891 path.fill.tag-man_made-breakwater,
892 path.fill.tag-natural-bare_rock,
893 path.fill.tag-natural-cliff,
894 path.fill.tag-natural-cave_entrance,
895 path.fill.tag-natural-rock,
896 path.fill.tag-natural-scree,
897 path.fill.tag-natural-stone,
898 path.fill.tag-natural-shingle,
899 path.fill.tag-waterway-dam,
900 path.fill.tag-waterway-weir {
901 stroke: rgba(140, 140, 140, 0.5);
902 fill: rgba(140, 140, 140, 0.5);
904 .pattern-color-quarry {
905 fill: rgba(140, 140, 140, 0.5);
909 /* Light gray overrides */
910 path.stroke.tag-natural-cave_entrance,
911 path.stroke.tag-natural-glacier {
912 stroke: rgb(170, 170, 170);
914 path.fill.tag-natural-cave_entrance,
915 path.fill.tag-natural-glacier {
916 stroke: rgba(255, 255, 255, 0.3);
917 fill: rgba(255, 255, 255, 0.3);
919 .preset-icon-fill path.fill.tag-natural-cave_entrance,
920 .preset-icon-fill path.fill.tag-natural-glacier {
921 stroke: rgb(170, 170, 170);
922 fill: rgba(170, 170, 170, 0.3);
924 preset-icon-container/* highways */
927 .preset-icon .icon.tag-highway.other-line {
931 path.line.casing.tag-highway {
934 path.line.stroke.tag-highway {
939 path.line.shadow.tag-highway {
942 path.line.casing.tag-highway {
945 path.line.stroke.tag-highway {
948 .low-zoom path.line.shadow.tag-highway {
951 .low-zoom path.line.casing.tag-highway {
954 .low-zoom path.line.stroke.tag-highway {
958 .preset-icon .icon.tag-highway-motorway,
959 .preset-icon .icon.tag-highway-motorway_link {
963 path.line.stroke.tag-highway-motorway,
964 path.line.stroke.tag-highway-motorway_link,
965 path.line.stroke.tag-motorway {
968 path.line.casing.tag-highway-motorway,
969 path.line.casing.tag-highway-motorway_link,
970 path.line.casing.tag-motorway {
974 .preset-icon .icon.tag-highway-trunk,
975 .preset-icon .icon.tag-highway-trunk_link {
979 path.line.stroke.tag-highway-trunk,
980 path.line.stroke.tag-highway-trunk_link,
981 path.line.stroke.tag-trunk {
984 path.line.casing.tag-highway-trunk,
985 path.line.casing.tag-highway-trunk_link,
986 path.line.casing.tag-trunk {
990 .preset-icon .icon.tag-highway-primary,
991 .preset-icon .icon.tag-highway-primary_link {
995 path.line.stroke.tag-highway-primary,
996 path.line.stroke.tag-highway-primary_link,
997 path.line.stroke.tag-primary {
1000 path.line.casing.tag-highway-primary,
1001 path.line.casing.tag-highway-primary_link,
1002 path.line.casing.tag-primary {
1006 .preset-icon .icon.tag-highway-secondary,
1007 .preset-icon .icon.tag-highway-secondary_link {
1011 path.line.stroke.tag-highway-secondary,
1012 path.line.stroke.tag-highway-secondary_link,
1013 path.line.stroke.tag-secondary {
1016 path.line.casing.tag-highway-secondary,
1017 path.line.casing.tag-highway-secondary_link,
1018 path.line.casing.tag-secondary {
1022 .preset-icon .icon.tag-highway-tertiary,
1023 .preset-icon .icon.tag-highway-tertiary_link {
1027 path.line.stroke.tag-highway-tertiary,
1028 path.line.stroke.tag-highway-tertiary_link,
1029 path.line.stroke.tag-tertiary {
1032 path.line.casing.tag-highway-tertiary,
1033 path.line.casing.tag-highway-tertiary_link,
1034 path.line.casing.tag-tertiary {
1038 .legacy-carto .preset-icon .icon.tag-highway-motorway,
1039 .legacy-carto .preset-icon .icon.tag-highway-motorway_link {
1043 .legacy-carto path.line.stroke.tag-highway-motorway,
1044 .legacy-carto path.line.stroke.tag-highway-motorway_link,
1045 .legacy-carto path.line.stroke.tag-motorway {
1048 .legacy-carto path.line.casing.tag-highway-motorway,
1049 .legacy-carto path.line.casing.tag-highway-motorway_link,
1050 .legacy-carto path.line.casing.tag-motorway {
1054 .legacy-carto .preset-icon .icon.tag-highway-trunk,
1055 .legacy-carto .preset-icon .icon.tag-highway-trunk_link {
1059 .legacy-carto path.line.stroke.tag-highway-trunk,
1060 .legacy-carto path.line.stroke.tag-highway-trunk_link,
1061 .legacy-carto path.line.stroke.tag-trunk {
1064 .legacy-carto path.line.casing.tag-highway-trunk,
1065 .legacy-carto path.line.casing.tag-highway-trunk_link,
1066 .legacy-carto path.line.casing.tag-trunk {
1070 .legacy-carto .preset-icon .icon.tag-highway-primary,
1071 .legacy-carto .preset-icon .icon.tag-highway-primary_link {
1075 .legacy-carto path.line.stroke.tag-highway-primary,
1076 .legacy-carto path.line.stroke.tag-highway-primary_link,
1077 .legacy-carto path.line.stroke.tag-primary {
1080 .legacy-carto path.line.casing.tag-highway-primary,
1081 .legacy-carto path.line.casing.tag-highway-primary_link,
1082 .legacy-carto path.line.casing.tag-primary {
1086 .legacy-carto .preset-icon .icon.tag-highway-secondary,
1087 .legacy-carto .preset-icon .icon.tag-highway-secondary_link {
1091 .legacy-carto path.line.stroke.tag-highway-secondary,
1092 .legacy-carto path.line.stroke.tag-highway-secondary_link,
1093 .legacy-carto path.line.stroke.tag-secondary {
1096 .legacy-carto path.line.casing.tag-highway-secondary,
1097 .legacy-carto path.line.casing.tag-highway-secondary_link,
1098 .legacy-carto path.line.casing.tag-secondary {
1102 .legacy-carto .preset-icon .icon.tag-highway-tertiary,
1103 .legacy-carto .preset-icon .icon.tag-highway-tertiary_link {
1107 .legacy-carto path.line.stroke.tag-highway-tertiary,
1108 .legacy-carto path.line.stroke.tag-highway-tertiary_link,
1109 .legacy-carto path.line.stroke.tag-tertiary {
1112 .legacy-carto path.line.casing.tag-highway-tertiary,
1113 .legacy-carto path.line.casing.tag-highway-tertiary_link,
1114 .legacy-carto path.line.casing.tag-tertiary {
1118 .preset-icon .icon.tag-highway-residential {
1122 path.line.stroke.tag-highway-residential,
1123 path.line.stroke.tag-residential {
1126 path.line.casing.tag-highway-residential,
1127 path.line.casing.tag-residential {
1131 .preset-icon .icon.tag-highway-unclassified {
1135 path.line.stroke.tag-highway-unclassified,
1136 path.line.stroke.tag-unclassified {
1139 path.line.casing.tag-highway-unclassified,
1140 path.line.casing.tag-unclassified {
1145 /* narrow highways */
1146 path.line.shadow.tag-highway-living_street,
1147 path.line.shadow.tag-highway-bus_guideway,
1148 path.line.shadow.tag-highway-service,
1149 path.line.shadow.tag-highway-track,
1150 path.line.shadow.tag-highway-road {
1153 path.line.casing.tag-highway-living_street,
1154 path.line.casing.tag-highway-bus_guideway,
1155 path.line.casing.tag-highway-service,
1156 path.line.casing.tag-highway-track,
1157 path.line.casing.tag-highway-road {
1160 path.line.stroke.tag-highway-living_street,
1161 path.line.stroke.tag-highway-bus_guideway,
1162 path.line.stroke.tag-highway-service,
1163 path.line.stroke.tag-highway-track,
1164 path.line.stroke.tag-highway-road {
1168 path.line.shadow.tag-highway-path,
1169 path.line.shadow.tag-highway-footway,
1170 path.line.shadow.tag-highway-cycleway,
1171 path.line.shadow.tag-highway-bridleway,
1172 path.line.shadow.tag-highway-corridor,
1173 path.line.shadow.tag-highway-pedestrian,
1174 path.line.shadow.tag-highway-steps {
1177 path.line.casing.tag-highway-path,
1178 path.line.casing.tag-highway-footway,
1179 path.line.casing.tag-highway-cycleway,
1180 path.line.casing.tag-highway-bridleway,
1181 path.line.casing.tag-highway-corridor,
1182 path.line.casing.tag-highway-pedestrian,
1183 path.line.casing.tag-highway-steps {
1186 path.line.stroke.tag-highway-path,
1187 path.line.stroke.tag-highway-footway,
1188 path.line.stroke.tag-highway-cycleway,
1189 path.line.stroke.tag-highway-bridleway,
1190 path.line.stroke.tag-highway-corridor,
1191 path.line.stroke.tag-highway-pedestrian,
1192 path.line.stroke.tag-highway-steps {
1196 .low-zoom path.line.shadow.tag-highway-living_street,
1197 .low-zoom path.line.shadow.tag-highway-bus_guideway,
1198 .low-zoom path.line.shadow.tag-highway-service,
1199 .low-zoom path.line.shadow.tag-highway-track,
1200 .low-zoom path.line.shadow.tag-highway-road {
1203 .low-zoom path.line.casing.tag-highway-living_street,
1204 .low-zoom path.line.casing.tag-highway-bus_guideway,
1205 .low-zoom path.line.casing.tag-highway-service,
1206 .low-zoom path.line.casing.tag-highway-track,
1207 .low-zoom path.line.casing.tag-highway-road {
1210 .low-zoom path.line.stroke.tag-highway-living_street,
1211 .low-zoom path.line.stroke.tag-highway-bus_guideway,
1212 .low-zoom path.line.stroke.tag-highway-service,
1213 .low-zoom path.line.stroke.tag-highway-track,
1214 .low-zoom path.line.stroke.tag-highway-road {
1218 .low-zoom path.line.shadow.tag-highway-path,
1219 .low-zoom path.line.shadow.tag-highway-footway,
1220 .low-zoom path.line.shadow.tag-highway-cycleway,
1221 .low-zoom path.line.shadow.tag-highway-bridleway,
1222 .low-zoom path.line.shadow.tag-highway-corridor,
1223 .low-zoom path.line.shadow.tag-highway-pedestrian,
1224 .low-zoom path.line.shadow.tag-highway-steps {
1227 .low-zoom path.line.casing.tag-highway-path,
1228 .low-zoom path.line.casing.tag-highway-footway,
1229 .low-zoom path.line.casing.tag-highway-cycleway,
1230 .low-zoom path.line.casing.tag-highway-bridleway,
1231 .low-zoom path.line.casing.tag-highway-corridor,
1232 .low-zoom path.line.casing.tag-highway-pedestrian,
1233 .low-zoom path.line.casing.tag-highway-steps {
1236 .low-zoom path.line.stroke.tag-highway-path,
1237 .low-zoom path.line.stroke.tag-highway-footway,
1238 .low-zoom path.line.stroke.tag-highway-cycleway,
1239 .low-zoom path.line.stroke.tag-highway-bridleway,
1240 .low-zoom path.line.stroke.tag-highway-corridor,
1241 .low-zoom path.line.stroke.tag-highway-pedestrian,
1242 .low-zoom path.line.stroke.tag-highway-steps {
1246 /* living streets */
1247 .preset-icon .icon.tag-highway-living-street {
1251 path.line.stroke.tag-highway-living_street,
1252 path.line.stroke.tag-living_street {
1255 path.line.casing.tag-highway-living_street,
1256 path.line.casing.tag-living_street {
1260 /* pedestrian streets and corridors */
1261 .preset-icon .icon.tag-highway-corridor,
1262 .preset-icon .icon.tag-highway-pedestrian {
1266 path.line.stroke.tag-highway-corridor,
1267 path.line.stroke.tag-highway-pedestrian,
1268 path.line.stroke.tag-corridor,
1269 path.line.stroke.tag-pedestrian {
1271 stroke-dasharray: 2, 8;
1273 .low-zoom path.line.stroke.tag-highway-corridor,
1274 .low-zoom path.line.stroke.tag-highway-pedestrian,
1275 .low-zoom path.line.stroke.tag-corridor,
1276 .low-zoom path.line.stroke.tag-pedestrian {
1277 stroke-dasharray: 1, 4;
1279 path.line.casing.tag-highway-corridor,
1280 path.line.casing.tag-highway-pedestrian,
1281 path.line.casing.tag-corridor,
1282 path.line.casing.tag-pedestrian,
1283 path.line.casing.tag-highway-corridor.tag-unpaved,
1284 path.line.casing.tag-highway-pedestrian.tag-unpaved,
1285 path.line.casing.tag-corridor.tag-unpaved,
1286 path.line.casing.tag-pedestrian.tag-unpaved {
1288 stroke-linecap: round;
1289 stroke-dasharray: none;
1293 .preset-icon .icon.tag-highway-road {
1297 path.line.stroke.tag-highway-road,
1298 path.line.stroke.tag-road {
1301 path.line.casing.tag-highway-road,
1302 path.line.casing.tag-road {
1307 .preset-icon .icon.tag-highway-service {
1311 path.line.stroke.tag-highway-service,
1312 path.line.stroke.tag-service {
1315 path.line.casing.tag-highway-service,
1316 path.line.casing.tag-service {
1320 /* special service roads and bus guideways */
1321 /* with `service=* tag` (e.g. parking_aisle, alley, drive-through) */
1322 .preset-icon .icon.tag-highway-bus_guideway,
1323 .preset-icon .icon.tag-highway-service.tag-service {
1327 path.line.stroke.tag-highway-bus_guideway,
1328 path.line.stroke.tag-highway-service.tag-service,
1329 path.line.stroke.tag-service.tag-service {
1332 path.line.casing.tag-highway-bus_guideway,
1333 path.line.casing.tag-highway-service.tag-service,
1334 path.line.casing.tag-service.tag-service {
1338 /* unmaintained track roads */
1339 path.line.stroke.tag-highway-track,
1340 path.line.stroke.tag-track {
1343 path.line.casing.tag-highway-track,
1344 path.line.casing.tag-track {
1349 path.line.stroke.tag-highway-path,
1350 path.line.stroke.tag-highway-footway,
1351 path.line.stroke.tag-highway-cycleway,
1352 path.line.stroke.tag-highway-bridleway {
1353 stroke-linecap: butt;
1354 stroke-dasharray: 6, 6;
1356 .low-zoom path.line.stroke.tag-highway-path,
1357 .low-zoom path.line.stroke.tag-highway-footway,
1358 .low-zoom path.line.stroke.tag-highway-cycleway,
1359 .low-zoom path.line.stroke.tag-highway-bridleway {
1360 stroke-linecap: butt;
1361 stroke-dasharray: 3, 3;
1364 /* style for features that should have highway=footway but don't yet */
1365 path.line.stroke.tag-crossing,
1366 path.line.stroke.tag-footway-access_aisle,
1367 path.line.stroke.tag-public_transport-platform,
1368 path.line.stroke.tag-highway-platform,
1369 path.line.stroke.tag-railway-platform,
1370 path.line.stroke.tag-man_made-pier {
1374 path.line.casing.tag-highway-path,
1375 path.line.casing.tag-highway-path.tag-unpaved,
1376 path.line.casing.tag-highway-footway.tag-public_transport-platform,
1377 path.line.casing.tag-highway-footway.tag-man_made-pier,
1378 path.line.casing.tag-highway.tag-crossing,
1379 path.line.casing.tag-highway.tag-footway-access_aisle {
1381 stroke-linecap: round;
1382 stroke-dasharray: none;
1384 path.line.casing.tag-highway-footway,
1385 path.line.casing.tag-highway-cycleway,
1386 path.line.casing.tag-highway-bridleway,
1387 path.line.casing.tag-highway-footway.tag-unpaved,
1388 path.line.casing.tag-highway-cycleway.tag-unpaved,
1389 path.line.casing.tag-highway-bridleway.tag-unpaved {
1391 stroke-linecap: round;
1392 stroke-dasharray: none;
1395 .preset-icon .icon.tag-highway-path,
1396 .preset-icon .icon.tag-highway-footway.tag-public_transport-platform,
1397 .preset-icon .icon.tag-highway-footway.tag-man_made-pier {
1401 path.line.stroke.tag-highway-path {
1406 .preset-icon .icon.tag-route-foot,
1407 .preset-icon .icon.tag-route-hiking,
1408 .preset-icon .icon.tag-highway-footway {
1412 path.line.stroke.tag-highway-footway,
1413 path.line.stroke.tag-highway_bus_stop,
1414 .preset-icon-container path.casing.tag-highway-footway {
1417 .preset-icon .icon.tag-highway-footway.tag-footway-sidewalk {
1420 path.stroke.tag-highway-footway.tag-footway-sidewalk,
1421 .preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk {
1424 .preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-footway-access_aisle):not(.tag-man_made-pier):not(.tag-public_transport-platform) {
1429 .preset-icon .icon.tag-route-bicycle,
1430 .preset-icon .icon.tag-highway-cycleway {
1434 path.line.stroke.tag-highway-cycleway,
1435 .preset-icon-container path.casing.tag-highway-cycleway {
1438 .preset-icon-container path.stroke.tag-highway-cycleway:not(.tag-crossing) {
1443 .preset-icon .icon.tag-route-horse,
1444 .preset-icon .icon.tag-highway-bridleway {
1448 path.line.stroke.tag-highway-bridleway,
1449 .preset-icon-container path.casing.tag-highway-bridleway {
1452 .preset-icon-container path.stroke.tag-highway-bridleway {
1457 .preset-icon .icon.tag-leisure-track {
1458 color: rgb(229, 184, 43);
1460 path.line.stroke.tag-leisure-track,
1461 .preset-icon-container path.casing.tag-highway.tag-leisure-track {
1462 stroke: rgb(229, 184, 43);
1464 .preset-icon-container path.line.stroke.tag-highway.tag-leisure-track {
1469 .preset-icon .icon.tag-highway-steps {
1473 path.line.stroke.tag-highway-steps {
1474 stroke-linecap: butt;
1475 stroke-dasharray: 3, 3;
1477 .low-zoom path.line.stroke.tag-highway-steps {
1478 stroke-dasharray: 2, 2;
1480 path.line.casing.tag-highway-steps,
1481 path.line.casing.tag-highway-steps.tag-unpaved {
1483 stroke-linecap: round;
1484 stroke-dasharray: none;
1486 path.line.stroke.tag-highway-steps,
1487 .preset-icon-container path.line.casing.tag-highway-steps {
1490 .preset-icon-container path.line.stroke.tag-highway-steps {
1496 path.line.stroke.tag-highway.tag-crossing-unmarked {
1497 stroke-dasharray: 6, 4;
1499 .low-zoom path.line.stroke.tag-highway.tag-crossing-unmarked {
1500 stroke-dasharray: 3, 2;
1502 path.line.stroke.tag-highway.tag-crossing-marked {
1503 stroke-dasharray: 6, 3;
1505 .low-zoom path.line.stroke.tag-highway.tag-crossing-marked {
1506 stroke-dasharray: 3, 1.5;
1508 path.line.stroke.tag-highway-footway.tag-crossing-marked {
1511 .preset-icon .icon.tag-highway-footway.tag-crossing-marked {
1514 path.line.stroke.tag-highway-footway.tag-crossing-unmarked {
1517 .preset-icon .icon.tag-highway-footway.tag-crossing-unmarked {
1520 path.line.stroke.tag-highway-cycleway.tag-crossing-marked {
1523 .preset-icon .icon.tag-highway-cycleway.tag-crossing-marked {
1527 path.line.stroke.tag-highway.tag-footway-access_aisle {
1528 stroke-dasharray: 4, 2;
1530 .low-zoom path.line.stroke.tag-highway.tag-footway-access_aisle,
1531 .preset-icon-container path.stroke.tag-highway.tag-footway-access_aisle {
1532 stroke-dasharray: 2.5, 1.5;
1534 path.line.stroke.tag-highway.tag-footway-access_aisle {
1537 .preset-icon .icon.tag-highway.tag-footway-access_aisle {
1542 /* highway midpoints */
1543 g.midpoint.tag-highway-corridor .fill,
1544 g.midpoint.tag-highway-pedestrian .fill,
1545 g.midpoint.tag-highway-steps .fill,
1546 g.midpoint.tag-highway-path .fill,
1547 g.midpoint.tag-highway-footway .fill,
1548 g.midpoint.tag-highway-cycleway .fill,
1549 g.midpoint.tag-highway-bridleway .fill {
1558 path.area.stroke.tag-aeroway,
1559 .low-zoom path.area.stroke.tag-aeroway {
1561 stroke-dasharray: none;
1564 path.area.fill.tag-aeroway-runway {
1565 stroke: rgba(0, 0, 0, 0.6);
1566 fill: rgba(0, 0, 0, 0.6);
1570 /* narrow aeroways (taxiway) */
1571 path.line.shadow.tag-aeroway-taxiway,
1572 path.line.shadow.tag-taxiway {
1575 path.line.casing.tag-aeroway-taxiway,
1576 path.line.casing.tag-taxiway {
1579 path.line.stroke.tag-aeroway-taxiway,
1580 path.line.stroke.tag-taxiway {
1583 .low-zoom path.line.shadow.tag-aeroway-taxiway,
1584 .low-zoom path.line.shadow.tag-taxiway {
1587 .low-zoom path.line.casing.tag-aeroway-taxiway,
1588 .low-zoom path.line.casing.tag-taxiway {
1591 .low-zoom path.line.stroke.tag-aeroway-taxiway,
1592 .low-zoom path.line.stroke.tag-taxiway {
1596 .preset-icon .icon.tag-aeroway-taxiway,
1597 .preset-icon .icon.tag-taxiway {
1601 path.line.stroke.tag-aeroway-taxiway,
1602 path.line.stroke.tag-taxiway {
1605 path.line.casing.tag-aeroway-taxiway,
1606 path.line.casing.tag-taxiway {
1610 /* wide aeroways (runway) */
1611 .preset-icon .icon.tag-aeroway-runway,
1612 .preset-icon .icon.tag-runway {
1616 path.line.shadow.tag-aeroway-runway {
1619 path.line.casing.tag-aeroway-runway {
1622 stroke-linecap: square;
1624 path.line.stroke.tag-aeroway-runway {
1627 stroke-linecap: butt;
1628 stroke-dasharray: 24, 48;
1630 .low-zoom path.line.shadow.tag-aeroway-runway {
1633 .low-zoom path.line.casing.tag-aeroway-runway {
1636 .low-zoom path.line.stroke.tag-aeroway-runway {
1638 stroke-dasharray: 12, 24;
1640 .preset-icon-container path.line.stroke.tag-aeroway-runway {
1641 stroke-dasharray: 0, 14, 8, 14;
1646 .preset-icon .icon.tag-railway.other-line {
1650 .preset-icon .icon.tag-railway {
1657 path.line.shadow.tag-railway {
1660 path.line.casing.tag-railway {
1663 path.line.stroke.tag-railway {
1665 stroke-linecap: butt;
1666 stroke-dasharray: 12,12;
1668 .low-zoom path.line.shadow.tag-railway {
1671 .low-zoom path.line.casing.tag-railway {
1674 .low-zoom path.line.stroke.tag-railway {
1676 stroke-dasharray: 6,6;
1678 .preset-icon-container path.line.stroke.tag-railway:not(.tag-status) {
1679 stroke-dasharray: 6;
1682 path.line.casing.tag-railway.tag-railway-platform {
1685 path.line.stroke.tag-railway.tag-railway-platform {
1686 stroke-dasharray: none;
1690 path.line.casing.tag-railway {
1693 path.line.stroke.tag-railway {
1698 .preset-icon .icon.tag-railway-disused,
1699 .preset-icon .icon.tag-railway-abandoned {
1703 path.line.casing.tag-railway-disused,
1704 path.line.casing.tag-railway-abandoned {
1707 path.line.stroke.tag-railway-disused,
1708 path.line.stroke.tag-railway-abandoned {
1713 path.line.casing.tag-railway-subway {
1716 path.line.stroke.tag-railway-subway {
1722 .preset-icon .icon.tag-waterway.other-line {
1726 .preset-icon .icon.tag-type-waterway:not(.tag-waterway-dam),
1727 .preset-icon .icon.tag-waterway:not(.tag-waterway-dam) {
1734 path.area.stroke.tag-waterway-dock,
1735 path.area.stroke.tag-waterway-boatyard,
1736 path.area.stroke.tag-waterway-fuel {
1740 path.area.casing.tag-waterway-dock,
1741 path.area.casing.tag-waterway-boatyard,
1742 path.area.casing.tag-waterway-fuel {
1745 path.area.fill.tag-waterway-dock,
1746 path.area.fill.tag-waterway-boatyard,
1747 path.area.fill.tag-waterway-fuel {
1748 stroke: rgba(255, 255, 255, 0.3);
1749 fill: rgba(255, 255, 255, 0.3);
1753 path.line.fill.tag-waterway:not(.tag-waterway-dam) {
1754 stroke: rgba(119, 211, 222, 0.3);
1755 fill: rgba(119, 211, 222, 0.3);
1757 path.line.casing.tag-waterway:not(.tag-waterway-dam) {
1760 path.line.stroke.tag-waterway:not(.tag-waterway-dam) {
1765 /* narrow waterways (default) */
1766 path.line.shadow.tag-waterway {
1769 path.line.casing.tag-waterway {
1772 path.line.stroke.tag-waterway {
1776 .low-zoom path.line.shadow.tag-waterway {
1779 .low-zoom path.line.casing.tag-waterway {
1782 .low-zoom path.line.stroke.tag-waterway {
1787 /* wide waterways (river) */
1788 path.line.shadow.tag-waterway-river {
1791 path.line.casing.tag-waterway-river {
1794 path.line.stroke.tag-waterway-river {
1798 .low-zoom path.line.shadow.tag-waterway-river {
1801 .low-zoom path.line.casing.tag-waterway-river {
1804 .low-zoom path.line.stroke.tag-waterway-river {
1810 .preset-icon .icon.tag-waterway-ditch {
1813 path.line.stroke.tag-waterway-ditch {
1817 /* narrow width miscellanous things */
1818 path.line.shadow.tag-aerialway,
1819 path.line.shadow.tag-attraction-summer_toboggan,
1820 path.line.shadow.tag-attraction-water_slide,
1821 path.line.shadow.tag-golf-cartpath,
1822 path.line.shadow.tag-man_made-pipeline,
1823 path.line.shadow.tag-natural-tree_row,
1824 path.line.shadow.tag-piste {
1827 path.line.casing.tag-aerialway,
1828 path.line.casing.tag-attraction-summer_toboggan,
1829 path.line.casing.tag-attraction-water_slide,
1830 path.line.casing.tag-golf-cartpath,
1831 path.line.casing.tag-man_made-pipeline,
1832 path.line.casing.tag-natural-tree_row,
1833 path.line.casing.tag-piste {
1836 path.line.stroke.tag-aerialway,
1837 path.line.stroke.tag-attraction-summer_toboggan,
1838 path.line.stroke.tag-attraction-water_slide,
1839 path.line.stroke.tag-golf-cartpath,
1840 path.line.stroke.tag-man_made-pipeline,
1841 path.line.stroke.tag-natural-tree_row,
1842 path.line.stroke.tag-piste {
1846 .low-zoom path.line.shadow.tag-aerialway,
1847 .low-zoom path.line.shadow.tag-attraction-summer_toboggan,
1848 .low-zoom path.line.shadow.tag-attraction-water_slide,
1849 .low-zoom path.line.shadow.tag-golf-cartpath,
1850 .low-zoom path.line.shadow.tag-man_made-pipeline,
1851 .low-zoom path.line.shadow.tag-natural-tree_row,
1852 .low-zoom path.line.shadow.tag-piste {
1855 .low-zoom path.line.casing.tag-aerialway,
1856 .low-zoom path.line.casing.tag-attraction-summer_toboggan,
1857 .low-zoom path.line.casing.tag-attraction-water_slide,
1858 .low-zoom path.line.casing.tag-golf-cartpath,
1859 .low-zoom path.line.casing.tag-man_made-pipeline,
1860 .low-zoom path.line.casing.tag-natural-tree_row,
1861 .low-zoom path.line.casing.tag-piste {
1864 .low-zoom path.line.stroke.tag-aerialway,
1865 .low-zoom path.line.stroke.tag-attraction-summer_toboggan,
1866 .low-zoom path.line.stroke.tag-attraction-water_slide,
1867 .low-zoom path.line.stroke.tag-golf-cartpath,
1868 .low-zoom path.line.stroke.tag-man_made-pipeline,
1869 .low-zoom path.line.stroke.tag-natural-tree_row,
1870 .low-zoom path.line.stroke.tag-piste {
1876 .preset-icon .icon.tag-route-ferry {
1880 path.line.shadow.tag-route-ferry {
1883 path.line.stroke.tag-route-ferry {
1885 stroke-linecap: butt;
1886 stroke-dasharray: 12,8;
1888 .low-zoom path.line.shadow.tag-route-ferry {
1891 .low-zoom path.line.stroke.tag-route-ferry,
1892 .preset-icon-container path.line.stroke.tag-route-ferry {
1894 stroke-dasharray: 6,4;
1896 path.line.stroke.tag-route-ferry {
1899 path.line.casing.tag-route-ferry {
1905 path.line.stroke.tag-aerialway {
1908 path.line.casing.tag-aerialway {
1914 path.line.stroke.tag-piste {
1917 path.line.casing.tag-piste {
1923 path.line.stroke.tag-attraction-summer_toboggan {
1926 path.line.casing.tag-attraction-summer_toboggan {
1930 path.line.stroke.tag-attraction-water_slide {
1933 path.line.casing.tag-attraction-water_slide {
1938 /* golf cartpaths (like service roads) */
1939 .preset-icon .icon.tag-golf-cartpath {
1943 path.line.stroke.tag-golf-cartpath {
1946 path.line.casing.tag-golf-cartpath {
1951 /* power and pipeline */
1952 .preset-icon .icon.tag-man_made-pipeline,
1953 .preset-icon .icon.tag-power {
1960 path.line.stroke.tag-power {
1964 path.line.casing.tag-power {
1970 path.line.stroke.tag-man_made-pipeline {
1972 stroke-linecap: butt;
1973 stroke-dasharray: 80, 1.25;
1975 path.line.casing.tag-man_made-pipeline {
1978 .low-zoom path.line.stroke.tag-man_made-pipeline {
1979 stroke-dasharray: 40, 1;
1981 .preset-icon-container path.line.stroke.tag-man_made-pipeline {
1982 stroke-dasharray: 19, 1;
1987 path.line.stroke.tag-boundary {
1990 stroke-linecap: butt;
1991 stroke-dasharray: 20, 5, 5, 5;
1993 path.line.casing.tag-boundary {
1998 path.line.casing.tag-boundary-protected_area,
1999 path.line.casing.tag-boundary-national_park {
2004 /* barriers and similar */
2005 path.line.stroke.tag-barrier:not(.tag-barrier-hedge):not(.tag-waterway) {
2008 .preset-icon-container path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
2009 stroke: rgb(170, 170, 170);
2011 path.line.casing.tag-natural,
2012 path.line.casing.tag-barrier:not(.tag-waterway),
2013 path.line.casing.tag-man_made-groyne,
2014 path.line.casing.tag-man_made-breakwater {
2017 path.line.stroke.tag-barrier:not(.tag-waterway),
2018 path.line.stroke.tag-man_made-groyne,
2019 path.line.stroke.tag-man_made-breakwater {
2021 stroke-linecap: round;
2022 stroke-dasharray: 15, 5, 1, 5;
2024 .low-zoom path.line.stroke.tag-barrier:not(.tag-waterway),
2025 .low-zoom path.line.stroke.tag-man_made-groyne,
2026 .low-zoom path.line.stroke.tag-man_made-breakwater {
2028 stroke-linecap: butt;
2029 stroke-dasharray: 8, 2, 2, 2;
2031 .preset-icon-container path.line.stroke.tag-barrier,
2032 .preset-icon-container path.line.stroke.tag-man_made-groyne,
2033 .preset-icon-container path.line.stroke.tag-man_made-breakwater {
2034 stroke-dasharray: 1, 4, 6, 4;
2036 path.line.stroke.tag-barrier.tag-barrier-wall,
2037 path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
2038 path.line.stroke.tag-barrier.tag-barrier-city_wall {
2039 stroke-linecap: butt;
2040 stroke-dasharray: 16, 3, 9, 3;
2042 .low-zoom path.line.stroke.tag-barrier.tag-barrier-wall,
2043 .low-zoom path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
2044 .low-zoom path.line.stroke.tag-barrier.tag-barrier-city_wall,
2045 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-wall,
2046 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
2047 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-city_wall {
2048 stroke-dasharray: 8, 1, 4, 1;
2053 path.line.casing.tag-bridge {
2054 stroke-opacity: 0.6;
2055 stroke: #000 !important;
2056 stroke-linecap: butt;
2057 stroke-dasharray: none;
2059 path.line.shadow.tag-bridge {
2062 path.line.casing.tag-bridge {
2065 .low-zoom path.line.shadow.tag-bridge {
2068 .low-zoom path.line.casing.tag-bridge {
2072 path.line.shadow.tag-railway.tag-bridge,
2073 path.line.shadow.tag-highway-living_street.tag-bridge,
2074 path.line.shadow.tag-highway-path.tag-bridge,
2075 path.line.shadow.tag-highway-corridor.tag-bridge,
2076 path.line.shadow.tag-highway-pedestrian.tag-bridge,
2077 path.line.shadow.tag-highway-service.tag-bridge,
2078 path.line.shadow.tag-highway-track.tag-bridge,
2079 path.line.shadow.tag-highway-steps.tag-bridge,
2080 path.line.shadow.tag-highway-footway.tag-bridge,
2081 path.line.shadow.tag-highway-cycleway.tag-bridge,
2082 path.line.shadow.tag-highway-bridleway.tag-bridge {
2085 path.line.casing.tag-railway.tag-bridge,
2086 path.line.casing.tag-highway-living_street.tag-bridge,
2087 path.line.casing.tag-highway-path.tag-bridge,
2088 path.line.casing.tag-highway-corridor.tag-bridge,
2089 path.line.casing.tag-highway-pedestrian.tag-bridge,
2090 path.line.casing.tag-highway-service.tag-bridge,
2091 path.line.casing.tag-highway-track.tag-bridge,
2092 path.line.casing.tag-highway-steps.tag-bridge,
2093 path.line.casing.tag-highway-footway.tag-bridge,
2094 path.line.casing.tag-highway-cycleway.tag-bridge,
2095 path.line.casing.tag-highway-bridleway.tag-bridge {
2099 .low-zoom path.line.shadow.tag-railway.tag-bridge,
2100 .low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
2101 .low-zoom path.line.shadow.tag-highway-path.tag-bridge,
2102 .low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
2103 .low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
2104 .low-zoom path.line.shadow.tag-highway-service.tag-bridge,
2105 .low-zoom path.line.shadow.tag-highway-track.tag-bridge,
2106 .low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
2107 .low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
2108 .low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
2109 .low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
2112 .low-zoom path.line.casing.tag-railway.tag-bridge,
2113 .low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
2114 .low-zoom path.line.casing.tag-highway-path.tag-bridge,
2115 .low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
2116 .low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
2117 .low-zoom path.line.casing.tag-highway-service.tag-bridge,
2118 .low-zoom path.line.casing.tag-highway-track.tag-bridge,
2119 .low-zoom path.line.casing.tag-highway-steps.tag-bridge,
2120 .low-zoom path.line.casing.tag-highway-footway.tag-bridge,
2121 .low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
2122 .low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
2128 path.line.stroke.tag-tunnel,
2129 path.line.stroke.tag-location-underground,
2130 path.line.stroke.tag-location-underwater {
2131 stroke-opacity: 0.3;
2133 path.line.casing.tag-tunnel,
2134 path.line.casing.tag-location-underground,
2135 path.line.stroke.tag-location-underwater {
2136 stroke-opacity: 0.5;
2137 stroke-linecap: butt;
2138 stroke-dasharray: none;
2142 /* embankments / cuttings */
2143 path.line.shadow.tag-embankment,
2144 path.line.shadow.tag-cutting {
2147 path.line.casing.tag-embankment,
2148 path.line.casing.tag-cutting {
2149 stroke-opacity: 0.5;
2152 stroke-dasharray: 2, 4;
2153 stroke-linecap: butt;
2156 .low-zoom path.line.shadow.tag-embankment,
2157 .low-zoom path.line.shadow.tag-cutting {
2160 .low-zoom path.line.casing.tag-embankment,
2161 .low-zoom path.line.casing.tag-cutting {
2166 /* Surface - unpaved */
2167 path.line.casing.tag-unpaved {
2169 stroke-linecap: butt;
2170 stroke-dasharray: 4, 3;
2172 .low-zoom path.line.casing.tag-unpaved {
2173 stroke-dasharray: 3, 2;
2175 path.line.casing.tag-bridge.tag-unpaved {
2177 stroke-dasharray: 4, 3;
2179 .low-zoom path.line.casing.tag-bridge.tag-unpaved {
2181 stroke-dasharray: 3, 2;
2185 /* Status (e.g. proposed, abandoned) */
2186 path.area.stroke.tag-status,
2187 path.line.stroke.tag-status,
2188 path.area.casing.tag-status,
2189 path.line.casing.tag-status {
2190 stroke-linecap: butt;
2191 stroke-dasharray: 7, 3;
2193 .low-zoom path.area.stroke.tag-status,
2194 .low-zoom path.line.stroke.tag-status,
2195 .low-zoom path.area.casing.tag-status,
2196 .low-zoom path.line.casing.tag-status {
2197 stroke-dasharray: 5, 2;
2200 /* Road Closed Status */
2201 .preset-icon .icon.tag-highway.tag-status-construction {
2205 path.line.shadow.tag-highway.tag-status.tag-status-construction {
2208 path.line.casing.tag-highway.tag-status.tag-status-construction {
2210 stroke-linecap: butt;
2211 stroke-dasharray: none
2213 path.line.stroke.tag-highway.tag-status.tag-status-construction {
2215 stroke-linecap: butt;
2216 stroke-dasharray: 10, 10;
2218 path.line.casing.tag-highway.tag-status.tag-status-construction,
2219 .preset-icon-container path.line.stroke.tag-highway.tag-status.tag-status-construction {
2222 path.line.stroke.tag-highway.tag-status.tag-status-construction,
2223 .preset-icon-container path.line.casing.tag-highway.tag-status.tag-status-construction {
2226 .low-zoom path.line.shadow.tag-highway.tag-status.tag-status-construction {
2229 .low-zoom path.line.casing.tag-highway.tag-status.tag-status-construction {
2232 .low-zoom path.line.stroke.tag-highway.tag-status.tag-status-construction {
2234 stroke-dasharray: 8, 8;
2239 path.stroke.tag-building {
2240 stroke: rgb(224, 110, 95);
2242 path.fill.tag-building {
2243 stroke: rgba(224, 110, 95, 0.3);
2244 fill: rgba(224, 110, 95, 0.3);
2250 cursor: not-allowed !important;
2255 cursor: auto; /* Opera */
2256 cursor: url(<%= asset_path("iD/img/cursor-grab.png") %>) 9 9, auto; /* FF */
2259 .mode-browse .point,
2260 .mode-select .point {
2261 cursor: pointer; /* Opera */
2262 cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
2265 .mode-select .vertex,
2266 .mode-browse .vertex {
2267 cursor: pointer; /* Opera */
2268 cursor: url(<%= asset_path("iD/img/cursor-select-vertex.png") %>), pointer; /* FF */
2272 .mode-select .line {
2273 cursor: pointer; /* Opera */
2274 cursor: url(<%= asset_path("iD/img/cursor-select-line.png") %>), pointer; /* FF */
2278 .mode-browse .area {
2279 cursor: pointer; /* Opera */
2280 cursor: url(<%= asset_path("iD/img/cursor-select-area.png") %>), pointer; /* FF */
2283 .mode-select .midpoint,
2284 .mode-browse .midpoint {
2285 cursor: pointer; /* Opera */
2286 cursor: url(<%= asset_path("iD/img/cursor-select-split.png") %>), pointer; /* FF */
2289 .mode-select .behavior-multiselect .point,
2290 .mode-select .behavior-multiselect .vertex,
2291 .mode-select .behavior-multiselect .line,
2292 .mode-select .behavior-multiselect .area {
2293 cursor: pointer; /* Opera */
2294 cursor: url(<%= asset_path("iD/img/cursor-select-add.png") %>), pointer; /* FF */
2297 .mode-select .behavior-multiselect .selected {
2298 cursor: pointer; /* Opera */
2299 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer; /* FF */
2302 .mode-add-preset #map,
2303 .mode-draw-line #map,
2304 .mode-draw-area #map,
2305 .mode-add-line #map,
2306 .mode-add-area #map,
2307 .mode-drag-node #map,
2308 .mode-drag-note #map {
2309 cursor: crosshair; /* Opera */
2310 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2313 .mode-draw-line .way.target,
2314 .mode-draw-area .way.target,
2315 .mode-add-line .way.target,
2316 .mode-add-area .way.target,
2317 .mode-drag-node .way.target {
2318 cursor: crosshair; /* Opera */
2319 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-line.png") %>) 9 9, crosshair; /* FF */
2322 .mode-draw-line .vertex.target,
2323 .mode-draw-area .vertex.target,
2324 .mode-add-line .vertex.target,
2325 .mode-add-area .vertex.target,
2326 .mode-drag-node .vertex.target {
2327 cursor: crosshair; /* Opera */
2328 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-vertex.png") %>) 9 9, crosshair; /* FF */
2331 .mode-add-point #map,
2332 .mode-add-note #map,
2333 .mode-browse.lasso #map,
2334 .mode-browse.lasso .way,
2335 .mode-browse.lasso .vertex,
2336 .mode-browse.lasso .midpoint,
2337 .mode-select.lasso #map,
2338 .mode-select.lasso .way,
2339 .mode-select.lasso .vertex,
2340 .mode-select.lasso .midpoint {
2341 cursor: crosshair; /* Opera */
2342 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2346 .mode-browse .qa_error,
2348 .mode-select .qa_error,
2353 /* photo viewer div */
2357 margin-bottom: 10px;
2361 background-color: #fff;
2363 [dir='ltr'] #photoviewer {
2367 [dir='rtl'] #photoviewer {
2372 @media screen and (min-width: 1600px) {
2379 #photoviewer button.thumb-hide {
2388 #photoviewer button.resize-handle-xy {
2394 cursor: nesw-resize;
2399 #photoviewer button.resize-handle-x {
2411 #photoviewer button.resize-handle-y {
2424 .photo-wrapper img {
2431 .photo-wrapper .photo-attribution {
2443 .photo-attribution a,
2444 .photo-attribution a:visited,
2445 .photo-attribution span {
2450 /* markers and sequences */
2452 pointer-events: none;
2454 .mode-browse .viewfield-group,
2455 .mode-select .viewfield-group {
2456 pointer-events: visible;
2460 .viewfield-group.currentView * {
2461 fill: #ffee00 !important;
2463 .viewfield-group.hovered * {
2464 fill: #eebb00 !important;
2467 .viewfield-group circle {
2470 stroke-opacity: 0.4;
2473 .viewfield-group.highlighted circle {
2475 stroke-opacity: 0.9;
2478 .viewfield-group.highlighted.hovered circle {
2481 stroke-opacity: 0.9;
2484 .viewfield-group.highlighted.currentView circle {
2491 .viewfield-group .viewfield {
2496 .viewfield-group.highlighted .viewfield {
2500 .viewfield-group.highlighted.hovered .viewfield {
2504 .viewfield-group.highlighted.currentView .viewfield {
2509 .viewfield-group.currentView .viewfield-scale {
2510 transform: scale(2,2);
2516 stroke-opacity: 0.4;
2518 .sequence.highlighted,
2519 .sequence.currentView {
2525 /* Streetside Image Layer */
2526 .layer-streetside-images {
2527 pointer-events: none;
2529 .layer-streetside-images .viewfield-group * {
2532 .layer-streetside-images .sequence {
2534 stroke-opacity: 0.85; /* bump opacity - only one per road */
2538 /* Mapillary Image Layer */
2540 pointer-events: none;
2542 .layer-mapillary .viewfield-group * {
2545 .layer-mapillary .sequence {
2550 /* Mapillary Traffic Signs and Map Features Layers */
2551 .layer-mapillary-detections {
2552 pointer-events: none;
2554 .layer-mapillary-detections .icon-detected {
2555 outline: 2px solid transparent;
2556 pointer-events: visible;
2560 .layer-mapillary-detections .icon-detected rect {
2563 .layer-mapillary-detections .icon-detected:hover rect {
2564 outline: 3px solid rgba(255, 238, 0, 0.6);
2566 .layer-mapillary-detections .icon-detected.currentView rect {
2567 outline: 3px solid rgba(255, 238, 0, 1);
2569 .layer-mapillary-detections .icon-detected:hover,
2570 .layer-mapillary-detections .icon-detected.currentView {
2575 /* OpenStreetCam Image Layer */
2576 .layer-openstreetcam {
2577 pointer-events: none;
2579 .layer-openstreetcam .viewfield-group * {
2582 .layer-openstreetcam .sequence {
2587 /* Streetside Viewer (pannellum) */
2588 .ms-wrapper .photo-attribution .image-link {
2591 .ms-wrapper .photo-attribution .attribution-row {
2593 flex-flow: row nowrap;
2594 justify-content: space-between;
2595 align-items: center;
2598 .ms-wrapper .photo-attribution .image-view-link {
2602 .ms-wrapper .photo-attribution .image-report-link {
2606 .ms-wrapper .photo-attribution a:active,
2607 .ms-wrapper .photo-attribution a:hover {
2611 .ms-wrapper .pnlm-compass.pnlm-control {
2616 background-size: contain;
2617 background-repeat: no-repeat no-repeat;
2620 label.streetside-hires {
2623 .streetside-hires span {
2626 .streetside-hires input[type="checkbox"] {
2634 /* Mapillary viewer */
2635 #mly .domRenderer .TagSymbol {
2637 background-color: rgba(0,0,0,0.4);
2642 #mly .domRenderer .Attribution {
2643 /* we will roll our own to avoid async update issues like #4526 */
2647 .mly-wrapper .photo-attribution a:active,
2648 .mly-wrapper .photo-attribution a:hover {
2652 .mly-wrapper .mapillary-js-dom {
2657 /* OpenStreetCam viewer */
2660 background-color: #000;
2661 background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
2662 background-position: center;
2663 background-repeat: no-repeat;
2666 .osc-wrapper .photo-attribution a:active,
2667 .osc-wrapper .photo-attribution a:hover {
2674 transform-origin:0 0;
2675 -ms-transform-origin:0 0;
2676 -webkit-transform-origin:0 0;
2677 -moz-transform-origin:0 0;
2678 -o-transform-origin:0 0;
2682 /* photo-controls (step forward, back, rotate) */
2683 .photo-controls-wrap {
2692 display: inline-block;
2696 .photo-controls button,
2697 .photo-controls button:focus {
2700 background: rgba(0,0,0,0.65);
2704 .photo-controls button:first-of-type {
2705 border-radius: 3px 0 0 3px;
2707 .photo-controls button:last-of-type {
2708 border-radius: 0 3px 3px 0;
2710 .photo-controls button:hover,
2711 .photo-controls button:active {
2712 background: rgba(0,0,0,0.85);
2716 /* OSM Notes and KeepRight Layers */
2718 .error-header-icon .qa_error-fill,
2719 .layer-keepRight .qa_error .qa_error-fill,
2720 .layer-improveOSM .qa_error .qa_error-fill {
2722 stroke-width: 1.3px; /* NOTE: likely a better way to scale the icon stroke */
2725 .note-header-icon .note-fill,
2726 .layer-notes .note .note-fill {
2731 .note-header-icon.new .note-fill,
2732 .layer-notes .note.new .note-fill {
2737 .note-header-icon.closed .note-fill,
2738 .layer-notes .note.closed .note-fill {
2744 /* slight adjustments to preset icon for note icons */
2745 .note-header-icon .preset-icon-28 {
2748 .note-header-icon .note-icon-annotation {
2754 .note-header-icon .note-icon-annotation .icon {
2759 /* adjustment for error icon */
2761 .error-header-icon .preset-icon-28 {
2766 .error-header-icon {
2768 align-items: center;
2769 justify-content: center;
2772 /* Keep Right Errors
2773 ------------------------------------------------------- */
2774 .keepRight.error_type-20, /* multiple nodes on same spot */
2775 .keepRight.error_type-40, /* impossible oneways */
2776 .keepRight.error_type-210, /* self intersecting ways */
2777 .keepRight.error_type-270, /* unusual motorway connection */
2778 .keepRight.error_type-310, /* roundabout issues */
2779 .keepRight.error_type-320, /* improper _link */
2780 .keepRight.error_type-350 { /* improper bridge tag */
2784 .keepRight.error_type-50 { /* almost junctions */
2788 .keepRight.error_type-60, /* deprecated tags */
2789 .keepRight.error_type-70, /* tagging issues */
2790 .keepRight.error_type-90, /* motorway without ref */
2791 .keepRight.error_type-100, /* place of worship without religion */
2792 .keepRight.error_type-110, /* poi without name */
2793 .keepRight.error_type-150, /* railway crossing without tag */
2794 .keepRight.error_type-220, /* misspelled tag */
2795 .keepRight.error_type-380 { /* non-physical sport tag */
2799 .keepRight.error_type-130 { /* disconnected ways */
2803 .keepRight.error_type-170 { /* FIXME tag */
2807 .keepRight.error_type-190 { /* intersection without junction */
2811 .keepRight.error_type-200 { /* overlapping ways */
2815 .keepRight.error_type-160, /* railway layer conflict */
2816 .keepRight.error_type-230 { /* layer conflict */
2820 .keepRight.error_type-280 { /* boundary issues */
2824 .keepRight.error_type-180, /* relation without type */
2825 .keepRight.error_type-290 { /* turn restriction issues */
2829 .keepRight.error_type-300, /* missing maxspeed */
2830 .keepRight.error_type-390 { /* missing tracktype */
2834 .keepRight.error_type-360, /* language unknown */
2835 .keepRight.error_type-370, /* doubled places */
2836 .keepRight.error_type-410 { /* website issues */
2840 .keepRight.error_type-120, /* way without nodes */
2841 .keepRight.error_type-400 { /* geometry / turn angles */
2845 /* ImproveOSM Errors
2846 ------------------------------------------------------- */
2848 .improveOSM.error_type-ow { /* missing one way */
2852 .improveOSM.error_type-mr-road { /* missing road */
2855 .improveOSM.error_type-mr-path { /* missing path */
2858 .improveOSM.error_type-mr-parking { /* missing parking */
2861 .improveOSM.error_type-mr-both { /* missing road+parking */
2865 .improveOSM.error_type-tr { /* missing turn restriction */
2870 /* Custom Map Data (geojson, gpx, kml, vector tile) */
2872 pointer-events: none;
2875 .layer-mapdata path.shadow {
2876 pointer-events: stroke;
2882 .layer-mapdata path.MultiPoint.shadow,
2883 .layer-mapdata path.Point.shadow {
2884 pointer-events: fill;
2888 .layer-mapdata path.shadow.hover:not(.selected) {
2889 stroke-opacity: 0.4;
2891 .layer-mapdata path.shadow.selected {
2892 stroke-opacity: 0.7;
2895 .layer-mapdata path.stroke {
2901 .layer-mapdata path.fill {
2903 stroke-opacity: 0.3;
2910 .layer-mapdata text.label-halo,
2911 .layer-mapdata text.label {
2914 dominant-baseline: middle;
2916 .layer-mapdata text.label {
2919 .layer-mapdata text.label.hover,
2920 .layer-mapdata text.label.selected {
2923 .layer-mapdata text.label-halo {
2927 stroke-miterlimit: 1;
2931 .low-zoom.fill-wireframe path.stroke,
2932 .fill-wireframe path.stroke {
2933 stroke-width: 1 !important;
2934 stroke-opacity: 0.5 !important;
2935 stroke-dasharray: none !important;
2936 fill: none !important;
2938 .low-zoom.fill-wireframe .layer-mapdata path.stroke,
2939 .fill-wireframe .layer-mapdata path.stroke {
2940 stroke-width: 2 !important;
2941 stroke-opacity: 1 !important;
2944 .low-zoom.fill-wireframe path.shadow,
2945 .fill-wireframe path.shadow {
2949 .fill-wireframe path.shadow.related:not(.selected),
2950 .fill-wireframe path.shadow.hover:not(.selected) {
2951 stroke-opacity: 0.4;
2953 .fill-wireframe path.shadow.selected {
2954 stroke-opacity: 0.6;
2957 .fill-wireframe .point,
2958 .fill-wireframe .areaicon,
2959 .fill-wireframe .areaicon-halo,
2960 .fill-wireframe path.casing,
2961 .fill-wireframe path.fill,
2962 .fill-wireframe path.oneway {
2963 display: none !important;
2966 .fill-partial path.area.fill {
2969 pointer-events: none;
2971 .fill-partial path.area.fill.tag-building_part {
2974 .fill-partial path.area.fill.tag-indoor {
2977 .mode-browse .fill-partial path.area.fill,
2978 .mode-select .fill-partial path.area.fill {
2979 pointer-events: visibleStroke;
2982 ------------------------------------------------------- */
2984 Opera misbehaves when the window is resized vertically unless 100% width + height are
2985 applied to both html and body. https://gist.github.com/jfirebaugh/bd225bcfdd3a633850c4
2993 font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
2994 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2995 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
3001 -ms-user-select: none;
3002 -ms-content-zooming: none;
3007 vertical-align: middle;
3024 -webkit-filter: none !important;
3025 filter: none !important;
3026 -webkit-duration: 200ms;
3027 transition-duration: 200ms;
3031 -webkit-filter: grayscale(80%) brightness(80%);
3032 filter: grayscale(80%) brightness(80%);
3033 -webkit-duration: 200ms;
3034 transition-duration: 200ms;
3038 /* Can't be display: none or the clippaths are ignored. */
3044 div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
3045 -moz-box-sizing: border-box;
3046 -webkit-box-sizing: border-box;
3047 box-sizing: border-box;
3050 a, button, input, textarea {
3051 -webkit-tap-highlight-color: rgba(0,0,0,0);
3052 -webkit-touch-callout: none;
3069 margin-bottom: 20px;
3074 h4:last-child { margin-bottom: 0;}
3080 margin-bottom: 10px;
3085 padding-bottom: 10px;
3089 outline-color: transparent;
3090 outline-style: none;
3093 ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
3095 opacity: 1; /* Firefox */
3097 :-ms-input-placeholder { /* Internet Explorer 10-11 */
3100 ::-ms-input-placeholder { /* Microsoft Edge */
3125 display: inline-block;
3131 vertical-align: baseline;
3132 background-color: #fcfcfc;
3133 border: solid 1px #ccc;
3135 border-bottom-color: #bbb;
3137 box-shadow: inset 0 -1px 0 #bbb;
3141 ------------------------------------------------------- */
3144 font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
3145 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
3146 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
3157 background-color: #fff;
3159 border: 1px solid #ccc;
3160 padding: 5px 20px 5px 10px;
3163 text-overflow: ellipsis;
3165 [dir='rtl'] textarea,
3166 [dir='rtl'] input[type=text],
3167 [dir='rtl'] input[type=search],
3168 [dir='rtl'] input[type=number],
3169 [dir='rtl'] input[type=url],
3170 [dir='rtl'] input[type=tel],
3171 [dir='rtl'] input[type=email] {
3172 padding: 5px 10px 5px 20px;
3177 background-color: #f1f1f1;
3183 background-color: #eee;
3184 cursor: not-allowed;
3187 input[type="checkbox"],
3188 input[type="radio"] {
3196 [dir='rtl'] input[type="checkbox"],
3197 [dir='rtl'] input[type="radio"] {
3205 background-color: #fff;
3206 border-collapse: collapse;
3213 table.tags, table.tags td, table.tags th {
3214 border: 1px solid #ccc;
3223 ------------------------------------------------------- */
3224 .col6 { float: left; width: 50.0000%; max-width: 600px; }
3225 .col12 { float: left; width: 100.0000%; }
3229 ------------------------------------------------------- */
3235 background: #f6f6f6;
3239 background: #ececec;
3243 background: rgba(0,0,0,.5);
3247 background: rgba(0,0,0,.75);
3252 .fr { float: right;}
3271 box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.25);
3274 background: url(<%= asset_path("iD/img/loader_bg.gif") %>);
3275 background-size: 5px 5px;
3280 ------------------------------------------------------- */
3289 display: inline-block;
3296 background-color: #ececec;
3299 background: #7092ff;
3302 background-color: rgba(255,255,255,.25);
3303 color: rgba(0,0,0,.4);
3304 cursor: not-allowed;
3309 border-right: 1px solid rgba(0,0,0,.5);
3311 [dir='rtl'] .joined > * {
3312 border-left: 1px solid rgba(0,0,0,.5);
3316 .fillL .joined > * {
3317 border-right: 1px solid #fff;
3319 .joined > *:first-child {
3320 border-radius: 4px 0 0 4px;
3322 [dir='rtl'] .joined > *:first-child {
3323 border-radius: 0 4px 4px 0;
3325 .joined > *:last-child {
3326 border-right-width: 0;
3327 border-radius: 0 4px 4px 0;
3329 [dir='rtl'] .joined > *.bar-button:last-child {
3330 border-radius: 4px 0 0 4px;
3334 /* Action buttons */
3336 background: #7092ff;
3339 button.action:focus,
3340 button.action:hover {
3341 background: #597be7;
3343 button.secondary-action {
3344 background: #ececec;
3346 button.secondary-action:focus,
3347 button.secondary-action:hover {
3348 background: #cccccc;
3351 button.action.disabled,
3352 button.action.disabled:hover,
3353 button[disabled].action,
3354 button[disabled].action:hover {
3355 background: #cccccc;
3357 cursor: not-allowed;
3362 ------------------------------------------------------- */
3364 vertical-align: top;
3370 vertical-align: text-top;
3379 [dir='rtl'] .icon.pre-text {
3384 .icon.pre-text.user-icon {
3414 .notification-badge {
3423 .notification-badge.hide {
3428 /* Toolbar / Persistent UI Elements
3429 ------------------------------------------------------- */
3439 flex-flow: row nowrap;
3440 justify-content: space-between;
3441 padding: 10px 0 0 0;
3447 /* hide scrollbar but allow scrolling */
3448 scrollbar-width: none; /* Firefox */
3449 -ms-overflow-style: none; /* IE, Edge */
3451 #bar::-webkit-scrollbar {
3452 display: none; /* Chrome, Safari, Opera */
3454 #bar .toolbar-item {
3457 flex-flow: column wrap;
3458 justify-content: center;
3460 #bar .toolbar-item .item-content {
3463 flex-flow: row nowrap;
3464 justify-content: center;
3469 [dir='ltr'] #bar .toolbar-item:last-child .item-content,
3470 [dir='rtl'] #bar .toolbar-item:first-child .item-content {
3473 [dir='ltr'] #bar .toolbar-item:first-child .item-content,
3474 [dir='rtl'] #bar .toolbar-item:last-child .item-content {
3477 #bar .toolbar-item .item-label {
3480 white-space: nowrap;
3481 margin: 1px 2px 2px 2px;
3483 #bar .toolbar-item.spacer {
3487 #bar .toolbar-item:first-child {
3488 justify-content: flex-start;
3490 #bar .toolbar-item:last-child {
3491 justify-content: flex-end;
3493 #bar .toolbar-item:empty:not(.spacer) {
3498 flex-flow: row nowrap;
3499 align-items: center;
3502 white-space: nowrap;
3505 button.bar-button .icon {
3508 button.bar-button .label {
3513 button.bar-button.dragging {
3517 button.bar-button.dragging .tooltip {
3520 button.bar-button.dragging.removing {
3521 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer;
3524 button.save .count {
3525 display: inline-block;
3530 .help-wrap svg.icon.pre-text.add-note,
3531 button.add-note svg.icon {
3534 color: rgba(0,0,0,0.25);
3539 button.add-note svg.icon {
3543 [dir='rtl'] button.add-note svg.icon {
3545 margin-right: unset;
3547 .help-wrap svg.icon.pre-text.add-note {
3561 background: transparent;
3562 border-radius: 100%;
3564 [dir='rtl'] .spinner img {
3565 -moz-transform: scaleX(-1);
3566 -o-transform: scaleX(-1);
3567 -webkit-transform: scaleX(-1);
3568 transform: scaleX(-1);
3570 -ms-filter: "FlipH";
3574 #bar.narrow .spinner,
3575 #bar.narrow button.bar-button .label {
3578 #bar.narrow button .count {
3579 border-left-width: 0;
3580 border-right-width: 0;
3583 [dir='ltr'] .undo-redo button:first-of-type {
3586 [dir='rtl'] .undo-redo button:first-of-type {
3590 /* Header for modals / panes
3591 ------------------------------------------------------- */
3593 border-bottom: 1px solid #ccc;
3601 white-space: nowrap;
3602 text-overflow: ellipsis;
3620 .field-help-title button.close,
3621 .sidebar-component .header button.data-editor-close,
3622 .sidebar-component .header button.note-editor-close,
3623 .sidebar-component .header button.error-editor-close,
3624 .entity-editor-pane .header button.preset-close,
3625 .preset-list-pane .header button.preset-choose {
3630 [dir='rtl'] .field-help-title button.close,
3631 [dir='rtl'] .sidebar-component .header button.data-editor-close,
3632 [dir='rtl'] .sidebar-component .header button.note-editor-close,
3633 [dir='rtl'] .sidebar-component .header button.error-editor-close,
3634 [dir='rtl'] .entity-editor-pane .header button.preset-close,
3635 [dir='rtl'] .preset-list-pane .header button.preset-choose {
3640 .entity-editor-pane .header button.preset-choose {
3645 [dir='rtl'] .entity-editor-pane .header button.preset-choose {
3663 [dir='rtl'] .modal > button {
3672 padding: 5px 20px 5px 20px;
3673 border-top: 1px solid #ccc;
3674 background-color: #f6f6f6;
3678 justify-content: space-between;
3684 justify-content: center;
3689 justify-content: space-between;
3692 .header-block-outer {
3696 .header-block-close {
3698 justify-content: flex-end;
3701 /* Hide/Toggle collapsable sections (aka Disclosure)
3702 ------------------------------------------------------- */
3703 .hide-toggle .icon.pre-text {
3704 vertical-align: text-top;
3709 [dir='rtl'] .hide-toggle .icon.pre-text {
3714 a:visited.hide-toggle,
3716 display: inline-block;
3719 padding-bottom: 5px;
3723 /* Sidebar / Inspector
3724 ------------------------------------------------------- */
3730 background: #f6f6f6;
3731 -ms-user-select: element;
3732 border: 0px solid #ccc;
3733 border-right-width: 1px;
3735 [dir='rtl'] #sidebar {
3737 border-right-width: 0px;
3738 border-left-width: 1px;
3749 [dir='rtl'] #sidebar-resizer {
3754 #sidebar.collapsed #sidebar-resizer {
3755 /* make target wider to avoid the user accidentally resizing window */
3759 [dir='rtl'] #sidebar.collapsed #sidebar-resizer {
3763 .sidebar-component {
3771 .sidebar-component .body {
3821 .feature-list-pane .inspector-body,
3822 .preset-list-pane .inspector-body {
3825 .entity-editor-pane .inspector-body,
3826 .selection-list-pane .inspector-body {
3831 padding: 20px 20px 5px 20px;
3835 #sidebar .search-header .icon {
3840 pointer-events: none;
3842 [dir='rtl'] #sidebar .search-header .icon {
3847 #sidebar .search-header input {
3855 border-bottom-width: 1px;
3862 /* Feature List / Search Results
3863 ------------------------------------------------------- */
3869 .feature-list-item {
3872 border-bottom: 1px solid #ccc;
3878 background-color: #ccc;
3884 [dir='rtl'] .geocode-item {
3888 .geocode-item:hover {
3889 background-color: #aaa;
3892 .feature-list-item {
3893 background-color: #fff;
3898 .feature-list-item:hover {
3899 background-color: #ececec;
3901 .feature-list-item button {
3902 background: transparent;
3904 .feature-list-item .label {
3907 white-space: nowrap;
3908 text-overflow: ellipsis;
3910 border-left: 1px solid rgba(0, 0, 0, .1);
3912 [dir='rtl'] .feature-list-item .label {
3916 .feature-list-item .label .icon {
3919 .feature-list-item .close {
3923 .feature-list-item .close .icon {
3926 .feature-list-item .entity-type {
3929 .feature-list-item:hover .entity-type {
3932 .feature-list-item .entity-name {
3933 font-weight: normal;
3937 [dir='rtl'] .feature-list-item .entity-name {
3939 padding-right: 10px;
3943 /* Preset List and Icons
3944 ------------------------------------------------------- */
3947 padding: 20px 20px 10px 20px;
3948 border-bottom: 1px solid #ccc;
3952 margin-bottom: 10px;
3956 .preset-list-button-wrap {
3959 border: 1px solid #ccc;
3963 .preset-list-button {
3970 .preset-list.filtered .preset-list-item:first-child .preset-list-button {
3971 background: #ececec;
3974 .preset-icon-container {
3980 align-items: center;
3981 justify-content: center;
3983 .preset-icon-container.small {
3988 .preset-icon-container img.image-icon {
3991 object-fit: contain;
3996 .preset-icon-container.showing-img img.image-icon {
3997 visibility: visible;
3999 .preset-icon-container.showing-img *:not(.image-icon) {
4003 .preset-icon-point-border path {
4018 .preset-icon-container path {
4021 .preset-icon-container circle.vertex {
4023 stroke: rgba(0, 0, 0, 0.25);
4025 .preset-icon-fill circle.midpoint {
4027 stroke: rgba(0, 0, 0, 0.25);
4029 /* use a consistent stroke width */
4030 .preset-icon-container path.line.stroke {
4031 stroke-width: 2 !important;
4033 .preset-icon-container path.line.casing {
4034 stroke-width: 4 !important;
4045 .preset-icon-container svg,
4046 .preset-icon-container svg > * {
4047 cursor: inherit !important;
4049 .preset-icon-fill path.area.stroke {
4053 .preset-icon-fill-vertex circle {
4054 stroke-width: 1.5px;
4057 backface-visibility: hidden;
4066 .preset-icon .icon {
4073 transform: scale(0.48);
4075 .preset-icon-container.small .preset-icon.point-geom .icon {
4076 transform: translateY(-7%) scale(0.27);
4078 .preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon {
4079 transform: translateY(-9%) scale(0.5);
4081 .preset-icon.framed .icon {
4082 transform: scale(0.4);
4084 .preset-icon.framed.line-geom .icon,
4085 .preset-icon.framed.route-geom .icon {
4087 transform: translateY(-30%) scale(0.4);
4089 .preset-icon-iD .icon {
4090 transform: scale(1);
4092 .preset-icon-iD.framed .icon {
4093 transform: scale(0.74);
4095 .preset-icon-iD.framed.line-geom .icon,
4096 .preset-icon-iD.framed.route-geom .icon {
4097 transform: translateY(-30%) scale(0.74);
4099 .preset-icon-container.fallback .preset-icon .icon {
4100 transform: scale(0.5) !important;
4103 .preset-list-button .label {
4105 flex-flow: row wrap;
4106 align-items: center;
4107 background-color: #f6f6f6;
4115 border-left: 1px solid rgba(0, 0, 0, .1);
4117 [dir='rtl'] .preset-list-button .label {
4122 border-right: 1px solid rgba(0, 0, 0, .1);
4124 [dir='ltr'] .category .preset-list-button .label {
4125 border-radius: 0px 4px 4px 0px;
4127 [dir='rtl'] .category .preset-list-button .label {
4128 border-radius: 4px 0px 0px 4px;
4131 .preset-list-button .label-inner {
4134 .preset-list-button .label-inner .namepart {
4136 white-space: nowrap;
4137 text-overflow: ellipsis;
4140 .preset-list-button .label-inner .namepart:nth-child(2) {
4141 font-weight: normal;
4144 .preset-list-button:hover .label,
4145 .preset-list-button:focus .label,
4146 .preset-list-button.disabled,
4147 .preset-list-button.disabled .label {
4148 background-color: #ececec;
4151 .preset-list-item button.tag-reference-button {
4155 background: #f6f6f6;
4157 [dir='ltr'] .preset-list-item button.tag-reference-button {
4158 border-left: 1px solid #ccc;
4160 [dir='rtl'] .preset-list-item button.tag-reference-button {
4161 border-right: 1px solid #ccc;
4163 [dir='ltr'] .preset-list-item button:last-child {
4164 border-radius: 0 4px 4px 0;
4166 [dir='rtl'] .preset-list-item button:last-child {
4167 border-radius: 4px 0 0 4px;
4170 .preset-list-item button.tag-reference-button:hover {
4171 background: #f1f1f1;
4173 .preset-list-item button.tag-reference-button .icon {
4178 .current .preset-list-button,
4179 .current .preset-list-button .label {
4180 background-color: #e8ebff;
4183 .category .preset-list-button:after,
4184 .category .preset-list-button:before {
4188 left: -1px; right: -1px;
4189 border: 1px solid #ccc;
4190 border-bottom: none;
4191 border-radius: 6px 6px 0 0;
4195 .category .preset-list-button:before {
4199 .subgrid .preset-list {
4204 width: -webkit-calc(100% + 20px);
4207 .subgrid .preset-list > *:last-child {
4212 border: solid rgba(0, 0, 0, 0);
4214 border-bottom-color: #ececec;
4218 margin-left: -webkit-calc(50% - 10px);
4223 ------------------------------------------------------- */
4226 flex-flow: row wrap;
4227 justify-content: flex-end;
4234 .data-editor .quick-links,
4235 .error-editor .quick-links,
4236 .note-editor .quick-links {
4241 /* Entity/Preset Editor
4242 ------------------------------------------------------- */
4246 padding: 10px 0px 5px 0px;
4248 .entity-issues a.hide-toggle,
4249 .preset-editor a.hide-toggle {
4250 margin: 0 20px 5px 20px;
4252 .entity-issues .disclosure-wrap-entity_issues,
4253 .preset-editor .form-fields-container {
4255 margin: 0 10px 10px 10px;
4257 background: #ececec;
4259 .entity-issues .disclosure-wrap-entity_issues:empty,
4260 .preset-editor .form-fields-container:empty {
4263 .entity-editor-pane .preset-list-item {
4268 The parts of a field:
4269 - `.form-field` is a `div` wraps the entire thing
4270 - `.field-label` is a `label` that wraps the top part, it contains;
4271 - `span` classed `label-text`
4272 - 0..n buttons for "remove", "modified", "tag reference"
4273 - `.form-field-input-wrap` is a `label` or `div` that wraps the bottom part, it contains;
4274 - usually an `input`
4275 - sometimes some buttons (translate, increment, decrement)
4276 - or could just be a `div` with anything really
4277 - `.tag-reference-body` at the bottom (usually hidden)
4279 .------------------. -
4280 | Name | i | <- .field-label |
4281 +------------------+ |
4282 | Starbucks | + | <- .form-field-input-wrap > .form-field
4283 '------------------' |
4284 tag reference <- .tag-reference-body |
4290 flex-flow: row wrap;
4291 margin-bottom: 10px;
4293 -webkit-transition: margin-bottom 200ms;
4294 -moz-transition: margin-bottom 200ms;
4295 -o-transition: margin-bottom 200ms;
4296 transition: margin-bottom 200ms;
4300 .wrap-form-field:last-child .form-field {
4304 /* A `label` element that wraps the top section */
4307 flex-flow: row nowrap;
4313 background: #f6f6f6;
4314 border: 1px solid #ccc;
4315 border-radius: 4px 4px 0 0;
4318 .field-label .label-text {
4320 padding: 5px 0 5px 10px;
4322 [dir='rtl'] .field-label .label-text {
4323 padding: 5px 10px 5px 0;
4326 .label-text .label-textannotation svg.icon {
4332 vertical-align: text-top;
4335 .field-label button {
4337 border-left: 1px solid #ccc;
4341 background: #f6f6f6;
4343 [dir='rtl'] .field-label button {
4345 border-right: 1px solid #ccc;
4347 .field-label button:hover {
4348 background: #f1f1f1;
4350 .field-label .icon {
4354 .field-label .modified-icon,
4355 .field-label .remove-icon,
4356 .field-label .remove-icon-multilingual {
4359 .modified:not(.locked) .field-label .modified-icon,
4360 .present:not(.locked) .field-label .remove-icon,
4361 .present:not(.locked) .field-label .remove-icon-multilingual {
4362 display: inline-block;
4365 /* A `div` element that wraps the bottom section */
4366 .form-field-input-wrap {
4368 flex-flow: row nowrap;
4373 border-radius: 0 0 4px 4px;
4375 .nowrap .form-field-input-wrap {
4380 .form-field-input-wrap > input,
4381 .form-field-input-wrap > label,
4382 .form-field-input-wrap > textarea,
4383 .form-field-input-wrap > ul.chiplist {
4386 border: 1px solid #ccc;
4392 .form-field-input-wrap > textarea {
4394 border-radius: 0 0 4px 4px;
4398 /* Buttons inside fields */
4399 .form-field-button {
4404 background-color: #fff;
4405 border: 1px solid #ccc;
4407 border-top-width: 0;
4408 border-left-width: 0;
4409 vertical-align: top;
4411 [dir='rtl'] .form-field-button {
4412 border-left-width: 1px;
4413 border-right-width: 0;
4415 .form-field-button:hover {
4416 background-color: #f1f1f1;
4418 .form-field-button .icon {
4424 /* round corners of first/last child elements */
4425 .form-field-input-wrap > button:last-of-type {
4426 border-bottom-right-radius: 4px;
4428 [dir='rtl'] .form-field-input-wrap > button:last-of-type {
4429 border-bottom-left-radius: 4px;
4433 /* Field - Access, Cycleway
4434 ------------------------------------------------------- */
4435 .form-field-input-access,
4436 .form-field-input-cycleway {
4439 flex-flow: row wrap;
4442 /* Field - lists with labeled input items
4443 ------------------------------------------------------- */
4444 .form-field ul.rows {
4446 border: 1px solid #ccc;
4448 border-radius: 0 0 4px 4px;
4452 .form-field ul.rows li {
4453 border-top: 1px solid #ccc;
4455 .form-field ul.rows li:first-child {
4458 .form-field ul.rows li {
4460 flex-flow: row nowrap;
4462 .form-field ul.rows li.labeled-input > span,
4463 .form-field ul.rows li.labeled-input > div {
4468 .form-field ul.rows li input {
4473 .form-field ul.rows li button {
4476 [dir='ltr'] .form-field ul.rows li.labeled-input input,
4477 [dir='ltr'] .form-field ul.rows li button {
4478 border-left-width: 1px;
4480 [dir='rtl'] .form-field ul.rows li.labeled-input input,
4481 [dir='rtl'] .form-field ul.rows li button {
4482 border-right-width: 1px;
4486 /* Field - Structure
4487 ------------------------------------------------------- */
4488 .structure-extras-wrap {
4492 border: 1px solid #ccc;
4494 border-radius: 0 0 4px 4px;
4496 .structure-extras-wrap > ul.rows {
4497 border: 1px solid #ccc;
4502 /* Field - Combo / Multicombo
4503 ------------------------------------------------------- */
4504 .form-field-input-combo > input:only-of-type {
4505 border-radius: 0 0 4px 4px;
4507 .form-field-input-combo.empty-combobox input,
4508 .form-field-input-multicombo .empty-combobox input {
4509 padding-right: 10px;
4512 .form-field-input-combo.empty-combobox .combobox-caret,
4513 .form-field-input-multicombo .empty-combobox .combobox-caret {
4517 .form-field-input-multicombo ul.chiplist {
4518 padding: 5px 8px 5px 8px;
4521 border-radius: 0 0 4px 4px;
4525 .form-field-input-multicombo li {
4526 display: inline-flex;
4527 flex-flow: row nowrap;
4528 align-items: center;
4533 [dir='ltr'] .form-field-input-multicombo li {
4536 [dir='rtl'] .form-field-input-multicombo li {
4540 .form-field-input-multicombo li.chip {
4541 background-color: #eff2f7;
4542 border: 1px solid #ccd5e3;
4546 [dir='ltr'] .form-field-input-multicombo li.chip {
4547 padding: 2px 0px 2px 5px;
4549 [dir='rtl'] .form-field-input-multicombo li.chip {
4550 padding: 2px 5px 2px 0px;
4552 .form-field-input-multicombo li.chip.draggable {
4555 .form-field-input-multicombo li.chip.dragging {
4561 .form-field-input-multicombo li.chip span {
4565 word-wrap: break-word;
4568 .form-field-input-multicombo a {
4569 font-family: Arial, Helvetica, sans-serif !important;
4570 font-size: 16px !important;
4571 padding: 0px 5px 0px 5px;
4580 .form-field-input-multicombo .input-wrap {
4581 border: 1px solid #ddd;
4585 .form-field-input-multicombo input {
4591 .form-field-input-multicombo input:focus {
4592 border-radius: 4px !important;
4595 .form-field-input-multicombo .full-line-chips li.chip {
4598 .form-field-input-multicombo .full-line-chips .input-wrap {
4603 /* Field - Text / Numeric
4604 ------------------------------------------------------- */
4605 .form-field-input-text > input:only-of-type,
4606 .form-field-input-tel > input:only-of-type,
4607 .form-field-input-email > input:only-of-type,
4608 .form-field-input-url > input:only-of-type {
4609 border-radius: 0 0 4px 4px;
4611 .form-field-input-number > input:only-of-type {
4612 border-radius: 0 0 0 4px;
4614 [dir='rtl'] .form-field-input-number > input:only-of-type {
4615 border-radius: 0 0 4px 0;
4617 .form-field-input-number > button:last-of-type {
4618 border-radius: 0 0 4px 0;
4620 [dir='rtl'] .form-field-input-number > button:last-of-type {
4621 border-radius: 0 0 0 4px;
4624 [dir='ltr'] .form-field-input-identifier > input:last-child,
4625 [dir='rtl'] .form-field-input-identifier > input:first-child,
4626 [dir='ltr'] .form-field-input-identifier > button {
4627 border-bottom-right-radius: 4px;
4629 [dir='ltr'] .form-field-input-identifier > input:first-child,
4630 [dir='rtl'] .form-field-input-identifier > input:last-child,
4631 [dir='rtl'] .form-field-input-identifier > button {
4632 border-bottom-left-radius: 4px;
4635 /* draw the up/down on the buttons */
4636 .form-field-input-number button.decrement::after,
4637 .form-field-input-number button.increment::after {
4639 height: 0; width: 0;
4641 left: 0; right: 0; bottom: 0; top: 0;
4644 .form-field-input-number button.decrement::after {
4645 border-top: 5px solid #ccc;
4646 border-left: 5px solid transparent;
4647 border-right: 5px solid transparent;
4649 .form-field-input-number button.increment::after {
4650 border-bottom: 5px solid #ccc;
4651 border-left: 5px solid transparent;
4652 border-right: 5px solid transparent;
4657 ------------------------------------------------------- */
4658 .form-field-input-check {
4660 align-items: center;
4664 border: 1px solid #ccc;
4668 .form-field-input-check > input[type="checkbox"] {
4674 .form-field-input-check > span {
4677 .form-field-input-check > .reverser.button {
4679 background-color: #eff2f7;
4680 border: 1px solid #ccd5e3;
4684 [dir='ltr'] .form-field-input-check > .reverser.button {
4687 [dir='rtl'] .form-field-input-check > .reverser.button {
4690 .form-field-input-check > .reverser.button.hide {
4694 .form-field-input-check:hover {
4695 background: #f1f1f1;
4697 .form-field-input-check .set {
4700 .form-field-input-check label:not(.set) input[type="checkbox"] {
4705 /* Field - Radio button
4706 ------------------------------------------------------- */
4707 .form-field-input-radio {
4710 flex-flow: row wrap;
4712 .form-field-input-radio > label {
4715 flex-flow: row nowrap;
4719 background-color: #fff;
4723 .form-field-input-radio > label:last-child {
4724 border-radius: 0 0 4px 4px;
4726 .form-field-input-radio > label:hover {
4727 background-color: #ececec;
4729 .form-field-input-radio > label.active {
4730 background-color: #e8ebff;
4732 .form-field-input-radio > label:not(:last-of-type) {
4733 border-bottom: 1px solid #ccc;
4735 .form-field-input-radio > label > input[type="radio"] {
4739 .form-field-input-radio > label > span {
4742 white-space: nowrap;
4743 text-overflow: ellipsis;
4746 /* Hide placeholder for radio buttons if another is active, or not in hover state */
4747 .form-field-input-radio label.active ~ .placeholder,
4748 .form-field-input-radio .placeholder {
4759 ------------------------------------------------------- */
4760 .form-field-input-maxspeed > input:first-of-type {
4761 border-radius: 0 0 0 4px;
4763 [dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
4764 border-radius: 0 0 4px 0;
4766 .form-field-input-maxspeed > input:last-of-type { /* unit field */
4770 border-radius: 0 0 4px 0;
4772 [dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
4774 border-radius: 0 0 0 4px;
4778 /* Field - Localized Name
4779 ------------------------------------------------------- */
4780 .form-field-input-localized > input.localized-main {
4781 border-radius: 0 0 0 4px;
4783 [dir='rtl'] .form-field-input-localized > input.localized-main {
4784 border-radius: 0 0 4px 0;
4786 .form-field-input-localized > button.localized-add {
4787 border-radius: 0 0 4px 0;
4789 [dir='rtl'] .form-field-input-localized > button.localized-add {
4790 border-radius: 0 0 0 4px;
4793 .form-field-input-localized button.localized-add.disabled,
4794 .form-field-input-localized input.localized-main.disabled,
4795 .form-field-input-localized input.localized-lang.disabled,
4796 .form-field-input-localized input.localized-value.disabled {
4798 background-color: #eee;
4799 cursor: not-allowed;
4802 /* nested subfields for name in different languages */
4803 .localized-multilingual {
4807 .localized-multilingual .entry {
4812 /* draws a little line connecting the multilingual field up to the name field */
4813 .localized-multilingual .entry::before {
4826 .localized-multilingual .entry .localized-lang {
4828 border-top-width: 0;
4831 .localized-multilingual .entry .localized-value {
4832 border-top-width: 0;
4833 border-radius: 0 0 4px 4px;
4839 ------------------------------------------------------- */
4840 .form-field-input-address {
4843 flex-flow: row wrap;
4844 border: 1px solid #ccc;
4861 [dir='rtl'] .addr-row input {
4862 border-right: 1px solid #ccc;
4866 .addr-row:first-of-type input {
4869 .addr-row input:first-of-type {
4872 [dir='rtl'] .addr-row input:first-of-type {
4875 .addr-row:last-of-type input:first-of-type {
4876 border-radius: 0 0 0 4px;
4878 [dir='rtl'] .addr-row:last-of-type input:first-of-type {
4879 border-radius: 0 0 4px 0;
4881 .addr-row:last-of-type input:last-of-type {
4882 border-radius: 0 0 4px 0;
4884 [dir='rtl'] .addr-row:last-of-type input:last-of-type {
4885 border-radius: 0 0 0 4px;
4889 /* Field - Wikipedia
4890 ------------------------------------------------------- */
4891 .form-field-input-wikipedia {
4893 flex-flow: row wrap;
4897 .wiki-lang-container,
4898 .wiki-title-container {
4900 flex-flow: row nowrap;
4905 .wiki-lang-container > input.wiki-lang,
4906 .wiki-title-container > input.wiki-title {
4911 .wiki-title-container > input.wiki-title {
4912 border-radius: 0 0 0 4px;
4914 [dir='rtl'] .wiki-title-container > input.wiki-title {
4915 border-radius: 0 0 4px 0;
4917 .wiki-title-container > button.wiki-link,
4918 .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
4919 border-radius: 0 0 4px 0;
4921 [dir='rtl'] .wiki-title-container > button.wiki-link,
4922 [dir='rtl'] .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
4923 border-radius: 0 0 0 4px;
4927 /* Field - Restriction Editor
4928 ------------------------------------------------------- */
4929 .form-field-input-restrictions {
4931 border: 1px solid #ccc;
4933 border-radius: 0 0 4px 4px;
4936 .form-field-input-restrictions .restriction-controls-container {
4937 background-color: #fff;
4940 border-top: 1px solid #ccc;
4941 border-radius: 0 0 4px 4px;
4944 .restriction-controls-container .restriction-controls {
4946 -moz-user-select: none;
4947 -webkit-user-select: none;
4948 -ms-user-select: none;
4952 .restriction-controls .restriction-control {
4958 .restriction-control input,
4959 .restriction-control span {
4960 display: table-cell;
4965 .restriction-control span.restriction-control-label {
4969 .restriction-control input {
4973 vertical-align: middle;
4976 .form-field-input-restrictions .restriction-container {
4980 /* zero width space, so container takes up space */
4981 .form-field-input-restrictions .restriction-container:after {
4985 .form-field-input-restrictions svg.surface {
4990 .restriction-container .restriction-help {
4997 background-color: rgba(255, 255, 255, .8);
5000 pointer-events: none;
5002 -moz-user-select: none;
5003 -webkit-user-select: none;
5004 -ms-user-select: none;
5008 .restriction-help span {
5012 .restriction-help .qualifier {
5016 .restriction-help .qualifier.allow {
5019 .restriction-help .qualifier.restrict {
5022 .restriction-help .qualifier.only {
5027 /* Field - Changeset Comment
5028 ------------------------------------------------------- */
5029 .form-field-comment:not(.present) #preset-input-comment {
5030 border-color: rgb(230, 100, 100);
5032 .form-field-comment:not(.present) .field-label {
5033 border-color: rgb(230, 100, 100);
5034 background: rgba(230, 100, 100, 0.2);
5036 .form-field-comment:not(.present) button {
5037 border-color: rgb(230, 100, 100);
5042 ------------------------------------------------------- */
5046 box-shadow: 0 4px 10px 1px rgba(0,0,0,.2);
5052 border: 1px solid #ccc;
5053 border-radius: 0 0 4px 4px;
5059 border-top: 1px solid #ccc;
5060 text-overflow: ellipsis;
5061 white-space: nowrap;
5065 .combobox a.selected,
5067 background: #ececec;
5070 .combobox a:first-child {
5076 display: inline-block;
5079 width: 30px !important;
5081 vertical-align: top;
5084 [dir='rtl'] .combobox-caret {
5086 margin-right: -30px;
5089 .combobox-caret::after {
5091 height: 0; width: 0;
5093 left: 0; right: 0; bottom: 0; top: 0;
5095 border-top: 5px solid #ccc;
5096 border-left: 5px solid transparent;
5097 border-right: 5px solid transparent;
5102 ------------------------------------------------------- */
5111 border: 1px solid #ccc;
5113 border-radius: 0 0 4px 4px;
5115 background: rgba(255,255,255,0.95);
5116 box-shadow: 0 0 30px 5px rgba(0,0,0,.4);
5119 .field-help-title h2 {
5124 .field-help-title button {
5133 margin-bottom: 10px;
5135 .field-help-nav-item {
5136 display: inline-block;
5141 .field-help-nav-item.active {
5143 border-bottom: 2px solid;
5145 .field-help-nav-item:hover {
5147 background-color: #efefef;
5150 .field-help-content {
5155 .field-help-content h3 {
5159 .field-help-content p {
5160 margin-bottom: 15px;
5162 .field-help-content ul li {
5167 .field-help-content .field-help-image {
5169 margin-bottom: 15px;
5172 .field-help-content svg.turn {
5176 .field-help-content svg.shadow {
5181 .field-help-content svg.from {
5184 .field-help-content svg.allow {
5187 .field-help-content svg.restrict {
5190 .field-help-content svg.only {
5194 .field-help-content p.from_shadow,
5195 .field-help-content p.allow_shadow,
5196 .field-help-content p.restrict_shadow,
5197 .field-help-content p.allow_turn,
5198 .field-help-content p.restrict_turn {
5203 /* More Fields dropdown
5204 ------------------------------------------------------- */
5206 padding: 0 20px 20px 20px;
5209 .changeset-editor .more-fields {
5210 padding: 15px 20px 0 20px;
5213 .more-fields label {
5215 flex-flow: row nowrap;
5216 justify-content: space-between;
5217 align-items: center;
5220 .more-fields input {
5224 [dir='rtl'] .more-fields input {
5229 .form-field-input-wrap .label {
5231 background: #f6f6f6;
5237 ------------------------------------------------------- */
5240 flex-flow: row nowrap;
5241 flex-direction: row-reverse;
5245 button.raw-tag-option {
5253 button.raw-tag-option:focus,
5254 button.raw-tag-option:hover,
5255 button.raw-tag-option.active {
5257 background: #597be7;
5259 button.raw-tag-option.selected {
5261 background: #7092ff;
5263 button.raw-tag-option svg.icon {
5266 vertical-align: text-bottom;
5268 [dir='ltr'] button.raw-tag-option-list {
5269 -moz-transform: scaleX(-1);
5270 -o-transform: scaleX(-1);
5271 -webkit-transform: scaleX(-1);
5272 transform: scaleX(-1);
5274 -ms-filter: "FlipH";
5281 font-family: monospace;
5293 .tag-row .inner-wrap {
5295 flex-flow: row nowrap;
5300 .tag-row .value-wrap {
5306 .tag-row.readonly input.key,
5307 .tag-row.readonly input.value,
5308 .tag-row.readonly button.remove {
5310 background-color: #eee;
5311 cursor: not-allowed;
5318 border-bottom: 1px solid #ccc;
5319 border-left: 1px solid #ccc;
5322 [dir='rtl'] .tag-row input {
5324 border-right: 1px solid #ccc;
5328 .tag-row input.key {
5330 background-color: #f6f6f6;
5333 .tag-row input.value {
5334 border-right: 1px solid #ccc;
5336 [dir='rtl'] .tag-row input.value {
5337 border-left: 1px solid #ccc;
5340 .tag-row:first-child input.key {
5341 border-top: 1px solid #ccc;
5342 border-top-left-radius: 4px;
5344 [dir='rtl'] .tag-row:first-child input.key {
5345 border-top-left-radius: 0;
5346 border-top-right-radius: 4px;
5349 .tag-row:first-child input.value {
5350 border-top: 1px solid #ccc;
5356 border: 1px solid #ccc;
5357 border-top-width: 0;
5358 border-left-width: 0;
5360 [dir='rtl'] .tag-row button {
5361 border-left-width: 1px;
5362 border-right-width: 0;
5365 .tag-row button:hover {
5366 background: #f1f1f1;
5368 .tag-row button .icon {
5371 .tag-row:first-child button {
5372 border-top-width: 1px;
5375 .tag-row:first-child .tag-reference-button {
5376 border-top-right-radius: 4px;
5378 [dir='rtl'] .tag-row:first-child .tag-reference-button {
5379 border-top-left-radius: 4px;
5380 border-top-right-radius: 0;
5383 .tag-row:last-child .tag-reference-button {
5384 border-bottom-right-radius: 4px;
5386 [dir='rtl'] .tag-row:last-child .tag-reference-button {
5387 border-bottom-left-radius: 4px;
5388 border-bottom-right-radius: 0;
5391 .tag-row .tag-reference-button {
5394 [dir='rtl'] .tag-row .tag-reference-button {
5395 border-left-width: 1px;
5396 border-right-width: 0;
5400 .tag-reference-loading {
5401 background-color: #f5f5f5;
5403 .tag-reference-loading .icon {
5404 background-image: url(<%= asset_path("iD/img/mini-loader.gif") %>);
5405 background-position: 0 0;
5408 .tag-reference-body {
5415 .tag-reference-body.expanded {
5416 padding-bottom: 10px;
5417 display: inline-block;
5419 .tag-reference-description {
5422 .tag-reference-link {
5426 img.tag-reference-wiki-image {
5432 [dir='rtl'] img.tag-reference-wiki-image {
5437 .preset-list .tag-reference-body {
5441 .raw-tag-editor .tag-reference-body {
5444 .raw-tag-editor .tag-row.readonly .tag-reference-body {
5445 background: #f6f6f6;
5448 .raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
5449 border-bottom: 1px solid #ccc;
5451 .raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
5452 border-top: 1px solid #ccc;
5456 /* Raw Member / Membership Editor
5457 ------------------------------------------------------- */
5459 .raw-member-editor .member-list,
5460 .raw-membership-editor .member-list {
5463 .raw-member-editor .member-list li,
5464 .raw-membership-editor .member-list li {
5468 padding-bottom: 10px;
5470 .raw-member-editor .member-row .member-entity-name,
5471 .raw-membership-editor .member-row .member-entity-name {
5472 font-weight: normal;
5476 [dir='rtl'] .raw-member-editor .member-row .member-entity-name,
5477 [dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
5479 padding-right: 10px;
5482 .form-field-input-member > input.member-role {
5483 border-radius: 0 0 0 4px;
5485 [dir='rtl'] .form-field-input-member > input.member-role {
5486 border-radius: 0 0 4px 0;
5489 .member-incomplete .form-field-input-member > input.member-role,
5490 [dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
5491 border-radius: 0 0 4px 4px;
5494 .member-incomplete .member-delete {
5498 .member-row-new .member-entity-input {
5500 border-radius: 4px 4px 0 0;
5504 .raw-member-editor .member-row.dragging {
5508 -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5509 -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5510 box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5514 /* preserve extra space at bottom of inspector to allow for dropdown options - #5280 */
5515 .raw-membership-editor.inspector-inner {
5516 margin-bottom: 150px;
5519 /* hidden field to prevent user from tabbing out of the sidebar */
5524 border: 1px solid rgba(0,0,0,0);
5528 /* add tag, add relation buttons */
5532 flex-flow: row nowrap;
5535 .add-row .add-relation,
5536 .add-row .space-value {
5539 .add-row .space-buttons {
5544 background: rgba(0,0,0,.5);
5546 .add-row button:focus,
5547 .add-row button:hover {
5548 background: rgba(0,0,0,.8);
5552 border-radius: 0 0 4px 4px;
5560 /* OSM Note / KeepRight Editors
5561 ------------------------------------------------------- */
5564 background-color: #f6f6f6;
5566 border: 1px solid #ccc;
5568 flex-flow: row nowrap;
5569 align-items: center;
5573 .error-header-icon {
5574 background-color: #fff;
5580 border-right: 1px solid #ccc;
5581 border-radius: 5px 0 0 5px;
5583 [dir='rtl'] .note-header-icon,
5584 [dir='rtl'] .error-header-icon {
5585 border-right: unset;
5586 border-left: 1px solid #ccc;
5587 border-radius: 0 5px 5px 0;
5590 .note-header-icon .icon-wrap,
5591 .error-header-icon .icon-wrap {
5601 .preset-icon-28 .icon {
5607 .error-header-label {
5608 background-color: #f6f6f6;
5613 border-radius: 0 5px 5px 0;
5615 [dir='rtl'] .note-header-label,
5616 [dir='rtl'] .error-header-label {
5617 border-radius: 5px 0 0 5px;
5624 .comments-container {
5625 background: #ececec;
5632 background-color: #fff;
5634 border: 1px solid #ccc;
5637 flex-flow: row nowrap;
5643 .comment-avatar .icon.comment-avatar-icon {
5647 border: 1px solid #ccc;
5648 border-radius: 20px;
5651 padding: 10px 10px 10px 0;
5653 flex-flow: column nowrap;
5655 overflow-wrap: break-word;
5657 [dir='rtl'] .comment-main {
5658 padding: 10px 0 10px 10px;
5662 flex-flow: row nowrap;
5663 justify-content: space-between;
5678 .comment-text::-webkit-scrollbar {
5690 .error-details-container {
5691 background: #ececec;
5695 border: 1px solid #ccc;
5697 .error-details-description {
5698 margin-bottom: 10px;
5700 .error-details-description-text::first-letter {
5701 text-transform: capitalize;
5703 [dir='rtl'] .error-details-description-text::first-letter {
5704 text-transform: none; /* #5877 */
5707 .note-save .new-comment-input,
5708 .error-save .new-comment-input {
5715 .note-save .detail-section,
5716 .error-save .detail-section {
5725 /* Custom Data Editor
5726 ------------------------------------------------------- */
5728 background-color: #f6f6f6;
5730 border: 1px solid #ccc;
5732 flex-flow: row nowrap;
5733 align-items: center;
5737 background-color: #fff;
5743 border-right: 1px solid #ccc;
5744 border-radius: 5px 0 0 5px;
5746 [dir='rtl'] .data-header-icon {
5747 border-right: unset;
5748 border-left: 1px solid #ccc;
5749 border-radius: 0 5px 5px 0;
5752 .data-header-icon .icon-wrap {
5757 .data-header-label {
5758 background-color: #f6f6f6;
5763 border-radius: 0 5px 5px 0;
5765 [dir='rtl'] .data-header-label {
5766 border-radius: 5px 0 0 5px;
5769 /* custom data editor - no info/delete buttons */
5770 .data-editor.raw-tag-editor .tag-row button {
5773 .data-editor.raw-tag-editor .tag-row .key-wrap,
5774 .data-editor.raw-tag-editor .tag-row .value-wrap {
5780 ------------------------------------------------------- */
5788 [dir='rtl'] .map-controls {
5793 .map-control > button {
5796 background: rgba(0,0,0,.5);
5800 .map-control > button:not(.disabled):hover,
5801 .map-control > button:not(.disabled):focus {
5802 background: rgba(0, 0, 0, .8);
5805 .map-control > button.active,
5806 .map-control > button.active:hover {
5807 background: #7092ff;
5810 .map-control > button.disabled .icon {
5811 color: rgba(255, 255, 255, 0.5);
5815 /* Fullscreen Button (disabled)
5816 ------------------------------------------------------- */
5818 display: inline-block;
5824 div.full-screen .tooltip {
5828 div.full-screen > button, div.full-screen > button.active {
5831 background: transparent;
5834 div.full-screen > button:hover {
5835 background-color: rgba(0, 0, 0, .8);
5840 ------------------------------------------------------- */
5841 .zoombuttons > button.zoom-in {
5842 border-radius: 4px 0 0 0;
5844 [dir='rtl'] .zoombuttons > button.zoom-in {
5845 border-radius: 0 4px 0 0;
5850 ------------------------------------------------------- */
5851 .geolocate-control {
5852 margin-bottom: 10px;
5854 .geolocate-control > button {
5855 border-radius: 0 0 0 4px;
5857 [dir='rtl'] .geolocate-control > button {
5858 border-radius: 0 0 4px 0;
5862 /* Background / Map Data / Help Pane buttons
5863 ------------------------------------------------------- */
5864 .background-control > button {
5865 border-radius: 4px 0 0 0;
5867 [dir='rtl'] .background-control > button {
5868 border-radius: 0 4px 0 0;
5871 .help-control > button {
5872 border-radius: 0 0 0 4px;
5874 [dir='rtl'] .help-control > button {
5875 border-radius: 0 0 4px 0;
5879 /* Background / Map Data Settings
5880 ------------------------------------------------------- */
5882 .background-control {
5887 margin-bottom: 10px;
5888 white-space: nowrap;
5891 .layer-list, .controls-list {
5892 margin-bottom: 10px;
5893 border: 1px solid #ccc;
5899 background-color: #fff;
5909 .layer-list > li:first-child {
5910 border-radius: 3px 3px 0 0;
5912 .layer-list > li:last-child {
5913 border-radius: 0 0 3px 3px;
5915 .layer-list > li:only-child {
5918 .layer-list li:not(:last-child) {
5919 border-bottom: 1px solid #ccc;
5921 .layer-list li:hover {
5922 background-color: #ececec;
5925 .layer-list li.active button,
5926 .layer-list li.switch button,
5927 .layer-list li.active,
5928 .layer-list li.switch {
5929 background: #e8ebff;
5932 .layer-list li.best > div.best {
5937 [dir='rtl'] .list-item-data-browse svg {
5938 transform: rotateY(180deg);
5941 /* make sure tooltip fits in map-control panel */
5942 /* if too wide, placement will be wrong the first time it displays */
5943 .layer-list li.best .popover-inner {
5953 [dir='ltr'] .layer-list .indented label {
5956 [dir='rtl'] .layer-list .indented label {
5957 padding-right: 24px;
5960 .layer-list label > span {
5963 white-space: nowrap;
5964 text-overflow: ellipsis;
5967 .map-data-pane .layer-list button,
5968 .background-pane .layer-list button {
5970 border-left: 1px solid #ccc;
5975 [dir='rtl'] .map-data-pane .layer-list button,
5976 [dir='rtl'] .background-pane .layer-list button {
5978 border-right: 1px solid #ccc;
5981 .map-data-pane .layer-list button .icon,
5982 .background-pane .layer-list button .icon {
5986 .map-data-pane .layer-list button:last-of-type,
5987 .background-pane .layer-list button:last-of-type {
5988 border-radius: 0 3px 3px 0;
5990 [dir='rtl'] .map-data-pane .layer-list button:last-of-type,
5991 [dir='rtl'] .background-pane .layer-list button:last-of-type {
5992 border-radius: 3px 0 0 3px;
5995 .map-data-pane .vectortile-container .vectortile-header {
5996 padding-bottom: 5px;
5998 .map-data-pane .vectortile-container .vectortile-footer {
5999 padding-bottom: 10px;
6004 ------------------------------------------------------- */
6008 .issue .issue-label,
6009 .issue-label .issue-text {
6012 flex-flow: row nowrap;
6016 .issue-text .issue-icon {
6020 .issue-text .issue-message {
6024 .issue-label .issue-autofix {
6028 .issue-label .issue-info-button {
6032 border-left: 1px solid #ccc;
6033 background-color: rgba(0,0,0,0);
6035 [dir='rtl'] .issue-label .issue-info-button {
6037 border-right: 1px solid #ccc;
6039 .issue-container .issue-label .issue-info-button .icon {
6042 .issue-container.active .issue-label .issue-info-button .icon {
6045 .issue-label .issue-info-button:last-child {
6046 border-radius: 0 4px 4px 0;
6048 [dir='rtl'] .issue-label .issue-info-button:last-child {
6049 border-radius: 4px 0 0 4px;
6052 button.autofix.action {
6056 background: #7092ff;
6059 button.autofix.action:focus,
6060 button.autofix.action:hover,
6061 button.autofix.action.active {
6062 background: #597be7;
6068 flex-flow: row nowrap;
6069 flex-direction: row-reverse;
6071 padding-bottom: 5px;
6073 .autofix-all-link-text {
6076 .autofix-all-link-icon svg {
6078 background: currentColor;
6081 .autofix-all-link-icon svg use {
6085 /* warning styles */
6088 .issue-container.active .issue.severity-warning,
6089 .issue-container.active .issue.severity-warning * {
6093 .warnings-list .issue.severity-warning .issue-label,
6094 .issue.severity-warning .issue-fix-list,
6095 .mode-save .warning-section {
6099 .issue-container.active .issue.severity-warning .issue-label {
6103 .warnings-list .issue.severity-warning .issue-label:hover,
6104 .issue.severity-warning .issue-fix-item.actionable:hover {
6108 .issue.severity-warning .issue-icon {
6112 .issue.severity-warning .issue-fix-item.actionable,
6113 .issue-container.active .issue.severity-warning .issue-info-button {
6119 .issue.severity-warning .issue-fix-item.actionable:hover,
6120 .issue-container.active .issue.severity-warning .issue-info-button:hover {
6127 .notification-badge.warning {
6135 .issue-container.active .issue.severity-error,
6136 .issue-container.active .issue.severity-error * {
6140 .errors-list .issue.severity-error .issue-label,
6141 .issue.severity-error .issue-fix-list,
6142 .mode-save .error-section {
6143 background: #ffd6d6;
6146 .issue-container.active .issue.severity-error .issue-label {
6147 background: #ffc6c6;
6150 .errors-list .issue.severity-error .issue-label:hover,
6151 .issue.severity-error .issue-fix-item.actionable:hover {
6152 background: #ffb6b6;
6155 .issue.severity-error .issue-icon {
6159 .issue.severity-error .issue-fix-item.actionable,
6160 .issue-container.active .issue.severity-error .issue-info-button {
6166 .issue.severity-error .issue-fix-item.actionable:hover,
6167 .issue-container.active .issue.severity-error .issue-info-button:hover {
6174 .notification-badge.error {
6180 .issues-options-container {
6186 .issues-option-title {
6187 display: table-cell;
6189 padding-right: 10px;
6191 [dir='rtl'] .issues-option-title {
6195 .issues-option label {
6196 display: table-cell;
6200 .layer-list.issues-list li.issue {
6201 border-color: inherit; /* override .layer-list styles */
6206 .layer-list.issue-rules-list,
6207 .layer-list.issues-list,
6208 .layer-list.layer-feature-list {
6213 flex-flow: row nowrap;
6214 flex-direction: row-reverse;
6223 border: 1px solid #72d979;
6224 background: #c6ffca;
6225 padding: 5px !important;
6228 .issues-none .icon {
6232 input.square-degrees-input {
6233 padding: 2px !important; /* important needed for rtl */
6237 background: rgba(0,0,0,0);
6238 color: currentColor;
6242 /* Entity Issues List */
6243 .entity-issues .issue-container .issue {
6245 border: 1px solid #ccc;
6246 background: #f6f6f6;
6248 .entity-issues .issue-container:not(.active) .issue-text:hover,
6249 .entity-issues .issue-container:not(.active) .issue-info-button:hover {
6250 background: #f1f1f1;
6252 .entity-issues .issue .issue-label .issue-text {
6253 padding-right: 10px;
6255 [dir='rtl'] .entity-issues .issue .issue-label .issue-text {
6256 padding-right: unset;
6260 .entity-issues .issue-container.active .issue-label .issue-text {
6263 .entity-issues .issue-container:not(:last-of-type) {
6266 .entity-issues .issue-container.active:not(:first-of-type) {
6269 .entity-issues .issue-container.active:not(:last-of-type) {
6270 margin-bottom: 10px;
6274 .entity-issues .issue-fix-list {
6275 border-top: 1px solid;
6276 border-color: inherit;
6278 .entity-issues .issue-container.active .issue-fix-list:empty {
6283 padding: 2px 10px 2px 20px;
6285 [dir='rtl'] li.issue-fix-item {
6286 padding: 2px 20px 2px 10px;
6288 li.issue-fix-item:first-of-type {
6291 li.issue-fix-item:last-of-type {
6292 padding-bottom: 5px;
6295 li.issue-fix-item .fix-message {
6299 li.issue-fix-item.actionable {
6302 li.issue-fix-item:not(.actionable) .fix-icon {
6307 .issue-container:not(.active) ul.issue-fix-list {
6318 .issue-info.expanded {
6319 display: inline-block;
6322 .issue-info .issue-reference {
6323 margin-bottom: 10px;
6325 .issue-info .tagDiff-table {
6328 border: 1px solid #ccc;
6330 .issue-info .tagDiff-row {
6331 border: 1px solid #ccc;
6333 .issue-info .tagDiff-cell {
6335 font-family: monospace;
6337 border: 1px solid #ccc;
6339 .issue-info .tagDiff-cell-add {
6342 .issue-info .tagDiff-cell-remove {
6347 /* Background - Display Options Sliders
6348 ------------------------------------------------------- */
6349 .display-options-container {
6353 .display-control h5 {
6358 .display-control h5 span {
6362 .display-control .display-option-input {
6367 .display-control button {
6372 vertical-align: text-bottom;
6375 [dir='rtl'] .display-control button {
6381 /* Background - Adjust Alignment
6382 ------------------------------------------------------- */
6383 .background-pane .nudge-container {
6384 border: 1px solid #ccc;
6389 .nudge-container .nudge-instructions {
6390 padding-bottom: 15px;
6393 .nudge-container .nudge-outer-rect {
6394 background-color: #eee;
6395 border: 1px solid #ccc;
6400 justify-content: center;
6401 align-items: center;
6407 .nudge-container .nudge-inner-rect {
6408 background-color: #fff;
6409 border: 1px solid #ccc;
6415 .nudge-container .nudge::after {
6420 left: 0; right: 0; top: 0; bottom: 0;
6425 .nudge-container input {
6432 .nudge-container input.error {
6433 border: 1px solid #ff7878;
6438 .nudge-container input:focus {
6439 background-color: transparent;
6442 .nudge-container button {
6447 background-color: transparent;
6450 .nudge-container button.right {
6455 .nudge-container button.left {
6460 .nudge-container button.top {
6465 .nudge-container button.bottom {
6469 .nudge-container button.nudge-reset {
6480 background-color: transparent;
6484 .background-pane .nudge.right::after {
6485 border-top: 5px solid transparent;
6486 border-bottom: 5px solid transparent;
6487 border-left: 5px solid #222;
6490 .background-pane .nudge.left::after {
6491 border-top: 5px solid transparent;
6492 border-bottom: 5px solid transparent;
6493 border-right: 5px solid #222;
6496 .background-pane .nudge.top::after {
6497 border-right: 5px solid transparent;
6498 border-left: 5px solid transparent;
6499 border-bottom: 5px solid #222;
6502 .background-pane .nudge.bottom::after {
6503 border-right: 5px solid transparent;
6504 border-left: 5px solid transparent;
6505 border-top: 5px solid #222;
6509 /* Side Panes - Background / Map Data / Help
6510 ------------------------------------------------------- */
6521 padding-bottom: 60px;
6526 .map-pane.help-wrap {
6532 flex-flow: row nowrap;
6533 justify-content: space-between;
6534 border-bottom: 1px solid #ccc;
6542 .pane-heading button {
6550 padding: 10px 40px 20px 20px;
6555 [dir='rtl'] .pane-content {
6556 padding: 10px 20px 20px 40px;
6559 .pane-content > div {
6560 padding-bottom: 15px;
6565 ------------------------------------------------------- */
6568 margin-bottom: 20px;
6571 .help-wrap .left-content .body p code {
6575 vertical-align: baseline;
6576 background-color: #f6f6f6;
6577 border: solid 1px #ccc;
6579 border-bottom-color: #bbb;
6581 box-shadow: inset 0 -1px 0 #bbb;
6584 .help-wrap .left-content .icon.pre-text {
6585 vertical-align: text-top;
6588 display: inline-block;
6595 margin-bottom: 20px;
6599 .help-wrap .toc li a,
6602 border: 1px solid #ccc;
6606 .help-wrap .toc li a {
6610 .help-wrap .toc li a:hover,
6611 .help-wrap .nav a:hover {
6612 background: #ececec;
6615 .help-wrap .toc li a.selected {
6616 background: #e8ebff;
6619 .help-wrap .toc li:first-child a {
6620 border-radius: 4px 4px 0 0;
6623 .help-wrap .toc li:nth-last-child(3) a {
6624 border-bottom: 1px solid #ccc;
6625 border-radius: 0 0 4px 4px
6628 .help-wrap .toc li.shortcuts a,
6629 .help-wrap .toc li.walkthrough a {
6632 border-bottom: 1px solid #ccc;
6636 .help-wrap .toc li.walkthrough a {
6642 padding-bottom: 30px;
6651 .help-wrap .nav a:first-child {
6652 border-radius: 4px 0 0 4px;
6655 .help-wrap .nav a:last-child:not(:only-child) {
6656 border-radius: 0 4px 4px 0;
6660 .help-wrap .nav a:only-child {
6666 /* Inspector (hover styles)
6667 ------------------------------------------------------- */
6668 .inspector-hover .entity-issues .issue-container .issue .issue-label,
6669 .inspector-hover .form-field-input-wrap .label,
6670 .inspector-hover .form-field-input-multicombo .chiplist,
6671 .inspector-hover .form-field-button,
6672 .inspector-hover .structure-extras-wrap,
6673 .inspector-hover .comments-container .comment,
6674 .inspector-hover button,
6675 .inspector-hover input,
6676 .inspector-hover textarea,
6677 .inspector-hover label {
6678 background: #ececec;
6680 .inspector-hover .preset-list-button,
6681 .inspector-hover .tag-row input {
6682 background: #f6f6f6;
6686 .inspector-hover .form-field-input-multicombo .chip,
6687 .inspector-hover .form-field-input-check span,
6688 .inspector-hover .entity-issues .issue .icon {
6692 .inspector-hover .form-field-input-multicombo .chip {
6694 border: 1px solid #ccc;
6698 .inspector-hover div {
6703 /* hide and remove from layout */
6705 .inspector-hover .preset-list-button-wrap .tag-reference-button,
6706 .inspector-hover label input[type="checkbox"],
6707 .inspector-hover label input[type="radio"],
6708 .inspector-hover .form-field-input-multicombo .input-wrap,
6709 .inspector-hover .form-field-input-radio label,
6710 .inspector-hover .form-field-input-radio label span,
6711 .inspector-hover .form-field-input-radio label.remove .icon,
6712 .inspector-hover .inspector-inner .add-row,
6713 .inspector-hover .entity-issues .issue-container .issue-fix-list,
6714 .inspector-hover .entity-issues .issue-container .issue-info-button {
6718 /* hide but preserve in layout */
6719 .inspector-hover .combobox-caret,
6720 .inspector-hover .header button,
6721 .inspector-hover .quick-links,
6722 .inspector-hover .form-field-input-multicombo .chip .remove,
6723 .inspector-hover .hide-toggle:before,
6724 .inspector-hover .more-fields,
6725 .inspector-hover .field-label button,
6726 .inspector-hover .tag-row button,
6727 .inspector-hover .footer * {
6731 /* Unstyle the active entity issue on hover */
6732 .inspector-hover .entity-issues .issue-container.active {
6736 .inspector-hover .entity-issues .issue-container * {
6737 border-color: #ccc !important;
6739 .inspector-hover .entity-issues .issue-container.active .issue-label {
6742 .inspector-hover .entity-issues .issue-container.active .issue-label .issue-text {
6743 font-weight: normal;
6747 /* Styles for raw tag inspector on hover */
6748 .inspector-hover .tag-row .key-wrap,
6749 .inspector-hover .tag-row .value-wrap {
6753 .inspector-hover .tag-row:first-child input.value {
6754 border-top-right-radius: 4px;
6756 [dir='rtl'] .inspector-hover .tag-row:first-child input.value {
6757 border-top-right-radius: 0;
6758 border-top-left-radius: 4px;
6761 .inspector-hover .tag-row:last-child input.value {
6762 border-bottom-right-radius: 4px;
6764 [dir='rtl'] .inspector-hover .tag-row:last-child input.value {
6765 border-bottom-right-radius: 0;
6766 border-bottom-left-radius: 4px;
6769 .inspector-hover .tag-row:last-child input.key {
6770 border-bottom-left-radius: 4px;
6772 [dir='rtl'] .inspector-hover .tag-row:last-child input.key {
6773 border-bottom-left-radius: 0;
6774 border-bottom-right-radius: 4px;
6777 .inspector-hover .more-fields {
6779 margin-bottom: -10px;
6782 /* Unstyle button fields */
6783 .inspector-hover .form-field-input-radio label.active,
6784 .inspector-hover .entity-editor-pane a.hide-toggle {
6786 background-color: transparent;
6791 .inspector-hover .form-field-input-radio button.active {
6795 /* Show placeholder on hover for radio buttons */
6796 .inspector-hover .form-field-input-radio {
6797 border: 1px solid #ccc;
6799 border-radius: 0 0 4px 4px;
6801 .inspector-hover .form-field-input-radio .placeholder {
6809 .inspector-hover .form-field-input-radio .structure-extras-wrap {
6814 /* Raster Background Tiles
6815 ------------------------------------------------------- */
6818 transform-origin: 0 0;
6819 -ms-transform-origin: 0 0;
6820 -webkit-transform-origin: 0 0;
6821 -moz-transform-origin: 0 0;
6822 -o-transform-origin: 0 0;
6824 -moz-user-select: none;
6825 -webkit-user-select: none;
6826 -ms-user-select: none;
6831 -webkit-transition: opacity 200ms linear;
6832 -moz-transition: opacity 200ms linear;
6833 transition: opacity 200ms linear;
6846 background: rgba(0, 0, 0, 0.7);
6856 transform-origin: 0 0;
6857 -ms-transform-origin: 0 0;
6858 -webkit-transform-origin: 0 0;
6859 -moz-transform-origin: 0 0;
6860 -o-transform-origin: 0 0;
6862 -moz-user-select: none;
6863 -webkit-user-select: none;
6864 -ms-user-select: none;
6869 outline: 1px solid red;
6874 ------------------------------------------------------- */
6880 -moz-user-select: none;
6881 -webkit-user-select: none;
6882 -ms-user-select: none;
6887 transform-origin: 0 0;
6888 -ms-transform-origin: 0 0;
6889 -webkit-transform-origin: 0 0;
6890 -moz-transform-origin: 0 0;
6891 -o-transform-origin: 0 0;
6894 #supersurface, .layer {
6904 ------------------------------------------------------- */
6913 border: #aaa 1px solid;
6914 box-shadow: 0 0 2em black;
6916 [dir='ltr'] .map-in-map {
6919 [dir='rtl'] .map-in-map {
6924 transform-origin: 0 0;
6925 -ms-transform-origin: 0 0;
6926 -webkit-transform-origin: 0 0;
6927 -moz-transform-origin: 0 0;
6928 -o-transform-origin: 0 0;
6930 -moz-user-select: none;
6931 -webkit-user-select: none;
6932 -ms-user-select: none;
6936 .map-in-map-viewport,
6945 .map-in-map-viewport {
6956 stroke: rgba(255, 255, 0, 0.75);
6958 shape-rendering: crispEdges;
6961 .map-in-map-bbox.thick {
6967 ------------------------------------------------------- */
6969 stroke: currentColor;
6973 .map-in-map-data .debug {
6977 .nocolor { color: rgba(0, 0, 0, 0); }
6978 .red { color: rgba(255, 0, 0, 0.75); }
6979 .green { color: rgba(0, 255, 0, 0.75); }
6980 .blue { color: rgba(176, 176, 255, 0.75); }
6981 .yellow { color: rgba(255, 255, 0, 0.75); }
6982 .cyan { color: rgba(0, 255, 255, 0.75); }
6983 .magenta { color: rgba(255, 0, 255, 0.75); }
6984 .orange { color: rgba(255, 153, 0, 0.75); }
6985 .pink { color: rgba(255, 0, 153, 0.75); }
6986 .purple { color: rgba(153, 0, 255, 0.75); }
6994 pointer-events: none;
6997 .debug-legend-item {
7000 .debug-legend-item:before {
7012 pointer-events: none;
7014 flex-direction: row-reverse;
7015 align-items: flex-end;
7018 pointer-events: auto;
7021 /* Information Panels
7022 ------------------------------------------------------- */
7025 flex-flow: row-reverse wrap-reverse;
7028 -ms-user-select: element;
7029 pointer-events: none;
7032 .panel-container h1,
7033 .panel-container h2,
7034 .panel-container h3,
7035 .panel-container h4,
7036 .panel-container h5 {
7037 display: inline-block;
7041 .panel-container h1,
7042 .panel-container h2,
7043 .panel-container h3 {
7049 margin: 0 2px 2px 0;
7051 border: 1px solid rgba(0, 0, 0, 0.75);
7052 padding-bottom: 10px;
7054 pointer-events: auto;
7057 .panel-container .panel-title {
7058 border-radius: 4px 4px 0 0;
7065 .panel-title button.close {
7071 [dir='rtl'] .panel-title button.close {
7075 .panel-title button.close:hover {
7078 .panel-title button.close .icon {
7088 .panel-content li span {
7089 display: inline-block;
7090 white-space: nowrap;
7094 .panel-content .button {
7095 display: inline-block;
7096 background: #7092ff;
7103 [dir='rtl'] .panel-content .button {
7108 .panel-content-history .links a {
7111 [dir='rtl'] .panel-content-history .links a {
7115 .panel-content-history h4 {
7118 .panel-content-location .location-info {
7123 /* About Section, Attribution, Footer
7124 ------------------------------------------------------- */
7131 pointer-events: none;
7133 flex-direction: column;
7134 -ms-user-select: element;
7143 #attrib * { pointer-events: all; }
7145 .base-layer-attribution,
7146 .overlay-layer-attribution {
7152 .base-layer-attribution {
7156 .overlay-layer-attribution {
7160 .overlay-layer-attribution .attribution:not(:last-child):after {
7165 .attribution a:visited {
7169 .attribution a:hover {
7173 .attribution .source-image {
7175 vertical-align: middle;
7184 pointer-events: all;
7190 /* Footer - Flash messages
7191 ------------------------------------------------------- */
7195 flex-flow: row nowrap;
7196 justify-content: space-between;
7206 flex-flow: row nowrap;
7207 align-items: center;
7219 .flash-icon circle {
7222 .flash-icon.disabled circle {
7224 fill: rgba(255,255,255,0.7);
7230 .flash-icon.disabled use {
7231 color: rgba(32,32,32,0.7);
7234 .flash-icon.operation use {
7238 .flash-icon.operation.disabled use {
7239 fill: rgba(32,32,32,0.7);
7240 color: rgba(40,40,40,0.7);
7250 flex-flow: row nowrap;
7251 justify-content: space-between;
7260 transition: bottom 75ms linear;
7261 -moz-transition: bottom 75ms linear;
7262 -webkit-transition: bottom 75ms linear;
7267 transition: bottom 75ms linear;
7268 -moz-transition: bottom 75ms linear;
7269 -webkit-transition: bottom 75ms linear;
7273 /* Footer - Scale bar, About, Source Switcher
7274 ------------------------------------------------------- */
7276 vertical-align: bottom;
7280 -moz-user-select: none;
7281 -webkit-user-select: none;
7282 -ms-user-select: none;
7295 [dir='rtl'] #scale {
7296 transform: scaleX(-1);
7304 font: 12px sans-serif;
7309 [dir='rtl'] #scale text {
7310 transform: scaleX(-1);
7317 shape-rendering: crispEdges;
7326 [dir='rtl'] #about-list {
7335 border-left: 1px solid rgba(255,255,255,.5);
7336 padding: 5px 0 5px 5px;
7339 [dir='rtl'] #about-list li {
7342 border-right: 1px solid rgba(255,255,255,.5);
7345 padding: 5px 5px 5px 0;
7347 #about-list li:empty {
7351 #about-list li:last-child {
7356 [dir='rtl'] #about-list li:last-child {
7360 #about-list a.chip {
7361 padding: 2px 4px 3px 4px;
7365 #about-list a.chip .icon {
7370 [dir='ltr'] #about-list a.chip .icon,
7371 [dir='ltr'] #about-list a.chip span {
7374 [dir='rtl'] #about-list a.chip .icon,
7375 [dir='rtl'] #about-list a.chip span {
7379 .source-switch a.chip.live {
7380 background: #d32232;
7384 .feature-warning a.chip {
7385 background: #1e90ff;
7388 .issues-info a.chip.resolved-count {
7389 background: #15911E;
7391 .issues-info a.chip.warnings-count {
7392 background: #DF8500;
7394 [dir='ltr'] .issues-info a.chip:not(:last-child) {
7397 [dir='rtl'] .issues-info a.chip:not(:last-child) {
7401 .user-list a:not(:last-child):after {
7411 [dir='rtl'] .api-status {
7415 .api-status.offline,
7416 .api-status.readonly,
7422 text-decoration: underline;
7424 pointer-events: all;
7426 .api-status a:hover {
7430 /* Notification Badges
7431 ------------------------------------------------------- */
7432 /* For an icon (e.g. new version) */
7434 display: inline-block;
7435 background: #d32232;
7438 border-radius: 11px;
7441 [dir='rtl'] .badge {
7448 [dir='rtl'] .badge a {
7453 vertical-align: baseline;
7459 /* For text (e.g. upcoming events) */
7461 display: inline-block;
7472 [dir='rtl'] .badge-text {
7479 ------------------------------------------------------- */
7482 display: inline-block;
7496 margin-bottom: 10px;
7498 .modal .description {
7513 background: rgba(0,0,0,0.5);
7515 left: 0px; right: 0px; top: 0px; bottom: 0px;
7520 border-bottom: 1px solid #ccc;
7522 .modal-section p:not(:last-of-type) {
7523 padding-bottom: 20px;
7525 .modal-section.header h3 {
7528 .modal-section.buttons {
7532 .modal-section.buttons button {
7536 .modal-section.buttons .action {
7537 display: inline-block;
7540 vertical-align: middle;
7543 .save-section .buttons {
7546 justify-content: space-around;
7547 margin-bottom: 30px;
7550 .save-section .buttons .action,
7551 .save-section .buttons .secondary-action {
7555 vertical-align: middle;
7564 .modal-actions button {
7565 font-weight: normal;
7567 border-bottom: 1px solid #ccc;
7573 .modal-actions button:hover {
7574 background-color: #ececec;
7590 .modal-actions > :first-child {
7591 border-right: 1px solid #ccc;
7594 .modal-section:last-child {
7599 ------------------------------------------------------- */
7600 .modal-actions .logo-restore {
7603 .modal-actions .logo-reset {
7607 /* Success Screen / Community Index
7608 ------------------------------------------------------- */
7609 .save-success.body {
7614 .save-success .link-out {
7616 white-space: nowrap;
7620 .save-communityLinks {
7621 padding: 0px 20px 15px 20px;
7624 .save-communityLinks {
7625 border-top: 1px solid #ccc;
7628 .save-success table,
7639 vertical-align: top;
7641 .save-success td.cell-icon {
7644 .save-success td.cell-detail {
7647 .save-success td.community-detail {
7648 padding-bottom: 15px;
7651 .summary-view-on-osm,
7656 .community-languages {
7660 .community-languages:only-child {
7664 .community-detail a.hide-toggle,
7665 .community-detail a:visited.hide-toggle {
7667 font-weight: normal;
7670 .community-detail .hide-toggle svg.icon.pre-text {
7681 background-color: #efefef;
7687 .community-event-name {
7691 .community-event-when {
7695 .community-missing {
7702 ------------------------------------------------------- */
7703 .modal-actions .logo-walkthrough,
7704 .modal-actions .logo-features {
7710 ------------------------------------------------------- */
7716 .modal-shortcuts .modal-section:last-child {
7721 .modal-shortcuts .tabs-bar {
7723 padding-bottom: 5px;
7728 .modal-shortcuts .tab {
7729 display: inline-block;
7735 .modal-shortcuts .tab.active {
7737 border-bottom: 2px solid;
7739 .modal-shortcuts .tab:hover {
7741 background-color: #efefef;
7744 .modal-shortcuts .shortcut-tab {
7746 flex-flow: row wrap;
7747 justify-content: space-around;
7750 .modal-shortcuts .shortcut-column {
7754 .modal-shortcuts .shortcut-tab-tools .shortcut-column {
7759 .modal-shortcuts td {
7760 padding-bottom: 5px;
7763 .modal-shortcuts .shortcut-section {
7764 padding: 20px 0 10px 0;
7767 .modal-shortcuts .shortcut-keys {
7771 white-space: nowrap;
7773 [dir='rtl'] .modal-shortcuts .shortcut-keys {
7777 .modal-shortcuts .shortcut-keys kbd {
7781 svg.mouseclick use.left {
7782 fill: rgba(112, 146, 255, 1);
7783 color: rgba(112, 146, 255, 0);
7785 svg.mouseclick use.right {
7786 fill: rgba(112, 146, 255, 0);
7787 color: rgba(112, 146, 255, 1);
7790 .modal-shortcuts .shortcut-keys .gesture {
7797 ------------------------------------------------------- */
7798 .settings-modal textarea {
7803 .settings-custom-background .instructions-template {
7804 margin-bottom: 20px;
7807 .settings-custom-data .instructions-url {
7808 margin-bottom: 10px;
7810 .settings-custom-data .field-file,
7811 .settings-custom-data .instructions-template {
7812 margin-bottom: 20px;
7817 ------------------------------------------------------- */
7818 .mode-save a.user-info {
7819 display: inline-block;
7822 .mode-save .commit-form {
7826 .mode-save .user-info img {
7830 .mode-save h3 small.count {
7838 border-radius: 24px;
7840 background: #7092ff;
7844 .note-save .field-warning,
7845 .mode-save .field-warning {
7847 border: 1px solid #ccc;
7852 .note-save .field-warning:empty,
7853 .mode-save .field-warning:empty {
7857 .mode-save .field-warning,
7858 .mode-save .changeset-info,
7859 .mode-save .request-review,
7860 .mode-save .commit-info {
7861 margin-bottom: 10px;
7864 .mode-save .request-review label {
7868 .mode-save .changeset-list {
7869 border: 1px solid #ccc;
7872 margin-bottom: 10px;
7875 .mode-save .warning-section .changeset-list button {
7876 border-left: 1px solid #ccc;
7879 .mode-save .changeset-list li {
7881 border-top: 1px solid #ccc;
7886 .mode-save .changeset-list li:hover {
7887 background-color: #ececec;
7890 .mode-save .changeset-list .alert {
7894 .changeset-list li span.count {
7899 .mode-save .commit-section .changeset-list button {
7900 border-left: 1px solid #ccc;
7903 .changeset-list li span.count:before { content: '('; }
7905 .changeset-list li span.count:after { content: ')'; }
7907 .changeset-list li:first-child { border-top: 0;}
7910 /* Conflict resolution
7911 ------------------------------------------------------- */
7914 background-color: #ffffbb;
7915 border-bottom: 1px solid #ccc;
7918 .conflicts-buttons {
7922 .mode-save button.conflicts-button {
7926 .conflict-container {
7927 border-bottom: 1px solid #ccc;
7930 .conflict-description {
7936 padding: 20px 20px 0 20px;
7939 .conflict-detail-container {
7951 .conflict-nav-buttons {
7952 padding: 10px 0 20px 0;
7955 .conflict-nav-button {
7960 /* Notices (Zoom in to Edit)
7961 ------------------------------------------------------- */
7978 .notice .zoom-to:hover,
7979 .notice .zoom-to:focus {
7980 background: rgba(0,0,0,0.6);
7983 .notice .zoom-to .icon {
7986 vertical-align: middle;
7989 [dir='rtl'] .notice .zoom-to .icon {
7996 ------------------------------------------------------- */
8004 white-space: initial;
8006 .tooltip:not(.curtain-tooltip) {
8007 pointer-events: none;
8029 .popover.arrowed.top {
8032 .popover.arrowed.right {
8035 .popover.arrowed.bottom {
8038 .popover.arrowed.left {
8041 .bar-button .tooltip.arrowed.bottom {
8058 border-radius: inherit;
8061 .tooltip .popover-inner {
8066 font-weight: normal;
8067 background-color: #fff;
8073 pointer-events: none;
8077 background: transparent;
8084 border-color: transparent;
8085 border-style: solid;
8089 border-left-color: #fff;
8090 border-width: 5px 0 5px 5px;
8109 border-color: transparent;
8110 border-style: solid;
8114 border-right-color: #fff;
8115 border-width: 5px 5px 5px 0;
8121 border-color: transparent;
8122 border-style: solid;
8124 .popover.top .popover-arrow {
8128 border-top-color: #fff;
8129 border-width: 5px 5px 0;
8131 .popover.right .popover-arrow {
8135 border-right-color: #fff;
8136 border-width: 5px 5px 5px 0;
8138 .popover.left .popover-arrow {
8142 border-left-color: #fff;
8143 border-width: 5px 0 5px 5px;
8145 .popover.bottom .popover-arrow {
8149 border-bottom-color: #fff;
8150 border-width: 0 5px 5px;
8152 .popover:not(.arrowed) .popover-arrow {
8158 background: #f6f6f6;
8160 margin: -10px -10px 10px -10px;
8161 border-radius: 3px 3px 0 0;
8166 background: #f6f6f6;
8168 margin: 10px -10px -10px -10px;
8169 border-radius: 0 0 3px 3px;
8171 .popover-inner .shortcut {
8176 [dir='rtl'] .popover-inner .shortcut {
8181 /* dark tooltips for sidebar / panels */
8182 .tooltip.dark.top .popover-arrow,
8183 .map-pane .tooltip.top .popover-arrow,
8184 #sidebar .tooltip.top .popover-arrow {
8185 border-top-color: #000;
8187 .tooltip.dark.bottom .popover-arrow,
8188 .map-pane .tooltip.bottom .popover-arrow,
8189 #sidebar .tooltip.bottom .popover-arrow {
8190 border-bottom-color: #000;
8192 .tooltip.dark.left .popover-arrow,
8193 .map-pane .tooltip.left .popover-arrow,
8194 #sidebar .tooltip.left .popover-arrow {
8195 border-left-color: #000;
8197 .tooltip.dark.right .popover-arrow,
8198 .map-pane .tooltip.right .popover-arrow,
8199 #sidebar .tooltip.right .popover-arrow {
8200 border-right-color: #000;
8202 .tooltip.dark .popover-inner,
8203 .tooltip.dark .tooltip-heading,
8204 .tooltip.dark .keyhint-wrap,
8205 .map-pane .popover-inner,
8206 .map-pane .tooltip-heading,
8207 .map-pane .keyhint-wrap,
8208 #sidebar .popover-inner,
8209 #sidebar .tooltip-heading,
8210 #sidebar .keyhint-wrap {
8215 .map-pane .tooltip kbd,
8216 #sidebar .tooltip kbd {
8217 background-color: #666;
8218 border: solid 1px #444;
8219 border-bottom-color: #333;
8220 box-shadow: inset 0 -1px 0 #333;
8224 /* Exceptions for tooltip layouts */
8226 /* commit warning tooltips need to be closer */
8227 .warning-section .tooltip.top {
8231 li:first-of-type .badge .tooltip,
8232 li.hide + li.version .badge .tooltip {
8233 left: auto !important;
8234 right: 5px !important;
8236 [dir='rtl'] li:first-of-type .badge .tooltip,
8237 [dir='rtl'] li.hide + li.version .badge .tooltip {
8238 left: 5px !important;
8239 right: auto !important;
8241 li:first-of-type .badge .tooltip .popover-arrow,
8242 li.hide + li.version .badge .tooltip .popover-arrow {
8243 right: 15px !important;
8244 left: auto !important;
8246 [dir='rtl'] li:first-of-type .badge .tooltip .popover-arrow,
8247 [dir='rtl'] li.hide + li.version .badge .tooltip .popover-arrow {
8248 left: 15px !important;
8249 right: auto !important;
8253 /* Contextual Radial Menu (deprecated)
8254 ------------------------------------------------------- */
8255 .radial-menu-tooltip {
8262 .radial-menu-background {
8265 stroke-opacity: 0.5;
8268 .radial-menu-item circle {
8272 .radial-menu-item circle:active,
8273 .radial-menu-item circle:hover {
8277 .radial-menu-item.disabled circle {
8279 fill: rgba(255,255,255,.5);
8282 .radial-menu-item use {
8287 .radial-menu-item.disabled use {
8288 fill: rgba(32,32,32,.5);
8289 color: rgba(40,40,40,.5);
8293 /* Contextual Edit Menu
8294 ------------------------------------------------------- */
8295 .edit-menu-tooltip {
8299 .edit-menu-background {
8303 .edit-menu-item rect {
8308 .edit-menu-item rect:active,
8309 .edit-menu-item rect:hover {
8313 .edit-menu-item.disabled rect {
8314 cursor: not-allowed;
8316 .edit-menu-item.disabled rect:hover {
8317 cursor: not-allowed;
8321 .edit-menu-item use {
8324 pointer-events: none;
8326 .edit-menu-item.disabled use {
8327 fill: rgba(32,32,32,.2);
8328 color: rgba(40,40,40,.2);
8333 ------------------------------------------------------- */
8339 stroke-dasharray: 5, 5;
8344 ----------------------------------------------------- */
8345 ::-webkit-scrollbar {
8350 border-left: 1px solid #DDD;
8353 ::-webkit-scrollbar-track {
8354 background-clip: padding-box;
8355 border: solid transparent;
8359 ::-webkit-scrollbar-thumb {
8360 background-color: rgba(0,0,0,.2);
8361 background-clip: padding-box;
8362 border: solid transparent;
8363 border-width: 3px 3px 3px 4px;
8366 ::-webkit-scrollbar-track:hover,
8367 ::-webkit-scrollbar-track:active {
8368 background-color: rgba(0,0,0,.05);
8372 /* Intro walkthrough
8373 ----------------------------------------------------- */
8375 pointer-events: all;
8383 flex-direction: row;
8392 .intro-nav-wrap .intro-nav-wrap-logo {
8398 vertical-align: middle;
8401 .intro-nav-wrap .joined {
8404 flex-direction: row;
8407 .intro-nav-wrap button.chapter {
8412 .intro-nav-wrap button.chapter.next {
8413 animation-duration: 1s;
8414 animation-name: pulse;
8415 animation-iteration-count: infinite;
8416 animation-direction: alternate;
8419 from { background: #7092ff; }
8420 to { background: #c6d4ff; }
8423 .intro-nav-wrap button.chapter.finished {
8424 background: #8cd05f;
8427 .intro-nav-wrap button.chapter .status {
8431 .intro-nav-wrap button.chapter.finished .status {
8432 display: inline-block;
8435 .curtain-tooltip.tooltip.in {
8438 .curtain-tooltip.tooltip {
8441 [dir='rtl'] .curtain-tooltip.tooltip {
8445 .curtain-tooltip .popover-inner {
8451 .curtain-tooltip .popover-inner .button-section,
8452 .curtain-tooltip .popover-inner .instruction {
8455 border-top: 1px solid #ccc;
8458 margin-right: -20px;
8459 padding: 10px 20px 0 20px;
8462 .curtain-tooltip .popover-inner .button-section button {
8466 .curtain-tooltip .popover-inner .instruction:only-child {
8472 .curtain-tooltip .popover-inner .icon.pre-text {
8473 vertical-align: text-top;
8476 display: inline-block;
8479 .curtain-tooltip.intro-points-describe ,
8480 .curtain-tooltip.intro-lines-name_road {
8481 top: 133px !important;
8484 .tooltip-illustration {
8490 [dir='rtl'] .tooltip-illustration {
8492 margin-right: -20px;
8495 .curtain-tooltip.intro-mouse {
8496 -moz-user-select: none;
8497 -webkit-user-select: none;
8498 -ms-user-select: none;
8502 .curtain-tooltip.intro-mouse .counter {
8513 .curtain-tooltip.intro-mouse .tooltip-illustration use {
8514 fill: rgba(112, 146, 255, 0);
8515 color: rgba(112, 146, 255, 0);
8517 .curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
8518 fill: rgba(112, 146, 255, 1);
8520 .curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
8521 color: rgba(112, 146, 255, 1);
8524 .huge-modal-button {
8530 .huge-modal-button .illustration {
8537 .list-item-photos.list-item-mapillary-map-features .request-data-link {
8541 [dir='rtl'] .list-item-photos.list-item-mapillary-map-features .request-data-link {