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 {
459 g.point.highlighted .shadow,
460 path.shadow.highlighted {
461 stroke-opacity: 0.95;
464 g.vertex.highlighted .shadow {
466 stroke-opacity: 0.95;
470 /* Turn Restrictions */
471 .points-group.turns g.turn rect,
472 .points-group.turns g.turn circle {
476 /* Turn restriction paths and vertices */
477 .surface.tr .way.target,
478 .surface.tr path.shadow.selected,
479 .surface.tr path.shadow.related {
483 .surface.tr path.shadow.selected,
484 .surface.tr path.shadow.related,
485 .surface.tr g.vertex.selected .shadow,
486 .surface.tr g.vertex.related .shadow {
490 .surface.tr path.shadow.related.allow,
491 .surface.tr g.vertex.related.allow .shadow {
494 .surface.tr path.shadow.related.restrict,
495 .surface.tr g.vertex.related.restrict .shadow {
498 .surface.tr path.shadow.related.only,
499 .surface.tr g.vertex.related.only .shadow {
505 `highlight-edited` - visual diff activated
506 `added` - entity was created by the user
507 `moved` - node has different coordinates
508 `geometry-edited` - way has different nodes
509 `segment-edited` - one or both adjacents nodes moved
510 `retagged` - some tagging change has occurred
513 /* Vertex visual diffs */
514 .highlight-edited g.points g.node.vertex.added > circle.shadow,
515 .highlight-edited g.points g.node.vertex.retagged > circle.shadow,
516 .highlight-edited g.points g.node.vertex.moved > circle.shadow {
519 .highlight-edited g.points g.node.vertex.added > circle.shadow {
520 fill: rgb(133, 255, 103);
522 .highlight-edited g.points g.node.vertex.retagged > circle.shadow {
525 .highlight-edited g.points g.node.vertex.moved > circle.shadow {
526 fill: rgb(255, 126, 46);
529 /* Point visual diffs */
530 .highlight-edited g.points g.node.point.added > path.shadow,
531 .highlight-edited g.points g.node.point.retagged > path.shadow,
532 .highlight-edited g.points g.node.point.moved > path.shadow {
536 .highlight-edited g.points g.node.point.added > path.shadow {
537 stroke: rgb(133, 255, 103);
539 .highlight-edited g.points g.node.point.retagged > path.shadow {
542 .highlight-edited g.points g.node.point.moved > path.shadow {
543 stroke: rgb(255, 126, 46);
546 /* Line/area segment visual diffs
547 - segments are rendered on top of the ways for convenience and to differentiate
548 them from entire line diffs, so make them thin
550 .highlight-edited g.lines > path.line.segment-edited,
551 .highlight-edited g.areas > path.area.segment-edited {
552 stroke: rgb(255, 126, 46);
553 stroke-dasharray: 10, 3;
554 stroke-width: 1.5 !important;
558 /* Entire line/area visual diffs */
559 .highlight-edited path.line.shadow.added,
560 .highlight-edited path.line.shadow.retagged,
561 .highlight-edited path.line.shadow.geometry-edited,
562 .highlight-edited path.area.shadow.added,
563 .highlight-edited path.area.shadow.retagged,
564 .highlight-edited path.area.shadow.geometry-edited {
567 .highlight-edited.fill-wireframe path.line.shadow.added,
568 .highlight-edited.fill-wireframe path.line.shadow.retagged,
569 .highlight-edited.fill-wireframe path.line.shadow.geometry-edited,
570 .highlight-edited.fill-wireframe path.area.shadow.added,
571 .highlight-edited.fill-wireframe path.area.shadow.retagged,
572 .highlight-edited.fill-wireframe path.area.shadow.geometry-edited {
575 .highlight-edited path.line.shadow.added,
576 .highlight-edited path.area.shadow.added {
577 stroke: rgb(133, 255, 103);
579 .highlight-edited path.area.shadow.retagged,
580 .highlight-edited path.line.shadow.retagged {
583 .highlight-edited path.line.shadow.geometry-edited,
584 .highlight-edited path.area.shadow.geometry-edited {
585 stroke: rgb(255, 126, 46);
588 /* Default - light gray */
590 stroke: rgb(170, 170, 170);
595 stroke: rgba(255, 255, 255, 0.3);
596 fill: rgba(255, 255, 255, 0.3);
599 .preset-icon-fill path.fill {
600 stroke: rgb(170, 170, 170);
601 fill: rgba(170, 170, 170, 0.3);
604 path.shadow.old-multipolygon,
605 path.stroke.old-multipolygon {
606 stroke-dasharray: 100, 5;
607 stroke-linecap: butt;
612 path.stroke.tag-natural,
613 path.stroke.tag-natural-wood,
614 path.stroke.tag-leisure-nature_reserve,
615 path.stroke.tag-leisure-pitch,
616 path.stroke.tag-leisure-track,
617 path.stroke.tag-leisure-golf_course,
618 path.stroke.tag-leisure-garden,
619 path.stroke.tag-leisure-park,
620 path.stroke.tag-landuse-recreation_ground,
621 path.stroke.tag-landuse-forest,
622 path.stroke.tag-landuse-grass,
623 path.stroke.tag-landuse-flowerbed,
624 path.stroke.tag-barrier-hedge {
625 stroke: rgb(140, 208, 95);
627 path.fill.tag-natural,
628 path.fill.tag-natural-wood,
629 path.fill.tag-leisure-nature_reserve,
630 path.fill.tag-leisure-pitch,
631 path.fill.tag-leisure-track,
632 path.fill.tag-leisure-golf_course,
633 path.fill.tag-leisure-garden,
634 path.fill.tag-leisure-park,
635 path.fill.tag-landuse-recreation_ground,
636 path.fill.tag-landuse-forest,
637 path.fill.tag-landuse-grass,
638 path.fill.tag-landuse-flowerbed,
639 path.fill.tag-barrier-hedge {
640 stroke: rgba(140, 208, 95, 0.3);
641 fill: rgba(140, 208, 95, 0.3);
643 .pattern-color-forest,
644 .pattern-color-forest_broadleaved,
645 .pattern-color-forest_needleleaved,
646 .pattern-color-forest_leafless,
648 .pattern-color-grass {
649 fill: rgba(140, 208, 95, 0.3);
654 path.stroke.tag-amenity-fountain,
655 path.stroke.tag-leisure-swimming_pool,
656 path.stroke.tag-natural-bay,
657 path.stroke.tag-natural-water {
658 stroke: rgb(119, 211, 222);
660 path.fill.tag-amenity-fountain,
661 path.fill.tag-leisure-swimming_pool,
662 path.fill.tag-natural-bay,
663 path.fill.tag-natural-water {
664 stroke: rgba(119, 211, 222, 0.3);
665 fill: rgba(119, 211, 222, 0.3);
667 .pattern-color-waves,
668 .pattern-color-water_standing,
669 .pattern-color-pond {
670 fill: rgba(119, 211, 222, 0.3);
675 path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
676 path.stroke.tag-leisure-pitch.tag-sport-baseball,
677 path.stroke.tag-leisure-pitch.tag-sport-softball,
678 path.stroke.tag-leisure-track,
679 path.stroke.tag-natural-beach,
680 path.stroke.tag-natural-sand,
681 path.stroke.tag-natural-scrub,
682 path.stroke.tag-amenity-childcare,
683 path.stroke.tag-amenity-kindergarten,
684 path.stroke.tag-amenity-school,
685 path.stroke.tag-amenity-college,
686 path.stroke.tag-amenity-university {
687 stroke: rgba(255, 255, 148, 0.75);
689 path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
690 path.fill.tag-leisure-pitch.tag-sport-baseball,
691 path.fill.tag-leisure-pitch.tag-sport-softball,
692 path.fill.tag-leisure-track,
693 path.fill.tag-natural-beach,
694 path.fill.tag-natural-sand,
695 path.fill.tag-natural-scrub,
696 path.fill.tag-amenity-childcare,
697 path.fill.tag-amenity-kindergarten,
698 path.fill.tag-amenity-school,
699 path.fill.tag-amenity-college,
700 path.fill.tag-amenity-university {
701 stroke: rgba(255, 255, 148, 0.25);
702 fill: rgba(255, 255, 148, 0.25);
704 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
705 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-baseball,
706 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-softball,
707 .preset-icon-fill path.area.stroke.tag-leisure-track,
708 .preset-icon-fill path.area.stroke.tag-natural-beach,
709 .preset-icon-fill path.area.stroke.tag-natural-sand,
710 .preset-icon-fill path.area.stroke.tag-natural-scrub,
711 .preset-icon-fill path.area.stroke.tag-amenity-childcare,
712 .preset-icon-fill path.area.stroke.tag-amenity-kindergarten,
713 .preset-icon-fill path.area.stroke.tag-amenity-school,
714 .preset-icon-fill path.area.stroke.tag-amenity-college,
715 .preset-icon-fill path.area.stroke.tag-amenity-university {
716 stroke: rgb(232, 232, 0);
718 .pattern-color-beach,
720 .pattern-color-scrub {
721 fill: rgba(255, 255, 148, 0.2);
726 path.stroke.tag-landuse-residential,
727 path.stroke.tag-status-construction {
728 stroke: rgb(196, 189, 25);
730 path.fill.tag-landuse-residential,
731 path.fill.tag-status-construction {
732 stroke: rgba(196, 189, 25, 0.3);
733 fill: rgba(196, 189, 25, 0.3);
735 .pattern-color-construction {
736 fill: rgba(196, 189, 25, 0.3);
741 path.stroke.tag-landuse-retail,
742 path.stroke.tag-landuse-commercial,
743 path.stroke.tag-landuse-landfill,
744 path.stroke.tag-military,
745 path.stroke.tag-landuse-military {
746 stroke: rgb(214, 136, 26);
748 path.fill.tag-landuse-retail,
749 path.fill.tag-landuse-commercial,
750 path.fill.tag-landuse-landfill,
751 path.fill.tag-military,
752 path.fill.tag-landuse-military {
753 stroke: rgba(214, 136, 26, 0.3);
754 fill: rgba(214, 136, 26, 0.3);
756 .pattern-color-landfill {
757 fill: rgba(214, 136, 26, 0.3);
762 path.stroke.tag-landuse-industrial,
763 path.stroke.tag-power-plant {
764 stroke: rgb(228, 164, 245);
766 path.fill.tag-landuse-industrial,
767 path.fill.tag-power-plant {
768 stroke: rgba(228, 164, 245, 0.3);
769 fill: rgba(228, 164, 245, 0.3);
774 path.stroke.tag-natural-wetland {
775 stroke: rgb(153, 225, 170);
777 .preset-icon-fill path.area.fill.tag-natural-wetland {
778 fill: rgba(153, 225, 170, 0.2);
780 .pattern-color-wetland,
781 .pattern-color-wetland_marsh,
782 .pattern-color-wetland_swamp,
783 .pattern-color-wetland_bog,
784 .pattern-color-wetland_reedbed {
785 fill: rgba(153, 225, 170, 0.3);
789 /* Light Green things */
790 path.stroke.tag-landuse-cemetery,
791 path.stroke.tag-landuse-orchard,
792 path.stroke.tag-landuse-vineyard,
793 path.stroke.tag-landuse-meadow,
794 path.stroke.tag-landuse-farmland {
795 stroke: rgb(191, 232, 63);
797 .preset-icon-fill path.area.fill.tag-landuse-cemetery,
798 .preset-icon-fill path.area.fill.tag-landuse-orchard,
799 .preset-icon-fill path.area.fill.tag-landuse-vineyard,
800 .preset-icon-fill path.area.fill.tag-landuse-meadow,
801 .preset-icon-fill path.area.fill.tag-landuse-farmland {
802 fill: rgba(191, 232, 63, 0.2);
804 .pattern-color-cemetery,
805 .pattern-color-cemetery_christian,
806 .pattern-color-cemetery_buddhist,
807 .pattern-color-cemetery_muslim,
808 .pattern-color-cemetery_jewish,
809 .pattern-color-orchard,
810 .pattern-color-vineyard,
811 .pattern-color-meadow,
812 .pattern-color-farmland {
813 fill: rgba(191, 232, 63, 0.2);
818 path.stroke.tag-landuse-farmyard {
819 stroke: rgb(245, 220, 186);
821 path.fill.tag-landuse-farmyard {
822 stroke: rgba(245, 220, 186, 0.3);
823 fill: rgba(245, 220, 186, 0.3);
825 .preset-icon-fill path.area.stroke.tag-landuse-farmyard {
826 stroke: rgb(226, 177, 111);
828 .pattern-color-farmyard {
829 fill: rgba(245, 220, 186, 0.3);
833 /* Dark Gray things */
834 path.stroke.tag-amenity-parking,
835 path.stroke.tag-landuse-railway,
836 path.stroke.tag-landuse-quarry,
837 path.stroke.tag-leisure-pitch.tag-sport-basketball,
838 path.stroke.tag-leisure-pitch.tag-sport-skateboard,
839 path.stroke.tag-man_made-adit,
840 path.stroke.tag-man_made-groyne,
841 path.stroke.tag-man_made-breakwater,
842 path.stroke.tag-natural-bare_rock,
843 path.stroke.tag-natural-cave_entrance,
844 path.stroke.tag-natural-cliff,
845 path.stroke.tag-natural-rock,
846 path.stroke.tag-natural-scree,
847 path.stroke.tag-natural-stone,
848 path.stroke.tag-natural-shingle,
849 path.stroke.tag-waterway-dam,
850 path.stroke.tag-waterway-weir {
851 stroke: rgb(170, 170, 170);
853 path.fill.tag-amenity-parking,
854 path.fill.tag-landuse-railway,
855 path.fill.tag-landuse-quarry,
856 path.fill.tag-leisure-pitch.tag-sport-basketball,
857 path.fill.tag-leisure-pitch.tag-sport-skateboard,
858 path.fill.tag-man_made-adit,
859 path.fill.tag-man_made-groyne,
860 path.fill.tag-man_made-breakwater,
861 path.fill.tag-natural-bare_rock,
862 path.fill.tag-natural-cliff,
863 path.fill.tag-natural-cave_entrance,
864 path.fill.tag-natural-rock,
865 path.fill.tag-natural-scree,
866 path.fill.tag-natural-stone,
867 path.fill.tag-natural-shingle,
868 path.fill.tag-waterway-dam,
869 path.fill.tag-waterway-weir {
870 stroke: rgba(140, 140, 140, 0.5);
871 fill: rgba(140, 140, 140, 0.5);
873 .pattern-color-quarry {
874 fill: rgba(140, 140, 140, 0.5);
878 /* Light gray overrides */
879 path.stroke.tag-natural-cave_entrance,
880 path.stroke.tag-natural-glacier {
881 stroke: rgb(170, 170, 170);
883 path.fill.tag-natural-cave_entrance,
884 path.fill.tag-natural-glacier {
885 stroke: rgba(255, 255, 255, 0.3);
886 fill: rgba(255, 255, 255, 0.3);
888 .preset-icon-fill path.fill.tag-natural-cave_entrance,
889 .preset-icon-fill path.fill.tag-natural-glacier {
890 stroke: rgb(170, 170, 170);
891 fill: rgba(170, 170, 170, 0.3);
893 preset-icon-container/* highways */
896 .preset-icon .icon.tag-highway.other-line {
900 path.line.casing.tag-highway {
903 path.line.stroke.tag-highway {
908 path.line.shadow.tag-highway {
911 path.line.casing.tag-highway {
914 path.line.stroke.tag-highway {
917 .low-zoom path.line.shadow.tag-highway {
920 .low-zoom path.line.casing.tag-highway {
923 .low-zoom path.line.stroke.tag-highway {
927 .preset-icon .icon.tag-highway-motorway,
928 .preset-icon .icon.tag-highway-motorway_link {
932 path.line.stroke.tag-highway-motorway,
933 path.line.stroke.tag-highway-motorway_link,
934 path.line.stroke.tag-motorway {
937 path.line.casing.tag-highway-motorway,
938 path.line.casing.tag-highway-motorway_link,
939 path.line.casing.tag-motorway {
943 .preset-icon .icon.tag-highway-trunk,
944 .preset-icon .icon.tag-highway-trunk_link {
948 path.line.stroke.tag-highway-trunk,
949 path.line.stroke.tag-highway-trunk_link,
950 path.line.stroke.tag-trunk {
953 path.line.casing.tag-highway-trunk,
954 path.line.casing.tag-highway-trunk_link,
955 path.line.casing.tag-trunk {
959 .preset-icon .icon.tag-highway-primary,
960 .preset-icon .icon.tag-highway-primary_link {
964 path.line.stroke.tag-highway-primary,
965 path.line.stroke.tag-highway-primary_link,
966 path.line.stroke.tag-primary {
969 path.line.casing.tag-highway-primary,
970 path.line.casing.tag-highway-primary_link,
971 path.line.casing.tag-primary {
975 .preset-icon .icon.tag-highway-secondary,
976 .preset-icon .icon.tag-highway-secondary_link {
980 path.line.stroke.tag-highway-secondary,
981 path.line.stroke.tag-highway-secondary_link,
982 path.line.stroke.tag-secondary {
985 path.line.casing.tag-highway-secondary,
986 path.line.casing.tag-highway-secondary_link,
987 path.line.casing.tag-secondary {
991 .preset-icon .icon.tag-highway-tertiary,
992 .preset-icon .icon.tag-highway-tertiary_link {
996 path.line.stroke.tag-highway-tertiary,
997 path.line.stroke.tag-highway-tertiary_link,
998 path.line.stroke.tag-tertiary {
1001 path.line.casing.tag-highway-tertiary,
1002 path.line.casing.tag-highway-tertiary_link,
1003 path.line.casing.tag-tertiary {
1007 .legacy-carto .preset-icon .icon.tag-highway-motorway,
1008 .legacy-carto .preset-icon .icon.tag-highway-motorway_link {
1012 .legacy-carto path.line.stroke.tag-highway-motorway,
1013 .legacy-carto path.line.stroke.tag-highway-motorway_link,
1014 .legacy-carto path.line.stroke.tag-motorway {
1017 .legacy-carto path.line.casing.tag-highway-motorway,
1018 .legacy-carto path.line.casing.tag-highway-motorway_link,
1019 .legacy-carto path.line.casing.tag-motorway {
1023 .legacy-carto .preset-icon .icon.tag-highway-trunk,
1024 .legacy-carto .preset-icon .icon.tag-highway-trunk_link {
1028 .legacy-carto path.line.stroke.tag-highway-trunk,
1029 .legacy-carto path.line.stroke.tag-highway-trunk_link,
1030 .legacy-carto path.line.stroke.tag-trunk {
1033 .legacy-carto path.line.casing.tag-highway-trunk,
1034 .legacy-carto path.line.casing.tag-highway-trunk_link,
1035 .legacy-carto path.line.casing.tag-trunk {
1039 .legacy-carto .preset-icon .icon.tag-highway-primary,
1040 .legacy-carto .preset-icon .icon.tag-highway-primary_link {
1044 .legacy-carto path.line.stroke.tag-highway-primary,
1045 .legacy-carto path.line.stroke.tag-highway-primary_link,
1046 .legacy-carto path.line.stroke.tag-primary {
1049 .legacy-carto path.line.casing.tag-highway-primary,
1050 .legacy-carto path.line.casing.tag-highway-primary_link,
1051 .legacy-carto path.line.casing.tag-primary {
1055 .legacy-carto .preset-icon .icon.tag-highway-secondary,
1056 .legacy-carto .preset-icon .icon.tag-highway-secondary_link {
1060 .legacy-carto path.line.stroke.tag-highway-secondary,
1061 .legacy-carto path.line.stroke.tag-highway-secondary_link,
1062 .legacy-carto path.line.stroke.tag-secondary {
1065 .legacy-carto path.line.casing.tag-highway-secondary,
1066 .legacy-carto path.line.casing.tag-highway-secondary_link,
1067 .legacy-carto path.line.casing.tag-secondary {
1071 .legacy-carto .preset-icon .icon.tag-highway-tertiary,
1072 .legacy-carto .preset-icon .icon.tag-highway-tertiary_link {
1076 .legacy-carto path.line.stroke.tag-highway-tertiary,
1077 .legacy-carto path.line.stroke.tag-highway-tertiary_link,
1078 .legacy-carto path.line.stroke.tag-tertiary {
1081 .legacy-carto path.line.casing.tag-highway-tertiary,
1082 .legacy-carto path.line.casing.tag-highway-tertiary_link,
1083 .legacy-carto path.line.casing.tag-tertiary {
1087 .preset-icon .icon.tag-highway-residential {
1091 path.line.stroke.tag-highway-residential,
1092 path.line.stroke.tag-residential {
1095 path.line.casing.tag-highway-residential,
1096 path.line.casing.tag-residential {
1100 .preset-icon .icon.tag-highway-unclassified {
1104 path.line.stroke.tag-highway-unclassified,
1105 path.line.stroke.tag-unclassified {
1108 path.line.casing.tag-highway-unclassified,
1109 path.line.casing.tag-unclassified {
1114 /* narrow highways */
1115 path.line.shadow.tag-highway-living_street,
1116 path.line.shadow.tag-highway-bus_guideway,
1117 path.line.shadow.tag-highway-service,
1118 path.line.shadow.tag-highway-track,
1119 path.line.shadow.tag-highway-road {
1122 path.line.casing.tag-highway-living_street,
1123 path.line.casing.tag-highway-bus_guideway,
1124 path.line.casing.tag-highway-service,
1125 path.line.casing.tag-highway-track,
1126 path.line.casing.tag-highway-road {
1129 path.line.stroke.tag-highway-living_street,
1130 path.line.stroke.tag-highway-bus_guideway,
1131 path.line.stroke.tag-highway-service,
1132 path.line.stroke.tag-highway-track,
1133 path.line.stroke.tag-highway-road {
1137 path.line.shadow.tag-highway-path,
1138 path.line.shadow.tag-highway-footway,
1139 path.line.shadow.tag-highway-cycleway,
1140 path.line.shadow.tag-highway-bridleway,
1141 path.line.shadow.tag-highway-corridor,
1142 path.line.shadow.tag-highway-pedestrian,
1143 path.line.shadow.tag-highway-steps {
1146 path.line.casing.tag-highway-path,
1147 path.line.casing.tag-highway-footway,
1148 path.line.casing.tag-highway-cycleway,
1149 path.line.casing.tag-highway-bridleway,
1150 path.line.casing.tag-highway-corridor,
1151 path.line.casing.tag-highway-pedestrian,
1152 path.line.casing.tag-highway-steps {
1155 path.line.stroke.tag-highway-path,
1156 path.line.stroke.tag-highway-footway,
1157 path.line.stroke.tag-highway-cycleway,
1158 path.line.stroke.tag-highway-bridleway,
1159 path.line.stroke.tag-highway-corridor,
1160 path.line.stroke.tag-highway-pedestrian,
1161 path.line.stroke.tag-highway-steps {
1165 .low-zoom path.line.shadow.tag-highway-living_street,
1166 .low-zoom path.line.shadow.tag-highway-bus_guideway,
1167 .low-zoom path.line.shadow.tag-highway-service,
1168 .low-zoom path.line.shadow.tag-highway-track,
1169 .low-zoom path.line.shadow.tag-highway-road {
1172 .low-zoom path.line.casing.tag-highway-living_street,
1173 .low-zoom path.line.casing.tag-highway-bus_guideway,
1174 .low-zoom path.line.casing.tag-highway-service,
1175 .low-zoom path.line.casing.tag-highway-track,
1176 .low-zoom path.line.casing.tag-highway-road {
1179 .low-zoom path.line.stroke.tag-highway-living_street,
1180 .low-zoom path.line.stroke.tag-highway-bus_guideway,
1181 .low-zoom path.line.stroke.tag-highway-service,
1182 .low-zoom path.line.stroke.tag-highway-track,
1183 .low-zoom path.line.stroke.tag-highway-road {
1187 .low-zoom path.line.shadow.tag-highway-path,
1188 .low-zoom path.line.shadow.tag-highway-footway,
1189 .low-zoom path.line.shadow.tag-highway-cycleway,
1190 .low-zoom path.line.shadow.tag-highway-bridleway,
1191 .low-zoom path.line.shadow.tag-highway-corridor,
1192 .low-zoom path.line.shadow.tag-highway-pedestrian,
1193 .low-zoom path.line.shadow.tag-highway-steps {
1196 .low-zoom path.line.casing.tag-highway-path,
1197 .low-zoom path.line.casing.tag-highway-footway,
1198 .low-zoom path.line.casing.tag-highway-cycleway,
1199 .low-zoom path.line.casing.tag-highway-bridleway,
1200 .low-zoom path.line.casing.tag-highway-corridor,
1201 .low-zoom path.line.casing.tag-highway-pedestrian,
1202 .low-zoom path.line.casing.tag-highway-steps {
1205 .low-zoom path.line.stroke.tag-highway-path,
1206 .low-zoom path.line.stroke.tag-highway-footway,
1207 .low-zoom path.line.stroke.tag-highway-cycleway,
1208 .low-zoom path.line.stroke.tag-highway-bridleway,
1209 .low-zoom path.line.stroke.tag-highway-corridor,
1210 .low-zoom path.line.stroke.tag-highway-pedestrian,
1211 .low-zoom path.line.stroke.tag-highway-steps {
1215 /* living streets */
1216 .preset-icon .icon.tag-highway-living-street {
1220 path.line.stroke.tag-highway-living_street,
1221 path.line.stroke.tag-living_street {
1224 path.line.casing.tag-highway-living_street,
1225 path.line.casing.tag-living_street {
1229 /* pedestrian streets and corridors */
1230 .preset-icon .icon.tag-highway-corridor,
1231 .preset-icon .icon.tag-highway-pedestrian {
1235 path.line.stroke.tag-highway-corridor,
1236 path.line.stroke.tag-highway-pedestrian,
1237 path.line.stroke.tag-corridor,
1238 path.line.stroke.tag-pedestrian {
1240 stroke-dasharray: 2, 8;
1242 .low-zoom path.line.stroke.tag-highway-corridor,
1243 .low-zoom path.line.stroke.tag-highway-pedestrian,
1244 .low-zoom path.line.stroke.tag-corridor,
1245 .low-zoom path.line.stroke.tag-pedestrian {
1246 stroke-dasharray: 1, 4;
1248 path.line.casing.tag-highway-corridor,
1249 path.line.casing.tag-highway-pedestrian,
1250 path.line.casing.tag-corridor,
1251 path.line.casing.tag-pedestrian,
1252 path.line.casing.tag-highway-corridor.tag-unpaved,
1253 path.line.casing.tag-highway-pedestrian.tag-unpaved,
1254 path.line.casing.tag-corridor.tag-unpaved,
1255 path.line.casing.tag-pedestrian.tag-unpaved {
1257 stroke-linecap: round;
1258 stroke-dasharray: none;
1262 .preset-icon .icon.tag-highway-road {
1266 path.line.stroke.tag-highway-road,
1267 path.line.stroke.tag-road {
1270 path.line.casing.tag-highway-road,
1271 path.line.casing.tag-road {
1276 .preset-icon .icon.tag-highway-service {
1280 path.line.stroke.tag-highway-service,
1281 path.line.stroke.tag-service {
1284 path.line.casing.tag-highway-service,
1285 path.line.casing.tag-service {
1289 /* special service roads and bus guideways */
1290 /* with `service=* tag` (e.g. parking_aisle, alley, drive-through) */
1291 .preset-icon .icon.tag-highway-bus_guideway,
1292 .preset-icon .icon.tag-highway-service.tag-service {
1296 path.line.stroke.tag-highway-bus_guideway,
1297 path.line.stroke.tag-highway-service.tag-service,
1298 path.line.stroke.tag-service.tag-service {
1301 path.line.casing.tag-highway-bus_guideway,
1302 path.line.casing.tag-highway-service.tag-service,
1303 path.line.casing.tag-service.tag-service {
1307 /* unmaintained track roads */
1308 path.line.stroke.tag-highway-track,
1309 path.line.stroke.tag-track {
1312 path.line.casing.tag-highway-track,
1313 path.line.casing.tag-track {
1318 path.line.stroke.tag-highway-path,
1319 path.line.stroke.tag-highway-footway,
1320 path.line.stroke.tag-highway-cycleway,
1321 path.line.stroke.tag-highway-bridleway {
1322 stroke-linecap: butt;
1323 stroke-dasharray: 6, 6;
1325 .low-zoom path.line.stroke.tag-highway-path,
1326 .low-zoom path.line.stroke.tag-highway-footway,
1327 .low-zoom path.line.stroke.tag-highway-cycleway,
1328 .low-zoom path.line.stroke.tag-highway-bridleway {
1329 stroke-linecap: butt;
1330 stroke-dasharray: 3, 3;
1333 /* style for features that should have highway=footway but don't yet */
1334 path.line.stroke.tag-crossing,
1335 path.line.stroke.tag-public_transport-platform,
1336 path.line.stroke.tag-highway-platform,
1337 path.line.stroke.tag-railway-platform,
1338 path.line.stroke.tag-man_made-pier {
1342 path.line.casing.tag-highway-path,
1343 path.line.casing.tag-highway-path.tag-unpaved,
1344 path.line.casing.tag-highway-footway.tag-public_transport-platform,
1345 path.line.casing.tag-highway-footway.tag-man_made-pier,
1346 path.line.casing.tag-highway.tag-crossing {
1348 stroke-linecap: round;
1349 stroke-dasharray: none;
1351 path.line.casing.tag-highway-footway,
1352 path.line.casing.tag-highway-cycleway,
1353 path.line.casing.tag-highway-bridleway,
1354 path.line.casing.tag-highway-footway.tag-unpaved,
1355 path.line.casing.tag-highway-cycleway.tag-unpaved,
1356 path.line.casing.tag-highway-bridleway.tag-unpaved {
1358 stroke-linecap: round;
1359 stroke-dasharray: none;
1362 .preset-icon .icon.tag-highway-path,
1363 .preset-icon .icon.tag-highway-footway.tag-public_transport-platform,
1364 .preset-icon .icon.tag-highway-footway.tag-man_made-pier {
1368 path.line.stroke.tag-highway-path {
1373 .preset-icon .icon.tag-route-foot,
1374 .preset-icon .icon.tag-route-hiking,
1375 .preset-icon .icon.tag-highway-footway {
1379 path.line.stroke.tag-highway-footway,
1380 path.line.stroke.tag-highway_bus_stop,
1381 .preset-icon-container path.casing.tag-highway-footway {
1384 .preset-icon .icon.tag-highway-footway.tag-footway-sidewalk {
1387 path.stroke.tag-highway-footway.tag-footway-sidewalk,
1388 .preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk {
1391 .preset-icon-container path.stroke.tag-highway-footway:not(.tag-crossing-marked):not(.tag-crossing-unmarked):not(.tag-man_made-pier):not(.tag-public_transport-platform) {
1396 .preset-icon .icon.tag-route-bicycle,
1397 .preset-icon .icon.tag-highway-cycleway {
1401 path.line.stroke.tag-highway-cycleway,
1402 .preset-icon-container path.casing.tag-highway-cycleway {
1405 .preset-icon-container path.stroke.tag-highway-cycleway:not(.tag-crossing) {
1410 .preset-icon .icon.tag-route-horse,
1411 .preset-icon .icon.tag-highway-bridleway {
1415 path.line.stroke.tag-highway-bridleway,
1416 .preset-icon-container path.casing.tag-highway-bridleway {
1419 .preset-icon-container path.stroke.tag-highway-bridleway {
1424 .preset-icon .icon.tag-leisure-track {
1425 color: rgb(229, 184, 43);
1427 path.line.stroke.tag-leisure-track,
1428 .preset-icon-container path.casing.tag-highway.tag-leisure-track {
1429 stroke: rgb(229, 184, 43);
1431 .preset-icon-container path.line.stroke.tag-highway.tag-leisure-track {
1436 .preset-icon .icon.tag-highway-steps {
1440 path.line.stroke.tag-highway-steps {
1441 stroke-linecap: butt;
1442 stroke-dasharray: 3, 3;
1444 .low-zoom path.line.stroke.tag-highway-steps {
1445 stroke-dasharray: 2, 2;
1447 path.line.casing.tag-highway-steps,
1448 path.line.casing.tag-highway-steps.tag-unpaved {
1450 stroke-linecap: round;
1451 stroke-dasharray: none;
1453 path.line.stroke.tag-highway-steps,
1454 .preset-icon-container path.line.casing.tag-highway-steps {
1457 .preset-icon-container path.line.stroke.tag-highway-steps {
1463 path.line.stroke.tag-highway.tag-crossing-unmarked {
1464 stroke-dasharray: 6, 4;
1466 .low-zoom path.line.stroke.tag-highway.tag-crossing-unmarked {
1467 stroke-dasharray: 3, 2;
1469 path.line.stroke.tag-highway.tag-crossing-marked {
1470 stroke-dasharray: 6, 3;
1472 .low-zoom path.line.stroke.tag-highway.tag-crossing-marked {
1473 stroke-dasharray: 3, 1.5;
1475 path.line.stroke.tag-highway-footway.tag-crossing-marked {
1478 .preset-icon .icon.tag-highway-footway.tag-crossing-marked {
1481 path.line.stroke.tag-highway-footway.tag-crossing-unmarked {
1484 .preset-icon .icon.tag-highway-footway.tag-crossing-unmarked {
1487 path.line.stroke.tag-highway-cycleway.tag-crossing-marked {
1490 .preset-icon .icon.tag-highway-cycleway.tag-crossing-marked {
1495 /* highway midpoints */
1496 g.midpoint.tag-highway-corridor .fill,
1497 g.midpoint.tag-highway-pedestrian .fill,
1498 g.midpoint.tag-highway-steps .fill,
1499 g.midpoint.tag-highway-path .fill,
1500 g.midpoint.tag-highway-footway .fill,
1501 g.midpoint.tag-highway-cycleway .fill,
1502 g.midpoint.tag-highway-bridleway .fill {
1511 path.area.stroke.tag-aeroway,
1512 .low-zoom path.area.stroke.tag-aeroway {
1514 stroke-dasharray: none;
1517 path.area.fill.tag-aeroway-runway {
1518 stroke: rgba(0, 0, 0, 0.6);
1519 fill: rgba(0, 0, 0, 0.6);
1523 /* narrow aeroways (taxiway) */
1524 path.line.shadow.tag-aeroway-taxiway,
1525 path.line.shadow.tag-taxiway {
1528 path.line.casing.tag-aeroway-taxiway,
1529 path.line.casing.tag-taxiway {
1532 path.line.stroke.tag-aeroway-taxiway,
1533 path.line.stroke.tag-taxiway {
1536 .low-zoom path.line.shadow.tag-aeroway-taxiway,
1537 .low-zoom path.line.shadow.tag-taxiway {
1540 .low-zoom path.line.casing.tag-aeroway-taxiway,
1541 .low-zoom path.line.casing.tag-taxiway {
1544 .low-zoom path.line.stroke.tag-aeroway-taxiway,
1545 .low-zoom path.line.stroke.tag-taxiway {
1549 .preset-icon .icon.tag-aeroway-taxiway,
1550 .preset-icon .icon.tag-taxiway {
1554 path.line.stroke.tag-aeroway-taxiway,
1555 path.line.stroke.tag-taxiway {
1558 path.line.casing.tag-aeroway-taxiway,
1559 path.line.casing.tag-taxiway {
1563 /* wide aeroways (runway) */
1564 .preset-icon .icon.tag-aeroway-runway,
1565 .preset-icon .icon.tag-runway {
1569 path.line.shadow.tag-aeroway-runway {
1572 path.line.casing.tag-aeroway-runway {
1575 stroke-linecap: square;
1577 path.line.stroke.tag-aeroway-runway {
1580 stroke-linecap: butt;
1581 stroke-dasharray: 24, 48;
1583 .low-zoom path.line.shadow.tag-aeroway-runway {
1586 .low-zoom path.line.casing.tag-aeroway-runway {
1589 .low-zoom path.line.stroke.tag-aeroway-runway {
1591 stroke-dasharray: 12, 24;
1593 .preset-icon-container path.line.stroke.tag-aeroway-runway {
1594 stroke-dasharray: 0, 14, 8, 14;
1599 .preset-icon .icon.tag-railway.other-line {
1603 .preset-icon .icon.tag-railway {
1610 path.line.shadow.tag-railway {
1613 path.line.casing.tag-railway {
1616 path.line.stroke.tag-railway {
1618 stroke-linecap: butt;
1619 stroke-dasharray: 12,12;
1621 .low-zoom path.line.shadow.tag-railway {
1624 .low-zoom path.line.casing.tag-railway {
1627 .low-zoom path.line.stroke.tag-railway {
1629 stroke-dasharray: 6,6;
1631 .preset-icon-container path.line.stroke.tag-railway:not(.tag-status) {
1632 stroke-dasharray: 6;
1635 path.line.casing.tag-railway.tag-railway-platform {
1638 path.line.stroke.tag-railway.tag-railway-platform {
1639 stroke-dasharray: none;
1643 path.line.casing.tag-railway {
1646 path.line.stroke.tag-railway {
1651 .preset-icon .icon.tag-railway-disused,
1652 .preset-icon .icon.tag-railway-abandoned {
1656 path.line.casing.tag-railway-disused,
1657 path.line.casing.tag-railway-abandoned {
1660 path.line.stroke.tag-railway-disused,
1661 path.line.stroke.tag-railway-abandoned {
1666 path.line.casing.tag-railway-subway {
1669 path.line.stroke.tag-railway-subway {
1675 .preset-icon .icon.tag-waterway.other-line {
1679 .preset-icon .icon.tag-type-waterway:not(.tag-waterway-dam),
1680 .preset-icon .icon.tag-waterway:not(.tag-waterway-dam) {
1687 path.area.stroke.tag-waterway-dock,
1688 path.area.stroke.tag-waterway-boatyard,
1689 path.area.stroke.tag-waterway-fuel {
1693 path.area.casing.tag-waterway-dock,
1694 path.area.casing.tag-waterway-boatyard,
1695 path.area.casing.tag-waterway-fuel {
1698 path.area.fill.tag-waterway-dock,
1699 path.area.fill.tag-waterway-boatyard,
1700 path.area.fill.tag-waterway-fuel {
1701 stroke: rgba(255, 255, 255, 0.3);
1702 fill: rgba(255, 255, 255, 0.3);
1706 path.line.fill.tag-waterway:not(.tag-waterway-dam) {
1707 stroke: rgba(119, 211, 222, 0.3);
1708 fill: rgba(119, 211, 222, 0.3);
1710 path.line.casing.tag-waterway:not(.tag-waterway-dam) {
1713 path.line.stroke.tag-waterway:not(.tag-waterway-dam) {
1718 /* narrow waterways (default) */
1719 path.line.shadow.tag-waterway {
1722 path.line.casing.tag-waterway {
1725 path.line.stroke.tag-waterway {
1729 .low-zoom path.line.shadow.tag-waterway {
1732 .low-zoom path.line.casing.tag-waterway {
1735 .low-zoom path.line.stroke.tag-waterway {
1740 /* wide waterways (river) */
1741 path.line.shadow.tag-waterway-river {
1744 path.line.casing.tag-waterway-river {
1747 path.line.stroke.tag-waterway-river {
1751 .low-zoom path.line.shadow.tag-waterway-river {
1754 .low-zoom path.line.casing.tag-waterway-river {
1757 .low-zoom path.line.stroke.tag-waterway-river {
1763 .preset-icon .icon.tag-waterway-ditch {
1766 path.line.stroke.tag-waterway-ditch {
1770 /* narrow width miscellanous things */
1771 path.line.shadow.tag-aerialway,
1772 path.line.shadow.tag-attraction-summer_toboggan,
1773 path.line.shadow.tag-attraction-water_slide,
1774 path.line.shadow.tag-golf-cartpath,
1775 path.line.shadow.tag-man_made-pipeline,
1776 path.line.shadow.tag-natural-tree_row,
1777 path.line.shadow.tag-piste {
1780 path.line.casing.tag-aerialway,
1781 path.line.casing.tag-attraction-summer_toboggan,
1782 path.line.casing.tag-attraction-water_slide,
1783 path.line.casing.tag-golf-cartpath,
1784 path.line.casing.tag-man_made-pipeline,
1785 path.line.casing.tag-natural-tree_row,
1786 path.line.casing.tag-piste {
1789 path.line.stroke.tag-aerialway,
1790 path.line.stroke.tag-attraction-summer_toboggan,
1791 path.line.stroke.tag-attraction-water_slide,
1792 path.line.stroke.tag-golf-cartpath,
1793 path.line.stroke.tag-man_made-pipeline,
1794 path.line.stroke.tag-natural-tree_row,
1795 path.line.stroke.tag-piste {
1799 .low-zoom path.line.shadow.tag-aerialway,
1800 .low-zoom path.line.shadow.tag-attraction-summer_toboggan,
1801 .low-zoom path.line.shadow.tag-attraction-water_slide,
1802 .low-zoom path.line.shadow.tag-golf-cartpath,
1803 .low-zoom path.line.shadow.tag-man_made-pipeline,
1804 .low-zoom path.line.shadow.tag-natural-tree_row,
1805 .low-zoom path.line.shadow.tag-piste {
1808 .low-zoom path.line.casing.tag-aerialway,
1809 .low-zoom path.line.casing.tag-attraction-summer_toboggan,
1810 .low-zoom path.line.casing.tag-attraction-water_slide,
1811 .low-zoom path.line.casing.tag-golf-cartpath,
1812 .low-zoom path.line.casing.tag-man_made-pipeline,
1813 .low-zoom path.line.casing.tag-natural-tree_row,
1814 .low-zoom path.line.casing.tag-piste {
1817 .low-zoom path.line.stroke.tag-aerialway,
1818 .low-zoom path.line.stroke.tag-attraction-summer_toboggan,
1819 .low-zoom path.line.stroke.tag-attraction-water_slide,
1820 .low-zoom path.line.stroke.tag-golf-cartpath,
1821 .low-zoom path.line.stroke.tag-man_made-pipeline,
1822 .low-zoom path.line.stroke.tag-natural-tree_row,
1823 .low-zoom path.line.stroke.tag-piste {
1829 .preset-icon .icon.tag-route-ferry {
1833 path.line.shadow.tag-route-ferry {
1836 path.line.stroke.tag-route-ferry {
1838 stroke-linecap: butt;
1839 stroke-dasharray: 12,8;
1841 .low-zoom path.line.shadow.tag-route-ferry {
1844 .low-zoom path.line.stroke.tag-route-ferry,
1845 .preset-icon-container path.line.stroke.tag-route-ferry {
1847 stroke-dasharray: 6,4;
1849 path.line.stroke.tag-route-ferry {
1852 path.line.casing.tag-route-ferry {
1858 path.line.stroke.tag-aerialway {
1861 path.line.casing.tag-aerialway {
1867 path.line.stroke.tag-piste {
1870 path.line.casing.tag-piste {
1876 path.line.stroke.tag-attraction-summer_toboggan {
1879 path.line.casing.tag-attraction-summer_toboggan {
1883 path.line.stroke.tag-attraction-water_slide {
1886 path.line.casing.tag-attraction-water_slide {
1891 /* golf cartpaths (like service roads) */
1892 .preset-icon .icon.tag-golf-cartpath {
1896 path.line.stroke.tag-golf-cartpath {
1899 path.line.casing.tag-golf-cartpath {
1904 /* power and pipeline */
1905 .preset-icon .icon.tag-man_made-pipeline,
1906 .preset-icon .icon.tag-power {
1913 path.line.stroke.tag-power {
1917 path.line.casing.tag-power {
1923 path.line.stroke.tag-man_made-pipeline {
1925 stroke-linecap: butt;
1926 stroke-dasharray: 80, 1.25;
1928 path.line.casing.tag-man_made-pipeline {
1931 .low-zoom path.line.stroke.tag-man_made-pipeline {
1932 stroke-dasharray: 40, 1;
1934 .preset-icon-container path.line.stroke.tag-man_made-pipeline {
1935 stroke-dasharray: 19, 1;
1940 path.line.stroke.tag-boundary {
1943 stroke-linecap: butt;
1944 stroke-dasharray: 20, 5, 5, 5;
1946 path.line.casing.tag-boundary {
1951 path.line.casing.tag-boundary-protected_area,
1952 path.line.casing.tag-boundary-national_park {
1957 /* barriers and similar */
1958 path.line.stroke.tag-barrier:not(.tag-barrier-hedge):not(.tag-waterway) {
1961 .preset-icon-container path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
1962 stroke: rgb(170, 170, 170);
1964 path.line.casing.tag-natural,
1965 path.line.casing.tag-barrier:not(.tag-waterway),
1966 path.line.casing.tag-man_made-groyne,
1967 path.line.casing.tag-man_made-breakwater {
1970 path.line.stroke.tag-barrier:not(.tag-waterway),
1971 path.line.stroke.tag-man_made-groyne,
1972 path.line.stroke.tag-man_made-breakwater {
1974 stroke-linecap: round;
1975 stroke-dasharray: 15, 5, 1, 5;
1977 .low-zoom path.line.stroke.tag-barrier:not(.tag-waterway),
1978 .low-zoom path.line.stroke.tag-man_made-groyne,
1979 .low-zoom path.line.stroke.tag-man_made-breakwater {
1981 stroke-linecap: butt;
1982 stroke-dasharray: 8, 2, 2, 2;
1984 .preset-icon-container path.line.stroke.tag-barrier,
1985 .preset-icon-container path.line.stroke.tag-man_made-groyne,
1986 .preset-icon-container path.line.stroke.tag-man_made-breakwater {
1987 stroke-dasharray: 1, 4, 6, 4;
1989 path.line.stroke.tag-barrier.tag-barrier-wall,
1990 path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
1991 path.line.stroke.tag-barrier.tag-barrier-city_wall {
1992 stroke-linecap: butt;
1993 stroke-dasharray: 16, 3, 9, 3;
1995 .low-zoom path.line.stroke.tag-barrier.tag-barrier-wall,
1996 .low-zoom path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
1997 .low-zoom path.line.stroke.tag-barrier.tag-barrier-city_wall,
1998 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-wall,
1999 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-retaining_wall,
2000 .preset-icon-container path.line.stroke.tag-barrier.tag-barrier-city_wall {
2001 stroke-dasharray: 8, 1, 4, 1;
2006 path.line.casing.tag-bridge {
2007 stroke-opacity: 0.6;
2008 stroke: #000 !important;
2009 stroke-linecap: butt;
2010 stroke-dasharray: none;
2012 path.line.shadow.tag-bridge {
2015 path.line.casing.tag-bridge {
2018 .low-zoom path.line.shadow.tag-bridge {
2021 .low-zoom path.line.casing.tag-bridge {
2025 path.line.shadow.tag-railway.tag-bridge,
2026 path.line.shadow.tag-highway-living_street.tag-bridge,
2027 path.line.shadow.tag-highway-path.tag-bridge,
2028 path.line.shadow.tag-highway-corridor.tag-bridge,
2029 path.line.shadow.tag-highway-pedestrian.tag-bridge,
2030 path.line.shadow.tag-highway-service.tag-bridge,
2031 path.line.shadow.tag-highway-track.tag-bridge,
2032 path.line.shadow.tag-highway-steps.tag-bridge,
2033 path.line.shadow.tag-highway-footway.tag-bridge,
2034 path.line.shadow.tag-highway-cycleway.tag-bridge,
2035 path.line.shadow.tag-highway-bridleway.tag-bridge {
2038 path.line.casing.tag-railway.tag-bridge,
2039 path.line.casing.tag-highway-living_street.tag-bridge,
2040 path.line.casing.tag-highway-path.tag-bridge,
2041 path.line.casing.tag-highway-corridor.tag-bridge,
2042 path.line.casing.tag-highway-pedestrian.tag-bridge,
2043 path.line.casing.tag-highway-service.tag-bridge,
2044 path.line.casing.tag-highway-track.tag-bridge,
2045 path.line.casing.tag-highway-steps.tag-bridge,
2046 path.line.casing.tag-highway-footway.tag-bridge,
2047 path.line.casing.tag-highway-cycleway.tag-bridge,
2048 path.line.casing.tag-highway-bridleway.tag-bridge {
2052 .low-zoom path.line.shadow.tag-railway.tag-bridge,
2053 .low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
2054 .low-zoom path.line.shadow.tag-highway-path.tag-bridge,
2055 .low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
2056 .low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
2057 .low-zoom path.line.shadow.tag-highway-service.tag-bridge,
2058 .low-zoom path.line.shadow.tag-highway-track.tag-bridge,
2059 .low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
2060 .low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
2061 .low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
2062 .low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
2065 .low-zoom path.line.casing.tag-railway.tag-bridge,
2066 .low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
2067 .low-zoom path.line.casing.tag-highway-path.tag-bridge,
2068 .low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
2069 .low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
2070 .low-zoom path.line.casing.tag-highway-service.tag-bridge,
2071 .low-zoom path.line.casing.tag-highway-track.tag-bridge,
2072 .low-zoom path.line.casing.tag-highway-steps.tag-bridge,
2073 .low-zoom path.line.casing.tag-highway-footway.tag-bridge,
2074 .low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
2075 .low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
2081 path.line.stroke.tag-tunnel,
2082 path.line.stroke.tag-location-underground,
2083 path.line.stroke.tag-location-underwater {
2084 stroke-opacity: 0.3;
2086 path.line.casing.tag-tunnel,
2087 path.line.casing.tag-location-underground,
2088 path.line.stroke.tag-location-underwater {
2089 stroke-opacity: 0.5;
2090 stroke-linecap: butt;
2091 stroke-dasharray: none;
2095 /* embankments / cuttings */
2096 path.line.shadow.tag-embankment,
2097 path.line.shadow.tag-cutting {
2100 path.line.casing.tag-embankment,
2101 path.line.casing.tag-cutting {
2102 stroke-opacity: 0.5;
2105 stroke-dasharray: 2, 4;
2106 stroke-linecap: butt;
2109 .low-zoom path.line.shadow.tag-embankment,
2110 .low-zoom path.line.shadow.tag-cutting {
2113 .low-zoom path.line.casing.tag-embankment,
2114 .low-zoom path.line.casing.tag-cutting {
2119 /* Surface - unpaved */
2120 path.line.casing.tag-unpaved {
2122 stroke-linecap: butt;
2123 stroke-dasharray: 4, 3;
2125 .low-zoom path.line.casing.tag-unpaved {
2126 stroke-dasharray: 3, 2;
2128 path.line.casing.tag-bridge.tag-unpaved {
2130 stroke-dasharray: 4, 3;
2132 .low-zoom path.line.casing.tag-bridge.tag-unpaved {
2134 stroke-dasharray: 3, 2;
2138 /* Status (e.g. proposed, abandoned) */
2139 path.area.stroke.tag-status,
2140 path.line.stroke.tag-status,
2141 path.area.casing.tag-status,
2142 path.line.casing.tag-status {
2143 stroke-linecap: butt;
2144 stroke-dasharray: 7, 3;
2146 .low-zoom path.area.stroke.tag-status,
2147 .low-zoom path.line.stroke.tag-status,
2148 .low-zoom path.area.casing.tag-status,
2149 .low-zoom path.line.casing.tag-status {
2150 stroke-dasharray: 5, 2;
2153 /* Road Closed Status */
2154 .preset-icon .icon.tag-highway.tag-status-construction {
2158 path.line.shadow.tag-highway.tag-status.tag-status-construction {
2161 path.line.casing.tag-highway.tag-status.tag-status-construction {
2163 stroke-linecap: butt;
2164 stroke-dasharray: none
2166 path.line.stroke.tag-highway.tag-status.tag-status-construction {
2168 stroke-linecap: butt;
2169 stroke-dasharray: 10, 10;
2171 path.line.casing.tag-highway.tag-status.tag-status-construction,
2172 .preset-icon-container path.line.stroke.tag-highway.tag-status.tag-status-construction {
2175 path.line.stroke.tag-highway.tag-status.tag-status-construction,
2176 .preset-icon-container path.line.casing.tag-highway.tag-status.tag-status-construction {
2179 .low-zoom path.line.shadow.tag-highway.tag-status.tag-status-construction {
2182 .low-zoom path.line.casing.tag-highway.tag-status.tag-status-construction {
2185 .low-zoom path.line.stroke.tag-highway.tag-status.tag-status-construction {
2187 stroke-dasharray: 8, 8;
2192 path.stroke.tag-building {
2193 stroke: rgb(224, 110, 95);
2195 path.fill.tag-building {
2196 stroke: rgba(224, 110, 95, 0.3);
2197 fill: rgba(224, 110, 95, 0.3);
2203 cursor: not-allowed !important;
2208 cursor: auto; /* Opera */
2209 cursor: url(<%= asset_path("iD/img/cursor-grab.png") %>) 9 9, auto; /* FF */
2212 .mode-browse .point,
2213 .mode-select .point {
2214 cursor: pointer; /* Opera */
2215 cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
2218 .mode-select .vertex,
2219 .mode-browse .vertex {
2220 cursor: pointer; /* Opera */
2221 cursor: url(<%= asset_path("iD/img/cursor-select-vertex.png") %>), pointer; /* FF */
2225 .mode-select .line {
2226 cursor: pointer; /* Opera */
2227 cursor: url(<%= asset_path("iD/img/cursor-select-line.png") %>), pointer; /* FF */
2231 .mode-browse .area {
2232 cursor: pointer; /* Opera */
2233 cursor: url(<%= asset_path("iD/img/cursor-select-area.png") %>), pointer; /* FF */
2236 .mode-select .midpoint,
2237 .mode-browse .midpoint {
2238 cursor: pointer; /* Opera */
2239 cursor: url(<%= asset_path("iD/img/cursor-select-split.png") %>), pointer; /* FF */
2242 .mode-select .behavior-multiselect .point,
2243 .mode-select .behavior-multiselect .vertex,
2244 .mode-select .behavior-multiselect .line,
2245 .mode-select .behavior-multiselect .area {
2246 cursor: pointer; /* Opera */
2247 cursor: url(<%= asset_path("iD/img/cursor-select-add.png") %>), pointer; /* FF */
2250 .mode-select .behavior-multiselect .selected {
2251 cursor: pointer; /* Opera */
2252 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer; /* FF */
2255 .mode-add-preset #map,
2256 .mode-draw-line #map,
2257 .mode-draw-area #map,
2258 .mode-add-line #map,
2259 .mode-add-area #map,
2260 .mode-drag-node #map,
2261 .mode-drag-note #map {
2262 cursor: crosshair; /* Opera */
2263 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2266 .mode-draw-line .way.target,
2267 .mode-draw-area .way.target,
2268 .mode-add-line .way.target,
2269 .mode-add-area .way.target,
2270 .mode-drag-node .way.target {
2271 cursor: crosshair; /* Opera */
2272 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-line.png") %>) 9 9, crosshair; /* FF */
2275 .mode-draw-line .vertex.target,
2276 .mode-draw-area .vertex.target,
2277 .mode-add-line .vertex.target,
2278 .mode-add-area .vertex.target,
2279 .mode-drag-node .vertex.target {
2280 cursor: crosshair; /* Opera */
2281 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-vertex.png") %>) 9 9, crosshair; /* FF */
2284 .mode-add-point #map,
2285 .mode-add-note #map,
2286 .mode-browse.lasso #map,
2287 .mode-browse.lasso .way,
2288 .mode-browse.lasso .vertex,
2289 .mode-browse.lasso .midpoint,
2290 .mode-select.lasso #map,
2291 .mode-select.lasso .way,
2292 .mode-select.lasso .vertex,
2293 .mode-select.lasso .midpoint {
2294 cursor: crosshair; /* Opera */
2295 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2299 .mode-browse .qa_error,
2301 .mode-select .qa_error,
2306 /* photo viewer div */
2310 margin-bottom: 10px;
2314 background-color: #fff;
2316 [dir='ltr'] #photoviewer {
2320 [dir='rtl'] #photoviewer {
2325 @media screen and (min-width: 1600px) {
2332 #photoviewer button.thumb-hide {
2341 #photoviewer button.resize-handle-xy {
2347 cursor: nesw-resize;
2352 #photoviewer button.resize-handle-x {
2364 #photoviewer button.resize-handle-y {
2377 .photo-wrapper img {
2384 .photo-wrapper .photo-attribution {
2396 .photo-attribution a,
2397 .photo-attribution a:visited,
2398 .photo-attribution span {
2403 /* markers and sequences */
2405 pointer-events: none;
2407 .mode-browse .viewfield-group,
2408 .mode-select .viewfield-group {
2409 pointer-events: visible;
2413 .viewfield-group.currentView * {
2414 fill: #ffee00 !important;
2416 .viewfield-group.hovered * {
2417 fill: #eebb00 !important;
2420 .viewfield-group circle {
2423 stroke-opacity: 0.4;
2426 .viewfield-group.highlighted circle {
2428 stroke-opacity: 0.9;
2431 .viewfield-group.highlighted.hovered circle {
2434 stroke-opacity: 0.9;
2437 .viewfield-group.highlighted.currentView circle {
2444 .viewfield-group .viewfield {
2449 .viewfield-group.highlighted .viewfield {
2453 .viewfield-group.highlighted.hovered .viewfield {
2457 .viewfield-group.highlighted.currentView .viewfield {
2462 .viewfield-group.currentView .viewfield-scale {
2463 transform: scale(2,2);
2469 stroke-opacity: 0.4;
2471 .sequence.highlighted,
2472 .sequence.currentView {
2478 /* Streetside Image Layer */
2479 .layer-streetside-images {
2480 pointer-events: none;
2482 .layer-streetside-images .viewfield-group * {
2485 .layer-streetside-images .sequence {
2487 stroke-opacity: 0.85; /* bump opacity - only one per road */
2491 /* Mapillary Image Layer */
2493 pointer-events: none;
2495 .layer-mapillary .viewfield-group * {
2498 .layer-mapillary .sequence {
2503 /* Mapillary Traffic Signs and Map Features Layers */
2504 .layer-mapillary-signs,
2505 .layer-mapillary-map-features {
2506 pointer-events: none;
2508 .layer-mapillary-signs .icon-sign,
2509 .layer-mapillary-map-features .icon-map-feature {
2510 outline: 2px solid transparent;
2511 pointer-events: visible;
2514 .layer-mapillary-signs .icon-sign:hover,
2515 .layer-mapillary-map-features .icon-map-feature:hover {
2516 outline: 5px solid #eebb00;
2517 background-color: #eebb00;
2519 .layer-mapillary-signs .icon-sign.currentView,
2520 .layer-mapillary-map-features .icon-map-feature.currentView {
2521 outline: 5px solid #ffee00;
2522 background-color: #ffee00;
2526 /* OpenStreetCam Image Layer */
2527 .layer-openstreetcam {
2528 pointer-events: none;
2530 .layer-openstreetcam .viewfield-group * {
2533 .layer-openstreetcam .sequence {
2538 /* Streetside Viewer (pannellum) */
2539 .ms-wrapper .photo-attribution .image-link {
2542 .ms-wrapper .photo-attribution .attribution-row {
2544 flex-flow: row nowrap;
2545 justify-content: space-between;
2546 align-items: center;
2549 .ms-wrapper .photo-attribution .image-view-link {
2553 .ms-wrapper .photo-attribution .image-report-link {
2557 .ms-wrapper .photo-attribution a:active,
2558 .ms-wrapper .photo-attribution a:hover {
2562 .ms-wrapper .pnlm-compass.pnlm-control {
2567 background-size: contain;
2568 background-repeat: no-repeat no-repeat;
2571 label.streetside-hires {
2574 .streetside-hires span {
2577 .streetside-hires input[type="checkbox"] {
2585 /* Mapillary viewer */
2586 #mly .domRenderer .TagSymbol {
2588 background-color: rgba(0,0,0,0.4);
2593 #mly .domRenderer .Attribution {
2594 /* we will roll our own to avoid async update issues like #4526 */
2598 .mly-wrapper .photo-attribution a:active,
2599 .mly-wrapper .photo-attribution a:hover {
2603 .mly-wrapper .mapillary-js-dom {
2608 /* OpenStreetCam viewer */
2611 background-color: #000;
2612 background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
2613 background-position: center;
2614 background-repeat: no-repeat;
2617 .osc-wrapper .photo-attribution a:active,
2618 .osc-wrapper .photo-attribution a:hover {
2625 transform-origin:0 0;
2626 -ms-transform-origin:0 0;
2627 -webkit-transform-origin:0 0;
2628 -moz-transform-origin:0 0;
2629 -o-transform-origin:0 0;
2633 /* photo-controls (step forward, back, rotate) */
2634 .photo-controls-wrap {
2643 display: inline-block;
2647 .photo-controls button,
2648 .photo-controls button:focus {
2651 background: rgba(0,0,0,0.65);
2655 .photo-controls button:first-of-type {
2656 border-radius: 3px 0 0 3px;
2658 .photo-controls button:last-of-type {
2659 border-radius: 0 3px 3px 0;
2661 .photo-controls button:hover,
2662 .photo-controls button:active {
2663 background: rgba(0,0,0,0.85);
2667 /* OSM Notes and KeepRight Layers */
2669 .error-header-icon .qa_error-fill,
2670 .layer-keepRight .qa_error .qa_error-fill,
2671 .layer-improveOSM .qa_error .qa_error-fill {
2673 stroke-width: 1.3px; /* NOTE: likely a better way to scale the icon stroke */
2676 .note-header-icon .note-fill,
2677 .layer-notes .note .note-fill {
2682 .note-header-icon.new .note-fill,
2683 .layer-notes .note.new .note-fill {
2688 .note-header-icon.closed .note-fill,
2689 .layer-notes .note.closed .note-fill {
2695 /* slight adjustments to preset icon for note icons */
2696 .note-header-icon .preset-icon-28 {
2699 .note-header-icon .note-icon-annotation {
2705 .note-header-icon .note-icon-annotation .icon {
2710 /* adjustment for error icon */
2712 .error-header-icon .preset-icon-28 {
2717 .error-header-icon {
2719 align-items: center;
2720 justify-content: center;
2723 /* Keep Right Errors
2724 ------------------------------------------------------- */
2725 .keepRight.error_type-20, /* multiple nodes on same spot */
2726 .keepRight.error_type-40, /* impossible oneways */
2727 .keepRight.error_type-210, /* self intersecting ways */
2728 .keepRight.error_type-270, /* unusual motorway connection */
2729 .keepRight.error_type-310, /* roundabout issues */
2730 .keepRight.error_type-320, /* improper _link */
2731 .keepRight.error_type-350 { /* improper bridge tag */
2735 .keepRight.error_type-50 { /* almost junctions */
2739 .keepRight.error_type-60, /* deprecated tags */
2740 .keepRight.error_type-70, /* tagging issues */
2741 .keepRight.error_type-90, /* motorway without ref */
2742 .keepRight.error_type-100, /* place of worship without religion */
2743 .keepRight.error_type-110, /* poi without name */
2744 .keepRight.error_type-150, /* railway crossing without tag */
2745 .keepRight.error_type-220, /* misspelled tag */
2746 .keepRight.error_type-380 { /* non-physical sport tag */
2750 .keepRight.error_type-130 { /* disconnected ways */
2754 .keepRight.error_type-170 { /* FIXME tag */
2758 .keepRight.error_type-190 { /* intersection without junction */
2762 .keepRight.error_type-200 { /* overlapping ways */
2766 .keepRight.error_type-160, /* railway layer conflict */
2767 .keepRight.error_type-230 { /* layer conflict */
2771 .keepRight.error_type-280 { /* boundary issues */
2775 .keepRight.error_type-180, /* relation without type */
2776 .keepRight.error_type-290 { /* turn restriction issues */
2780 .keepRight.error_type-300, /* missing maxspeed */
2781 .keepRight.error_type-390 { /* missing tracktype */
2785 .keepRight.error_type-360, /* language unknown */
2786 .keepRight.error_type-370, /* doubled places */
2787 .keepRight.error_type-410 { /* website issues */
2791 .keepRight.error_type-120, /* way without nodes */
2792 .keepRight.error_type-400 { /* geometry / turn angles */
2796 /* ImproveOSM Errors
2797 ------------------------------------------------------- */
2799 .improveOSM.error_type-ow { /* missing one way */
2803 .improveOSM.error_type-mr-road { /* missing road */
2806 .improveOSM.error_type-mr-path { /* missing path */
2809 .improveOSM.error_type-mr-parking { /* missing parking */
2812 .improveOSM.error_type-mr-both { /* missing road+parking */
2816 .improveOSM.error_type-tr { /* missing turn restriction */
2821 /* Custom Map Data (geojson, gpx, kml, vector tile) */
2823 pointer-events: none;
2826 .layer-mapdata path.shadow {
2827 pointer-events: stroke;
2833 .layer-mapdata path.MultiPoint.shadow,
2834 .layer-mapdata path.Point.shadow {
2835 pointer-events: fill;
2839 .layer-mapdata path.shadow.hover:not(.selected) {
2840 stroke-opacity: 0.4;
2842 .layer-mapdata path.shadow.selected {
2843 stroke-opacity: 0.7;
2846 .layer-mapdata path.stroke {
2852 .layer-mapdata path.fill {
2854 stroke-opacity: 0.3;
2861 .layer-mapdata text.label-halo,
2862 .layer-mapdata text.label {
2865 dominant-baseline: middle;
2867 .layer-mapdata text.label {
2870 .layer-mapdata text.label.hover,
2871 .layer-mapdata text.label.selected {
2874 .layer-mapdata text.label-halo {
2878 stroke-miterlimit: 1;
2882 .low-zoom.fill-wireframe path.stroke,
2883 .fill-wireframe path.stroke {
2884 stroke-width: 1 !important;
2885 stroke-opacity: 0.5 !important;
2886 stroke-dasharray: none !important;
2887 fill: none !important;
2889 .low-zoom.fill-wireframe .layer-mapdata path.stroke,
2890 .fill-wireframe .layer-mapdata path.stroke {
2891 stroke-width: 2 !important;
2892 stroke-opacity: 1 !important;
2895 .low-zoom.fill-wireframe path.shadow,
2896 .fill-wireframe path.shadow {
2900 .fill-wireframe path.shadow.related:not(.selected),
2901 .fill-wireframe path.shadow.hover:not(.selected) {
2902 stroke-opacity: 0.4;
2904 .fill-wireframe path.shadow.selected {
2905 stroke-opacity: 0.6;
2908 .fill-wireframe .point,
2909 .fill-wireframe .areaicon,
2910 .fill-wireframe .areaicon-halo,
2911 .fill-wireframe path.casing,
2912 .fill-wireframe path.fill,
2913 .fill-wireframe path.oneway {
2914 display: none !important;
2917 .fill-partial path.area.fill {
2920 pointer-events: none;
2922 .fill-partial path.area.fill.tag-building_part {
2925 .fill-partial path.area.fill.tag-indoor {
2928 .mode-browse .fill-partial path.area.fill,
2929 .mode-select .fill-partial path.area.fill {
2930 pointer-events: visibleStroke;
2933 ------------------------------------------------------- */
2935 Opera misbehaves when the window is resized vertically unless 100% width + height are
2936 applied to both html and body. https://gist.github.com/jfirebaugh/bd225bcfdd3a633850c4
2944 font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
2945 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2946 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
2952 -ms-user-select: none;
2953 -ms-content-zooming: none;
2958 vertical-align: middle;
2975 -webkit-filter: none !important;
2976 filter: none !important;
2977 -webkit-duration: 200ms;
2978 transition-duration: 200ms;
2982 -webkit-filter: grayscale(80%) brightness(80%);
2983 filter: grayscale(80%) brightness(80%);
2984 -webkit-duration: 200ms;
2985 transition-duration: 200ms;
2989 /* Can't be display: none or the clippaths are ignored. */
2995 div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
2996 -moz-box-sizing: border-box;
2997 -webkit-box-sizing: border-box;
2998 box-sizing: border-box;
3001 a, button, input, textarea {
3002 -webkit-tap-highlight-color: rgba(0,0,0,0);
3003 -webkit-touch-callout: none;
3020 margin-bottom: 20px;
3025 h4:last-child { margin-bottom: 0;}
3031 margin-bottom: 10px;
3036 padding-bottom: 10px;
3040 outline-color: transparent;
3041 outline-style: none;
3044 ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
3046 opacity: 1; /* Firefox */
3048 :-ms-input-placeholder { /* Internet Explorer 10-11 */
3051 ::-ms-input-placeholder { /* Microsoft Edge */
3077 ------------------------------------------------------- */
3080 font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
3081 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
3082 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
3093 background-color: #fff;
3095 border: 1px solid #ccc;
3096 padding: 5px 20px 5px 10px;
3099 text-overflow: ellipsis;
3101 [dir='rtl'] textarea,
3102 [dir='rtl'] input[type=text],
3103 [dir='rtl'] input[type=search],
3104 [dir='rtl'] input[type=number],
3105 [dir='rtl'] input[type=url],
3106 [dir='rtl'] input[type=tel],
3107 [dir='rtl'] input[type=email] {
3108 padding: 5px 10px 5px 20px;
3113 background-color: #f1f1f1;
3119 background-color: #eee;
3120 cursor: not-allowed;
3123 input[type="checkbox"],
3124 input[type="radio"] {
3132 [dir='rtl'] input[type="checkbox"],
3133 [dir='rtl'] input[type="radio"] {
3141 background-color: #fff;
3142 border-collapse: collapse;
3149 table.tags, table.tags td, table.tags th {
3150 border: 1px solid #ccc;
3159 ------------------------------------------------------- */
3160 .col6 { float: left; width: 50.0000%; max-width: 600px; }
3161 .col12 { float: left; width: 100.0000%; }
3165 ------------------------------------------------------- */
3171 background: #f6f6f6;
3175 background: #ececec;
3179 background: rgba(0,0,0,.5);
3183 background: rgba(0,0,0,.75);
3188 .fr { float: right;}
3207 box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.25);
3210 background: url(<%= asset_path("iD/img/loader_bg.gif") %>);
3211 background-size: 5px 5px;
3216 ------------------------------------------------------- */
3225 display: inline-block;
3232 background-color: #ececec;
3235 background: #7092ff;
3238 background-color: rgba(255,255,255,.25);
3239 color: rgba(0,0,0,.4);
3240 cursor: not-allowed;
3245 border-right: 1px solid rgba(0,0,0,.5);
3247 [dir='rtl'] .joined > * {
3248 border-left: 1px solid rgba(0,0,0,.5);
3252 .fillL .joined > * {
3253 border-right: 1px solid #fff;
3255 .joined > *:first-child {
3256 border-radius: 4px 0 0 4px;
3258 [dir='rtl'] .joined > *:first-child {
3259 border-radius: 0 4px 4px 0;
3261 .joined > *:last-child {
3262 border-right-width: 0;
3263 border-radius: 0 4px 4px 0;
3265 [dir='rtl'] .joined > *.bar-button:last-child {
3266 border-radius: 4px 0 0 4px;
3270 /* Action buttons */
3272 background: #7092ff;
3275 button.action:focus,
3276 button.action:hover {
3277 background: #597be7;
3279 button.secondary-action {
3280 background: #ececec;
3282 button.secondary-action:focus,
3283 button.secondary-action:hover {
3284 background: #cccccc;
3287 button.action.disabled,
3288 button.action.disabled:hover,
3289 button[disabled].action,
3290 button[disabled].action:hover {
3291 background: #cccccc;
3293 cursor: not-allowed;
3298 ------------------------------------------------------- */
3300 vertical-align: top;
3306 vertical-align: text-top;
3315 [dir='rtl'] .icon.pre-text {
3320 .icon.pre-text.user-icon {
3350 .notification-badge {
3359 .notification-badge.hide {
3364 /* Toolbar / Persistent UI Elements
3365 ------------------------------------------------------- */
3368 flex-flow: row nowrap;
3369 justify-content: space-between;
3371 padding: 10px 5px 0px 5px;
3377 #bar .toolbar-item {
3380 flex-flow: column wrap;
3381 justify-content: center;
3384 #bar .toolbar-item .item-content {
3387 flex-flow: row nowrap;
3388 justify-content: center;
3394 #bar .toolbar-item .item-label {
3397 white-space: nowrap;
3398 margin: 1px 2px 2px 2px;
3400 #bar .toolbar-item.spacer {
3404 #bar .toolbar-item:first-child {
3405 justify-content: flex-start;
3407 #bar .toolbar-item:last-child {
3408 justify-content: flex-end;
3410 #bar .toolbar-item:empty:not(.spacer) {
3415 flex-flow: row nowrap;
3416 align-items: center;
3419 white-space: nowrap;
3422 button.bar-button .icon {
3425 button.bar-button .label {
3430 button.bar-button.dragging {
3434 button.bar-button.dragging .tooltip {
3437 button.bar-button.dragging.removing {
3438 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer;
3441 button.save .count {
3442 display: inline-block;
3447 .help-wrap svg.icon.pre-text.add-note,
3448 button.add-note svg.icon {
3451 color: rgba(0,0,0,0.25);
3456 button.add-note svg.icon {
3460 [dir='rtl'] button.add-note svg.icon {
3462 margin-right: unset;
3464 .help-wrap svg.icon.pre-text.add-note {
3478 background: transparent;
3479 border-radius: 100%;
3481 [dir='rtl'] .spinner img {
3482 -moz-transform: scaleX(-1);
3483 -o-transform: scaleX(-1);
3484 -webkit-transform: scaleX(-1);
3485 transform: scaleX(-1);
3487 -ms-filter: "FlipH";
3491 #bar.narrow .spinner,
3492 #bar.narrow button.bar-button .label {
3495 #bar.narrow button .count {
3496 border-left-width: 0;
3497 border-right-width: 0;
3500 [dir='ltr'] .undo-redo button:first-of-type {
3503 [dir='rtl'] .undo-redo button:first-of-type {
3507 /* Add a feature search bar
3508 ------------------------------------------------------- */
3512 justify-content: center;
3517 .search-add .search-wrap {
3521 [dir='ltr'] .search-add .search-wrap {
3522 border-radius: 20px 4px 4px 20px;
3524 [dir='rtl'] .search-add .search-wrap {
3525 border-radius: 4px 20px 20px 4px;
3527 .search-add .search-wrap.focused .tooltip {
3530 .search-add .search-wrap:last-child {
3531 border-radius: 20px;
3533 .search-add input[type='search'] {
3541 border-radius: inherit;
3543 .search-add input[type='search'][disabled] {
3545 cursor: not-allowed;
3547 .search-add .search-icon {
3553 pointer-events: none;
3555 [dir='rtl'] .search-add .search-icon {
3559 .search-add .popover {
3572 .search-add .popover .popover-content {
3577 .search-add .popover,
3578 .search-add .popover .popover-content {
3579 /* ensure corners are rounded in Chrome */
3580 -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
3582 .search-add .popover .popover-footer {
3583 padding: 5px 10px 5px 10px;
3584 background: #f6f6f6;
3585 border-top: 1px solid #DCDCDC;
3588 .search-add .popover .popover-footer .message {
3592 .search-add .popover .popover-footer button.filter {
3594 background: transparent;
3597 .search-add .popover .popover-footer button.filter.active {
3600 .search-add .popover .popover-footer button.filter:hover {
3603 .search-add .popover .popover-footer button.filter.active:hover {
3606 .search-add .popover::-webkit-scrollbar {
3607 /* don't overlap rounded corners */
3608 background: transparent;
3610 .search-add .popover .list {
3613 .search-add .list-item > .row {
3618 .search-add .list-item:not(:last-of-type) .row,
3619 .search-add .subsection.subitems .list-item .row,
3620 .search-add .subsection > .tag-reference-body {
3621 border-bottom: 1px solid #DCDCDC;
3623 .search-add .list-item .label {
3631 align-items: center;
3635 .search-add .list-item .label .namepart:nth-child(2) {
3636 font-weight: normal;
3638 .search-add .list-item.disabled .preset-icon-container,
3639 .search-add .list-item.disabled .label {
3642 [dir='ltr'] .search-add .list-item .label .icon.inline {
3645 [dir='rtl'] .search-add .list-item .label .icon.inline {
3648 .search-add .list-item .row > *:not(button) {
3649 pointer-events: none;
3651 .search-add .list-item button.choose {
3659 .search-add .list-item button.choose:hover,
3660 .search-add .list-item button.choose:focus {
3663 .search-add .list-item.focused:not(.disabled) button.choose {
3664 background: #e8ebff;
3666 .search-add .list-item button.choose.disabled {
3667 background-color: #ececec;
3669 .search-add .subsection .list-item button.choose {
3672 .search-add .subsection .tag-reference-body {
3673 background: rgba(255, 255, 255, 0.85);
3676 .search-add .list-item button.accessory {
3680 background: transparent;
3684 .search-add .list-item button.accessory:hover {
3687 .search-add .list-item button.tag-reference-open path {
3690 .search-add .subsection {
3691 background-color: #CBCBCB;
3693 [dir='ltr'] .search-add .subitems {
3696 [dir='rtl'] .search-add .subitems {
3700 /* Add a preset mode buttons
3701 ------------------------------------------------------- */
3703 button.bar-button.add-preset {
3706 [dir='ltr'] button.bar-button.add-preset {
3709 [dir='rtl'] button.bar-button.add-preset {
3712 [dir='ltr'] button.bar-button.add-preset.first-recent {
3715 [dir='rtl'] button.bar-button.add-preset.first-recent {
3718 button.bar-button.add-preset {
3721 button.add-preset.disabled .preset-icon-container {
3724 /* Header for modals / panes
3725 ------------------------------------------------------- */
3727 border-bottom: 1px solid #ccc;
3735 white-space: nowrap;
3736 text-overflow: ellipsis;
3754 .field-help-title button.close,
3755 .sidebar-component .header button.data-editor-close,
3756 .sidebar-component .header button.note-editor-close,
3757 .sidebar-component .header button.error-editor-close,
3758 .entity-editor-pane .header button.preset-close,
3759 .preset-list-pane .header button.preset-choose {
3764 [dir='rtl'] .field-help-title button.close,
3765 [dir='rtl'] .sidebar-component .header button.data-editor-close,
3766 [dir='rtl'] .sidebar-component .header button.note-editor-close,
3767 [dir='rtl'] .sidebar-component .header button.error-editor-close,
3768 [dir='rtl'] .entity-editor-pane .header button.preset-close,
3769 [dir='rtl'] .preset-list-pane .header button.preset-choose {
3774 .entity-editor-pane .header button.preset-choose {
3779 [dir='rtl'] .entity-editor-pane .header button.preset-choose {
3797 [dir='rtl'] .modal > button {
3806 padding: 5px 20px 5px 20px;
3807 border-top: 1px solid #ccc;
3808 background-color: #f6f6f6;
3812 justify-content: space-between;
3818 justify-content: center;
3823 justify-content: space-between;
3826 .header-block-outer {
3830 .header-block-close {
3832 justify-content: flex-end;
3835 /* Hide/Toggle collapsable sections (aka Disclosure)
3836 ------------------------------------------------------- */
3837 .hide-toggle .icon.pre-text {
3838 vertical-align: text-top;
3843 [dir='rtl'] .hide-toggle .icon.pre-text {
3848 a:visited.hide-toggle,
3850 display: inline-block;
3853 padding-bottom: 5px;
3857 /* Sidebar / Inspector
3858 ------------------------------------------------------- */
3864 background: #f6f6f6;
3865 -ms-user-select: element;
3866 border: 0px solid #ccc;
3867 border-right-width: 1px;
3869 [dir='rtl'] #sidebar {
3871 border-right-width: 0px;
3872 border-left-width: 1px;
3883 [dir='rtl'] #sidebar-resizer {
3888 #sidebar.collapsed #sidebar-resizer {
3889 /* make target wider to avoid the user accidentally resizing window */
3893 [dir='rtl'] #sidebar.collapsed #sidebar-resizer {
3897 .sidebar-component {
3905 .sidebar-component .body {
3955 .feature-list-pane .inspector-body,
3956 .preset-list-pane .inspector-body {
3959 .entity-editor-pane .inspector-body,
3960 .selection-list-pane .inspector-body {
3965 padding: 20px 20px 5px 20px;
3969 #sidebar .search-header .icon {
3974 pointer-events: none;
3976 [dir='rtl'] #sidebar .search-header .icon {
3981 #sidebar .search-header input {
3989 border-bottom-width: 1px;
3996 /* Feature List / Search Results
3997 ------------------------------------------------------- */
4003 .feature-list-item {
4006 border-bottom: 1px solid #ccc;
4012 background-color: #ccc;
4018 [dir='rtl'] .geocode-item {
4022 .geocode-item:hover {
4023 background-color: #aaa;
4026 .feature-list-item {
4027 background-color: #fff;
4032 .feature-list-item:hover {
4033 background-color: #ececec;
4035 .feature-list-item button {
4036 background: transparent;
4038 .feature-list-item .label {
4041 white-space: nowrap;
4042 text-overflow: ellipsis;
4044 border-left: 1px solid rgba(0, 0, 0, .1);
4046 [dir='rtl'] .feature-list-item .label {
4050 .feature-list-item .label .icon {
4053 .feature-list-item .close {
4057 .feature-list-item .close .icon {
4060 .feature-list-item .entity-type {
4063 .feature-list-item:hover .entity-type {
4066 .feature-list-item .entity-name {
4067 font-weight: normal;
4071 [dir='rtl'] .feature-list-item .entity-name {
4073 padding-right: 10px;
4077 /* Preset List and Icons
4078 ------------------------------------------------------- */
4081 padding: 20px 20px 10px 20px;
4082 border-bottom: 1px solid #ccc;
4086 margin-bottom: 10px;
4089 .preset-list-button-wrap {
4093 border: 1px solid #ccc;
4097 .preset-list-button {
4104 .preset-list.filtered .preset-list-item:first-child .preset-list-button {
4105 background: #ececec;
4108 .preset-icon-container {
4114 align-items: center;
4115 justify-content: center;
4117 .preset-icon-container.small {
4122 .preset-icon-container img.image-icon {
4125 object-fit: contain;
4129 .preset-icon-point-border path {
4144 .preset-icon-container path {
4147 .preset-icon-container circle.vertex {
4149 stroke: rgba(0, 0, 0, 0.25);
4151 .preset-icon-fill circle.midpoint {
4153 stroke: rgba(0, 0, 0, 0.25);
4155 /* use a consistent stroke width */
4156 .preset-icon-container path.line.stroke {
4157 stroke-width: 2 !important;
4159 .preset-icon-container path.line.casing {
4160 stroke-width: 4 !important;
4171 .preset-icon-container svg,
4172 .preset-icon-container svg > * {
4173 cursor: inherit !important;
4175 .preset-icon-fill path.area.stroke {
4179 .preset-icon-fill-vertex circle {
4180 stroke-width: 1.5px;
4183 backface-visibility: hidden;
4192 .preset-icon .icon {
4199 transform: scale(0.48);
4201 .preset-icon-container.small .preset-icon.point-geom .icon {
4202 transform: translateY(-7%) scale(0.27);
4204 .preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon {
4205 transform: translateY(-9%) scale(0.5);
4207 .preset-icon.framed .icon {
4208 transform: scale(0.4);
4210 .preset-icon.framed.line-geom .icon,
4211 .preset-icon.framed.route-geom .icon {
4213 transform: translateY(-30%) scale(0.4);
4215 .preset-icon-iD .icon {
4216 transform: scale(1);
4218 .preset-icon-iD.framed .icon {
4219 transform: scale(0.74);
4221 .preset-icon-iD.framed.line-geom .icon,
4222 .preset-icon-iD.framed.route-geom .icon {
4223 transform: translateY(-30%) scale(0.74);
4225 .preset-icon-container.fallback .preset-icon .icon {
4226 transform: scale(0.5) !important;
4229 .preset-list-button .label {
4231 flex-flow: row wrap;
4232 align-items: center;
4233 background-color: #f6f6f6;
4241 border-left: 1px solid rgba(0, 0, 0, .1);
4243 [dir='rtl'] .preset-list-button .label {
4248 border-right: 1px solid rgba(0, 0, 0, .1);
4250 [dir='ltr'] .category .preset-list-button .label {
4251 border-radius: 0px 4px 4px 0px;
4253 [dir='rtl'] .category .preset-list-button .label {
4254 border-radius: 4px 0px 0px 4px;
4257 .preset-list-button .label-inner {
4260 .preset-list-button .label-inner .namepart {
4262 white-space: nowrap;
4263 text-overflow: ellipsis;
4267 .preset-list-button:hover .label,
4268 .preset-list-button:focus .label,
4269 .preset-list-button.disabled,
4270 .preset-list-button.disabled .label {
4271 background-color: #ececec;
4274 .preset-list-item button.preset-favorite-button,
4275 .preset-list-item button.tag-reference-button {
4279 background: #f6f6f6;
4281 [dir='ltr'] .preset-list-item button.preset-favorite-button,
4282 [dir='ltr'] .preset-list-item button.tag-reference-button {
4283 border-left: 1px solid #ccc;
4285 [dir='rtl'] .preset-list-item button.preset-favorite-button,
4286 [dir='rtl'] .preset-list-item button.tag-reference-button {
4287 border-right: 1px solid #ccc;
4289 [dir='ltr'] .preset-list-item button:last-child {
4290 border-radius: 0 4px 4px 0;
4292 [dir='rtl'] .preset-list-item button:last-child {
4293 border-radius: 4px 0 0 4px;
4296 .preset-list-item button.preset-favorite-button:hover,
4297 .preset-list-item button.tag-reference-button:hover {
4298 background: #f1f1f1;
4300 .preset-list-item button.preset-favorite-button .icon,
4301 .preset-list-item button.tag-reference-button .icon {
4305 button.preset-favorite-button .icon {
4309 button.preset-favorite-button.active .icon {
4310 fill-opacity: inherit;
4314 .current .preset-list-button,
4315 .current .preset-list-button .label {
4316 background-color: #e8ebff;
4319 .category .preset-list-button:after,
4320 .category .preset-list-button:before {
4324 left: -1px; right: -1px;
4325 border: 1px solid #ccc;
4326 border-bottom: none;
4327 border-radius: 6px 6px 0 0;
4331 .category .preset-list-button:before {
4335 .subgrid .preset-list {
4340 width: -webkit-calc(100% + 20px);
4343 .subgrid .preset-list > *:last-child {
4348 border: solid rgba(0, 0, 0, 0);
4350 border-bottom-color: #ececec;
4354 margin-left: -webkit-calc(50% - 10px);
4359 ------------------------------------------------------- */
4362 flex-flow: row wrap;
4363 justify-content: flex-end;
4370 .data-editor .quick-links,
4371 .error-editor .quick-links,
4372 .note-editor .quick-links {
4377 /* Entity/Preset Editor
4378 ------------------------------------------------------- */
4382 padding: 10px 0px 5px 0px;
4384 .entity-issues a.hide-toggle,
4385 .preset-editor a.hide-toggle {
4386 margin: 0 20px 5px 20px;
4388 .entity-issues .disclosure-wrap-entity_issues,
4389 .preset-editor .form-fields-container {
4391 margin: 0 10px 10px 10px;
4393 background: #ececec;
4395 .entity-issues .disclosure-wrap-entity_issues:empty,
4396 .preset-editor .form-fields-container:empty {
4399 .entity-editor-pane .preset-list-item {
4404 The parts of a field:
4405 - `.form-field` is a `div` wraps the entire thing
4406 - `.field-label` is a `label` that wraps the top part, it contains;
4407 - `span` classed `label-text`
4408 - 0..n buttons for "remove", "modified", "tag reference"
4409 - `.form-field-input-wrap` is a `label` or `div` that wraps the bottom part, it contains;
4410 - usually an `input`
4411 - sometimes some buttons (translate, increment, decrement)
4412 - or could just be a `div` with anything really
4413 - `.tag-reference-body` at the bottom (usually hidden)
4415 .------------------. -
4416 | Name | i | <- .field-label |
4417 +------------------+ |
4418 | Starbucks | + | <- .form-field-input-wrap > .form-field
4419 '------------------' |
4420 tag reference <- .tag-reference-body |
4426 flex-flow: row wrap;
4427 margin-bottom: 10px;
4429 -webkit-transition: margin-bottom 200ms;
4430 -moz-transition: margin-bottom 200ms;
4431 -o-transition: margin-bottom 200ms;
4432 transition: margin-bottom 200ms;
4436 .wrap-form-field:last-child .form-field {
4440 /* A `label` element that wraps the top section */
4443 flex-flow: row nowrap;
4449 background: #f6f6f6;
4450 border: 1px solid #ccc;
4451 border-radius: 4px 4px 0 0;
4454 .field-label .label-text {
4456 padding: 5px 0 5px 10px;
4458 [dir='rtl'] .field-label .label-text {
4459 padding: 5px 10px 5px 0;
4462 .label-text .label-textannotation svg.icon {
4468 vertical-align: text-top;
4471 .field-label button {
4473 border-left: 1px solid #ccc;
4477 background: #f6f6f6;
4479 [dir='rtl'] .field-label button {
4481 border-right: 1px solid #ccc;
4483 .field-label button:hover {
4484 background: #f1f1f1;
4486 .field-label .icon {
4490 .field-label .modified-icon,
4491 .field-label .remove-icon,
4492 .field-label .remove-icon-multilingual {
4495 .modified:not(.locked) .field-label .modified-icon,
4496 .present:not(.locked) .field-label .remove-icon,
4497 .present:not(.locked) .field-label .remove-icon-multilingual {
4498 display: inline-block;
4501 /* A `div` element that wraps the bottom section */
4502 .form-field-input-wrap {
4504 flex-flow: row nowrap;
4509 border-radius: 0 0 4px 4px;
4511 .nowrap .form-field-input-wrap {
4516 .form-field-input-wrap > input,
4517 .form-field-input-wrap > label,
4518 .form-field-input-wrap > textarea,
4519 .form-field-input-wrap > ul.chiplist {
4522 border: 1px solid #ccc;
4528 .form-field-input-wrap > textarea {
4530 border-radius: 0 0 4px 4px;
4534 /* Buttons inside fields */
4535 .form-field-button {
4540 background-color: #fff;
4541 border: 1px solid #ccc;
4543 border-top-width: 0;
4544 border-left-width: 0;
4545 vertical-align: top;
4547 [dir='rtl'] .form-field-button {
4548 border-left-width: 1px;
4549 border-right-width: 0;
4551 .form-field-button:hover {
4552 background-color: #f1f1f1;
4554 .form-field-button .icon {
4560 /* round corners of first/last child elements */
4561 .form-field-input-wrap > button:last-of-type {
4562 border-bottom-right-radius: 4px;
4564 [dir='rtl'] .form-field-input-wrap > button:last-of-type {
4565 border-bottom-left-radius: 4px;
4569 /* Field - Access, Cycleway
4570 ------------------------------------------------------- */
4571 .form-field-input-access,
4572 .form-field-input-cycleway {
4575 flex-flow: row wrap;
4578 /* Field - lists with labeled input items
4579 ------------------------------------------------------- */
4580 .form-field ul.rows {
4582 border: 1px solid #ccc;
4584 border-radius: 0 0 4px 4px;
4588 .form-field ul.rows li {
4589 border-top: 1px solid #ccc;
4591 .form-field ul.rows li:first-child {
4594 .form-field ul.rows li {
4596 flex-flow: row nowrap;
4598 .form-field ul.rows li.labeled-input > span,
4599 .form-field ul.rows li.labeled-input > div {
4604 .form-field ul.rows li input {
4609 .form-field ul.rows li button {
4612 [dir='ltr'] .form-field ul.rows li.labeled-input input,
4613 [dir='ltr'] .form-field ul.rows li button {
4614 border-left-width: 1px;
4616 [dir='rtl'] .form-field ul.rows li.labeled-input input,
4617 [dir='rtl'] .form-field ul.rows li button {
4618 border-right-width: 1px;
4622 /* Field - Structure
4623 ------------------------------------------------------- */
4624 .structure-extras-wrap {
4628 border: 1px solid #ccc;
4630 border-radius: 0 0 4px 4px;
4632 .structure-extras-wrap > ul.rows {
4633 border: 1px solid #ccc;
4638 /* Field - Combo / Multicombo
4639 ------------------------------------------------------- */
4640 .form-field-input-combo > input:only-of-type {
4641 border-radius: 0 0 4px 4px;
4643 .form-field-input-combo.empty-combobox input,
4644 .form-field-input-multicombo .empty-combobox input {
4645 padding-right: 10px;
4648 .form-field-input-combo.empty-combobox .combobox-caret,
4649 .form-field-input-multicombo .empty-combobox .combobox-caret {
4653 .form-field-input-multicombo ul.chiplist {
4654 padding: 5px 8px 5px 8px;
4657 border-radius: 0 0 4px 4px;
4661 .form-field-input-multicombo li {
4662 display: inline-flex;
4663 flex-flow: row nowrap;
4664 align-items: center;
4669 [dir='ltr'] .form-field-input-multicombo li {
4672 [dir='rtl'] .form-field-input-multicombo li {
4676 .form-field-input-multicombo li.chips {
4677 background-color: #eff2f7;
4678 border: 1px solid #ccd5e3;
4682 [dir='ltr'] .form-field-input-multicombo li.chips {
4683 padding: 2px 0px 2px 5px;
4685 [dir='rtl'] .form-field-input-multicombo li.chips {
4686 padding: 2px 5px 2px 0px;
4689 .form-field-input-multicombo li.chips span {
4693 word-wrap: break-word;
4696 .form-field-input-multicombo a {
4697 font-family: Arial, Helvetica, sans-serif !important;
4698 font-size: 16px !important;
4699 padding: 0px 5px 0px 5px;
4708 .form-field-input-multicombo .input-wrap {
4709 border: 1px solid #ddd;
4713 .form-field-input-multicombo input {
4719 .form-field-input-multicombo input:focus {
4720 border-radius: 4px !important;
4723 .form-field-input-multicombo .full-line-chips li.chips {
4726 .form-field-input-multicombo .full-line-chips .input-wrap {
4731 /* Field - Text / Numeric
4732 ------------------------------------------------------- */
4733 .form-field-input-text > input:only-of-type,
4734 .form-field-input-tel > input:only-of-type,
4735 .form-field-input-email > input:only-of-type,
4736 .form-field-input-url > input:only-of-type {
4737 border-radius: 0 0 4px 4px;
4739 .form-field-input-number > input:only-of-type {
4740 border-radius: 0 0 0 4px;
4742 [dir='rtl'] .form-field-input-number > input:only-of-type {
4743 border-radius: 0 0 4px 0;
4745 .form-field-input-number > button:last-of-type {
4746 border-radius: 0 0 4px 0;
4748 [dir='rtl'] .form-field-input-number > button:last-of-type {
4749 border-radius: 0 0 0 4px;
4752 /* draw the up/down on the buttons */
4753 .form-field-input-number button.decrement::after,
4754 .form-field-input-number button.increment::after {
4756 height: 0; width: 0;
4758 left: 0; right: 0; bottom: 0; top: 0;
4761 .form-field-input-number button.decrement::after {
4762 border-top: 5px solid #ccc;
4763 border-left: 5px solid transparent;
4764 border-right: 5px solid transparent;
4766 .form-field-input-number button.increment::after {
4767 border-bottom: 5px solid #ccc;
4768 border-left: 5px solid transparent;
4769 border-right: 5px solid transparent;
4774 ------------------------------------------------------- */
4775 .form-field-input-check {
4781 border: 1px solid #ccc;
4785 .form-field-input-check > input[type="checkbox"] {
4790 .form-field-input-check > span {
4793 .form-field-input-check > .reverser.button {
4795 background-color: #eff2f7;
4796 border: 1px solid #ccd5e3;
4800 .form-field-input-check > .reverser.button.hide {
4804 .form-field-input-check:hover {
4805 background: #f1f1f1;
4807 .form-field-input-check .set {
4810 .form-field-input-check label:not(.set) input[type="checkbox"] {
4815 /* Field - Radio button
4816 ------------------------------------------------------- */
4817 .form-field-input-radio {
4820 flex-flow: row wrap;
4822 .form-field-input-radio > label {
4825 flex-flow: row nowrap;
4829 background-color: #fff;
4833 .form-field-input-radio > label:last-child {
4834 border-radius: 0 0 4px 4px;
4836 .form-field-input-radio > label:hover {
4837 background-color: #ececec;
4839 .form-field-input-radio > label.active {
4840 background-color: #e8ebff;
4842 .form-field-input-radio > label:not(:last-of-type) {
4843 border-bottom: 1px solid #ccc;
4845 .form-field-input-radio > label > input[type="radio"] {
4849 .form-field-input-radio > label > span {
4852 white-space: nowrap;
4853 text-overflow: ellipsis;
4856 /* Hide placeholder for radio buttons if another is active, or not in hover state */
4857 .form-field-input-radio label.active ~ .placeholder,
4858 .form-field-input-radio .placeholder {
4869 ------------------------------------------------------- */
4870 .form-field-input-maxspeed > input:first-of-type {
4871 border-radius: 0 0 0 4px;
4873 [dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
4874 border-radius: 0 0 4px 0;
4876 .form-field-input-maxspeed > input:last-of-type { /* unit field */
4880 border-radius: 0 0 4px 0;
4882 [dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
4884 border-radius: 0 0 0 4px;
4888 /* Field - Localized Name
4889 ------------------------------------------------------- */
4890 .form-field-input-localized > input.localized-main {
4891 border-radius: 0 0 0 4px;
4893 [dir='rtl'] .form-field-input-localized > input.localized-main {
4894 border-radius: 0 0 4px 0;
4896 .form-field-input-localized > button.localized-add {
4897 border-radius: 0 0 4px 0;
4899 [dir='rtl'] .form-field-input-localized > button.localized-add {
4900 border-radius: 0 0 0 4px;
4903 .form-field-input-localized button.localized-add.disabled,
4904 .form-field-input-localized input.localized-main.disabled,
4905 .form-field-input-localized input.localized-lang.disabled,
4906 .form-field-input-localized input.localized-value.disabled {
4908 background-color: #eee;
4909 cursor: not-allowed;
4912 /* nested subfields for name in different languages */
4913 .localized-multilingual {
4917 .localized-multilingual .entry {
4922 /* draws a little line connecting the multilingual field up to the name field */
4923 .localized-multilingual .entry::before {
4936 .localized-multilingual .entry .localized-lang {
4938 border-top-width: 0;
4941 .localized-multilingual .entry .localized-value {
4942 border-top-width: 0;
4943 border-radius: 0 0 4px 4px;
4949 ------------------------------------------------------- */
4950 .form-field-input-address {
4953 flex-flow: row wrap;
4954 border: 1px solid #ccc;
4971 [dir='rtl'] .addr-row input {
4972 border-right: 1px solid #ccc;
4976 .addr-row:first-of-type input {
4979 .addr-row input:first-of-type {
4982 [dir='rtl'] .addr-row input:first-of-type {
4985 .addr-row:last-of-type input:first-of-type {
4986 border-radius: 0 0 0 4px;
4988 [dir='rtl'] .addr-row:last-of-type input:first-of-type {
4989 border-radius: 0 0 4px 0;
4991 .addr-row:last-of-type input:last-of-type {
4992 border-radius: 0 0 4px 0;
4994 [dir='rtl'] .addr-row:last-of-type input:last-of-type {
4995 border-radius: 0 0 0 4px;
4999 /* Field - Wikipedia
5000 ------------------------------------------------------- */
5001 .form-field-input-wikipedia {
5003 flex-flow: row wrap;
5007 .wiki-lang-container,
5008 .wiki-title-container {
5010 flex-flow: row nowrap;
5015 .wiki-lang-container > input.wiki-lang,
5016 .wiki-title-container > input.wiki-title {
5021 .wiki-title-container > input.wiki-title {
5022 border-radius: 0 0 0 4px;
5024 [dir='rtl'] .wiki-title-container > input.wiki-title {
5025 border-radius: 0 0 4px 0;
5027 .wiki-title-container > button.wiki-link,
5028 .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
5029 border-radius: 0 0 4px 0;
5031 [dir='rtl'] .wiki-title-container > button.wiki-link,
5032 [dir='rtl'] .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
5033 border-radius: 0 0 0 4px;
5037 /* Field - Restriction Editor
5038 ------------------------------------------------------- */
5039 .form-field-input-restrictions {
5041 border: 1px solid #ccc;
5043 border-radius: 0 0 4px 4px;
5046 .form-field-input-restrictions .restriction-controls-container {
5047 background-color: #fff;
5050 border-top: 1px solid #ccc;
5051 border-radius: 0 0 4px 4px;
5054 .restriction-controls-container .restriction-controls {
5056 -moz-user-select: none;
5057 -webkit-user-select: none;
5058 -ms-user-select: none;
5062 .restriction-controls .restriction-control {
5068 .restriction-control input,
5069 .restriction-control span {
5070 display: table-cell;
5075 .restriction-control span.restriction-control-label {
5079 .restriction-control input {
5083 vertical-align: middle;
5086 .form-field-input-restrictions .restriction-container {
5090 /* zero width space, so container takes up space */
5091 .form-field-input-restrictions .restriction-container:after {
5095 .form-field-input-restrictions svg.surface {
5100 .restriction-container .restriction-help {
5107 background-color: rgba(255, 255, 255, .8);
5110 pointer-events: none;
5112 -moz-user-select: none;
5113 -webkit-user-select: none;
5114 -ms-user-select: none;
5118 .restriction-help span {
5122 .restriction-help .qualifier {
5126 .restriction-help .qualifier.allow {
5129 .restriction-help .qualifier.restrict {
5132 .restriction-help .qualifier.only {
5137 /* Field - Changeset Comment
5138 ------------------------------------------------------- */
5139 .form-field-comment:not(.present) #preset-input-comment {
5140 border-color: rgb(230, 100, 100);
5142 .form-field-comment:not(.present) .field-label {
5143 border-color: rgb(230, 100, 100);
5144 background: rgba(230, 100, 100, 0.2);
5146 .form-field-comment:not(.present) button {
5147 border-color: rgb(230, 100, 100);
5152 ------------------------------------------------------- */
5156 box-shadow: 0 4px 10px 1px rgba(0,0,0,.2);
5162 border: 1px solid #ccc;
5163 border-radius: 0 0 4px 4px;
5169 border-top: 1px solid #ccc;
5170 text-overflow: ellipsis;
5171 white-space: nowrap;
5175 .combobox a.selected,
5177 background: #ececec;
5180 .combobox a:first-child {
5186 display: inline-block;
5189 width: 30px !important;
5191 vertical-align: top;
5194 [dir='rtl'] .combobox-caret {
5196 margin-right: -30px;
5199 .combobox-caret::after {
5201 height: 0; width: 0;
5203 left: 0; right: 0; bottom: 0; top: 0;
5205 border-top: 5px solid #ccc;
5206 border-left: 5px solid transparent;
5207 border-right: 5px solid transparent;
5212 ------------------------------------------------------- */
5221 border: 1px solid #ccc;
5223 border-radius: 0 0 4px 4px;
5225 background: rgba(255,255,255,0.95);
5226 box-shadow: 0 0 30px 5px rgba(0,0,0,.4);
5229 .field-help-title h2 {
5234 .field-help-title button {
5243 margin-bottom: 10px;
5245 .field-help-nav-item {
5246 display: inline-block;
5251 .field-help-nav-item.active {
5253 border-bottom: 2px solid;
5255 .field-help-nav-item:hover {
5257 background-color: #efefef;
5260 .field-help-content {
5265 .field-help-content h3 {
5269 .field-help-content p {
5270 margin-bottom: 15px;
5272 .field-help-content ul li {
5277 .field-help-content .field-help-image {
5279 margin-bottom: 15px;
5282 .field-help-content svg.turn {
5286 .field-help-content svg.shadow {
5291 .field-help-content svg.from {
5294 .field-help-content svg.allow {
5297 .field-help-content svg.restrict {
5300 .field-help-content svg.only {
5304 .field-help-content p.from_shadow,
5305 .field-help-content p.allow_shadow,
5306 .field-help-content p.restrict_shadow,
5307 .field-help-content p.allow_turn,
5308 .field-help-content p.restrict_turn {
5313 /* More Fields dropdown
5314 ------------------------------------------------------- */
5316 padding: 0 20px 20px 20px;
5319 .changeset-editor .more-fields {
5320 padding: 15px 20px 0 20px;
5323 .more-fields label {
5325 flex-flow: row nowrap;
5326 justify-content: space-between;
5327 align-items: center;
5330 .more-fields input {
5334 [dir='rtl'] .more-fields input {
5339 .form-field-input-wrap .label {
5341 background: #f6f6f6;
5347 ------------------------------------------------------- */
5350 flex-flow: row nowrap;
5351 flex-direction: row-reverse;
5355 button.raw-tag-option {
5363 button.raw-tag-option:focus,
5364 button.raw-tag-option:hover,
5365 button.raw-tag-option.active {
5367 background: #597be7;
5369 button.raw-tag-option.selected {
5371 background: #7092ff;
5373 button.raw-tag-option svg.icon {
5376 vertical-align: text-bottom;
5378 [dir='ltr'] button.raw-tag-option-list {
5379 -moz-transform: scaleX(-1);
5380 -o-transform: scaleX(-1);
5381 -webkit-transform: scaleX(-1);
5382 transform: scaleX(-1);
5384 -ms-filter: "FlipH";
5391 font-family: monospace;
5403 .tag-row .inner-wrap {
5405 flex-flow: row nowrap;
5410 .tag-row .value-wrap {
5416 .tag-row.readonly input.key,
5417 .tag-row.readonly input.value,
5418 .tag-row.readonly button.remove {
5420 background-color: #eee;
5421 cursor: not-allowed;
5428 border-bottom: 1px solid #ccc;
5429 border-left: 1px solid #ccc;
5432 [dir='rtl'] .tag-row input {
5434 border-right: 1px solid #ccc;
5438 .tag-row input.key {
5440 background-color: #f6f6f6;
5443 .tag-row input.value {
5444 border-right: 1px solid #ccc;
5446 [dir='rtl'] .tag-row input.value {
5447 border-left: 1px solid #ccc;
5450 .tag-row:first-child input.key {
5451 border-top: 1px solid #ccc;
5452 border-top-left-radius: 4px;
5454 [dir='rtl'] .tag-row:first-child input.key {
5455 border-top-left-radius: 0;
5456 border-top-right-radius: 4px;
5459 .tag-row:first-child input.value {
5460 border-top: 1px solid #ccc;
5466 border: 1px solid #ccc;
5467 border-top-width: 0;
5468 border-left-width: 0;
5470 [dir='rtl'] .tag-row button {
5471 border-left-width: 1px;
5472 border-right-width: 0;
5475 .tag-row button:hover {
5476 background: #f1f1f1;
5478 .tag-row button .icon {
5481 .tag-row:first-child button {
5482 border-top-width: 1px;
5485 .tag-row:first-child .tag-reference-button {
5486 border-top-right-radius: 4px;
5488 [dir='rtl'] .tag-row:first-child .tag-reference-button {
5489 border-top-left-radius: 4px;
5490 border-top-right-radius: 0;
5493 .tag-row:last-child .tag-reference-button {
5494 border-bottom-right-radius: 4px;
5496 [dir='rtl'] .tag-row:last-child .tag-reference-button {
5497 border-bottom-left-radius: 4px;
5498 border-bottom-right-radius: 0;
5501 .tag-row .tag-reference-button {
5504 [dir='rtl'] .tag-row .tag-reference-button {
5505 border-left-width: 1px;
5506 border-right-width: 0;
5510 .tag-reference-loading {
5511 background-color: #f5f5f5;
5513 .tag-reference-loading .icon {
5514 background-image: url(<%= asset_path("iD/img/mini-loader.gif") %>);
5515 background-position: 0 0;
5518 .tag-reference-body {
5525 .tag-reference-body.expanded {
5526 padding-bottom: 10px;
5527 display: inline-block;
5529 .tag-reference-description {
5532 .tag-reference-link {
5536 img.tag-reference-wiki-image {
5542 [dir='rtl'] img.tag-reference-wiki-image {
5547 .preset-list .tag-reference-body {
5551 .raw-tag-editor .tag-reference-body {
5554 .raw-tag-editor .tag-row.readonly .tag-reference-body {
5555 background: #f6f6f6;
5558 .raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
5559 border-bottom: 1px solid #ccc;
5561 .raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
5562 border-top: 1px solid #ccc;
5566 /* Raw Member / Membership Editor
5567 ------------------------------------------------------- */
5569 .raw-member-editor .member-list,
5570 .raw-membership-editor .member-list {
5573 .raw-member-editor .member-list li,
5574 .raw-membership-editor .member-list li {
5578 padding-bottom: 10px;
5580 .raw-member-editor .member-row .member-entity-name,
5581 .raw-membership-editor .member-row .member-entity-name {
5582 font-weight: normal;
5586 [dir='rtl'] .raw-member-editor .member-row .member-entity-name,
5587 [dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
5589 padding-right: 10px;
5592 .form-field-input-member > input.member-role {
5593 border-radius: 0 0 0 4px;
5595 [dir='rtl'] .form-field-input-member > input.member-role {
5596 border-radius: 0 0 4px 0;
5599 .member-incomplete .form-field-input-member > input.member-role,
5600 [dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
5601 border-radius: 0 0 4px 4px;
5604 .member-incomplete .member-delete {
5608 .member-row-new .member-entity-input {
5610 border-radius: 4px 4px 0 0;
5614 .raw-member-editor .member-row.dragging {
5618 -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5619 -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5620 box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5623 .raw-member-editor .member-row.dragging
5625 /* preserve extra space at bottom of inspector to allow for dropdown options - #5280 */
5626 .raw-membership-editor.inspector-inner {
5627 margin-bottom: 150px;
5630 /* hidden field to prevent user from tabbing out of the sidebar */
5635 border: 1px solid rgba(0,0,0,0);
5639 /* add tag, add relation buttons */
5643 flex-flow: row nowrap;
5646 .add-row .add-relation,
5647 .add-row .space-value {
5650 .add-row .space-buttons {
5655 background: rgba(0,0,0,.5);
5657 .add-row button:focus,
5658 .add-row button:hover {
5659 background: rgba(0,0,0,.8);
5663 border-radius: 0 0 4px 4px;
5671 /* OSM Note / KeepRight Editors
5672 ------------------------------------------------------- */
5675 background-color: #f6f6f6;
5677 border: 1px solid #ccc;
5679 flex-flow: row nowrap;
5680 align-items: center;
5684 .error-header-icon {
5685 background-color: #fff;
5691 border-right: 1px solid #ccc;
5692 border-radius: 5px 0 0 5px;
5694 [dir='rtl'] .note-header-icon,
5695 [dir='rtl'] .error-header-icon {
5696 border-right: unset;
5697 border-left: 1px solid #ccc;
5698 border-radius: 0 5px 5px 0;
5701 .note-header-icon .icon-wrap,
5702 .error-header-icon .icon-wrap {
5712 .preset-icon-28 .icon {
5718 .error-header-label {
5719 background-color: #f6f6f6;
5724 border-radius: 0 5px 5px 0;
5726 [dir='rtl'] .note-header-label,
5727 [dir='rtl'] .error-header-label {
5728 border-radius: 5px 0 0 5px;
5735 .comments-container {
5736 background: #ececec;
5743 background-color: #fff;
5745 border: 1px solid #ccc;
5748 flex-flow: row nowrap;
5754 .comment-avatar .icon.comment-avatar-icon {
5758 border: 1px solid #ccc;
5759 border-radius: 20px;
5762 padding: 10px 10px 10px 0;
5764 flex-flow: column nowrap;
5766 overflow-wrap: break-word;
5768 [dir='rtl'] .comment-main {
5769 padding: 10px 0 10px 10px;
5773 flex-flow: row nowrap;
5774 justify-content: space-between;
5789 .comment-text::-webkit-scrollbar {
5801 .error-details-container {
5802 background: #ececec;
5806 border: 1px solid #ccc;
5808 .error-details-description {
5809 margin-bottom: 10px;
5811 .error-details-description-text::first-letter {
5812 text-transform: capitalize;
5814 [dir='rtl'] .error-details-description-text::first-letter {
5815 text-transform: none; /* #5877 */
5818 .note-save .new-comment-input,
5819 .error-save .new-comment-input {
5826 .note-save .detail-section,
5827 .error-save .detail-section {
5836 /* Custom Data Editor
5837 ------------------------------------------------------- */
5839 background-color: #f6f6f6;
5841 border: 1px solid #ccc;
5843 flex-flow: row nowrap;
5844 align-items: center;
5848 background-color: #fff;
5854 border-right: 1px solid #ccc;
5855 border-radius: 5px 0 0 5px;
5857 [dir='rtl'] .data-header-icon {
5858 border-right: unset;
5859 border-left: 1px solid #ccc;
5860 border-radius: 0 5px 5px 0;
5863 .data-header-icon .icon-wrap {
5868 .data-header-label {
5869 background-color: #f6f6f6;
5874 border-radius: 0 5px 5px 0;
5876 [dir='rtl'] .data-header-label {
5877 border-radius: 5px 0 0 5px;
5880 /* custom data editor - no info/delete buttons */
5881 .data-editor.raw-tag-editor .tag-row button {
5884 .data-editor.raw-tag-editor .tag-row .key-wrap,
5885 .data-editor.raw-tag-editor .tag-row .value-wrap {
5891 ------------------------------------------------------- */
5899 [dir='rtl'] .map-controls {
5904 .map-control > button {
5907 background: rgba(0,0,0,.5);
5911 .map-control > button:not(.disabled):hover,
5912 .map-control > button:not(.disabled):focus {
5913 background: rgba(0, 0, 0, .8);
5916 .map-control > button.active,
5917 .map-control > button.active:hover {
5918 background: #7092ff;
5921 .map-control > button.disabled .icon {
5922 color: rgba(255, 255, 255, 0.5);
5926 /* Fullscreen Button (disabled)
5927 ------------------------------------------------------- */
5929 display: inline-block;
5935 div.full-screen .tooltip {
5939 div.full-screen > button, div.full-screen > button.active {
5942 background: transparent;
5945 div.full-screen > button:hover {
5946 background-color: rgba(0, 0, 0, .8);
5951 ------------------------------------------------------- */
5952 .zoombuttons > button.zoom-in {
5953 border-radius: 4px 0 0 0;
5955 [dir='rtl'] .zoombuttons > button.zoom-in {
5956 border-radius: 0 4px 0 0;
5961 ------------------------------------------------------- */
5962 .geolocate-control {
5963 margin-bottom: 10px;
5965 .geolocate-control > button {
5966 border-radius: 0 0 0 4px;
5968 [dir='rtl'] .geolocate-control > button {
5969 border-radius: 0 0 4px 0;
5973 /* Background / Map Data / Help Pane buttons
5974 ------------------------------------------------------- */
5975 .help-control > button {
5976 border-radius: 0 0 0 4px;
5978 [dir='rtl'] .help-control > button {
5979 border-radius: 0 0 4px 0;
5982 .map-data-control button {
5986 .background-control > button {
5987 border-radius: 4px 0 0 0;
5989 [dir='rtl'] .background-control > button {
5990 border-radius: 0 4px 0 0;
5994 /* Background / Map Data Settings
5995 ------------------------------------------------------- */
5997 .background-control {
6002 margin-bottom: 10px;
6003 white-space: nowrap;
6006 .layer-list, .controls-list {
6007 margin-bottom: 10px;
6008 border: 1px solid #ccc;
6014 background-color: #fff;
6024 .layer-list > li:first-child {
6025 border-radius: 3px 3px 0 0;
6027 .layer-list > li:last-child {
6028 border-radius: 0 0 3px 3px;
6030 .layer-list > li:only-child {
6033 .layer-list li:not(:last-child) {
6034 border-bottom: 1px solid #ccc;
6036 .layer-list li:hover {
6037 background-color: #ececec;
6040 .layer-list li.active button,
6041 .layer-list li.switch button,
6042 .layer-list li.active,
6043 .layer-list li.switch {
6044 background: #e8ebff;
6047 .layer-list li.best > div.best {
6052 [dir='rtl'] .list-item-data-browse svg {
6053 transform: rotateY(180deg);
6056 /* make sure tooltip fits in map-control panel */
6057 /* if too wide, placement will be wrong the first time it displays */
6058 .layer-list li.best .tooltip-inner {
6068 [dir='ltr'] .layer-list .indented label {
6071 [dir='rtl'] .layer-list .indented label {
6072 padding-right: 24px;
6075 .layer-list label > span {
6078 white-space: nowrap;
6079 text-overflow: ellipsis;
6082 .map-data-pane .layer-list button,
6083 .background-pane .layer-list button {
6085 border-left: 1px solid #ccc;
6090 [dir='rtl'] .map-data-pane .layer-list button,
6091 [dir='rtl'] .background-pane .layer-list button {
6093 border-right: 1px solid #ccc;
6096 .map-data-pane .layer-list button .icon,
6097 .background-pane .layer-list button .icon {
6101 .map-data-pane .layer-list button:last-of-type,
6102 .background-pane .layer-list button:last-of-type {
6103 border-radius: 0 3px 3px 0;
6105 [dir='rtl'] .map-data-pane .layer-list button:last-of-type,
6106 [dir='rtl'] .background-pane .layer-list button:last-of-type {
6107 border-radius: 3px 0 0 3px;
6110 .map-data-pane .vectortile-container .vectortile-header {
6111 padding-bottom: 5px;
6113 .map-data-pane .vectortile-container .vectortile-footer {
6114 padding-bottom: 10px;
6119 ------------------------------------------------------- */
6123 .issue .issue-label,
6124 .issue-label .issue-text {
6127 flex-flow: row nowrap;
6131 .issue-text .issue-icon {
6135 .issue-text .issue-message {
6139 .issue-label .issue-autofix {
6143 .issue-label .issue-info-button {
6147 border-left: 1px solid #ccc;
6148 background-color: rgba(0,0,0,0);
6150 [dir='rtl'] .issue-label .issue-info-button {
6152 border-right: 1px solid #ccc;
6154 .issue-container .issue-label .issue-info-button .icon {
6157 .issue-container.active .issue-label .issue-info-button .icon {
6160 .issue-label .issue-info-button:last-child {
6161 border-radius: 0 4px 4px 0;
6163 [dir='rtl'] .issue-label .issue-info-button:last-child {
6164 border-radius: 4px 0 0 4px;
6167 button.autofix.action {
6171 background: #7092ff;
6174 button.autofix.action:focus,
6175 button.autofix.action:hover,
6176 button.autofix.action.active {
6177 background: #597be7;
6183 flex-flow: row nowrap;
6184 flex-direction: row-reverse;
6186 padding-bottom: 5px;
6188 .autofix-all-link-text {
6191 .autofix-all-link-icon svg {
6193 background: currentColor;
6196 .autofix-all-link-icon svg use {
6200 /* warning styles */
6203 .issue-container.active .issue.severity-warning,
6204 .issue-container.active .issue.severity-warning * {
6208 .warnings-list .issue.severity-warning .issue-label,
6209 .issue.severity-warning .issue-fix-list,
6210 .mode-save .warning-section {
6214 .issue-container.active .issue.severity-warning .issue-label {
6218 .warnings-list .issue.severity-warning .issue-label:hover,
6219 .issue.severity-warning .issue-fix-item.actionable:hover {
6223 .issue.severity-warning .issue-icon {
6227 .issue.severity-warning .issue-fix-item.actionable,
6228 .issue-container.active .issue.severity-warning .issue-info-button {
6234 .issue.severity-warning .issue-fix-item.actionable:hover,
6235 .issue-container.active .issue.severity-warning .issue-info-button:hover {
6242 .notification-badge.warning {
6250 .issue-container.active .issue.severity-error,
6251 .issue-container.active .issue.severity-error * {
6255 .errors-list .issue.severity-error .issue-label,
6256 .issue.severity-error .issue-fix-list,
6257 .mode-save .error-section {
6258 background: #ffd6d6;
6261 .issue-container.active .issue.severity-error .issue-label {
6262 background: #ffc6c6;
6265 .errors-list .issue.severity-error .issue-label:hover,
6266 .issue.severity-error .issue-fix-item.actionable:hover {
6267 background: #ffb6b6;
6270 .issue.severity-error .issue-icon {
6274 .issue.severity-error .issue-fix-item.actionable,
6275 .issue-container.active .issue.severity-error .issue-info-button {
6281 .issue.severity-error .issue-fix-item.actionable:hover,
6282 .issue-container.active .issue.severity-error .issue-info-button:hover {
6289 .notification-badge.error {
6295 .issues-options-container {
6301 .issues-option-title {
6302 display: table-cell;
6304 padding-right: 10px;
6306 [dir='rtl'] .issues-option-title {
6310 .issues-option label {
6311 display: table-cell;
6315 .layer-list.issues-list li.issue {
6316 border-color: inherit; /* override .layer-list styles */
6321 .layer-list.issue-rules-list,
6322 .layer-list.issues-list,
6323 .layer-list.layer-feature-list {
6328 flex-flow: row nowrap;
6329 flex-direction: row-reverse;
6338 border: 1px solid #72d979;
6339 background: #c6ffca;
6340 padding: 5px !important;
6343 .issues-none .icon {
6347 input.square-degrees-input {
6348 padding: 2px !important; /* important needed for rtl */
6351 background: rgba(0,0,0,0);
6352 color: currentColor;
6356 /* Entity Issues List */
6357 .entity-issues .issue-container .issue {
6359 border: 1px solid #ccc;
6360 background: #f6f6f6;
6362 .entity-issues .issue-container:not(.active) .issue-text:hover,
6363 .entity-issues .issue-container:not(.active) .issue-info-button:hover {
6364 background: #f1f1f1;
6366 .entity-issues .issue .issue-label .issue-text {
6367 padding-right: 10px;
6369 [dir='rtl'] .entity-issues .issue .issue-label .issue-text {
6370 padding-right: unset;
6374 .entity-issues .issue-container.active .issue-label .issue-text {
6377 .entity-issues .issue-container:not(:last-of-type) {
6380 .entity-issues .issue-container.active:not(:first-of-type) {
6383 .entity-issues .issue-container.active:not(:last-of-type) {
6384 margin-bottom: 10px;
6388 .entity-issues .issue-fix-list {
6389 border-top: 1px solid;
6390 border-color: inherit;
6392 .entity-issues .issue-container.active .issue-fix-list:empty {
6397 padding: 2px 10px 2px 20px;
6399 [dir='rtl'] li.issue-fix-item {
6400 padding: 2px 20px 2px 10px;
6402 li.issue-fix-item:first-of-type {
6405 li.issue-fix-item:last-of-type {
6406 padding-bottom: 5px;
6409 li.issue-fix-item .fix-message {
6413 li.issue-fix-item.actionable {
6416 li.issue-fix-item:not(.actionable) .fix-icon {
6421 .issue-container:not(.active) ul.issue-fix-list {
6432 .issue-info.expanded {
6433 display: inline-block;
6436 .issue-info .issue-reference {
6437 margin-bottom: 10px;
6439 .issue-info .tagDiff-table {
6442 border: 1px solid #ccc;
6444 .issue-info .tagDiff-row {
6445 border: 1px solid #ccc;
6447 .issue-info .tagDiff-cell {
6449 font-family: monospace;
6451 border: 1px solid #ccc;
6453 .issue-info .tagDiff-cell-add {
6456 .issue-info .tagDiff-cell-remove {
6461 /* Background - Display Options Sliders
6462 ------------------------------------------------------- */
6463 .display-options-container {
6467 .display-control h5 {
6472 .display-control h5 span {
6476 .display-control .display-option-input {
6481 .display-control button {
6486 vertical-align: text-bottom;
6489 [dir='rtl'] .display-control button {
6495 /* Background - Adjust Alignment
6496 ------------------------------------------------------- */
6497 .background-pane .nudge-container {
6498 border: 1px solid #ccc;
6503 .nudge-container .nudge-instructions {
6504 padding-bottom: 15px;
6507 .nudge-container .nudge-outer-rect {
6508 background-color: #eee;
6509 border: 1px solid #ccc;
6514 justify-content: center;
6515 align-items: center;
6521 .nudge-container .nudge-inner-rect {
6522 background-color: #fff;
6523 border: 1px solid #ccc;
6529 .nudge-container .nudge::after {
6534 left: 0; right: 0; top: 0; bottom: 0;
6539 .nudge-container input {
6546 .nudge-container input.error {
6547 border: 1px solid #ff7878;
6552 .nudge-container input:focus {
6553 background-color: transparent;
6556 .nudge-container button {
6561 background-color: transparent;
6564 .nudge-container button.right {
6569 .nudge-container button.left {
6574 .nudge-container button.top {
6579 .nudge-container button.bottom {
6583 .nudge-container button.nudge-reset {
6594 background-color: transparent;
6598 .background-pane .nudge.right::after {
6599 border-top: 5px solid transparent;
6600 border-bottom: 5px solid transparent;
6601 border-left: 5px solid #222;
6604 .background-pane .nudge.left::after {
6605 border-top: 5px solid transparent;
6606 border-bottom: 5px solid transparent;
6607 border-right: 5px solid #222;
6610 .background-pane .nudge.top::after {
6611 border-right: 5px solid transparent;
6612 border-left: 5px solid transparent;
6613 border-bottom: 5px solid #222;
6616 .background-pane .nudge.bottom::after {
6617 border-right: 5px solid transparent;
6618 border-left: 5px solid transparent;
6619 border-top: 5px solid #222;
6623 /* Side Panes - Background / Map Data / Help
6624 ------------------------------------------------------- */
6635 padding-bottom: 60px;
6640 .map-pane.help-wrap {
6646 flex-flow: row nowrap;
6647 justify-content: space-between;
6648 border-bottom: 1px solid #ccc;
6656 .pane-heading button {
6664 padding: 10px 40px 20px 20px;
6669 [dir='rtl'] .pane-content {
6670 padding: 10px 20px 20px 40px;
6673 .pane-content > div {
6674 padding-bottom: 15px;
6679 ------------------------------------------------------- */
6682 margin-bottom: 20px;
6685 .help-wrap .left-content .body p code {
6689 vertical-align: baseline;
6690 background-color: #f6f6f6;
6691 border: solid 1px #ccc;
6693 border-bottom-color: #bbb;
6695 box-shadow: inset 0 -1px 0 #bbb;
6698 .help-wrap .left-content .icon.pre-text {
6699 vertical-align: text-top;
6702 display: inline-block;
6709 margin-bottom: 20px;
6713 .help-wrap .toc li a,
6716 border: 1px solid #ccc;
6720 .help-wrap .toc li a {
6724 .help-wrap .toc li a:hover,
6725 .help-wrap .nav a:hover {
6726 background: #ececec;
6729 .help-wrap .toc li a.selected {
6730 background: #e8ebff;
6733 .help-wrap .toc li:first-child a {
6734 border-radius: 4px 4px 0 0;
6737 .help-wrap .toc li:nth-last-child(3) a {
6738 border-bottom: 1px solid #ccc;
6739 border-radius: 0 0 4px 4px
6742 .help-wrap .toc li.shortcuts a,
6743 .help-wrap .toc li.walkthrough a {
6746 border-bottom: 1px solid #ccc;
6750 .help-wrap .toc li.walkthrough a {
6756 padding-bottom: 30px;
6765 .help-wrap .nav a:first-child {
6766 border-radius: 4px 0 0 4px;
6769 .help-wrap .nav a:last-child:not(:only-child) {
6770 border-radius: 0 4px 4px 0;
6774 .help-wrap .nav a:only-child {
6780 /* Inspector (hover styles)
6781 ------------------------------------------------------- */
6782 .inspector-hover .entity-issues .issue-container .issue .issue-label,
6783 .inspector-hover .form-field-input-wrap .label,
6784 .inspector-hover .form-field-input-multicombo .chiplist,
6785 .inspector-hover .form-field-button,
6786 .inspector-hover .structure-extras-wrap,
6787 .inspector-hover .comments-container .comment,
6788 .inspector-hover button,
6789 .inspector-hover input,
6790 .inspector-hover textarea,
6791 .inspector-hover label {
6792 background: #ececec;
6794 .inspector-hover .preset-list-button,
6795 .inspector-hover .tag-row input {
6796 background: #f6f6f6;
6800 .inspector-hover .form-field-input-multicombo .chips,
6801 .inspector-hover .form-field-input-check span,
6802 .inspector-hover .entity-issues .issue .icon {
6806 .inspector-hover .form-field-input-multicombo .chips {
6808 border: 1px solid #ccc;
6812 .inspector-hover div {
6817 /* hide and remove from layout */
6819 .inspector-hover .preset-list-button-wrap .preset-favorite-button,
6820 .inspector-hover .preset-list-button-wrap .tag-reference-button,
6821 .inspector-hover label input[type="checkbox"],
6822 .inspector-hover label input[type="radio"],
6823 .inspector-hover .form-field-input-multicombo .input-wrap,
6824 .inspector-hover .form-field-input-radio label,
6825 .inspector-hover .form-field-input-radio label span,
6826 .inspector-hover .form-field-input-radio label.remove .icon,
6827 .inspector-hover .inspector-inner .add-row,
6828 .inspector-hover .entity-issues .issue-container .issue-fix-list,
6829 .inspector-hover .entity-issues .issue-container .issue-info-button {
6833 /* hide but preserve in layout */
6834 .inspector-hover .combobox-caret,
6835 .inspector-hover .header button,
6836 .inspector-hover .quick-links,
6837 .inspector-hover .form-field-input-multicombo .chips .remove,
6838 .inspector-hover .hide-toggle:before,
6839 .inspector-hover .more-fields,
6840 .inspector-hover .field-label button,
6841 .inspector-hover .tag-row button,
6842 .inspector-hover .footer * {
6846 /* Unstyle the active entity issue on hover */
6847 .inspector-hover .entity-issues .issue-container.active {
6851 .inspector-hover .entity-issues .issue-container * {
6852 border-color: #ccc !important;
6854 .inspector-hover .entity-issues .issue-container.active .issue-label {
6857 .inspector-hover .entity-issues .issue-container.active .issue-label .issue-text {
6858 font-weight: normal;
6862 /* Styles for raw tag inspector on hover */
6863 .inspector-hover .tag-row .key-wrap,
6864 .inspector-hover .tag-row .value-wrap {
6868 .inspector-hover .tag-row:first-child input.value {
6869 border-top-right-radius: 4px;
6871 [dir='rtl'] .inspector-hover .tag-row:first-child input.value {
6872 border-top-right-radius: 0;
6873 border-top-left-radius: 4px;
6876 .inspector-hover .tag-row:last-child input.value {
6877 border-bottom-right-radius: 4px;
6879 [dir='rtl'] .inspector-hover .tag-row:last-child input.value {
6880 border-bottom-right-radius: 0;
6881 border-bottom-left-radius: 4px;
6884 .inspector-hover .tag-row:last-child input.key {
6885 border-bottom-left-radius: 4px;
6887 [dir='rtl'] .inspector-hover .tag-row:last-child input.key {
6888 border-bottom-left-radius: 0;
6889 border-bottom-right-radius: 4px;
6892 .inspector-hover .more-fields {
6894 margin-bottom: -10px;
6897 /* Unstyle button fields */
6898 .inspector-hover .form-field-input-radio label.active,
6899 .inspector-hover .entity-editor-pane a.hide-toggle {
6901 background-color: transparent;
6906 .inspector-hover .form-field-input-radio button.active {
6910 /* Show placeholder on hover for radio buttons */
6911 .inspector-hover .form-field-input-radio {
6912 border: 1px solid #ccc;
6914 border-radius: 0 0 4px 4px;
6916 .inspector-hover .form-field-input-radio .placeholder {
6924 .inspector-hover .form-field-input-radio .structure-extras-wrap {
6929 /* Raster Background Tiles
6930 ------------------------------------------------------- */
6933 transform-origin: 0 0;
6934 -ms-transform-origin: 0 0;
6935 -webkit-transform-origin: 0 0;
6936 -moz-transform-origin: 0 0;
6937 -o-transform-origin: 0 0;
6939 -moz-user-select: none;
6940 -webkit-user-select: none;
6941 -ms-user-select: none;
6946 -webkit-transition: opacity 200ms linear;
6947 -moz-transition: opacity 200ms linear;
6948 transition: opacity 200ms linear;
6961 background: rgba(0, 0, 0, 0.7);
6971 transform-origin: 0 0;
6972 -ms-transform-origin: 0 0;
6973 -webkit-transform-origin: 0 0;
6974 -moz-transform-origin: 0 0;
6975 -o-transform-origin: 0 0;
6977 -moz-user-select: none;
6978 -webkit-user-select: none;
6979 -ms-user-select: none;
6984 outline: 1px solid red;
6989 ------------------------------------------------------- */
6995 -moz-user-select: none;
6996 -webkit-user-select: none;
6997 -ms-user-select: none;
7002 transform-origin: 0 0;
7003 -ms-transform-origin: 0 0;
7004 -webkit-transform-origin: 0 0;
7005 -moz-transform-origin: 0 0;
7006 -o-transform-origin: 0 0;
7009 #supersurface, .layer {
7019 ------------------------------------------------------- */
7028 border: #aaa 1px solid;
7029 box-shadow: 0 0 2em black;
7031 [dir='ltr'] .map-in-map {
7034 [dir='rtl'] .map-in-map {
7039 transform-origin: 0 0;
7040 -ms-transform-origin: 0 0;
7041 -webkit-transform-origin: 0 0;
7042 -moz-transform-origin: 0 0;
7043 -o-transform-origin: 0 0;
7045 -moz-user-select: none;
7046 -webkit-user-select: none;
7047 -ms-user-select: none;
7051 .map-in-map-viewport,
7060 .map-in-map-viewport {
7071 stroke: rgba(255, 255, 0, 0.75);
7073 shape-rendering: crispEdges;
7076 .map-in-map-bbox.thick {
7082 ------------------------------------------------------- */
7084 stroke: currentColor;
7088 .map-in-map-data .debug {
7092 .nocolor { color: rgba(0, 0, 0, 0); }
7093 .red { color: rgba(255, 0, 0, 0.75); }
7094 .green { color: rgba(0, 255, 0, 0.75); }
7095 .blue { color: rgba(176, 176, 255, 0.75); }
7096 .yellow { color: rgba(255, 255, 0, 0.75); }
7097 .cyan { color: rgba(0, 255, 255, 0.75); }
7098 .magenta { color: rgba(255, 0, 255, 0.75); }
7099 .orange { color: rgba(255, 153, 0, 0.75); }
7100 .pink { color: rgba(255, 0, 153, 0.75); }
7101 .purple { color: rgba(153, 0, 255, 0.75); }
7109 pointer-events: none;
7112 .debug-legend-item {
7115 .debug-legend-item:before {
7127 pointer-events: none;
7129 flex-direction: row-reverse;
7130 align-items: flex-end;
7133 pointer-events: auto;
7136 /* Information Panels
7137 ------------------------------------------------------- */
7140 flex-flow: row-reverse wrap-reverse;
7143 -ms-user-select: element;
7144 pointer-events: none;
7147 .panel-container h1,
7148 .panel-container h2,
7149 .panel-container h3,
7150 .panel-container h4,
7151 .panel-container h5 {
7152 display: inline-block;
7156 .panel-container h1,
7157 .panel-container h2,
7158 .panel-container h3 {
7164 margin: 0 2px 2px 0;
7166 border: 1px solid rgba(0, 0, 0, 0.75);
7167 padding-bottom: 10px;
7169 pointer-events: auto;
7172 .panel-container .panel-title {
7173 border-radius: 4px 4px 0 0;
7180 .panel-title button.close {
7186 [dir='rtl'] .panel-title button.close {
7190 .panel-title button.close:hover {
7193 .panel-title button.close .icon {
7203 .panel-content li span {
7204 display: inline-block;
7205 white-space: nowrap;
7209 .panel-content .button {
7210 display: inline-block;
7211 background: #7092ff;
7218 [dir='rtl'] .panel-content .button {
7223 .panel-content-history .links a {
7226 [dir='rtl'] .panel-content-history .links a {
7230 .panel-content-history h4 {
7233 .panel-content-location .location-info {
7238 /* About Section, Attribution, Footer
7239 ------------------------------------------------------- */
7246 pointer-events: none;
7248 flex-direction: column;
7249 -ms-user-select: element;
7258 #attrib * { pointer-events: all; }
7260 .base-layer-attribution,
7261 .overlay-layer-attribution {
7267 .base-layer-attribution {
7271 .overlay-layer-attribution {
7275 .overlay-layer-attribution .attribution:not(:last-child):after {
7280 .attribution a:visited {
7284 .attribution a:hover {
7288 .attribution .source-image {
7290 vertical-align: middle;
7299 pointer-events: all;
7305 /* Footer - Flash messages
7306 ------------------------------------------------------- */
7310 flex-flow: row nowrap;
7311 justify-content: space-between;
7321 flex-flow: row nowrap;
7322 align-items: center;
7334 .flash-icon circle {
7337 .flash-icon.disabled circle {
7339 fill: rgba(255,255,255,0.7);
7345 .flash-icon.disabled use {
7346 color: rgba(32,32,32,0.7);
7349 .flash-icon.operation use {
7353 .flash-icon.operation.disabled use {
7354 fill: rgba(32,32,32,0.7);
7355 color: rgba(40,40,40,0.7);
7365 flex-flow: row nowrap;
7366 justify-content: space-between;
7375 transition: bottom 75ms linear;
7376 -moz-transition: bottom 75ms linear;
7377 -webkit-transition: bottom 75ms linear;
7382 transition: bottom 75ms linear;
7383 -moz-transition: bottom 75ms linear;
7384 -webkit-transition: bottom 75ms linear;
7388 /* Footer - Scale bar, About, Source Switcher
7389 ------------------------------------------------------- */
7391 vertical-align: bottom;
7395 -moz-user-select: none;
7396 -webkit-user-select: none;
7397 -ms-user-select: none;
7410 [dir='rtl'] #scale {
7411 transform: scaleX(-1);
7419 font: 12px sans-serif;
7424 [dir='rtl'] #scale text {
7425 transform: scaleX(-1);
7432 shape-rendering: crispEdges;
7441 [dir='rtl'] #about-list {
7450 border-left: 1px solid rgba(255,255,255,.5);
7451 padding: 5px 0 5px 5px;
7454 [dir='rtl'] #about-list li {
7457 border-right: 1px solid rgba(255,255,255,.5);
7460 padding: 5px 5px 5px 0;
7462 #about-list li:empty {
7466 #about-list li:last-child {
7471 [dir='rtl'] #about-list li:last-child {
7475 #about-list a.chip {
7476 padding: 2px 4px 3px 4px;
7480 #about-list a.chip .icon {
7485 [dir='ltr'] #about-list a.chip .icon,
7486 [dir='ltr'] #about-list a.chip span {
7489 [dir='rtl'] #about-list a.chip .icon,
7490 [dir='rtl'] #about-list a.chip span {
7494 .source-switch a.chip.live {
7495 background: #d32232;
7499 .feature-warning a.chip {
7500 background: #1e90ff;
7503 .issues-info a.chip.resolved-count {
7504 background: #15911E;
7506 .issues-info a.chip.warnings-count {
7507 background: #DF8500;
7509 [dir='ltr'] .issues-info a.chip:not(:last-child) {
7512 [dir='rtl'] .issues-info a.chip:not(:last-child) {
7516 .user-list a:not(:last-child):after {
7526 [dir='rtl'] .api-status {
7530 .api-status.offline,
7531 .api-status.readonly,
7539 .api-status-login:hover {
7543 /* Notification Badges
7544 ------------------------------------------------------- */
7545 /* For an icon (e.g. new version) */
7547 display: inline-block;
7548 background: #d32232;
7551 border-radius: 11px;
7554 [dir='rtl'] .badge {
7561 [dir='rtl'] .badge a {
7566 vertical-align: baseline;
7572 /* For text (e.g. upcoming events) */
7574 display: inline-block;
7585 [dir='rtl'] .badge-text {
7592 ------------------------------------------------------- */
7595 display: inline-block;
7609 margin-bottom: 10px;
7611 .modal .description {
7626 background: rgba(0,0,0,0.5);
7628 left: 0px; right: 0px; top: 0px; bottom: 0px;
7633 border-bottom: 1px solid #ccc;
7635 .modal-section.header h3 {
7638 .modal-section.buttons {
7642 .modal-section.buttons button {
7646 .modal-section.buttons .action {
7647 display: inline-block;
7650 vertical-align: middle;
7653 .save-section .buttons {
7656 justify-content: space-around;
7657 margin-bottom: 30px;
7660 .save-section .buttons .action,
7661 .save-section .buttons .secondary-action {
7665 vertical-align: middle;
7674 .modal-actions button {
7675 font-weight: normal;
7677 border-bottom: 1px solid #ccc;
7683 .modal-actions button:hover {
7684 background-color: #ececec;
7700 .modal-actions > :first-child {
7701 border-right: 1px solid #ccc;
7704 .modal-section:last-child {
7709 ------------------------------------------------------- */
7710 .modal-actions .logo-restore {
7713 .modal-actions .logo-reset {
7717 /* Success Screen / Community Index
7718 ------------------------------------------------------- */
7719 .save-success.body {
7724 .save-success .link-out {
7726 white-space: nowrap;
7730 .save-communityLinks {
7731 padding: 0px 20px 15px 20px;
7734 .save-communityLinks {
7735 border-top: 1px solid #ccc;
7738 .save-success table,
7749 vertical-align: top;
7751 .save-success td.cell-icon {
7754 .save-success td.cell-detail {
7757 .save-success td.community-detail {
7758 padding-bottom: 15px;
7761 .summary-view-on-osm,
7766 .community-languages {
7770 .community-languages:only-child {
7774 .community-detail a.hide-toggle,
7775 .community-detail a:visited.hide-toggle {
7777 font-weight: normal;
7780 .community-detail .hide-toggle svg.icon.pre-text {
7791 background-color: #efefef;
7797 .community-event-name {
7801 .community-event-when {
7805 .community-missing {
7812 ------------------------------------------------------- */
7813 .modal-actions .logo-walkthrough,
7814 .modal-actions .logo-features {
7820 ------------------------------------------------------- */
7826 .modal-shortcuts .modal-section:last-child {
7831 .modal-shortcuts .tabs-bar {
7833 padding-bottom: 5px;
7838 .modal-shortcuts .tab {
7839 display: inline-block;
7845 .modal-shortcuts .tab.active {
7847 border-bottom: 2px solid;
7849 .modal-shortcuts .tab:hover {
7851 background-color: #efefef;
7854 .modal-shortcuts .shortcut-tab {
7856 flex-flow: row wrap;
7857 justify-content: center;
7860 .modal-shortcuts .shortcut-column {
7864 .modal-shortcuts .shortcut-tab-tools .shortcut-column {
7869 .modal-shortcuts td {
7870 padding-bottom: 5px;
7873 .modal-shortcuts .shortcut-section {
7874 padding: 20px 0 10px 0;
7877 .modal-shortcuts .shortcut-keys {
7881 white-space: nowrap;
7883 [dir='rtl'] .modal-shortcuts .shortcut-keys {
7887 .modal-shortcuts .shortcut-keys kbd {
7888 display: inline-block;
7895 vertical-align: baseline;
7896 background-color: #fcfcfc;
7897 border: solid 1px #ccc;
7899 border-bottom-color: #bbb;
7901 box-shadow: inset 0 -1px 0 #bbb;
7904 svg.mouseclick use.left {
7905 fill: rgba(112, 146, 255, 1);
7906 color: rgba(112, 146, 255, 0);
7908 svg.mouseclick use.right {
7909 fill: rgba(112, 146, 255, 0);
7910 color: rgba(112, 146, 255, 1);
7913 .modal-shortcuts .shortcut-keys .gesture {
7920 ------------------------------------------------------- */
7921 .settings-modal textarea {
7926 .settings-custom-background .instructions-template {
7927 margin-bottom: 20px;
7930 .settings-custom-data .instructions-url {
7931 margin-bottom: 10px;
7933 .settings-custom-data .field-file,
7934 .settings-custom-data .instructions-template {
7935 margin-bottom: 20px;
7940 ------------------------------------------------------- */
7941 .mode-save a.user-info {
7942 display: inline-block;
7945 .mode-save .commit-form {
7949 .mode-save .user-info img {
7953 .mode-save h3 small.count {
7961 border-radius: 24px;
7963 background: #7092ff;
7967 .note-save .field-warning,
7968 .mode-save .field-warning {
7970 border: 1px solid #ccc;
7975 .note-save .field-warning:empty,
7976 .mode-save .field-warning:empty {
7980 .mode-save .field-warning,
7981 .mode-save .changeset-info,
7982 .mode-save .request-review,
7983 .mode-save .commit-info {
7984 margin-bottom: 10px;
7987 .mode-save .request-review label {
7991 .mode-save .changeset-list {
7992 border: 1px solid #ccc;
7995 margin-bottom: 10px;
7998 .mode-save .warning-section .changeset-list button {
7999 border-left: 1px solid #ccc;
8002 .mode-save .changeset-list li {
8004 border-top: 1px solid #ccc;
8009 .mode-save .changeset-list li:hover {
8010 background-color: #ececec;
8013 .mode-save .changeset-list .alert {
8017 .changeset-list li span.count {
8022 .mode-save .commit-section .changeset-list button {
8023 border-left: 1px solid #ccc;
8026 .changeset-list li span.count:before { content: '('; }
8028 .changeset-list li span.count:after { content: ')'; }
8030 .changeset-list li:first-child { border-top: 0;}
8033 /* Conflict resolution
8034 ------------------------------------------------------- */
8037 background-color: #ffffbb;
8038 border-bottom: 1px solid #ccc;
8041 .conflicts-buttons {
8045 .mode-save button.conflicts-button {
8049 .conflict-container {
8050 border-bottom: 1px solid #ccc;
8053 .conflict-description {
8059 padding: 20px 20px 0 20px;
8062 .conflict-detail-container {
8074 .conflict-nav-buttons {
8075 padding: 10px 0 20px 0;
8078 .conflict-nav-button {
8083 /* Notices (Zoom in to Edit)
8084 ------------------------------------------------------- */
8101 .notice .zoom-to:hover,
8102 .notice .zoom-to:focus {
8103 background: rgba(0,0,0,0.6);
8106 .notice .zoom-to .icon {
8109 vertical-align: middle;
8112 [dir='rtl'] .notice .zoom-to .icon {
8119 ------------------------------------------------------- */
8125 white-space: initial;
8127 .tooltip:not(.curtain-tooltip) {
8128 pointer-events: none;
8154 display: inline-block;
8159 font-weight: normal;
8160 background-color: #fff;
8166 pointer-events: none;
8170 background: transparent;
8177 border-color: transparent;
8178 border-style: solid;
8182 border-left-color: #fff;
8183 border-width: 5px 0 5px 5px;
8202 border-color: transparent;
8203 border-style: solid;
8207 border-right-color: #fff;
8208 border-width: 5px 5px 5px 0;
8215 border-color: transparent;
8216 border-style: solid;
8218 .tooltip.top .tooltip-arrow {
8222 border-top-color: #fff;
8223 border-width: 5px 5px 0;
8225 .tooltip.right .tooltip-arrow {
8229 border-right-color: #fff;
8230 border-width: 5px 5px 5px 0;
8232 .tooltip.left .tooltip-arrow {
8236 border-left-color: #fff;
8237 border-width: 5px 0 5px 5px;
8239 .tooltip.bottom .tooltip-arrow {
8243 border-bottom-color: #fff;
8244 border-width: 0 5px 5px;
8249 background: #f6f6f6;
8251 margin: -10px -10px 10px -10px;
8252 border-radius: 3px 3px 0 0;
8257 background: #f6f6f6;
8259 margin: 10px -10px -10px -10px;
8260 border-radius: 0 0 3px 3px;
8262 .tooltip-inner .keyhint {
8267 [dir='rtl'] .tooltip-inner .keyhint {
8272 /* dark tooltips for sidebar / panels */
8273 .tooltip.dark.top .tooltip-arrow,
8274 .map-pane .tooltip.top .tooltip-arrow,
8275 #sidebar .tooltip.top .tooltip-arrow {
8276 border-top-color: #000;
8278 .tooltip.dark.bottom .tooltip-arrow,
8279 .map-pane .tooltip.bottom .tooltip-arrow,
8280 #sidebar .tooltip.bottom .tooltip-arrow {
8281 border-bottom-color: #000;
8283 .tooltip.dark.left .tooltip-arrow,
8284 .map-pane .tooltip.left .tooltip-arrow,
8285 #sidebar .tooltip.left .tooltip-arrow {
8286 border-left-color: #000;
8288 .tooltip.dark.right .tooltip-arrow,
8289 .map-pane .tooltip.right .tooltip-arrow,
8290 #sidebar .tooltip.right .tooltip-arrow {
8291 border-right-color: #000;
8293 .tooltip.dark .tooltip-inner,
8294 .tooltip.dark .tooltip-heading,
8295 .tooltip.dark .keyhint-wrap,
8296 .map-pane .tooltip-inner,
8297 .map-pane .tooltip-heading,
8298 .map-pane .keyhint-wrap,
8299 #sidebar .tooltip-inner,
8300 #sidebar .tooltip-heading,
8301 #sidebar .keyhint-wrap {
8306 /* Exceptions for tooltip layouts */
8308 /* commit warning tooltips need to be closer */
8309 .warning-section .tooltip.top {
8313 /* Uncramp map-control tooltips */
8314 .map-control .tooltip {
8317 .map-control .shortcuts .tooltip {
8321 /* Move over tooltips that are near the edge of screen */
8322 [dir='ltr'] .sidebar-toggle .tooltip {
8325 [dir='rtl'] .sidebar-toggle .tooltip {
8326 right: 0 !important;
8328 [dir='ltr'] .sidebar-toggle .tooltip .tooltip-arrow {
8331 [dir='rtl'] .sidebar-toggle .tooltip .tooltip-arrow {
8334 [dir='ltr'] .save .tooltip {
8335 left: auto !important;
8336 right: 0 !important;
8338 [dir='rtl'] .save .tooltip {
8339 right: auto !important;
8342 [dir='ltr'] .save .tooltip .tooltip-arrow {
8346 [dir='rtl'] .save .tooltip .tooltip-arrow {
8351 li:first-of-type .badge .tooltip,
8352 li.hide + li.version .badge .tooltip {
8353 left: auto !important;
8354 right: 5px !important;
8356 [dir='rtl'] li:first-of-type .badge .tooltip,
8357 [dir='rtl'] li.hide + li.version .badge .tooltip {
8358 left: 5px !important;
8359 right: auto !important;
8361 li:first-of-type .badge .tooltip .tooltip-arrow,
8362 li.hide + li.version .badge .tooltip .tooltip-arrow {
8363 right: 15px !important;
8364 left: auto !important;
8366 [dir='rtl'] li:first-of-type .badge .tooltip .tooltip-arrow,
8367 [dir='rtl'] li.hide + li.version .badge .tooltip .tooltip-arrow {
8368 left: 15px !important;
8369 right: auto !important;
8373 /* Contextual Radial Menu (deprecated)
8374 ------------------------------------------------------- */
8375 .radial-menu-tooltip {
8382 .radial-menu-background {
8385 stroke-opacity: 0.5;
8388 .radial-menu-item circle {
8392 .radial-menu-item circle:active,
8393 .radial-menu-item circle:hover {
8397 .radial-menu-item.disabled circle {
8399 fill: rgba(255,255,255,.5);
8402 .radial-menu-item use {
8407 .radial-menu-item.disabled use {
8408 fill: rgba(32,32,32,.5);
8409 color: rgba(40,40,40,.5);
8413 /* Contextual Edit Menu
8414 ------------------------------------------------------- */
8415 .edit-menu-tooltip {
8421 .edit-menu-background {
8425 .edit-menu-item rect {
8430 .edit-menu-item rect:active,
8431 .edit-menu-item rect:hover {
8435 .edit-menu-item.disabled rect {
8436 cursor: not-allowed;
8438 .edit-menu-item.disabled rect:hover {
8439 cursor: not-allowed;
8443 .edit-menu-item use {
8446 pointer-events: none;
8448 .edit-menu-item.disabled use {
8449 fill: rgba(32,32,32,.2);
8450 color: rgba(40,40,40,.2);
8455 ------------------------------------------------------- */
8461 stroke-dasharray: 5, 5;
8466 ----------------------------------------------------- */
8467 ::-webkit-scrollbar {
8472 border-left: 1px solid #DDD;
8475 ::-webkit-scrollbar-track {
8476 background-clip: padding-box;
8477 border: solid transparent;
8481 ::-webkit-scrollbar-thumb {
8482 background-color: rgba(0,0,0,.2);
8483 background-clip: padding-box;
8484 border: solid transparent;
8485 border-width: 3px 3px 3px 4px;
8488 ::-webkit-scrollbar-track:hover,
8489 ::-webkit-scrollbar-track:active {
8490 background-color: rgba(0,0,0,.05);
8494 /* Intro walkthrough
8495 ----------------------------------------------------- */
8497 pointer-events: all;
8505 flex-direction: row;
8514 .intro-nav-wrap .intro-nav-wrap-logo {
8520 vertical-align: middle;
8523 .intro-nav-wrap .joined {
8526 flex-direction: row;
8529 .intro-nav-wrap button.chapter {
8534 .intro-nav-wrap button.chapter.next {
8535 animation-duration: 1s;
8536 animation-name: pulse;
8537 animation-iteration-count: infinite;
8538 animation-direction: alternate;
8541 from { background: #7092ff; }
8542 to { background: #c6d4ff; }
8545 .intro-nav-wrap button.chapter.finished {
8546 background: #8cd05f;
8549 .intro-nav-wrap button.chapter .status {
8553 .intro-nav-wrap button.chapter.finished .status {
8554 display: inline-block;
8557 .curtain-tooltip.tooltip.in {
8560 .curtain-tooltip.tooltip {
8563 [dir='rtl'] .curtain-tooltip.tooltip {
8567 .curtain-tooltip .tooltip-inner {
8573 .curtain-tooltip .tooltip-inner .button-section,
8574 .curtain-tooltip .tooltip-inner .instruction {
8577 border-top: 1px solid #ccc;
8580 margin-right: -20px;
8581 padding: 10px 20px 0 20px;
8584 .curtain-tooltip .tooltip-inner .button-section button {
8588 .curtain-tooltip .tooltip-inner .instruction:only-child {
8594 .curtain-tooltip .tooltip-inner .icon.pre-text {
8595 vertical-align: text-top;
8598 display: inline-block;
8601 .curtain-tooltip.intro-points-describe ,
8602 .curtain-tooltip.intro-lines-name_road {
8603 top: 133px !important;
8606 .tooltip-illustration {
8612 [dir='rtl'] .tooltip-illustration {
8614 margin-right: -20px;
8617 .curtain-tooltip.intro-mouse {
8618 -moz-user-select: none;
8619 -webkit-user-select: none;
8620 -ms-user-select: none;
8624 .curtain-tooltip.intro-mouse .counter {
8635 .curtain-tooltip.intro-mouse .tooltip-illustration use {
8636 fill: rgba(112, 146, 255, 0);
8637 color: rgba(112, 146, 255, 0);
8639 .curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
8640 fill: rgba(112, 146, 255, 1);
8642 .curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
8643 color: rgba(112, 146, 255, 1);
8646 .huge-modal-button {
8652 .huge-modal-button .illustration {
8659 .list-item-photos.list-item-mapillary-map-features .request-data-link {
8663 [dir='rtl'] .list-item-photos.list-item-mapillary-map-features .request-data-link {