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(140, 208, 95); }
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 {
503 /* Default - light gray */
505 stroke: rgb(170, 170, 170);
510 stroke: rgba(255, 255, 255, 0.3);
511 fill: rgba(255, 255, 255, 0.3);
514 .preset-icon-fill path.fill {
515 stroke: rgb(170, 170, 170);
516 fill: rgba(170, 170, 170, 0.3);
519 path.shadow.old-multipolygon,
520 path.stroke.old-multipolygon {
521 stroke-dasharray: 100, 5;
522 stroke-linecap: butt;
527 path.stroke.tag-natural,
528 path.stroke.tag-natural-wood,
529 path.stroke.tag-leisure-nature_reserve,
530 path.stroke.tag-leisure-pitch,
531 path.stroke.tag-leisure-track,
532 path.stroke.tag-leisure-golf_course,
533 path.stroke.tag-leisure-garden,
534 path.stroke.tag-leisure-park,
535 path.stroke.tag-landuse-recreation_ground,
536 path.stroke.tag-landuse-forest,
537 path.stroke.tag-landuse-grass,
538 path.stroke.tag-landuse-flowerbed,
539 path.stroke.tag-barrier-hedge {
540 stroke: rgb(140, 208, 95);
542 path.fill.tag-natural,
543 path.fill.tag-natural-wood,
544 path.fill.tag-leisure-nature_reserve,
545 path.fill.tag-leisure-pitch,
546 path.fill.tag-leisure-track,
547 path.fill.tag-leisure-golf_course,
548 path.fill.tag-leisure-garden,
549 path.fill.tag-leisure-park,
550 path.fill.tag-landuse-recreation_ground,
551 path.fill.tag-landuse-forest,
552 path.fill.tag-landuse-grass,
553 path.fill.tag-landuse-flowerbed,
554 path.fill.tag-barrier-hedge {
555 stroke: rgba(140, 208, 95, 0.3);
556 fill: rgba(140, 208, 95, 0.3);
558 .pattern-color-forest,
559 .pattern-color-forest_broadleaved,
560 .pattern-color-forest_needleleaved,
561 .pattern-color-forest_leafless,
563 .pattern-color-grass {
564 fill: rgba(140, 208, 95, 0.3);
569 path.stroke.tag-amenity-fountain,
570 path.stroke.tag-leisure-swimming_pool,
571 path.stroke.tag-natural-bay,
572 path.stroke.tag-natural-water {
573 stroke: rgb(119, 211, 222);
575 path.fill.tag-amenity-fountain,
576 path.fill.tag-leisure-swimming_pool,
577 path.fill.tag-natural-bay,
578 path.fill.tag-natural-water {
579 stroke: rgba(119, 211, 222, 0.3);
580 fill: rgba(119, 211, 222, 0.3);
582 .pattern-color-waves,
583 .pattern-color-water_standing,
584 .pattern-color-pond {
585 fill: rgba(119, 211, 222, 0.3);
590 path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
591 path.stroke.tag-leisure-pitch.tag-sport-baseball,
592 path.stroke.tag-leisure-pitch.tag-sport-softball,
593 path.stroke.tag-leisure-track,
594 path.stroke.tag-natural-beach,
595 path.stroke.tag-natural-sand,
596 path.stroke.tag-natural-scrub,
597 path.stroke.tag-amenity-childcare,
598 path.stroke.tag-amenity-kindergarten,
599 path.stroke.tag-amenity-school,
600 path.stroke.tag-amenity-college,
601 path.stroke.tag-amenity-university {
602 stroke: rgba(255, 255, 148, 0.75);
604 path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
605 path.fill.tag-leisure-pitch.tag-sport-baseball,
606 path.fill.tag-leisure-pitch.tag-sport-softball,
607 path.fill.tag-leisure-track,
608 path.fill.tag-natural-beach,
609 path.fill.tag-natural-sand,
610 path.fill.tag-natural-scrub,
611 path.fill.tag-amenity-childcare,
612 path.fill.tag-amenity-kindergarten,
613 path.fill.tag-amenity-school,
614 path.fill.tag-amenity-college,
615 path.fill.tag-amenity-university {
616 stroke: rgba(255, 255, 148, 0.25);
617 fill: rgba(255, 255, 148, 0.25);
619 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
620 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-baseball,
621 .preset-icon-fill path.area.stroke.tag-leisure-pitch.tag-sport-softball,
622 .preset-icon-fill path.area.stroke.tag-leisure-track,
623 .preset-icon-fill path.area.stroke.tag-natural-beach,
624 .preset-icon-fill path.area.stroke.tag-natural-sand,
625 .preset-icon-fill path.area.stroke.tag-natural-scrub,
626 .preset-icon-fill path.area.stroke.tag-amenity-childcare,
627 .preset-icon-fill path.area.stroke.tag-amenity-kindergarten,
628 .preset-icon-fill path.area.stroke.tag-amenity-school,
629 .preset-icon-fill path.area.stroke.tag-amenity-college,
630 .preset-icon-fill path.area.stroke.tag-amenity-university {
631 stroke: rgb(232, 232, 0);
633 .pattern-color-beach,
635 .pattern-color-scrub {
636 fill: rgba(255, 255, 148, 0.2);
641 path.stroke.tag-landuse-residential,
642 path.stroke.tag-status-construction {
643 stroke: rgb(196, 189, 25);
645 path.fill.tag-landuse-residential {
646 stroke: rgba(196, 189, 25, 0.3);
647 fill: rgba(196, 189, 25, 0.3);
649 .pattern-color-construction {
650 fill: rgba(196, 189, 25, 0.3);
655 path.stroke.tag-landuse-retail,
656 path.stroke.tag-landuse-commercial,
657 path.stroke.tag-landuse-landfill,
658 path.stroke.tag-military,
659 path.stroke.tag-landuse-military {
660 stroke: rgb(214, 136, 26);
662 path.fill.tag-landuse-retail,
663 path.fill.tag-landuse-commercial,
664 path.fill.tag-landuse-landfill,
665 path.fill.tag-military,
666 path.fill.tag-landuse-military {
667 stroke: rgba(214, 136, 26, 0.3);
668 fill: rgba(214, 136, 26, 0.3);
670 .pattern-color-landfill {
671 fill: rgba(214, 136, 26, 0.3);
676 path.stroke.tag-landuse-industrial,
677 path.stroke.tag-power-plant {
678 stroke: rgb(228, 164, 245);
680 path.fill.tag-landuse-industrial,
681 path.fill.tag-power-plant {
682 stroke: rgba(228, 164, 245, 0.3);
683 fill: rgba(228, 164, 245, 0.3);
688 path.stroke.tag-natural-wetland {
689 stroke: rgb(153, 225, 170);
691 .preset-icon-fill path.area.fill.tag-natural-wetland {
692 fill: rgba(153, 225, 170, 0.2);
694 .pattern-color-wetland,
695 .pattern-color-wetland_marsh,
696 .pattern-color-wetland_swamp,
697 .pattern-color-wetland_bog,
698 .pattern-color-wetland_reedbed {
699 fill: rgba(153, 225, 170, 0.3);
703 /* Light Green things */
704 path.stroke.tag-landuse-cemetery,
705 path.stroke.tag-landuse-orchard,
706 path.stroke.tag-landuse-vineyard,
707 path.stroke.tag-landuse-meadow,
708 path.stroke.tag-landuse-farmland {
709 stroke: rgb(191, 232, 63);
711 .preset-icon-fill path.area.fill.tag-landuse-cemetery,
712 .preset-icon-fill path.area.fill.tag-landuse-orchard,
713 .preset-icon-fill path.area.fill.tag-landuse-vineyard,
714 .preset-icon-fill path.area.fill.tag-landuse-meadow,
715 .preset-icon-fill path.area.fill.tag-landuse-farmland {
716 fill: rgba(191, 232, 63, 0.2);
718 .pattern-color-cemetery,
719 .pattern-color-cemetery_christian,
720 .pattern-color-cemetery_buddhist,
721 .pattern-color-cemetery_muslim,
722 .pattern-color-cemetery_jewish,
723 .pattern-color-orchard,
724 .pattern-color-vineyard,
725 .pattern-color-meadow,
726 .pattern-color-farmland {
727 fill: rgba(191, 232, 63, 0.2);
732 path.stroke.tag-landuse-farmyard {
733 stroke: rgb(245, 220, 186);
735 path.fill.tag-landuse-farmyard {
736 stroke: rgba(245, 220, 186, 0.3);
737 fill: rgba(245, 220, 186, 0.3);
739 .preset-icon-fill path.area.stroke.tag-landuse-farmyard {
740 stroke: rgb(226, 177, 111);
742 .pattern-color-farmyard {
743 fill: rgba(245, 220, 186, 0.3);
747 /* Dark Gray things */
748 path.stroke.tag-amenity-parking,
749 path.stroke.tag-landuse-railway,
750 path.stroke.tag-landuse-quarry,
751 path.stroke.tag-leisure-pitch.tag-sport-basketball,
752 path.stroke.tag-leisure-pitch.tag-sport-skateboard,
753 path.stroke.tag-man_made-adit,
754 path.stroke.tag-man_made-groyne,
755 path.stroke.tag-man_made-breakwater,
756 path.stroke.tag-natural-bare_rock,
757 path.stroke.tag-natural-cave_entrance,
758 path.stroke.tag-natural-cliff,
759 path.stroke.tag-natural-rock,
760 path.stroke.tag-natural-scree,
761 path.stroke.tag-natural-stone,
762 path.stroke.tag-natural-shingle,
763 path.stroke.tag-waterway-dam,
764 path.stroke.tag-waterway-weir {
765 stroke: rgb(170, 170, 170);
767 path.fill.tag-amenity-parking,
768 path.fill.tag-landuse-railway,
769 path.fill.tag-landuse-quarry,
770 path.fill.tag-leisure-pitch.tag-sport-basketball,
771 path.fill.tag-leisure-pitch.tag-sport-skateboard,
772 path.fill.tag-man_made-adit,
773 path.fill.tag-man_made-groyne,
774 path.fill.tag-man_made-breakwater,
775 path.fill.tag-natural-bare_rock,
776 path.fill.tag-natural-cliff,
777 path.fill.tag-natural-cave_entrance,
778 path.fill.tag-natural-rock,
779 path.fill.tag-natural-scree,
780 path.fill.tag-natural-stone,
781 path.fill.tag-natural-shingle,
782 path.fill.tag-waterway-dam,
783 path.fill.tag-waterway-weir {
784 stroke: rgba(140, 140, 140, 0.5);
785 fill: rgba(140, 140, 140, 0.5);
787 .pattern-color-quarry {
788 fill: rgba(140, 140, 140, 0.5);
792 /* Light gray overrides */
793 path.stroke.tag-natural-cave_entrance,
794 path.stroke.tag-natural-glacier {
795 stroke: rgb(170, 170, 170);
797 path.fill.tag-natural-cave_entrance,
798 path.fill.tag-natural-glacier {
799 stroke: rgba(255, 255, 255, 0.3);
800 fill: rgba(255, 255, 255, 0.3);
802 .preset-icon-fill path.fill.tag-natural-cave_entrance,
803 .preset-icon-fill path.fill.tag-natural-glacier {
804 stroke: rgb(170, 170, 170);
805 fill: rgba(170, 170, 170, 0.3);
807 preset-icon-container/* highways */
810 .preset-icon .icon.tag-highway.other-line {
814 path.line.casing.tag-highway {
817 path.line.stroke.tag-highway {
822 path.line.shadow.tag-highway {
825 path.line.casing.tag-highway {
828 path.line.stroke.tag-highway {
831 .low-zoom path.line.shadow.tag-highway {
834 .low-zoom path.line.casing.tag-highway {
837 .low-zoom path.line.stroke.tag-highway {
841 .preset-icon .icon.tag-highway-motorway,
842 .preset-icon .icon.tag-highway-motorway_link {
846 path.line.stroke.tag-highway-motorway,
847 path.line.stroke.tag-highway-motorway_link,
848 path.line.stroke.tag-motorway {
851 path.line.casing.tag-highway-motorway,
852 path.line.casing.tag-highway-motorway_link,
853 path.line.casing.tag-motorway {
857 .preset-icon .icon.tag-highway-trunk,
858 .preset-icon .icon.tag-highway-trunk_link {
862 path.line.stroke.tag-highway-trunk,
863 path.line.stroke.tag-highway-trunk_link,
864 path.line.stroke.tag-trunk {
867 path.line.casing.tag-highway-trunk,
868 path.line.casing.tag-highway-trunk_link,
869 path.line.casing.tag-trunk {
873 .preset-icon .icon.tag-highway-primary,
874 .preset-icon .icon.tag-highway-primary_link {
878 path.line.stroke.tag-highway-primary,
879 path.line.stroke.tag-highway-primary_link,
880 path.line.stroke.tag-primary {
883 path.line.casing.tag-highway-primary,
884 path.line.casing.tag-highway-primary_link,
885 path.line.casing.tag-primary {
889 .preset-icon .icon.tag-highway-secondary,
890 .preset-icon .icon.tag-highway-secondary_link {
894 path.line.stroke.tag-highway-secondary,
895 path.line.stroke.tag-highway-secondary_link,
896 path.line.stroke.tag-secondary {
899 path.line.casing.tag-highway-secondary,
900 path.line.casing.tag-highway-secondary_link,
901 path.line.casing.tag-secondary {
905 .preset-icon .icon.tag-highway-tertiary,
906 .preset-icon .icon.tag-highway-tertiary_link {
910 path.line.stroke.tag-highway-tertiary,
911 path.line.stroke.tag-highway-tertiary_link,
912 path.line.stroke.tag-tertiary {
915 path.line.casing.tag-highway-tertiary,
916 path.line.casing.tag-highway-tertiary_link,
917 path.line.casing.tag-tertiary {
921 .legacy-carto .preset-icon .icon.tag-highway-motorway,
922 .legacy-carto .preset-icon .icon.tag-highway-motorway_link {
926 .legacy-carto path.line.stroke.tag-highway-motorway,
927 .legacy-carto path.line.stroke.tag-highway-motorway_link,
928 .legacy-carto path.line.stroke.tag-motorway {
931 .legacy-carto path.line.casing.tag-highway-motorway,
932 .legacy-carto path.line.casing.tag-highway-motorway_link,
933 .legacy-carto path.line.casing.tag-motorway {
937 .legacy-carto .preset-icon .icon.tag-highway-trunk,
938 .legacy-carto .preset-icon .icon.tag-highway-trunk_link {
942 .legacy-carto path.line.stroke.tag-highway-trunk,
943 .legacy-carto path.line.stroke.tag-highway-trunk_link,
944 .legacy-carto path.line.stroke.tag-trunk {
947 .legacy-carto path.line.casing.tag-highway-trunk,
948 .legacy-carto path.line.casing.tag-highway-trunk_link,
949 .legacy-carto path.line.casing.tag-trunk {
953 .legacy-carto .preset-icon .icon.tag-highway-primary,
954 .legacy-carto .preset-icon .icon.tag-highway-primary_link {
958 .legacy-carto path.line.stroke.tag-highway-primary,
959 .legacy-carto path.line.stroke.tag-highway-primary_link,
960 .legacy-carto path.line.stroke.tag-primary {
963 .legacy-carto path.line.casing.tag-highway-primary,
964 .legacy-carto path.line.casing.tag-highway-primary_link,
965 .legacy-carto path.line.casing.tag-primary {
969 .legacy-carto .preset-icon .icon.tag-highway-secondary,
970 .legacy-carto .preset-icon .icon.tag-highway-secondary_link {
974 .legacy-carto path.line.stroke.tag-highway-secondary,
975 .legacy-carto path.line.stroke.tag-highway-secondary_link,
976 .legacy-carto path.line.stroke.tag-secondary {
979 .legacy-carto path.line.casing.tag-highway-secondary,
980 .legacy-carto path.line.casing.tag-highway-secondary_link,
981 .legacy-carto path.line.casing.tag-secondary {
985 .legacy-carto .preset-icon .icon.tag-highway-tertiary,
986 .legacy-carto .preset-icon .icon.tag-highway-tertiary_link {
990 .legacy-carto path.line.stroke.tag-highway-tertiary,
991 .legacy-carto path.line.stroke.tag-highway-tertiary_link,
992 .legacy-carto path.line.stroke.tag-tertiary {
995 .legacy-carto path.line.casing.tag-highway-tertiary,
996 .legacy-carto path.line.casing.tag-highway-tertiary_link,
997 .legacy-carto path.line.casing.tag-tertiary {
1001 .preset-icon .icon.tag-highway-residential {
1005 path.line.stroke.tag-highway-residential,
1006 path.line.stroke.tag-residential {
1009 path.line.casing.tag-highway-residential,
1010 path.line.casing.tag-residential {
1014 .preset-icon .icon.tag-highway-unclassified {
1018 path.line.stroke.tag-highway-unclassified,
1019 path.line.stroke.tag-unclassified {
1022 path.line.casing.tag-highway-unclassified,
1023 path.line.casing.tag-unclassified {
1028 /* narrow highways */
1029 path.line.shadow.tag-highway-living_street,
1030 path.line.shadow.tag-highway-bus_guideway,
1031 path.line.shadow.tag-highway-service,
1032 path.line.shadow.tag-highway-track,
1033 path.line.shadow.tag-highway-road {
1036 path.line.casing.tag-highway-living_street,
1037 path.line.casing.tag-highway-bus_guideway,
1038 path.line.casing.tag-highway-service,
1039 path.line.casing.tag-highway-track,
1040 path.line.casing.tag-highway-road {
1043 path.line.stroke.tag-highway-living_street,
1044 path.line.stroke.tag-highway-bus_guideway,
1045 path.line.stroke.tag-highway-service,
1046 path.line.stroke.tag-highway-track,
1047 path.line.stroke.tag-highway-road {
1051 path.line.shadow.tag-highway-path,
1052 path.line.shadow.tag-highway-footway,
1053 path.line.shadow.tag-highway-cycleway,
1054 path.line.shadow.tag-highway-bridleway,
1055 path.line.shadow.tag-highway-corridor,
1056 path.line.shadow.tag-highway-pedestrian,
1057 path.line.shadow.tag-highway-steps {
1060 path.line.casing.tag-highway-path,
1061 path.line.casing.tag-highway-footway,
1062 path.line.casing.tag-highway-cycleway,
1063 path.line.casing.tag-highway-bridleway,
1064 path.line.casing.tag-highway-corridor,
1065 path.line.casing.tag-highway-pedestrian,
1066 path.line.casing.tag-highway-steps {
1069 path.line.stroke.tag-highway-path,
1070 path.line.stroke.tag-highway-footway,
1071 path.line.stroke.tag-highway-cycleway,
1072 path.line.stroke.tag-highway-bridleway,
1073 path.line.stroke.tag-highway-corridor,
1074 path.line.stroke.tag-highway-pedestrian,
1075 path.line.stroke.tag-highway-steps {
1079 .low-zoom path.line.shadow.tag-highway-living_street,
1080 .low-zoom path.line.shadow.tag-highway-bus_guideway,
1081 .low-zoom path.line.shadow.tag-highway-service,
1082 .low-zoom path.line.shadow.tag-highway-track,
1083 .low-zoom path.line.shadow.tag-highway-road {
1086 .low-zoom path.line.casing.tag-highway-living_street,
1087 .low-zoom path.line.casing.tag-highway-bus_guideway,
1088 .low-zoom path.line.casing.tag-highway-service,
1089 .low-zoom path.line.casing.tag-highway-track,
1090 .low-zoom path.line.casing.tag-highway-road {
1093 .low-zoom path.line.stroke.tag-highway-living_street,
1094 .low-zoom path.line.stroke.tag-highway-bus_guideway,
1095 .low-zoom path.line.stroke.tag-highway-service,
1096 .low-zoom path.line.stroke.tag-highway-track,
1097 .low-zoom path.line.stroke.tag-highway-road {
1101 .low-zoom path.line.shadow.tag-highway-path,
1102 .low-zoom path.line.shadow.tag-highway-footway,
1103 .low-zoom path.line.shadow.tag-highway-cycleway,
1104 .low-zoom path.line.shadow.tag-highway-bridleway,
1105 .low-zoom path.line.shadow.tag-highway-corridor,
1106 .low-zoom path.line.shadow.tag-highway-pedestrian,
1107 .low-zoom path.line.shadow.tag-highway-steps {
1110 .low-zoom path.line.casing.tag-highway-path,
1111 .low-zoom path.line.casing.tag-highway-footway,
1112 .low-zoom path.line.casing.tag-highway-cycleway,
1113 .low-zoom path.line.casing.tag-highway-bridleway,
1114 .low-zoom path.line.casing.tag-highway-corridor,
1115 .low-zoom path.line.casing.tag-highway-pedestrian,
1116 .low-zoom path.line.casing.tag-highway-steps {
1119 .low-zoom path.line.stroke.tag-highway-path,
1120 .low-zoom path.line.stroke.tag-highway-footway,
1121 .low-zoom path.line.stroke.tag-highway-cycleway,
1122 .low-zoom path.line.stroke.tag-highway-bridleway,
1123 .low-zoom path.line.stroke.tag-highway-corridor,
1124 .low-zoom path.line.stroke.tag-highway-pedestrian,
1125 .low-zoom path.line.stroke.tag-highway-steps {
1129 /* living streets */
1130 .preset-icon .icon.tag-highway-living-street {
1134 path.line.stroke.tag-highway-living_street,
1135 path.line.stroke.tag-living_street {
1138 path.line.casing.tag-highway-living_street,
1139 path.line.casing.tag-living_street {
1143 /* pedestrian streets and corridors */
1144 .preset-icon .icon.tag-highway-corridor,
1145 .preset-icon .icon.tag-highway-pedestrian {
1149 path.line.stroke.tag-highway-corridor,
1150 path.line.stroke.tag-highway-pedestrian,
1151 path.line.stroke.tag-corridor,
1152 path.line.stroke.tag-pedestrian {
1154 stroke-dasharray: 2, 8;
1156 .low-zoom path.line.stroke.tag-highway-corridor,
1157 .low-zoom path.line.stroke.tag-highway-pedestrian,
1158 .low-zoom path.line.stroke.tag-corridor,
1159 .low-zoom path.line.stroke.tag-pedestrian {
1160 stroke-dasharray: 1, 4;
1162 path.line.casing.tag-highway-corridor,
1163 path.line.casing.tag-highway-pedestrian,
1164 path.line.casing.tag-corridor,
1165 path.line.casing.tag-pedestrian,
1166 path.line.casing.tag-highway-corridor.tag-unpaved,
1167 path.line.casing.tag-highway-pedestrian.tag-unpaved,
1168 path.line.casing.tag-corridor.tag-unpaved,
1169 path.line.casing.tag-pedestrian.tag-unpaved {
1171 stroke-linecap: round;
1172 stroke-dasharray: none;
1176 .preset-icon .icon.tag-highway-road {
1180 path.line.stroke.tag-highway-road,
1181 path.line.stroke.tag-road {
1184 path.line.casing.tag-highway-road,
1185 path.line.casing.tag-road {
1190 .preset-icon .icon.tag-highway-service {
1194 path.line.stroke.tag-highway-service,
1195 path.line.stroke.tag-service {
1198 path.line.casing.tag-highway-service,
1199 path.line.casing.tag-service {
1203 /* special service roads and bus guideways */
1204 /* with `service=* tag` (e.g. parking_aisle, alley, drive-through) */
1205 .preset-icon .icon.tag-highway-bus_guideway,
1206 .preset-icon .icon.tag-highway-service.tag-service {
1210 path.line.stroke.tag-highway-bus_guideway,
1211 path.line.stroke.tag-highway-service.tag-service,
1212 path.line.stroke.tag-service.tag-service {
1215 path.line.casing.tag-highway-bus_guideway,
1216 path.line.casing.tag-highway-service.tag-service,
1217 path.line.casing.tag-service.tag-service {
1221 /* unmaintained track roads */
1222 path.line.stroke.tag-highway-track,
1223 path.line.stroke.tag-track {
1226 path.line.casing.tag-highway-track,
1227 path.line.casing.tag-track {
1232 path.line.stroke.tag-highway-path,
1233 path.line.stroke.tag-highway-footway,
1234 path.line.stroke.tag-highway-cycleway,
1235 path.line.stroke.tag-highway-bridleway {
1236 stroke-linecap: butt;
1237 stroke-dasharray: 6, 6;
1239 .low-zoom path.line.stroke.tag-highway-path,
1240 .low-zoom path.line.stroke.tag-highway-footway,
1241 .low-zoom path.line.stroke.tag-highway-cycleway,
1242 .low-zoom path.line.stroke.tag-highway-bridleway {
1243 stroke-linecap: butt;
1244 stroke-dasharray: 3, 3;
1247 /* style for features that should have highway=footway but don't yet */
1248 path.line.stroke.tag-crossing,
1249 path.line.stroke.tag-public_transport-platform,
1250 path.line.stroke.tag-highway-platform,
1251 path.line.stroke.tag-railway-platform,
1252 path.line.stroke.tag-man_made-pier {
1256 path.line.casing.tag-highway-path,
1257 path.line.casing.tag-highway-path.tag-unpaved,
1258 path.line.casing.tag-highway-footway.tag-public_transport-platform,
1259 path.line.casing.tag-highway-footway.tag-man_made-pier,
1260 path.line.casing.tag-highway.tag-crossing {
1262 stroke-linecap: round;
1263 stroke-dasharray: none;
1265 path.line.casing.tag-highway-footway,
1266 path.line.casing.tag-highway-cycleway,
1267 path.line.casing.tag-highway-bridleway,
1268 path.line.casing.tag-highway-footway.tag-unpaved,
1269 path.line.casing.tag-highway-cycleway.tag-unpaved,
1270 path.line.casing.tag-highway-bridleway.tag-unpaved {
1272 stroke-linecap: round;
1273 stroke-dasharray: none;
1276 .preset-icon .icon.tag-highway-path,
1277 .preset-icon .icon.tag-highway-footway.tag-public_transport-platform,
1278 .preset-icon .icon.tag-highway-footway.tag-man_made-pier {
1282 path.line.stroke.tag-highway-path {
1287 .preset-icon .icon.tag-route-foot,
1288 .preset-icon .icon.tag-route-hiking,
1289 .preset-icon .icon.tag-highway-footway {
1293 path.line.stroke.tag-highway-footway,
1294 path.line.stroke.tag-highway_bus_stop,
1295 .preset-icon-container path.casing.tag-highway-footway {
1298 .preset-icon .icon.tag-highway-footway.tag-footway-sidewalk {
1301 path.stroke.tag-highway-footway.tag-footway-sidewalk,
1302 .preset-icon-container path.casing.tag-highway-footway.tag-footway-sidewalk {
1305 .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) {
1310 .preset-icon .icon.tag-route-bicycle,
1311 .preset-icon .icon.tag-highway-cycleway {
1315 path.line.stroke.tag-highway-cycleway,
1316 .preset-icon-container path.casing.tag-highway-cycleway {
1319 .preset-icon-container path.stroke.tag-highway-cycleway:not(.tag-crossing) {
1324 .preset-icon .icon.tag-route-horse,
1325 .preset-icon .icon.tag-highway-bridleway {
1329 path.line.stroke.tag-highway-bridleway,
1330 .preset-icon-container path.casing.tag-highway-bridleway {
1333 .preset-icon-container path.stroke.tag-highway-bridleway {
1338 .preset-icon .icon.tag-leisure-track {
1339 color: rgb(229, 184, 43);
1341 path.line.stroke.tag-leisure-track,
1342 .preset-icon-container path.casing.tag-highway.tag-leisure-track {
1343 stroke: rgb(229, 184, 43);
1345 .preset-icon-container path.line.stroke.tag-highway.tag-leisure-track {
1350 .preset-icon .icon.tag-highway-steps {
1354 path.line.stroke.tag-highway-steps {
1355 stroke-linecap: butt;
1356 stroke-dasharray: 3, 3;
1358 .low-zoom path.line.stroke.tag-highway-steps {
1359 stroke-dasharray: 2, 2;
1361 path.line.casing.tag-highway-steps,
1362 path.line.casing.tag-highway-steps.tag-unpaved {
1364 stroke-linecap: round;
1365 stroke-dasharray: none;
1367 path.line.stroke.tag-highway-steps,
1368 .preset-icon-container path.line.casing.tag-highway-steps {
1371 .preset-icon-container path.line.stroke.tag-highway-steps {
1377 path.line.stroke.tag-highway.tag-crossing-unmarked {
1378 stroke-dasharray: 6, 4;
1380 .low-zoom path.line.stroke.tag-highway.tag-crossing-unmarked {
1381 stroke-dasharray: 3, 2;
1383 path.line.stroke.tag-highway.tag-crossing-marked {
1384 stroke-dasharray: 6, 3;
1386 .low-zoom path.line.stroke.tag-highway.tag-crossing-marked {
1387 stroke-dasharray: 3, 1.5;
1389 path.line.stroke.tag-highway-footway.tag-crossing-marked {
1392 .preset-icon .icon.tag-highway-footway.tag-crossing-marked {
1395 path.line.stroke.tag-highway-footway.tag-crossing-unmarked {
1398 .preset-icon .icon.tag-highway-footway.tag-crossing-unmarked {
1401 path.line.stroke.tag-highway-cycleway.tag-crossing-marked {
1404 .preset-icon .icon.tag-highway-cycleway.tag-crossing-marked {
1409 /* highway midpoints */
1410 g.midpoint.tag-highway-corridor .fill,
1411 g.midpoint.tag-highway-pedestrian .fill,
1412 g.midpoint.tag-highway-steps .fill,
1413 g.midpoint.tag-highway-path .fill,
1414 g.midpoint.tag-highway-footway .fill,
1415 g.midpoint.tag-highway-cycleway .fill,
1416 g.midpoint.tag-highway-bridleway .fill {
1425 path.area.stroke.tag-aeroway,
1426 .low-zoom path.area.stroke.tag-aeroway {
1428 stroke-dasharray: none;
1431 path.area.fill.tag-aeroway-runway {
1432 stroke: rgba(0, 0, 0, 0.6);
1433 fill: rgba(0, 0, 0, 0.6);
1437 /* narrow aeroways (taxiway) */
1438 path.line.shadow.tag-aeroway-taxiway,
1439 path.line.shadow.tag-taxiway {
1442 path.line.casing.tag-aeroway-taxiway,
1443 path.line.casing.tag-taxiway {
1446 path.line.stroke.tag-aeroway-taxiway,
1447 path.line.stroke.tag-taxiway {
1450 .low-zoom path.line.shadow.tag-aeroway-taxiway,
1451 .low-zoom path.line.shadow.tag-taxiway {
1454 .low-zoom path.line.casing.tag-aeroway-taxiway,
1455 .low-zoom path.line.casing.tag-taxiway {
1458 .low-zoom path.line.stroke.tag-aeroway-taxiway,
1459 .low-zoom path.line.stroke.tag-taxiway {
1463 .preset-icon .icon.tag-aeroway-taxiway,
1464 .preset-icon .icon.tag-taxiway {
1468 path.line.stroke.tag-aeroway-taxiway,
1469 path.line.stroke.tag-taxiway {
1472 path.line.casing.tag-aeroway-taxiway,
1473 path.line.casing.tag-taxiway {
1477 /* wide aeroways (runway) */
1478 .preset-icon .icon.tag-aeroway-runway,
1479 .preset-icon .icon.tag-runway {
1483 path.line.shadow.tag-aeroway-runway {
1486 path.line.casing.tag-aeroway-runway {
1489 stroke-linecap: square;
1491 path.line.stroke.tag-aeroway-runway {
1494 stroke-linecap: butt;
1495 stroke-dasharray: 24, 48;
1497 .low-zoom path.line.shadow.tag-aeroway-runway {
1500 .low-zoom path.line.casing.tag-aeroway-runway {
1503 .low-zoom path.line.stroke.tag-aeroway-runway {
1505 stroke-dasharray: 12, 24;
1507 .preset-icon-container path.line.stroke.tag-aeroway-runway {
1508 stroke-dasharray: 0, 14, 8, 14;
1513 .preset-icon .icon.tag-railway.other-line {
1517 .preset-icon .icon.tag-railway {
1524 path.line.shadow.tag-railway {
1527 path.line.casing.tag-railway {
1530 path.line.stroke.tag-railway {
1532 stroke-linecap: butt;
1533 stroke-dasharray: 12,12;
1535 .low-zoom path.line.shadow.tag-railway {
1538 .low-zoom path.line.casing.tag-railway {
1541 .low-zoom path.line.stroke.tag-railway {
1543 stroke-dasharray: 6,6;
1545 .preset-icon-container path.line.stroke.tag-railway:not(.tag-status) {
1546 stroke-dasharray: 6;
1549 path.line.casing.tag-railway.tag-railway-platform {
1552 path.line.stroke.tag-railway.tag-railway-platform {
1553 stroke-dasharray: none;
1557 path.line.casing.tag-railway {
1560 path.line.stroke.tag-railway {
1565 .preset-icon .icon.tag-railway-disused,
1566 .preset-icon .icon.tag-railway-abandoned {
1570 path.line.casing.tag-railway-disused,
1571 path.line.casing.tag-railway-abandoned {
1574 path.line.stroke.tag-railway-disused,
1575 path.line.stroke.tag-railway-abandoned {
1580 path.line.casing.tag-railway-subway {
1583 path.line.stroke.tag-railway-subway {
1589 .preset-icon .icon.tag-waterway.other-line {
1593 .preset-icon .icon.tag-type-waterway:not(.tag-waterway-dam),
1594 .preset-icon .icon.tag-waterway:not(.tag-waterway-dam) {
1601 path.area.stroke.tag-waterway-dock,
1602 path.area.stroke.tag-waterway-boatyard,
1603 path.area.stroke.tag-waterway-fuel {
1607 path.area.casing.tag-waterway-dock,
1608 path.area.casing.tag-waterway-boatyard,
1609 path.area.casing.tag-waterway-fuel {
1612 path.area.fill.tag-waterway-dock,
1613 path.area.fill.tag-waterway-boatyard,
1614 path.area.fill.tag-waterway-fuel {
1615 stroke: rgba(255, 255, 255, 0.3);
1616 fill: rgba(255, 255, 255, 0.3);
1620 path.line.fill.tag-waterway:not(.tag-waterway-dam) {
1621 stroke: rgba(119, 211, 222, 0.3);
1622 fill: rgba(119, 211, 222, 0.3);
1624 path.line.casing.tag-waterway:not(.tag-waterway-dam) {
1627 path.line.stroke.tag-waterway:not(.tag-waterway-dam) {
1632 /* narrow waterways (default) */
1633 path.line.shadow.tag-waterway {
1636 path.line.casing.tag-waterway {
1639 path.line.stroke.tag-waterway {
1643 .low-zoom path.line.shadow.tag-waterway {
1646 .low-zoom path.line.casing.tag-waterway {
1649 .low-zoom path.line.stroke.tag-waterway {
1654 /* wide waterways (river) */
1655 path.line.shadow.tag-waterway-river {
1658 path.line.casing.tag-waterway-river {
1661 path.line.stroke.tag-waterway-river {
1665 .low-zoom path.line.shadow.tag-waterway-river {
1668 .low-zoom path.line.casing.tag-waterway-river {
1671 .low-zoom path.line.stroke.tag-waterway-river {
1677 .preset-icon .icon.tag-waterway-ditch {
1680 path.line.stroke.tag-waterway-ditch {
1684 /* narrow width miscellanous things */
1685 path.line.shadow.tag-aerialway,
1686 path.line.shadow.tag-attraction-summer_toboggan,
1687 path.line.shadow.tag-attraction-water_slide,
1688 path.line.shadow.tag-golf-cartpath,
1689 path.line.shadow.tag-man_made-pipeline,
1690 path.line.shadow.tag-natural-tree_row,
1691 path.line.shadow.tag-piste {
1694 path.line.casing.tag-aerialway,
1695 path.line.casing.tag-attraction-summer_toboggan,
1696 path.line.casing.tag-attraction-water_slide,
1697 path.line.casing.tag-golf-cartpath,
1698 path.line.casing.tag-man_made-pipeline,
1699 path.line.casing.tag-natural-tree_row,
1700 path.line.casing.tag-piste {
1703 path.line.stroke.tag-aerialway,
1704 path.line.stroke.tag-attraction-summer_toboggan,
1705 path.line.stroke.tag-attraction-water_slide,
1706 path.line.stroke.tag-golf-cartpath,
1707 path.line.stroke.tag-man_made-pipeline,
1708 path.line.stroke.tag-natural-tree_row,
1709 path.line.stroke.tag-piste {
1713 .low-zoom path.line.shadow.tag-aerialway,
1714 .low-zoom path.line.shadow.tag-attraction-summer_toboggan,
1715 .low-zoom path.line.shadow.tag-attraction-water_slide,
1716 .low-zoom path.line.shadow.tag-golf-cartpath,
1717 .low-zoom path.line.shadow.tag-man_made-pipeline,
1718 .low-zoom path.line.shadow.tag-natural-tree_row,
1719 .low-zoom path.line.shadow.tag-piste {
1722 .low-zoom path.line.casing.tag-aerialway,
1723 .low-zoom path.line.casing.tag-attraction-summer_toboggan,
1724 .low-zoom path.line.casing.tag-attraction-water_slide,
1725 .low-zoom path.line.casing.tag-golf-cartpath,
1726 .low-zoom path.line.casing.tag-man_made-pipeline,
1727 .low-zoom path.line.casing.tag-natural-tree_row,
1728 .low-zoom path.line.casing.tag-piste {
1731 .low-zoom path.line.stroke.tag-aerialway,
1732 .low-zoom path.line.stroke.tag-attraction-summer_toboggan,
1733 .low-zoom path.line.stroke.tag-attraction-water_slide,
1734 .low-zoom path.line.stroke.tag-golf-cartpath,
1735 .low-zoom path.line.stroke.tag-man_made-pipeline,
1736 .low-zoom path.line.stroke.tag-natural-tree_row,
1737 .low-zoom path.line.stroke.tag-piste {
1743 .preset-icon .icon.tag-route-ferry {
1747 path.line.shadow.tag-route-ferry {
1750 path.line.stroke.tag-route-ferry {
1752 stroke-linecap: butt;
1753 stroke-dasharray: 12,8;
1755 .low-zoom path.line.shadow.tag-route-ferry {
1758 .low-zoom path.line.stroke.tag-route-ferry,
1759 .preset-icon-container path.line.stroke.tag-route-ferry {
1761 stroke-dasharray: 6,4;
1763 path.line.stroke.tag-route-ferry {
1766 path.line.casing.tag-route-ferry {
1772 path.line.stroke.tag-aerialway {
1775 path.line.casing.tag-aerialway {
1781 path.line.stroke.tag-piste {
1784 path.line.casing.tag-piste {
1790 path.line.stroke.tag-attraction-summer_toboggan {
1793 path.line.casing.tag-attraction-summer_toboggan {
1797 path.line.stroke.tag-attraction-water_slide {
1800 path.line.casing.tag-attraction-water_slide {
1805 /* golf cartpaths (like service roads) */
1806 .preset-icon .icon.tag-golf-cartpath {
1810 path.line.stroke.tag-golf-cartpath {
1813 path.line.casing.tag-golf-cartpath {
1818 /* power and pipeline */
1819 .preset-icon .icon.tag-man_made-pipeline,
1820 .preset-icon .icon.tag-power {
1827 path.line.stroke.tag-power {
1831 path.line.casing.tag-power {
1837 path.line.stroke.tag-man_made-pipeline {
1839 stroke-linecap: butt;
1840 stroke-dasharray: 80, 1.25;
1842 path.line.casing.tag-man_made-pipeline {
1845 .low-zoom path.line.stroke.tag-man_made-pipeline {
1846 stroke-dasharray: 40, 1;
1848 .preset-icon-container path.line.stroke.tag-man_made-pipeline {
1849 stroke-dasharray: 19, 1;
1854 path.line.stroke.tag-boundary {
1857 stroke-linecap: butt;
1858 stroke-dasharray: 20, 5, 5, 5;
1860 path.line.casing.tag-boundary {
1865 path.line.casing.tag-boundary-protected_area,
1866 path.line.casing.tag-boundary-national_park {
1871 /* barriers and similar */
1872 path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
1875 .preset-icon-container path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
1876 stroke: rgb(170, 170, 170);
1878 path.line.casing.tag-natural,
1879 path.line.casing.tag-barrier,
1880 path.line.casing.tag-man_made-groyne,
1881 path.line.casing.tag-man_made-breakwater {
1884 path.line.stroke.tag-barrier,
1885 path.line.stroke.tag-man_made-groyne,
1886 path.line.stroke.tag-man_made-breakwater {
1888 stroke-linecap: round;
1889 stroke-dasharray: 15, 5, 1, 5;
1891 .low-zoom path.line.stroke.tag-barrier,
1892 .low-zoom path.line.stroke.tag-man_made-groyne,
1893 .low-zoom path.line.stroke.tag-man_made-breakwater {
1895 stroke-linecap: butt;
1896 stroke-dasharray: 8, 2, 2, 2;
1898 .preset-icon-container path.line.stroke.tag-barrier,
1899 .preset-icon-container path.line.stroke.tag-man_made-groyne,
1900 .preset-icon-container path.line.stroke.tag-man_made-breakwater {
1901 stroke-dasharray: 1, 4, 6, 4;
1906 path.line.casing.tag-bridge {
1907 stroke-opacity: 0.6;
1908 stroke: #000 !important;
1909 stroke-linecap: butt;
1910 stroke-dasharray: none;
1912 path.line.shadow.tag-bridge {
1915 path.line.casing.tag-bridge {
1918 .low-zoom path.line.shadow.tag-bridge {
1921 .low-zoom path.line.casing.tag-bridge {
1925 path.line.shadow.tag-railway.tag-bridge,
1926 path.line.shadow.tag-highway-living_street.tag-bridge,
1927 path.line.shadow.tag-highway-path.tag-bridge,
1928 path.line.shadow.tag-highway-corridor.tag-bridge,
1929 path.line.shadow.tag-highway-pedestrian.tag-bridge,
1930 path.line.shadow.tag-highway-service.tag-bridge,
1931 path.line.shadow.tag-highway-track.tag-bridge,
1932 path.line.shadow.tag-highway-steps.tag-bridge,
1933 path.line.shadow.tag-highway-footway.tag-bridge,
1934 path.line.shadow.tag-highway-cycleway.tag-bridge,
1935 path.line.shadow.tag-highway-bridleway.tag-bridge {
1938 path.line.casing.tag-railway.tag-bridge,
1939 path.line.casing.tag-highway-living_street.tag-bridge,
1940 path.line.casing.tag-highway-path.tag-bridge,
1941 path.line.casing.tag-highway-corridor.tag-bridge,
1942 path.line.casing.tag-highway-pedestrian.tag-bridge,
1943 path.line.casing.tag-highway-service.tag-bridge,
1944 path.line.casing.tag-highway-track.tag-bridge,
1945 path.line.casing.tag-highway-steps.tag-bridge,
1946 path.line.casing.tag-highway-footway.tag-bridge,
1947 path.line.casing.tag-highway-cycleway.tag-bridge,
1948 path.line.casing.tag-highway-bridleway.tag-bridge {
1952 .low-zoom path.line.shadow.tag-railway.tag-bridge,
1953 .low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
1954 .low-zoom path.line.shadow.tag-highway-path.tag-bridge,
1955 .low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
1956 .low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
1957 .low-zoom path.line.shadow.tag-highway-service.tag-bridge,
1958 .low-zoom path.line.shadow.tag-highway-track.tag-bridge,
1959 .low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
1960 .low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
1961 .low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
1962 .low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
1965 .low-zoom path.line.casing.tag-railway.tag-bridge,
1966 .low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
1967 .low-zoom path.line.casing.tag-highway-path.tag-bridge,
1968 .low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
1969 .low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
1970 .low-zoom path.line.casing.tag-highway-service.tag-bridge,
1971 .low-zoom path.line.casing.tag-highway-track.tag-bridge,
1972 .low-zoom path.line.casing.tag-highway-steps.tag-bridge,
1973 .low-zoom path.line.casing.tag-highway-footway.tag-bridge,
1974 .low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
1975 .low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
1981 path.line.stroke.tag-tunnel,
1982 path.line.stroke.tag-location-underground,
1983 path.line.stroke.tag-location-underwater {
1984 stroke-opacity: 0.3;
1986 path.line.casing.tag-tunnel,
1987 path.line.casing.tag-location-underground,
1988 path.line.stroke.tag-location-underwater {
1989 stroke-opacity: 0.5;
1990 stroke-linecap: butt;
1991 stroke-dasharray: none;
1995 /* embankments / cuttings */
1996 path.line.shadow.tag-embankment,
1997 path.line.shadow.tag-cutting {
2000 path.line.casing.tag-embankment,
2001 path.line.casing.tag-cutting {
2002 stroke-opacity: 0.5;
2005 stroke-dasharray: 2, 4;
2006 stroke-linecap: butt;
2009 .low-zoom path.line.shadow.tag-embankment,
2010 .low-zoom path.line.shadow.tag-cutting {
2013 .low-zoom path.line.casing.tag-embankment,
2014 .low-zoom path.line.casing.tag-cutting {
2019 /* Surface - unpaved */
2020 path.line.casing.tag-unpaved {
2022 stroke-linecap: butt;
2023 stroke-dasharray: 4, 3;
2025 .low-zoom path.line.casing.tag-unpaved {
2026 stroke-dasharray: 3, 2;
2028 path.line.casing.tag-bridge.tag-unpaved {
2030 stroke-dasharray: 4, 3;
2032 .low-zoom path.line.casing.tag-bridge.tag-unpaved {
2034 stroke-dasharray: 3, 2;
2038 /* Status (e.g. proposed, abandoned) */
2039 path.area.stroke.tag-status,
2040 path.line.stroke.tag-status,
2041 path.area.casing.tag-status,
2042 path.line.casing.tag-status {
2043 stroke-linecap: butt;
2044 stroke-dasharray: 7, 3;
2046 .low-zoom path.area.stroke.tag-status,
2047 .low-zoom path.line.stroke.tag-status,
2048 .low-zoom path.area.casing.tag-status,
2049 .low-zoom path.line.casing.tag-status {
2050 stroke-dasharray: 5, 2;
2053 /* Road Closed Status */
2054 .preset-icon .icon.tag-highway.tag-status-construction {
2058 path.line.shadow.tag-highway.tag-status.tag-status-construction {
2061 path.line.casing.tag-highway.tag-status.tag-status-construction {
2063 stroke-linecap: butt;
2064 stroke-dasharray: none
2066 path.line.stroke.tag-highway.tag-status.tag-status-construction {
2068 stroke-linecap: butt;
2069 stroke-dasharray: 10, 10;
2071 path.line.casing.tag-highway.tag-status.tag-status-construction,
2072 .preset-icon-container path.line.stroke.tag-highway.tag-status.tag-status-construction {
2075 path.line.stroke.tag-highway.tag-status.tag-status-construction,
2076 .preset-icon-container path.line.casing.tag-highway.tag-status.tag-status-construction {
2079 .low-zoom path.line.shadow.tag-highway.tag-status.tag-status-construction {
2082 .low-zoom path.line.casing.tag-highway.tag-status.tag-status-construction {
2085 .low-zoom path.line.stroke.tag-highway.tag-status.tag-status-construction {
2087 stroke-dasharray: 8, 8;
2092 path.stroke.tag-building {
2093 stroke: rgb(224, 110, 95);
2095 path.fill.tag-building {
2096 stroke: rgba(224, 110, 95, 0.3);
2097 fill: rgba(224, 110, 95, 0.3);
2103 cursor: not-allowed !important;
2108 cursor: auto; /* Opera */
2109 cursor: url(<%= asset_path("iD/img/cursor-grab.png") %>) 9 9, auto; /* FF */
2112 .mode-browse .point,
2113 .mode-select .point {
2114 cursor: pointer; /* Opera */
2115 cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
2118 .mode-select .vertex,
2119 .mode-browse .vertex {
2120 cursor: pointer; /* Opera */
2121 cursor: url(<%= asset_path("iD/img/cursor-select-vertex.png") %>), pointer; /* FF */
2125 .mode-select .line {
2126 cursor: pointer; /* Opera */
2127 cursor: url(<%= asset_path("iD/img/cursor-select-line.png") %>), pointer; /* FF */
2131 .mode-browse .area {
2132 cursor: pointer; /* Opera */
2133 cursor: url(<%= asset_path("iD/img/cursor-select-area.png") %>), pointer; /* FF */
2136 .mode-select .midpoint,
2137 .mode-browse .midpoint {
2138 cursor: pointer; /* Opera */
2139 cursor: url(<%= asset_path("iD/img/cursor-select-split.png") %>), pointer; /* FF */
2142 .mode-select .behavior-multiselect .point,
2143 .mode-select .behavior-multiselect .vertex,
2144 .mode-select .behavior-multiselect .line,
2145 .mode-select .behavior-multiselect .area {
2146 cursor: pointer; /* Opera */
2147 cursor: url(<%= asset_path("iD/img/cursor-select-add.png") %>), pointer; /* FF */
2150 .mode-select .behavior-multiselect .selected {
2151 cursor: pointer; /* Opera */
2152 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer; /* FF */
2155 .mode-add-preset #map,
2156 .mode-draw-line #map,
2157 .mode-draw-area #map,
2158 .mode-add-line #map,
2159 .mode-add-area #map,
2160 .mode-drag-node #map,
2161 .mode-drag-note #map {
2162 cursor: crosshair; /* Opera */
2163 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2166 .mode-draw-line .way.target,
2167 .mode-draw-area .way.target,
2168 .mode-add-line .way.target,
2169 .mode-add-area .way.target,
2170 .mode-drag-node .way.target {
2171 cursor: crosshair; /* Opera */
2172 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-line.png") %>) 9 9, crosshair; /* FF */
2175 .mode-draw-line .vertex.target,
2176 .mode-draw-area .vertex.target,
2177 .mode-add-line .vertex.target,
2178 .mode-add-area .vertex.target,
2179 .mode-drag-node .vertex.target {
2180 cursor: crosshair; /* Opera */
2181 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-vertex.png") %>) 9 9, crosshair; /* FF */
2184 .mode-add-point #map,
2185 .mode-add-note #map,
2186 .mode-browse.lasso #map,
2187 .mode-browse.lasso .way,
2188 .mode-browse.lasso .vertex,
2189 .mode-browse.lasso .midpoint,
2190 .mode-select.lasso #map,
2191 .mode-select.lasso .way,
2192 .mode-select.lasso .vertex,
2193 .mode-select.lasso .midpoint {
2194 cursor: crosshair; /* Opera */
2195 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2199 .mode-browse .qa_error,
2201 .mode-select .qa_error,
2206 /* photo viewer div */
2210 margin-bottom: 10px;
2214 background-color: #fff;
2216 [dir='ltr'] #photoviewer {
2220 [dir='rtl'] #photoviewer {
2225 @media screen and (min-width: 1600px) {
2232 #photoviewer button.thumb-hide {
2241 #photoviewer button.resize-handle-xy {
2247 cursor: nesw-resize;
2252 #photoviewer button.resize-handle-x {
2264 #photoviewer button.resize-handle-y {
2277 .photo-wrapper img {
2284 .photo-wrapper .photo-attribution {
2296 .photo-attribution a,
2297 .photo-attribution a:visited,
2298 .photo-attribution span {
2303 /* markers and sequences */
2305 pointer-events: none;
2307 .mode-browse .viewfield-group,
2308 .mode-select .viewfield-group {
2309 pointer-events: visible;
2313 .viewfield-group.currentView * {
2314 fill: #ffee00 !important;
2316 .viewfield-group.hovered * {
2317 fill: #eebb00 !important;
2320 .viewfield-group circle {
2323 stroke-opacity: 0.4;
2326 .viewfield-group.highlighted circle {
2328 stroke-opacity: 0.9;
2331 .viewfield-group.highlighted.hovered circle {
2334 stroke-opacity: 0.9;
2337 .viewfield-group.highlighted.currentView circle {
2344 .viewfield-group .viewfield {
2349 .viewfield-group.highlighted .viewfield {
2353 .viewfield-group.highlighted.hovered .viewfield {
2357 .viewfield-group.highlighted.currentView .viewfield {
2362 .viewfield-group.currentView .viewfield-scale {
2363 transform: scale(2,2);
2369 stroke-opacity: 0.4;
2371 .sequence.highlighted,
2372 .sequence.currentView {
2378 /* Streetside Image Layer */
2379 .layer-streetside-images {
2380 pointer-events: none;
2382 .layer-streetside-images .viewfield-group * {
2385 .layer-streetside-images .sequence {
2387 stroke-opacity: 0.85; /* bump opacity - only one per road */
2391 /* Mapillary Image Layer */
2393 pointer-events: none;
2395 .layer-mapillary .viewfield-group * {
2398 .layer-mapillary .sequence {
2403 /* Mapillary Sign Layer */
2404 .layer-mapillary-signs {
2405 pointer-events: none;
2407 .layer-mapillary-signs .icon-sign {
2408 outline: 2px solid transparent;
2409 pointer-events: visible;
2412 .layer-mapillary-signs .icon-sign:hover {
2413 outline: 5px solid #eebb00;
2414 background-color: #eebb00;
2416 .layer-mapillary-signs .icon-sign.currentView {
2417 outline: 5px solid #ffee00;
2418 background-color: #ffee00;
2422 /* OpenStreetCam Image Layer */
2423 .layer-openstreetcam {
2424 pointer-events: none;
2426 .layer-openstreetcam .viewfield-group * {
2429 .layer-openstreetcam .sequence {
2434 /* Streetside Viewer (pannellum) */
2435 .ms-wrapper .photo-attribution .image-link {
2438 .ms-wrapper .photo-attribution .attribution-row {
2440 flex-flow: row nowrap;
2441 justify-content: space-between;
2442 align-items: center;
2445 .ms-wrapper .photo-attribution .image-view-link {
2449 .ms-wrapper .photo-attribution .image-report-link {
2453 .ms-wrapper .photo-attribution a:active,
2454 .ms-wrapper .photo-attribution a:hover {
2458 .ms-wrapper .pnlm-compass.pnlm-control {
2463 background-size: contain;
2464 background-repeat: no-repeat no-repeat;
2467 label.streetside-hires {
2470 .streetside-hires span {
2473 .streetside-hires input[type="checkbox"] {
2481 /* Mapillary viewer */
2482 #mly .domRenderer .TagSymbol {
2484 background-color: rgba(0,0,0,0.4);
2489 #mly .domRenderer .Attribution {
2490 /* we will roll our own to avoid async update issues like #4526 */
2494 .mly-wrapper .photo-attribution a:active,
2495 .mly-wrapper .photo-attribution a:hover {
2499 .mly-wrapper .mapillary-js-dom {
2504 /* OpenStreetCam viewer */
2507 background-color: #000;
2508 background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
2509 background-position: center;
2510 background-repeat: no-repeat;
2513 .osc-wrapper .photo-attribution a:active,
2514 .osc-wrapper .photo-attribution a:hover {
2521 transform-origin:0 0;
2522 -ms-transform-origin:0 0;
2523 -webkit-transform-origin:0 0;
2524 -moz-transform-origin:0 0;
2525 -o-transform-origin:0 0;
2529 /* photo-controls (step forward, back, rotate) */
2530 .photo-controls-wrap {
2539 display: inline-block;
2543 .photo-controls button,
2544 .photo-controls button:focus {
2547 background: rgba(0,0,0,0.65);
2551 .photo-controls button:first-of-type {
2552 border-radius: 3px 0 0 3px;
2554 .photo-controls button:last-of-type {
2555 border-radius: 0 3px 3px 0;
2557 .photo-controls button:hover,
2558 .photo-controls button:active {
2559 background: rgba(0,0,0,0.85);
2563 /* OSM Notes and KeepRight Layers */
2565 .error-header-icon .qa_error-fill,
2566 .layer-keepRight .qa_error .qa_error-fill,
2567 .layer-improveOSM .qa_error .qa_error-fill {
2569 stroke-width: 1.3px; /* NOTE: likely a better way to scale the icon stroke */
2572 .note-header-icon .note-fill,
2573 .layer-notes .note .note-fill {
2578 .note-header-icon.new .note-fill,
2579 .layer-notes .note.new .note-fill {
2584 .note-header-icon.closed .note-fill,
2585 .layer-notes .note.closed .note-fill {
2591 /* slight adjustments to preset icon for note icons */
2592 .note-header-icon .preset-icon-28 {
2595 .note-header-icon .note-icon-annotation {
2601 .note-header-icon .note-icon-annotation .icon {
2606 /* adjustment for error icon */
2608 .error-header-icon .preset-icon-28 {
2613 .error-header-icon {
2615 align-items: center;
2616 justify-content: center;
2619 /* Keep Right Errors
2620 ------------------------------------------------------- */
2621 .keepRight.error_type-20, /* multiple nodes on same spot */
2622 .keepRight.error_type-40, /* impossible oneways */
2623 .keepRight.error_type-210, /* self intersecting ways */
2624 .keepRight.error_type-270, /* unusual motorway connection */
2625 .keepRight.error_type-310, /* roundabout issues */
2626 .keepRight.error_type-320, /* improper _link */
2627 .keepRight.error_type-350 { /* improper bridge tag */
2631 .keepRight.error_type-50 { /* almost junctions */
2635 .keepRight.error_type-60, /* deprecated tags */
2636 .keepRight.error_type-70, /* tagging issues */
2637 .keepRight.error_type-90, /* motorway without ref */
2638 .keepRight.error_type-100, /* place of worship without religion */
2639 .keepRight.error_type-110, /* poi without name */
2640 .keepRight.error_type-150, /* railway crossing without tag */
2641 .keepRight.error_type-220, /* misspelled tag */
2642 .keepRight.error_type-380 { /* non-physical sport tag */
2646 .keepRight.error_type-130 { /* disconnected ways */
2650 .keepRight.error_type-170 { /* FIXME tag */
2654 .keepRight.error_type-190 { /* intersection without junction */
2658 .keepRight.error_type-200 { /* overlapping ways */
2662 .keepRight.error_type-160, /* railway layer conflict */
2663 .keepRight.error_type-230 { /* layer conflict */
2667 .keepRight.error_type-280 { /* boundary issues */
2671 .keepRight.error_type-180, /* relation without type */
2672 .keepRight.error_type-290 { /* turn restriction issues */
2676 .keepRight.error_type-300, /* missing maxspeed */
2677 .keepRight.error_type-390 { /* missing tracktype */
2681 .keepRight.error_type-360, /* language unknown */
2682 .keepRight.error_type-370, /* doubled places */
2683 .keepRight.error_type-410 { /* website issues */
2687 .keepRight.error_type-120, /* way without nodes */
2688 .keepRight.error_type-400 { /* geometry / turn angles */
2692 /* ImproveOSM Errors
2693 ------------------------------------------------------- */
2695 .improveOSM.error_type-ow { /* missing one way */
2699 .improveOSM.error_type-mr-road { /* missing road */
2702 .improveOSM.error_type-mr-path { /* missing path */
2705 .improveOSM.error_type-mr-parking { /* missing parking */
2708 .improveOSM.error_type-mr-both { /* missing road+parking */
2712 .improveOSM.error_type-tr { /* missing turn restriction */
2717 /* Custom Map Data (geojson, gpx, kml, vector tile) */
2719 pointer-events: none;
2722 .layer-mapdata path.shadow {
2723 pointer-events: stroke;
2729 .layer-mapdata path.MultiPoint.shadow,
2730 .layer-mapdata path.Point.shadow {
2731 pointer-events: fill;
2735 .layer-mapdata path.shadow.hover:not(.selected) {
2736 stroke-opacity: 0.4;
2738 .layer-mapdata path.shadow.selected {
2739 stroke-opacity: 0.7;
2742 .layer-mapdata path.stroke {
2748 .layer-mapdata path.fill {
2750 stroke-opacity: 0.3;
2757 .layer-mapdata text.label-halo,
2758 .layer-mapdata text.label {
2761 dominant-baseline: middle;
2763 .layer-mapdata text.label {
2766 .layer-mapdata text.label.hover,
2767 .layer-mapdata text.label.selected {
2770 .layer-mapdata text.label-halo {
2774 stroke-miterlimit: 1;
2778 .low-zoom.fill-wireframe path.stroke,
2779 .fill-wireframe path.stroke {
2780 stroke-width: 1 !important;
2781 stroke-opacity: 0.5 !important;
2782 stroke-dasharray: none !important;
2783 fill: none !important;
2785 .low-zoom.fill-wireframe .layer-mapdata path.stroke,
2786 .fill-wireframe .layer-mapdata path.stroke {
2787 stroke-width: 2 !important;
2788 stroke-opacity: 1 !important;
2791 .low-zoom.fill-wireframe path.shadow,
2792 .fill-wireframe path.shadow {
2796 .fill-wireframe path.shadow.related:not(.selected),
2797 .fill-wireframe path.shadow.hover:not(.selected) {
2798 stroke-opacity: 0.4;
2800 .fill-wireframe path.shadow.selected {
2801 stroke-opacity: 0.6;
2804 .fill-wireframe .point,
2805 .fill-wireframe .areaicon,
2806 .fill-wireframe .areaicon-halo,
2807 .fill-wireframe path.casing,
2808 .fill-wireframe path.fill,
2809 .fill-wireframe path.oneway {
2810 display: none !important;
2813 .fill-partial path.area.fill {
2816 pointer-events: none;
2818 .fill-partial path.area.fill.tag-building_part {
2821 .fill-partial path.area.fill.tag-indoor {
2824 .mode-browse .fill-partial path.area.fill,
2825 .mode-select .fill-partial path.area.fill {
2826 pointer-events: visibleStroke;
2829 ------------------------------------------------------- */
2831 Opera misbehaves when the window is resized vertically unless 100% width + height are
2832 applied to both html and body. https://gist.github.com/jfirebaugh/bd225bcfdd3a633850c4
2840 font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
2841 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2842 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
2848 -ms-user-select: none;
2849 -ms-content-zooming: none;
2854 vertical-align: middle;
2871 -webkit-filter: none !important;
2872 filter: none !important;
2873 -webkit-duration: 200ms;
2874 transition-duration: 200ms;
2878 -webkit-filter: grayscale(80%) brightness(80%);
2879 filter: grayscale(80%) brightness(80%);
2880 -webkit-duration: 200ms;
2881 transition-duration: 200ms;
2885 /* Can't be display: none or the clippaths are ignored. */
2891 div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
2892 -moz-box-sizing: border-box;
2893 -webkit-box-sizing: border-box;
2894 box-sizing: border-box;
2897 a, button, input, textarea {
2898 -webkit-tap-highlight-color: rgba(0,0,0,0);
2899 -webkit-touch-callout: none;
2916 margin-bottom: 20px;
2921 h4:last-child { margin-bottom: 0;}
2927 margin-bottom: 10px;
2932 padding-bottom: 10px;
2936 outline-color: transparent;
2937 outline-style: none;
2940 ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
2942 opacity: 1; /* Firefox */
2944 :-ms-input-placeholder { /* Internet Explorer 10-11 */
2947 ::-ms-input-placeholder { /* Microsoft Edge */
2973 ------------------------------------------------------- */
2976 font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
2977 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2978 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
2989 background-color: #fff;
2991 border: 1px solid #ccc;
2992 padding: 5px 20px 5px 10px;
2995 text-overflow: ellipsis;
2997 [dir='rtl'] textarea,
2998 [dir='rtl'] input[type=text],
2999 [dir='rtl'] input[type=search],
3000 [dir='rtl'] input[type=number],
3001 [dir='rtl'] input[type=url],
3002 [dir='rtl'] input[type=tel],
3003 [dir='rtl'] input[type=email] {
3004 padding: 5px 10px 5px 20px;
3009 background-color: #f1f1f1;
3015 background-color: #eee;
3016 cursor: not-allowed;
3019 input[type="checkbox"],
3020 input[type="radio"] {
3028 [dir='rtl'] input[type="checkbox"],
3029 [dir='rtl'] input[type="radio"] {
3037 background-color: #fff;
3038 border-collapse: collapse;
3045 table.tags, table.tags td, table.tags th {
3046 border: 1px solid #ccc;
3055 ------------------------------------------------------- */
3056 .col6 { float: left; width: 50.0000%; max-width: 600px; }
3057 .col12 { float: left; width: 100.0000%; }
3061 ------------------------------------------------------- */
3067 background: #f6f6f6;
3071 background: #ececec;
3075 background: rgba(0,0,0,.5);
3079 background: rgba(0,0,0,.75);
3084 .fr { float: right;}
3103 box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.25);
3106 background: url(<%= asset_path("iD/img/loader_bg.gif") %>);
3107 background-size: 5px 5px;
3112 ------------------------------------------------------- */
3121 display: inline-block;
3128 background-color: #ececec;
3131 background: #7092ff;
3134 background-color: rgba(255,255,255,.25);
3135 color: rgba(0,0,0,.4);
3136 cursor: not-allowed;
3141 border-right: 1px solid rgba(0,0,0,.5);
3143 [dir='rtl'] .joined > * {
3144 border-left: 1px solid rgba(0,0,0,.5);
3148 .fillL .joined > * {
3149 border-right: 1px solid #fff;
3151 .joined > *:first-child {
3152 border-radius: 4px 0 0 4px;
3154 [dir='rtl'] .joined > *:first-child {
3155 border-radius: 0 4px 4px 0;
3157 .joined > *:last-child {
3158 border-right-width: 0;
3159 border-radius: 0 4px 4px 0;
3161 [dir='rtl'] .joined > *.bar-button:last-child {
3162 border-radius: 4px 0 0 4px;
3166 /* Action buttons */
3168 background: #7092ff;
3171 button.action:focus,
3172 button.action:hover {
3173 background: #597be7;
3175 button.secondary-action {
3176 background: #ececec;
3178 button.secondary-action:focus,
3179 button.secondary-action:hover {
3180 background: #cccccc;
3183 button.action.disabled,
3184 button.action.disabled:hover,
3185 button[disabled].action,
3186 button[disabled].action:hover {
3187 background: #cccccc;
3189 cursor: not-allowed;
3194 ------------------------------------------------------- */
3196 vertical-align: top;
3202 vertical-align: text-top;
3211 [dir='rtl'] .icon.pre-text {
3216 .icon.pre-text.user-icon {
3246 .notification-badge {
3255 .notification-badge.hide {
3260 /* Toolbar / Persistent UI Elements
3261 ------------------------------------------------------- */
3264 flex-flow: row nowrap;
3265 justify-content: space-between;
3267 padding: 10px 5px 0px 5px;
3273 #bar .toolbar-item {
3276 flex-flow: column wrap;
3277 justify-content: center;
3280 #bar .toolbar-item .item-content {
3283 flex-flow: row nowrap;
3284 justify-content: center;
3290 #bar .toolbar-item .item-label {
3293 white-space: nowrap;
3294 margin: 1px 2px 2px 2px;
3296 #bar .toolbar-item.spacer {
3300 #bar .toolbar-item:first-child {
3301 justify-content: flex-start;
3303 #bar .toolbar-item:last-child {
3304 justify-content: flex-end;
3306 #bar .toolbar-item:empty:not(.spacer) {
3311 flex-flow: row nowrap;
3312 align-items: center;
3315 white-space: nowrap;
3318 button.bar-button .icon {
3321 button.bar-button .label {
3326 button.bar-button.dragging {
3330 button.bar-button.dragging .tooltip {
3333 button.bar-button.dragging.removing {
3334 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer;
3337 button.save .count {
3338 display: inline-block;
3343 .help-wrap svg.icon.pre-text.add-note,
3344 button.add-note svg.icon {
3347 color: rgba(0,0,0,0.25);
3352 button.add-note svg.icon {
3356 [dir='rtl'] button.add-note svg.icon {
3358 margin-right: unset;
3360 .help-wrap svg.icon.pre-text.add-note {
3374 background: transparent;
3375 border-radius: 100%;
3377 [dir='rtl'] .spinner img {
3378 -moz-transform: scaleX(-1);
3379 -o-transform: scaleX(-1);
3380 -webkit-transform: scaleX(-1);
3381 transform: scaleX(-1);
3383 -ms-filter: "FlipH";
3387 #bar.narrow .spinner,
3388 #bar.narrow button.bar-button .label {
3391 #bar.narrow button .count {
3392 border-left-width: 0;
3393 border-right-width: 0;
3396 [dir='ltr'] .undo-redo button:first-of-type {
3399 [dir='rtl'] .undo-redo button:first-of-type {
3403 /* Add a feature search bar
3404 ------------------------------------------------------- */
3408 justify-content: center;
3413 .search-add .search-wrap {
3417 [dir='ltr'] .search-add .search-wrap {
3418 border-radius: 20px 4px 4px 20px;
3420 [dir='rtl'] .search-add .search-wrap {
3421 border-radius: 4px 20px 20px 4px;
3423 .search-add .search-wrap.focused .tooltip {
3426 .search-add .search-wrap:last-child {
3427 border-radius: 20px;
3429 .search-add input[type='search'] {
3437 border-radius: inherit;
3439 .search-add input[type='search'][disabled] {
3441 cursor: not-allowed;
3443 .search-add .search-icon {
3449 pointer-events: none;
3451 [dir='rtl'] .search-add .search-icon {
3455 .search-add .popover {
3468 .search-add .popover .popover-content {
3473 .search-add .popover,
3474 .search-add .popover .popover-content {
3475 /* ensure corners are rounded in Chrome */
3476 -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
3478 .search-add .popover .popover-footer {
3479 padding: 5px 10px 5px 10px;
3480 background: #f6f6f6;
3481 border-top: 1px solid #DCDCDC;
3484 .search-add .popover .popover-footer .message {
3488 .search-add .popover .popover-footer button.filter {
3490 background: transparent;
3493 .search-add .popover .popover-footer button.filter.active {
3496 .search-add .popover .popover-footer button.filter:hover {
3499 .search-add .popover .popover-footer button.filter.active:hover {
3502 .search-add .popover::-webkit-scrollbar {
3503 /* don't overlap rounded corners */
3504 background: transparent;
3506 .search-add .popover .list {
3509 .search-add .list-item > .row {
3514 .search-add .list-item:not(:last-of-type) .row,
3515 .search-add .subsection.subitems .list-item .row,
3516 .search-add .subsection > .tag-reference-body {
3517 border-bottom: 1px solid #DCDCDC;
3519 .search-add .list-item .label {
3527 align-items: center;
3531 .search-add .list-item .label .namepart:nth-child(2) {
3532 font-weight: normal;
3534 .search-add .list-item.disabled .preset-icon-container,
3535 .search-add .list-item.disabled .label {
3538 [dir='ltr'] .search-add .list-item .label .icon.inline {
3541 [dir='rtl'] .search-add .list-item .label .icon.inline {
3544 .search-add .list-item .row > *:not(button) {
3545 pointer-events: none;
3547 .search-add .list-item button.choose {
3555 .search-add .list-item button.choose:hover,
3556 .search-add .list-item button.choose:focus {
3559 .search-add .list-item.focused:not(.disabled) button.choose {
3560 background: #e8ebff;
3562 .search-add .list-item button.choose.disabled {
3563 background-color: #ececec;
3565 .search-add .subsection .list-item button.choose {
3568 .search-add .subsection .tag-reference-body {
3569 background: rgba(255, 255, 255, 0.85);
3572 .search-add .list-item button.accessory {
3576 background: transparent;
3580 .search-add .list-item button.accessory:hover {
3583 .search-add .list-item button.tag-reference-open path {
3586 .search-add .subsection {
3587 background-color: #CBCBCB;
3589 [dir='ltr'] .search-add .subitems {
3592 [dir='rtl'] .search-add .subitems {
3596 /* Add a preset mode buttons
3597 ------------------------------------------------------- */
3599 button.bar-button.add-preset {
3602 [dir='ltr'] button.bar-button.add-preset {
3605 [dir='rtl'] button.bar-button.add-preset {
3608 [dir='ltr'] button.bar-button.add-preset.first-recent {
3611 [dir='rtl'] button.bar-button.add-preset.first-recent {
3614 button.bar-button.add-preset {
3617 button.add-preset.disabled .preset-icon-container {
3620 /* Header for modals / panes
3621 ------------------------------------------------------- */
3623 border-bottom: 1px solid #ccc;
3631 white-space: nowrap;
3632 text-overflow: ellipsis;
3650 .field-help-title button.close,
3651 .sidebar-component .header button.data-editor-close,
3652 .sidebar-component .header button.note-editor-close,
3653 .sidebar-component .header button.error-editor-close,
3654 .entity-editor-pane .header button.preset-close,
3655 .preset-list-pane .header button.preset-choose {
3660 [dir='rtl'] .field-help-title button.close,
3661 [dir='rtl'] .sidebar-component .header button.data-editor-close,
3662 [dir='rtl'] .sidebar-component .header button.note-editor-close,
3663 [dir='rtl'] .sidebar-component .header button.error-editor-close,
3664 [dir='rtl'] .entity-editor-pane .header button.preset-close,
3665 [dir='rtl'] .preset-list-pane .header button.preset-choose {
3670 .entity-editor-pane .header button.preset-choose {
3675 [dir='rtl'] .entity-editor-pane .header button.preset-choose {
3693 [dir='rtl'] .modal > button {
3702 padding: 5px 20px 5px 20px;
3703 border-top: 1px solid #ccc;
3704 background-color: #f6f6f6;
3708 justify-content: space-between;
3714 justify-content: center;
3719 justify-content: space-between;
3722 .header-block-outer {
3726 .header-block-close {
3728 justify-content: flex-end;
3731 /* Hide/Toggle collapsable sections (aka Disclosure)
3732 ------------------------------------------------------- */
3733 .hide-toggle .icon.pre-text {
3734 vertical-align: text-top;
3739 [dir='rtl'] .hide-toggle .icon.pre-text {
3744 a:visited.hide-toggle,
3746 display: inline-block;
3749 padding-bottom: 5px;
3753 /* Sidebar / Inspector
3754 ------------------------------------------------------- */
3760 background: #f6f6f6;
3761 -ms-user-select: element;
3762 border: 0px solid #ccc;
3763 border-right-width: 1px;
3765 [dir='rtl'] #sidebar {
3767 border-right-width: 0px;
3768 border-left-width: 1px;
3779 [dir='rtl'] #sidebar-resizer {
3784 #sidebar.collapsed #sidebar-resizer {
3785 /* make target wider to avoid the user accidentally resizing window */
3789 [dir='rtl'] #sidebar.collapsed #sidebar-resizer {
3793 .sidebar-component {
3801 .sidebar-component .body {
3851 .feature-list-pane .inspector-body,
3852 .preset-list-pane .inspector-body {
3855 .entity-editor-pane .inspector-body,
3856 .selection-list-pane .inspector-body {
3861 padding: 20px 20px 5px 20px;
3865 #sidebar .search-header .icon {
3870 pointer-events: none;
3872 [dir='rtl'] #sidebar .search-header .icon {
3877 #sidebar .search-header input {
3885 border-bottom-width: 1px;
3892 /* Feature List / Search Results
3893 ------------------------------------------------------- */
3899 .feature-list-item {
3902 border-bottom: 1px solid #ccc;
3908 background-color: #ccc;
3914 [dir='rtl'] .geocode-item {
3918 .geocode-item:hover {
3919 background-color: #aaa;
3922 .feature-list-item {
3923 background-color: #fff;
3928 .feature-list-item:hover {
3929 background-color: #ececec;
3931 .feature-list-item button {
3932 background: transparent;
3934 .feature-list-item .label {
3937 white-space: nowrap;
3938 text-overflow: ellipsis;
3940 border-left: 1px solid rgba(0, 0, 0, .1);
3942 [dir='rtl'] .feature-list-item .label {
3946 .feature-list-item .label .icon {
3949 .feature-list-item .close {
3953 .feature-list-item .close .icon {
3956 .feature-list-item .entity-type {
3959 .feature-list-item:hover .entity-type {
3962 .feature-list-item .entity-name {
3963 font-weight: normal;
3967 [dir='rtl'] .feature-list-item .entity-name {
3969 padding-right: 10px;
3973 /* Preset List and Icons
3974 ------------------------------------------------------- */
3977 padding: 20px 20px 10px 20px;
3978 border-bottom: 1px solid #ccc;
3982 margin-bottom: 10px;
3985 .preset-list-button-wrap {
3989 border: 1px solid #ccc;
3993 .preset-list-button {
4000 .preset-list.filtered .preset-list-item:first-child .preset-list-button {
4001 background: #ececec;
4004 .preset-icon-container {
4010 align-items: center;
4011 justify-content: center;
4013 .preset-icon-container.small {
4018 .preset-icon-container img.image-icon {
4021 object-fit: contain;
4025 .preset-icon-point-border path {
4040 .preset-icon-container path {
4043 .preset-icon-container circle.vertex {
4045 stroke: rgba(0, 0, 0, 0.25);
4047 .preset-icon-fill circle.midpoint {
4049 stroke: rgba(0, 0, 0, 0.25);
4051 /* use a consistent stroke width */
4052 .preset-icon-container path.line.stroke {
4053 stroke-width: 2 !important;
4055 .preset-icon-container path.line.casing {
4056 stroke-width: 4 !important;
4067 .preset-icon-container svg,
4068 .preset-icon-container svg > * {
4069 cursor: inherit !important;
4071 .preset-icon-fill path.area.stroke {
4075 .preset-icon-fill-vertex circle {
4076 stroke-width: 1.5px;
4079 backface-visibility: hidden;
4088 .preset-icon .icon {
4095 transform: scale(0.48);
4097 .preset-icon-container.small .preset-icon.point-geom .icon {
4098 transform: translateY(-7%) scale(0.27);
4100 .preset-icon-container.small .preset-icon.point-geom.preset-icon-iD .icon {
4101 transform: translateY(-9%) scale(0.5);
4103 .preset-icon.framed .icon {
4104 transform: scale(0.4);
4106 .preset-icon.framed.line-geom .icon,
4107 .preset-icon.framed.route-geom .icon {
4109 transform: translateY(-30%) scale(0.4);
4111 .preset-icon-iD .icon {
4112 transform: scale(1);
4114 .preset-icon-iD.framed .icon {
4115 transform: scale(0.74);
4117 .preset-icon-iD.framed.line-geom .icon,
4118 .preset-icon-iD.framed.route-geom .icon {
4119 transform: translateY(-30%) scale(0.74);
4121 .preset-icon-container.fallback .preset-icon .icon {
4122 transform: scale(0.5) !important;
4125 .preset-list-button .label {
4127 flex-flow: row wrap;
4128 align-items: center;
4129 background-color: #f6f6f6;
4137 border-left: 1px solid rgba(0, 0, 0, .1);
4139 [dir='rtl'] .preset-list-button .label {
4144 border-right: 1px solid rgba(0, 0, 0, .1);
4146 [dir='ltr'] .category .preset-list-button .label {
4147 border-radius: 0px 4px 4px 0px;
4149 [dir='rtl'] .category .preset-list-button .label {
4150 border-radius: 4px 0px 0px 4px;
4153 .preset-list-button .label-inner {
4156 .preset-list-button .label-inner .namepart {
4158 white-space: nowrap;
4159 text-overflow: ellipsis;
4163 .preset-list-button:hover .label,
4164 .preset-list-button:focus .label,
4165 .preset-list-button.disabled,
4166 .preset-list-button.disabled .label {
4167 background-color: #ececec;
4170 .preset-list-item button.preset-favorite-button,
4171 .preset-list-item button.tag-reference-button {
4175 background: #f6f6f6;
4177 [dir='ltr'] .preset-list-item button.preset-favorite-button,
4178 [dir='ltr'] .preset-list-item button.tag-reference-button {
4179 border-left: 1px solid #ccc;
4181 [dir='rtl'] .preset-list-item button.preset-favorite-button,
4182 [dir='rtl'] .preset-list-item button.tag-reference-button {
4183 border-right: 1px solid #ccc;
4185 [dir='ltr'] .preset-list-item button:last-child {
4186 border-radius: 0 4px 4px 0;
4188 [dir='rtl'] .preset-list-item button:last-child {
4189 border-radius: 4px 0 0 4px;
4192 .preset-list-item button.preset-favorite-button:hover,
4193 .preset-list-item button.tag-reference-button:hover {
4194 background: #f1f1f1;
4196 .preset-list-item button.preset-favorite-button .icon,
4197 .preset-list-item button.tag-reference-button .icon {
4201 button.preset-favorite-button .icon {
4205 button.preset-favorite-button.active .icon {
4206 fill-opacity: inherit;
4210 .current .preset-list-button,
4211 .current .preset-list-button .label {
4212 background-color: #e8ebff;
4215 .category .preset-list-button:after,
4216 .category .preset-list-button:before {
4220 left: -1px; right: -1px;
4221 border: 1px solid #ccc;
4222 border-bottom: none;
4223 border-radius: 6px 6px 0 0;
4227 .category .preset-list-button:before {
4231 .subgrid .preset-list {
4236 width: -webkit-calc(100% + 20px);
4239 .subgrid .preset-list > *:last-child {
4244 border: solid rgba(0, 0, 0, 0);
4246 border-bottom-color: #ececec;
4250 margin-left: -webkit-calc(50% - 10px);
4255 ------------------------------------------------------- */
4258 flex-flow: row wrap;
4259 justify-content: flex-end;
4266 .data-editor .quick-links,
4267 .error-editor .quick-links,
4268 .note-editor .quick-links {
4273 /* Entity/Preset Editor
4274 ------------------------------------------------------- */
4278 padding: 10px 0px 5px 0px;
4280 .entity-issues a.hide-toggle,
4281 .preset-editor a.hide-toggle {
4282 margin: 0 20px 5px 20px;
4284 .entity-issues .disclosure-wrap-entity_issues,
4285 .preset-editor .form-fields-container {
4287 margin: 0 10px 10px 10px;
4289 background: #ececec;
4291 .entity-issues .disclosure-wrap-entity_issues:empty,
4292 .preset-editor .form-fields-container:empty {
4295 .entity-editor-pane .preset-list-item {
4300 The parts of a field:
4301 - `.form-field` is a `div` wraps the entire thing
4302 - `.field-label` is a `label` that wraps the top part, it contains;
4303 - `span` classed `label-text`
4304 - 0..n buttons for "remove", "modified", "tag reference"
4305 - `.form-field-input-wrap` is a `label` or `div` that wraps the bottom part, it contains;
4306 - usually an `input`
4307 - sometimes some buttons (translate, increment, decrement)
4308 - or could just be a `div` with anything really
4309 - `.tag-reference-body` at the bottom (usually hidden)
4311 .------------------. -
4312 | Name | i | <- .field-label |
4313 +------------------+ |
4314 | Starbucks | + | <- .form-field-input-wrap > .form-field
4315 '------------------' |
4316 tag reference <- .tag-reference-body |
4322 flex-flow: row wrap;
4323 margin-bottom: 10px;
4325 -webkit-transition: margin-bottom 200ms;
4326 -moz-transition: margin-bottom 200ms;
4327 -o-transition: margin-bottom 200ms;
4328 transition: margin-bottom 200ms;
4332 .wrap-form-field:last-child .form-field {
4336 /* A `label` element that wraps the top section */
4339 flex-flow: row nowrap;
4345 background: #f6f6f6;
4346 border: 1px solid #ccc;
4347 border-radius: 4px 4px 0 0;
4350 .field-label .label-text {
4352 padding: 5px 0 5px 10px;
4354 [dir='rtl'] .field-label .label-text {
4355 padding: 5px 10px 5px 0;
4358 .label-text .label-textannotation svg.icon {
4364 vertical-align: text-top;
4367 .field-label button {
4369 border-left: 1px solid #ccc;
4373 background: #f6f6f6;
4375 [dir='rtl'] .field-label button {
4377 border-right: 1px solid #ccc;
4379 .field-label button:hover {
4380 background: #f1f1f1;
4382 .field-label .icon {
4386 .field-label .modified-icon,
4387 .field-label .remove-icon,
4388 .field-label .remove-icon-multilingual {
4391 .modified:not(.locked) .field-label .modified-icon,
4392 .present:not(.locked) .field-label .remove-icon,
4393 .present:not(.locked) .field-label .remove-icon-multilingual {
4394 display: inline-block;
4397 /* A `div` element that wraps the bottom section */
4398 .form-field-input-wrap {
4400 flex-flow: row nowrap;
4405 border-radius: 0 0 4px 4px;
4407 .nowrap .form-field-input-wrap {
4412 .form-field-input-wrap > input,
4413 .form-field-input-wrap > label,
4414 .form-field-input-wrap > textarea,
4415 .form-field-input-wrap > ul.chiplist {
4418 border: 1px solid #ccc;
4424 .form-field-input-wrap > textarea {
4426 border-radius: 0 0 4px 4px;
4430 /* Buttons inside fields */
4431 .form-field-button {
4436 background-color: #fff;
4437 border: 1px solid #ccc;
4439 border-top-width: 0;
4440 border-left-width: 0;
4441 vertical-align: top;
4443 [dir='rtl'] .form-field-button {
4444 border-left-width: 1px;
4445 border-right-width: 0;
4447 .form-field-button:hover {
4448 background-color: #f1f1f1;
4450 .form-field-button .icon {
4456 /* round corners of first/last child elements */
4457 .form-field-input-wrap > button:last-of-type {
4458 border-bottom-right-radius: 4px;
4460 [dir='rtl'] .form-field-input-wrap > button:last-of-type {
4461 border-bottom-left-radius: 4px;
4465 /* Field - Access, Cycleway
4466 ------------------------------------------------------- */
4467 .form-field-input-access,
4468 .form-field-input-cycleway {
4471 flex-flow: row wrap;
4474 /* Field - lists with labeled input items
4475 ------------------------------------------------------- */
4476 .form-field ul.rows {
4478 border: 1px solid #ccc;
4480 border-radius: 0 0 4px 4px;
4484 .form-field ul.rows li {
4485 border-top: 1px solid #ccc;
4487 .form-field ul.rows li:first-child {
4490 .form-field ul.rows li {
4492 flex-flow: row nowrap;
4494 .form-field ul.rows li.labeled-input > span,
4495 .form-field ul.rows li.labeled-input > div {
4500 .form-field ul.rows li input {
4505 .form-field ul.rows li button {
4508 [dir='ltr'] .form-field ul.rows li.labeled-input input,
4509 [dir='ltr'] .form-field ul.rows li button {
4510 border-left-width: 1px;
4512 [dir='rtl'] .form-field ul.rows li.labeled-input input,
4513 [dir='rtl'] .form-field ul.rows li button {
4514 border-right-width: 1px;
4518 /* Field - Structure
4519 ------------------------------------------------------- */
4520 .structure-extras-wrap {
4524 border: 1px solid #ccc;
4526 border-radius: 0 0 4px 4px;
4528 .structure-extras-wrap > ul.rows {
4529 border: 1px solid #ccc;
4534 /* Field - Combo / Multicombo
4535 ------------------------------------------------------- */
4536 .form-field-input-combo > input:only-of-type {
4537 border-radius: 0 0 4px 4px;
4539 .form-field-input-combo.empty-combobox input,
4540 .form-field-input-multicombo .empty-combobox input {
4541 padding-right: 10px;
4544 .form-field-input-combo.empty-combobox .combobox-caret,
4545 .form-field-input-multicombo .empty-combobox .combobox-caret {
4549 .form-field-input-multicombo ul.chiplist {
4550 padding: 5px 8px 5px 8px;
4553 border-radius: 0 0 4px 4px;
4557 .form-field-input-multicombo li {
4558 display: inline-flex;
4559 flex-flow: row nowrap;
4560 align-items: center;
4565 [dir='ltr'] .form-field-input-multicombo li {
4568 [dir='rtl'] .form-field-input-multicombo li {
4572 .form-field-input-multicombo li.chips {
4573 background-color: #eff2f7;
4574 border: 1px solid #ccd5e3;
4578 [dir='ltr'] .form-field-input-multicombo li.chips {
4579 padding: 2px 0px 2px 5px;
4581 [dir='rtl'] .form-field-input-multicombo li.chips {
4582 padding: 2px 5px 2px 0px;
4585 .form-field-input-multicombo li.chips span {
4589 word-wrap: break-word;
4592 .form-field-input-multicombo a {
4593 font-family: Arial, Helvetica, sans-serif !important;
4594 font-size: 16px !important;
4595 padding: 0px 5px 0px 5px;
4604 .form-field-input-multicombo .input-wrap {
4605 border: 1px solid #ddd;
4609 .form-field-input-multicombo input {
4615 .form-field-input-multicombo input:focus {
4616 border-radius: 4px !important;
4619 .form-field-input-multicombo .full-line-chips li.chips {
4622 .form-field-input-multicombo .full-line-chips .input-wrap {
4627 /* Field - Text / Numeric
4628 ------------------------------------------------------- */
4629 .form-field-input-text > input:only-of-type,
4630 .form-field-input-tel > input:only-of-type,
4631 .form-field-input-email > input:only-of-type,
4632 .form-field-input-url > input:only-of-type {
4633 border-radius: 0 0 4px 4px;
4635 .form-field-input-number > input:only-of-type {
4636 border-radius: 0 0 0 4px;
4638 [dir='rtl'] .form-field-input-number > input:only-of-type {
4639 border-radius: 0 0 4px 0;
4641 .form-field-input-number > button:last-of-type {
4642 border-radius: 0 0 4px 0;
4644 [dir='rtl'] .form-field-input-number > button:last-of-type {
4645 border-radius: 0 0 0 4px;
4648 /* draw the up/down on the buttons */
4649 .form-field-input-number button.decrement::after,
4650 .form-field-input-number button.increment::after {
4652 height: 0; width: 0;
4654 left: 0; right: 0; bottom: 0; top: 0;
4657 .form-field-input-number button.decrement::after {
4658 border-top: 5px solid #ccc;
4659 border-left: 5px solid transparent;
4660 border-right: 5px solid transparent;
4662 .form-field-input-number button.increment::after {
4663 border-bottom: 5px solid #ccc;
4664 border-left: 5px solid transparent;
4665 border-right: 5px solid transparent;
4670 ------------------------------------------------------- */
4671 .form-field-input-check {
4677 border: 1px solid #ccc;
4681 .form-field-input-check > input[type="checkbox"] {
4686 .form-field-input-check > span {
4689 .form-field-input-check > .reverser.button {
4691 background-color: #eff2f7;
4692 border: 1px solid #ccd5e3;
4696 .form-field-input-check > .reverser.button.hide {
4700 .form-field-input-check:hover {
4701 background: #f1f1f1;
4703 .form-field-input-check .set {
4706 .form-field-input-check label:not(.set) input[type="checkbox"] {
4711 /* Field - Radio button
4712 ------------------------------------------------------- */
4713 .form-field-input-radio {
4716 flex-flow: row wrap;
4718 .form-field-input-radio > label {
4721 flex-flow: row nowrap;
4725 background-color: #fff;
4729 .form-field-input-radio > label:last-child {
4730 border-radius: 0 0 4px 4px;
4732 .form-field-input-radio > label:hover {
4733 background-color: #ececec;
4735 .form-field-input-radio > label.active {
4736 background-color: #e8ebff;
4738 .form-field-input-radio > label:not(:last-of-type) {
4739 border-bottom: 1px solid #ccc;
4741 .form-field-input-radio > label > input[type="radio"] {
4745 .form-field-input-radio > label > span {
4748 white-space: nowrap;
4749 text-overflow: ellipsis;
4752 /* Hide placeholder for radio buttons if another is active, or not in hover state */
4753 .form-field-input-radio label.active ~ .placeholder,
4754 .form-field-input-radio .placeholder {
4765 ------------------------------------------------------- */
4766 .form-field-input-maxspeed > input:first-of-type {
4767 border-radius: 0 0 0 4px;
4769 [dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
4770 border-radius: 0 0 4px 0;
4772 .form-field-input-maxspeed > input:last-of-type { /* unit field */
4776 border-radius: 0 0 4px 0;
4778 [dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
4780 border-radius: 0 0 0 4px;
4784 /* Field - Localized Name
4785 ------------------------------------------------------- */
4786 .form-field-input-localized > input.localized-main {
4787 border-radius: 0 0 0 4px;
4789 [dir='rtl'] .form-field-input-localized > input.localized-main {
4790 border-radius: 0 0 4px 0;
4792 .form-field-input-localized > button.localized-add {
4793 border-radius: 0 0 4px 0;
4795 [dir='rtl'] .form-field-input-localized > button.localized-add {
4796 border-radius: 0 0 0 4px;
4799 .form-field-input-localized button.localized-add.disabled,
4800 .form-field-input-localized input.localized-main.disabled,
4801 .form-field-input-localized input.localized-lang.disabled,
4802 .form-field-input-localized input.localized-value.disabled {
4804 background-color: #eee;
4805 cursor: not-allowed;
4808 /* nested subfields for name in different languages */
4809 .localized-multilingual {
4813 .localized-multilingual .entry {
4818 /* draws a little line connecting the multilingual field up to the name field */
4819 .localized-multilingual .entry::before {
4832 .localized-multilingual .entry .localized-lang {
4834 border-top-width: 0;
4837 .localized-multilingual .entry .localized-value {
4838 border-top-width: 0;
4839 border-radius: 0 0 4px 4px;
4845 ------------------------------------------------------- */
4846 .form-field-input-address {
4849 flex-flow: row wrap;
4850 border: 1px solid #ccc;
4867 [dir='rtl'] .addr-row input {
4868 border-right: 1px solid #ccc;
4872 .addr-row:first-of-type input {
4875 .addr-row input:first-of-type {
4878 [dir='rtl'] .addr-row input:first-of-type {
4881 .addr-row:last-of-type input:first-of-type {
4882 border-radius: 0 0 0 4px;
4884 [dir='rtl'] .addr-row:last-of-type input:first-of-type {
4885 border-radius: 0 0 4px 0;
4887 .addr-row:last-of-type input:last-of-type {
4888 border-radius: 0 0 4px 0;
4890 [dir='rtl'] .addr-row:last-of-type input:last-of-type {
4891 border-radius: 0 0 0 4px;
4895 /* Field - Wikipedia
4896 ------------------------------------------------------- */
4897 .form-field-input-wikipedia {
4899 flex-flow: row wrap;
4903 .wiki-lang-container,
4904 .wiki-title-container {
4906 flex-flow: row nowrap;
4911 .wiki-lang-container > input.wiki-lang,
4912 .wiki-title-container > input.wiki-title {
4917 .wiki-title-container > input.wiki-title {
4918 border-radius: 0 0 0 4px;
4920 [dir='rtl'] .wiki-title-container > input.wiki-title {
4921 border-radius: 0 0 4px 0;
4923 .wiki-title-container > button.wiki-link,
4924 .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
4925 border-radius: 0 0 4px 0;
4927 [dir='rtl'] .wiki-title-container > button.wiki-link,
4928 [dir='rtl'] .form-field-wikidata ul.rows li:last-child button.form-field-button:last-child {
4929 border-radius: 0 0 0 4px;
4933 /* Field - Restriction Editor
4934 ------------------------------------------------------- */
4935 .form-field-input-restrictions {
4937 border: 1px solid #ccc;
4939 border-radius: 0 0 4px 4px;
4942 .form-field-input-restrictions .restriction-controls-container {
4943 background-color: #fff;
4946 border-top: 1px solid #ccc;
4947 border-radius: 0 0 4px 4px;
4950 .restriction-controls-container .restriction-controls {
4952 -moz-user-select: none;
4953 -webkit-user-select: none;
4954 -ms-user-select: none;
4958 .restriction-controls .restriction-control {
4964 .restriction-control input,
4965 .restriction-control span {
4966 display: table-cell;
4971 .restriction-control span.restriction-control-label {
4975 .restriction-control input {
4979 vertical-align: middle;
4982 .form-field-input-restrictions .restriction-container {
4986 /* zero width space, so container takes up space */
4987 .form-field-input-restrictions .restriction-container:after {
4991 .form-field-input-restrictions svg.surface {
4996 .restriction-container .restriction-help {
5003 background-color: rgba(255, 255, 255, .8);
5006 pointer-events: none;
5008 -moz-user-select: none;
5009 -webkit-user-select: none;
5010 -ms-user-select: none;
5014 .restriction-help span {
5018 .restriction-help .qualifier {
5022 .restriction-help .qualifier.allow {
5025 .restriction-help .qualifier.restrict {
5028 .restriction-help .qualifier.only {
5033 /* Field - Changeset Comment
5034 ------------------------------------------------------- */
5035 .form-field-comment:not(.present) #preset-input-comment {
5036 border-color: rgb(230, 100, 100);
5038 .form-field-comment:not(.present) .field-label {
5039 border-color: rgb(230, 100, 100);
5040 background: rgba(230, 100, 100, 0.2);
5042 .form-field-comment:not(.present) button {
5043 border-color: rgb(230, 100, 100);
5048 ------------------------------------------------------- */
5052 box-shadow: 0 4px 10px 1px rgba(0,0,0,.2);
5058 border: 1px solid #ccc;
5059 border-radius: 0 0 4px 4px;
5065 border-top: 1px solid #ccc;
5066 text-overflow: ellipsis;
5067 white-space: nowrap;
5071 .combobox a.selected,
5073 background: #ececec;
5076 .combobox a:first-child {
5082 display: inline-block;
5085 width: 30px !important;
5087 vertical-align: top;
5090 [dir='rtl'] .combobox-caret {
5092 margin-right: -30px;
5095 .combobox-caret::after {
5097 height: 0; width: 0;
5099 left: 0; right: 0; bottom: 0; top: 0;
5101 border-top: 5px solid #ccc;
5102 border-left: 5px solid transparent;
5103 border-right: 5px solid transparent;
5108 ------------------------------------------------------- */
5117 border: 1px solid #ccc;
5119 border-radius: 0 0 4px 4px;
5121 background: rgba(255,255,255,0.95);
5122 box-shadow: 0 0 30px 5px rgba(0,0,0,.4);
5125 .field-help-title h2 {
5130 .field-help-title button {
5139 margin-bottom: 10px;
5141 .field-help-nav-item {
5142 display: inline-block;
5147 .field-help-nav-item.active {
5149 border-bottom: 2px solid;
5151 .field-help-nav-item:hover {
5153 background-color: #efefef;
5156 .field-help-content {
5161 .field-help-content h3 {
5165 .field-help-content p {
5166 margin-bottom: 15px;
5168 .field-help-content ul li {
5173 .field-help-content .field-help-image {
5175 margin-bottom: 15px;
5178 .field-help-content svg.turn {
5182 .field-help-content svg.shadow {
5187 .field-help-content svg.from {
5190 .field-help-content svg.allow {
5193 .field-help-content svg.restrict {
5196 .field-help-content svg.only {
5200 .field-help-content p.from_shadow,
5201 .field-help-content p.allow_shadow,
5202 .field-help-content p.restrict_shadow,
5203 .field-help-content p.allow_turn,
5204 .field-help-content p.restrict_turn {
5209 /* More Fields dropdown
5210 ------------------------------------------------------- */
5212 padding: 0 20px 20px 20px;
5215 .changeset-editor .more-fields {
5216 padding: 15px 20px 0 20px;
5219 .more-fields label {
5221 flex-flow: row nowrap;
5222 justify-content: space-between;
5223 align-items: center;
5226 .more-fields input {
5230 [dir='rtl'] .more-fields input {
5235 .form-field-input-wrap .label {
5237 background: #f6f6f6;
5243 ------------------------------------------------------- */
5246 flex-flow: row nowrap;
5247 flex-direction: row-reverse;
5251 button.raw-tag-option {
5259 button.raw-tag-option:focus,
5260 button.raw-tag-option:hover,
5261 button.raw-tag-option.active {
5263 background: #597be7;
5265 button.raw-tag-option.selected {
5267 background: #7092ff;
5269 button.raw-tag-option svg.icon {
5272 vertical-align: text-bottom;
5274 [dir='ltr'] button.raw-tag-option-list {
5275 -moz-transform: scaleX(-1);
5276 -o-transform: scaleX(-1);
5277 -webkit-transform: scaleX(-1);
5278 transform: scaleX(-1);
5280 -ms-filter: "FlipH";
5287 font-family: monospace;
5299 .tag-row .inner-wrap {
5301 flex-flow: row nowrap;
5306 .tag-row .value-wrap {
5312 .tag-row.readonly input.key,
5313 .tag-row.readonly input.value,
5314 .tag-row.readonly button.remove {
5316 background-color: #eee;
5317 cursor: not-allowed;
5324 border-bottom: 1px solid #ccc;
5325 border-left: 1px solid #ccc;
5328 [dir='rtl'] .tag-row input {
5330 border-right: 1px solid #ccc;
5334 .tag-row input.key {
5336 background-color: #f6f6f6;
5339 .tag-row input.value {
5340 border-right: 1px solid #ccc;
5342 [dir='rtl'] .tag-row input.value {
5343 border-left: 1px solid #ccc;
5346 .tag-row:first-child input.key {
5347 border-top: 1px solid #ccc;
5348 border-top-left-radius: 4px;
5350 [dir='rtl'] .tag-row:first-child input.key {
5351 border-top-left-radius: 0;
5352 border-top-right-radius: 4px;
5355 .tag-row:first-child input.value {
5356 border-top: 1px solid #ccc;
5362 border: 1px solid #ccc;
5363 border-top-width: 0;
5364 border-left-width: 0;
5366 [dir='rtl'] .tag-row button {
5367 border-left-width: 1px;
5368 border-right-width: 0;
5371 .tag-row button:hover {
5372 background: #f1f1f1;
5374 .tag-row button .icon {
5377 .tag-row:first-child button {
5378 border-top-width: 1px;
5381 .tag-row:first-child .tag-reference-button {
5382 border-top-right-radius: 4px;
5384 [dir='rtl'] .tag-row:first-child .tag-reference-button {
5385 border-top-left-radius: 4px;
5386 border-top-right-radius: 0;
5389 .tag-row:last-child .tag-reference-button {
5390 border-bottom-right-radius: 4px;
5392 [dir='rtl'] .tag-row:last-child .tag-reference-button {
5393 border-bottom-left-radius: 4px;
5394 border-bottom-right-radius: 0;
5397 .tag-row .tag-reference-button {
5400 [dir='rtl'] .tag-row .tag-reference-button {
5401 border-left-width: 1px;
5402 border-right-width: 0;
5406 .tag-reference-loading {
5407 background-color: #f5f5f5;
5409 .tag-reference-loading .icon {
5410 background-image: url(<%= asset_path("iD/img/mini-loader.gif") %>);
5411 background-position: 0 0;
5414 .tag-reference-body {
5421 .tag-reference-body.expanded {
5422 padding-bottom: 10px;
5423 display: inline-block;
5425 .tag-reference-description {
5428 .tag-reference-link {
5432 img.tag-reference-wiki-image {
5438 [dir='rtl'] img.tag-reference-wiki-image {
5443 .preset-list .tag-reference-body {
5447 .raw-tag-editor .tag-reference-body {
5450 .raw-tag-editor .tag-row.readonly .tag-reference-body {
5451 background: #f6f6f6;
5454 .raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
5455 border-bottom: 1px solid #ccc;
5457 .raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
5458 border-top: 1px solid #ccc;
5462 /* Raw Member / Membership Editor
5463 ------------------------------------------------------- */
5465 .raw-member-editor .member-list,
5466 .raw-membership-editor .member-list {
5469 .raw-member-editor .member-list li,
5470 .raw-membership-editor .member-list li {
5474 padding-bottom: 10px;
5476 .raw-member-editor .member-row .member-entity-name,
5477 .raw-membership-editor .member-row .member-entity-name {
5478 font-weight: normal;
5482 [dir='rtl'] .raw-member-editor .member-row .member-entity-name,
5483 [dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
5485 padding-right: 10px;
5488 .form-field-input-member > input.member-role {
5489 border-radius: 0 0 0 4px;
5491 [dir='rtl'] .form-field-input-member > input.member-role {
5492 border-radius: 0 0 4px 0;
5495 .member-incomplete .form-field-input-member > input.member-role,
5496 [dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
5497 border-radius: 0 0 4px 4px;
5500 .member-incomplete .member-delete {
5504 .member-row-new .member-entity-input {
5506 border-radius: 4px 4px 0 0;
5510 .raw-member-editor .member-row.dragging {
5514 -webkit-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5515 -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5516 box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
5519 .raw-member-editor .member-row.dragging
5521 /* preserve extra space at bottom of inspector to allow for dropdown options - #5280 */
5522 .raw-membership-editor.inspector-inner {
5523 margin-bottom: 150px;
5526 /* hidden field to prevent user from tabbing out of the sidebar */
5531 border: 1px solid rgba(0,0,0,0);
5535 /* add tag, add relation buttons */
5539 flex-flow: row nowrap;
5542 .add-row .add-relation,
5543 .add-row .space-value {
5546 .add-row .space-buttons {
5551 background: rgba(0,0,0,.5);
5553 .add-row button:focus,
5554 .add-row button:hover {
5555 background: rgba(0,0,0,.8);
5559 border-radius: 0 0 4px 4px;
5567 /* OSM Note / KeepRight Editors
5568 ------------------------------------------------------- */
5571 background-color: #f6f6f6;
5573 border: 1px solid #ccc;
5575 flex-flow: row nowrap;
5576 align-items: center;
5580 .error-header-icon {
5581 background-color: #fff;
5587 border-right: 1px solid #ccc;
5588 border-radius: 5px 0 0 5px;
5590 [dir='rtl'] .note-header-icon,
5591 [dir='rtl'] .error-header-icon {
5592 border-right: unset;
5593 border-left: 1px solid #ccc;
5594 border-radius: 0 5px 5px 0;
5597 .note-header-icon .icon-wrap,
5598 .error-header-icon .icon-wrap {
5608 .preset-icon-28 .icon {
5614 .error-header-label {
5615 background-color: #f6f6f6;
5620 border-radius: 0 5px 5px 0;
5622 [dir='rtl'] .note-header-label,
5623 [dir='rtl'] .error-header-label {
5624 border-radius: 5px 0 0 5px;
5631 .comments-container {
5632 background: #ececec;
5639 background-color: #fff;
5641 border: 1px solid #ccc;
5644 flex-flow: row nowrap;
5650 .comment-avatar .icon.comment-avatar-icon {
5654 border: 1px solid #ccc;
5655 border-radius: 20px;
5658 padding: 10px 10px 10px 0;
5660 flex-flow: column nowrap;
5662 overflow-wrap: break-word;
5664 [dir='rtl'] .comment-main {
5665 padding: 10px 0 10px 10px;
5669 flex-flow: row nowrap;
5670 justify-content: space-between;
5685 .comment-text::-webkit-scrollbar {
5697 .error-details-container {
5698 background: #ececec;
5702 border: 1px solid #ccc;
5704 .error-details-description {
5705 margin-bottom: 10px;
5707 .error-details-description-text::first-letter {
5708 text-transform: capitalize;
5710 [dir='rtl'] .error-details-description-text::first-letter {
5711 text-transform: none; /* #5877 */
5714 .note-save .new-comment-input,
5715 .error-save .new-comment-input {
5722 .note-save .detail-section,
5723 .error-save .detail-section {
5732 /* Custom Data Editor
5733 ------------------------------------------------------- */
5735 background-color: #f6f6f6;
5737 border: 1px solid #ccc;
5739 flex-flow: row nowrap;
5740 align-items: center;
5744 background-color: #fff;
5750 border-right: 1px solid #ccc;
5751 border-radius: 5px 0 0 5px;
5753 [dir='rtl'] .data-header-icon {
5754 border-right: unset;
5755 border-left: 1px solid #ccc;
5756 border-radius: 0 5px 5px 0;
5759 .data-header-icon .icon-wrap {
5764 .data-header-label {
5765 background-color: #f6f6f6;
5770 border-radius: 0 5px 5px 0;
5772 [dir='rtl'] .data-header-label {
5773 border-radius: 5px 0 0 5px;
5776 /* custom data editor - no info/delete buttons */
5777 .data-editor.raw-tag-editor .tag-row button {
5780 .data-editor.raw-tag-editor .tag-row .key-wrap,
5781 .data-editor.raw-tag-editor .tag-row .value-wrap {
5787 ------------------------------------------------------- */
5795 [dir='rtl'] .map-controls {
5800 .map-control > button {
5803 background: rgba(0,0,0,.5);
5807 .map-control > button:hover,
5808 .map-control > button:focus {
5809 background: rgba(0, 0, 0, .8);
5812 .map-control > button.active,
5813 .map-control > button.active:hover {
5814 background: #7092ff;
5818 /* Fullscreen Button (disabled)
5819 ------------------------------------------------------- */
5821 display: inline-block;
5827 div.full-screen .tooltip {
5831 div.full-screen > button, div.full-screen > button.active {
5834 background: transparent;
5837 div.full-screen > button:hover {
5838 background-color: rgba(0, 0, 0, .8);
5843 ------------------------------------------------------- */
5844 .zoombuttons > button.zoom-in {
5845 border-radius: 4px 0 0 0;
5847 [dir='rtl'] .zoombuttons > button.zoom-in {
5848 border-radius: 0 4px 0 0;
5853 ------------------------------------------------------- */
5854 .geolocate-control {
5855 margin-bottom: 10px;
5857 .geolocate-control > button {
5858 border-radius: 0 0 0 4px;
5860 [dir='rtl'] .geolocate-control > button {
5861 border-radius: 0 0 4px 0;
5865 /* Background / Map Data / Help Pane buttons
5866 ------------------------------------------------------- */
5867 .help-control > button {
5868 border-radius: 0 0 0 4px;
5870 [dir='rtl'] .help-control > button {
5871 border-radius: 0 0 4px 0;
5874 .map-data-control button {
5878 .background-control > button {
5879 border-radius: 4px 0 0 0;
5881 [dir='rtl'] .background-control > button {
5882 border-radius: 0 4px 0 0;
5886 /* Background / Map Data Settings
5887 ------------------------------------------------------- */
5889 .background-control {
5894 margin-bottom: 10px;
5895 white-space: nowrap;
5898 .layer-list, .controls-list {
5899 margin-bottom: 10px;
5900 border: 1px solid #ccc;
5906 background-color: #fff;
5916 .layer-list > li:first-child {
5917 border-radius: 3px 3px 0 0;
5919 .layer-list > li:last-child {
5920 border-radius: 0 0 3px 3px;
5922 .layer-list > li:only-child {
5925 .layer-list li:not(:last-child) {
5926 border-bottom: 1px solid #ccc;
5928 .layer-list li:hover {
5929 background-color: #ececec;
5932 .layer-list li.active button,
5933 .layer-list li.switch button,
5934 .layer-list li.active,
5935 .layer-list li.switch {
5936 background: #e8ebff;
5939 .layer-list li.best > div.best {
5944 [dir='rtl'] .list-item-data-browse svg {
5945 transform: rotateY(180deg);
5948 /* make sure tooltip fits in map-control panel */
5949 /* if too wide, placement will be wrong the first time it displays */
5950 .layer-list li.best .tooltip-inner {
5960 [dir='ltr'] .layer-list .indented label {
5963 [dir='rtl'] .layer-list .indented label {
5964 padding-right: 24px;
5967 .layer-list label > span {
5970 white-space: nowrap;
5971 text-overflow: ellipsis;
5974 .map-data-pane .layer-list button,
5975 .background-pane .layer-list button {
5977 border-left: 1px solid #ccc;
5982 [dir='rtl'] .map-data-pane .layer-list button,
5983 [dir='rtl'] .background-pane .layer-list button {
5985 border-right: 1px solid #ccc;
5988 .map-data-pane .layer-list button .icon,
5989 .background-pane .layer-list button .icon {
5993 .map-data-pane .layer-list button:last-of-type,
5994 .background-pane .layer-list button:last-of-type {
5995 border-radius: 0 3px 3px 0;
5997 [dir='rtl'] .map-data-pane .layer-list button:last-of-type,
5998 [dir='rtl'] .background-pane .layer-list button:last-of-type {
5999 border-radius: 3px 0 0 3px;
6002 .map-data-pane .vectortile-container .vectortile-header {
6003 padding-bottom: 5px;
6005 .map-data-pane .vectortile-container .vectortile-footer {
6006 padding-bottom: 10px;
6011 ------------------------------------------------------- */
6015 .issue .issue-label,
6016 .issue-label .issue-text {
6019 flex-flow: row nowrap;
6023 .issue-text .issue-icon {
6027 .issue-text .issue-message {
6031 .issue-label .issue-autofix {
6035 .issue-label .issue-info-button {
6039 border-left: 1px solid #ccc;
6040 background-color: rgba(0,0,0,0);
6042 [dir='rtl'] .issue-label .issue-info-button {
6044 border-right: 1px solid;
6046 .issue-container .issue-label .issue-info-button .icon {
6049 .issue-container.active .issue-label .issue-info-button .icon {
6052 .issue-label .issue-info-button:last-child {
6053 border-radius: 0 4px 4px 0;
6055 [dir='rtl'] .issue-label .issue-info-button:last-child {
6056 border-radius: 4px 0 0 4px;
6059 button.autofix.action {
6063 background: #7092ff;
6066 button.autofix.action:focus,
6067 button.autofix.action:hover,
6068 button.autofix.action.active {
6069 background: #597be7;
6075 flex-flow: row nowrap;
6076 flex-direction: row-reverse;
6078 padding-bottom: 5px;
6080 .autofix-all-link-text {
6083 .autofix-all-link-icon svg {
6085 background: currentColor;
6088 .autofix-all-link-icon svg use {
6092 /* warning styles */
6095 .issue-container.active .issue.severity-warning,
6096 .issue-container.active .issue.severity-warning * {
6100 .warnings-list .issue.severity-warning .issue-label,
6101 .issue.severity-warning .issue-fix-list,
6102 .mode-save .warning-section {
6106 .issue-container.active .issue.severity-warning .issue-label {
6110 .warnings-list .issue.severity-warning .issue-label:hover,
6111 .issue.severity-warning .issue-fix-item.actionable:hover {
6115 .issue.severity-warning .issue-icon {
6119 .issue.severity-warning .issue-fix-item.actionable,
6120 .issue-container.active .issue.severity-warning .issue-info-button {
6126 .issue.severity-warning .issue-fix-item.actionable:hover,
6127 .issue-container.active .issue.severity-warning .issue-info-button:hover {
6134 .notification-badge.warning {
6142 .issue-container.active .issue.severity-error,
6143 .issue-container.active .issue.severity-error * {
6147 .errors-list .issue.severity-error .issue-label,
6148 .issue.severity-error .issue-fix-list,
6149 .mode-save .error-section {
6150 background: #ffd6d6;
6153 .issue-container.active .issue.severity-error .issue-label {
6154 background: #ffc6c6;
6157 .errors-list .issue.severity-error .issue-label:hover,
6158 .issue.severity-error .issue-fix-item.actionable:hover {
6159 background: #ffb6b6;
6162 .issue.severity-error .issue-icon {
6166 .issue.severity-error .issue-fix-item.actionable,
6167 .issue-container.active .issue.severity-error .issue-info-button {
6173 .issue.severity-error .issue-fix-item.actionable:hover,
6174 .issue-container.active .issue.severity-error .issue-info-button:hover {
6181 .notification-badge.error {
6187 .issues-options-container {
6193 .issues-option-title {
6194 display: table-cell;
6196 padding-right: 10px;
6198 [dir='rtl'] .issues-option-title {
6202 .issues-option label {
6203 display: table-cell;
6207 .layer-list.issues-list li.issue {
6208 border-color: inherit; /* override .layer-list styles */
6213 .layer-list.issue-rules-list,
6214 .layer-list.issues-list,
6215 .layer-list.layer-feature-list {
6220 flex-flow: row nowrap;
6221 flex-direction: row-reverse;
6230 border: 1px solid #72d979;
6231 background: #c6ffca;
6232 padding: 5px !important;
6235 .issues-none .icon {
6239 input.square-degrees-input {
6243 background: rgba(0,0,0,0);
6244 color: currentColor;
6248 /* Entity Issues List */
6249 .entity-issues .issue-container .issue {
6251 border: 1px solid #ccc;
6252 background: #f6f6f6;
6254 .entity-issues .issue-container:not(.active) .issue-text:hover,
6255 .entity-issues .issue-container:not(.active) .issue-info-button:hover {
6256 background: #f1f1f1;
6258 .entity-issues .issue .issue-label .issue-text {
6259 padding-right: 10px;
6261 [dir='rtl'] .entity-issues .issue .issue-label .issue-text {
6262 padding-right: unset;
6266 .entity-issues .issue-container.active .issue-label .issue-text {
6269 .entity-issues .issue-container:not(:last-of-type) {
6272 .entity-issues .issue-container.active:not(:first-of-type) {
6275 .entity-issues .issue-container.active:not(:last-of-type) {
6276 margin-bottom: 10px;
6280 .entity-issues .issue-fix-list {
6281 border-top: 1px solid;
6282 border-color: inherit;
6284 .entity-issues .issue-container.active .issue-fix-list:empty {
6289 padding: 2px 10px 2px 20px;
6291 [dir='rtl'] li.issue-fix-item {
6292 padding: 2px 20px 2px 10px;
6294 li.issue-fix-item:first-of-type {
6297 li.issue-fix-item:last-of-type {
6298 padding-bottom: 5px;
6301 li.issue-fix-item .fix-message {
6305 li.issue-fix-item.actionable {
6308 li.issue-fix-item:not(.actionable) .fix-icon {
6313 .issue-container:not(.active) ul.issue-fix-list {
6324 .issue-info.expanded {
6325 display: inline-block;
6328 .issue-info .issue-reference {
6329 margin-bottom: 10px;
6331 .issue-info .tagDiff-table {
6334 border: 1px solid #ccc;
6336 .issue-info .tagDiff-row {
6337 border: 1px solid #ccc;
6339 .issue-info .tagDiff-cell {
6341 font-family: monospace;
6343 border: 1px solid #ccc;
6345 .issue-info .tagDiff-cell-add {
6348 .issue-info .tagDiff-cell-remove {
6353 /* Background - Display Options Sliders
6354 ------------------------------------------------------- */
6355 .display-options-container {
6359 .display-control h5 {
6364 .display-control h5 span {
6368 .display-control .display-option-input {
6373 .display-control button {
6378 vertical-align: text-bottom;
6381 [dir='rtl'] .display-control button {
6387 /* Background - Adjust Alignment
6388 ------------------------------------------------------- */
6389 .background-pane .nudge-container {
6390 border: 1px solid #ccc;
6395 .nudge-container .nudge-instructions {
6396 padding-bottom: 15px;
6399 .nudge-container .nudge-outer-rect {
6400 background-color: #eee;
6401 border: 1px solid #ccc;
6406 justify-content: center;
6407 align-items: center;
6413 .nudge-container .nudge-inner-rect {
6414 background-color: #fff;
6415 border: 1px solid #ccc;
6421 .nudge-container .nudge::after {
6426 left: 0; right: 0; top: 0; bottom: 0;
6431 .nudge-container input {
6438 .nudge-container input.error {
6439 border: 1px solid #ff7878;
6444 .nudge-container input:focus {
6445 background-color: transparent;
6448 .nudge-container button {
6453 background-color: transparent;
6456 .nudge-container button.right {
6461 .nudge-container button.left {
6466 .nudge-container button.top {
6471 .nudge-container button.bottom {
6475 .nudge-container button.nudge-reset {
6486 background-color: transparent;
6490 .background-pane .nudge.right::after {
6491 border-top: 5px solid transparent;
6492 border-bottom: 5px solid transparent;
6493 border-left: 5px solid #222;
6496 .background-pane .nudge.left::after {
6497 border-top: 5px solid transparent;
6498 border-bottom: 5px solid transparent;
6499 border-right: 5px solid #222;
6502 .background-pane .nudge.top::after {
6503 border-right: 5px solid transparent;
6504 border-left: 5px solid transparent;
6505 border-bottom: 5px solid #222;
6508 .background-pane .nudge.bottom::after {
6509 border-right: 5px solid transparent;
6510 border-left: 5px solid transparent;
6511 border-top: 5px solid #222;
6515 /* Side Panes - Background / Map Data / Help
6516 ------------------------------------------------------- */
6527 padding-bottom: 60px;
6532 .map-pane.help-wrap {
6538 flex-flow: row nowrap;
6539 justify-content: space-between;
6540 border-bottom: 1px solid #ccc;
6548 .pane-heading button {
6556 padding: 10px 40px 20px 20px;
6561 [dir='rtl'] .pane-content {
6562 padding: 10px 20px 20px 40px;
6565 .pane-content > div {
6566 padding-bottom: 15px;
6571 ------------------------------------------------------- */
6574 margin-bottom: 20px;
6577 .help-wrap .left-content .body p code {
6581 vertical-align: baseline;
6582 background-color: #f6f6f6;
6583 border: solid 1px #ccc;
6585 border-bottom-color: #bbb;
6587 box-shadow: inset 0 -1px 0 #bbb;
6590 .help-wrap .left-content .icon.pre-text {
6591 vertical-align: text-top;
6594 display: inline-block;
6601 margin-bottom: 20px;
6605 .help-wrap .toc li a,
6608 border: 1px solid #ccc;
6612 .help-wrap .toc li a {
6616 .help-wrap .toc li a:hover,
6617 .help-wrap .nav a:hover {
6618 background: #ececec;
6621 .help-wrap .toc li a.selected {
6622 background: #e8ebff;
6625 .help-wrap .toc li:first-child a {
6626 border-radius: 4px 4px 0 0;
6629 .help-wrap .toc li:nth-last-child(3) a {
6630 border-bottom: 1px solid #ccc;
6631 border-radius: 0 0 4px 4px
6634 .help-wrap .toc li.shortcuts a,
6635 .help-wrap .toc li.walkthrough a {
6638 border-bottom: 1px solid #ccc;
6642 .help-wrap .toc li.walkthrough a {
6648 padding-bottom: 30px;
6657 .help-wrap .nav a:first-child {
6658 border-radius: 4px 0 0 4px;
6661 .help-wrap .nav a:last-child:not(:only-child) {
6662 border-radius: 0 4px 4px 0;
6666 .help-wrap .nav a:only-child {
6672 /* Inspector (hover styles)
6673 ------------------------------------------------------- */
6674 .inspector-hover .entity-issues .issue-container .issue .issue-label,
6675 .inspector-hover .form-field-input-wrap .label,
6676 .inspector-hover .form-field-input-multicombo .chiplist,
6677 .inspector-hover .form-field-button,
6678 .inspector-hover .structure-extras-wrap,
6679 .inspector-hover .comments-container .comment,
6680 .inspector-hover button,
6681 .inspector-hover input,
6682 .inspector-hover textarea,
6683 .inspector-hover label {
6684 background: #ececec;
6686 .inspector-hover .preset-list-button,
6687 .inspector-hover .tag-row input {
6688 background: #f6f6f6;
6692 .inspector-hover .form-field-input-multicombo .chips,
6693 .inspector-hover .form-field-input-check span,
6694 .inspector-hover .entity-issues .issue .icon {
6698 .inspector-hover .form-field-input-multicombo .chips {
6700 border: 1px solid #ccc;
6704 .inspector-hover div {
6709 /* hide and remove from layout */
6711 .inspector-hover .preset-list-button-wrap .preset-favorite-button,
6712 .inspector-hover .preset-list-button-wrap .tag-reference-button,
6713 .inspector-hover label input[type="checkbox"],
6714 .inspector-hover label input[type="radio"],
6715 .inspector-hover .form-field-input-multicombo .input-wrap,
6716 .inspector-hover .form-field-input-radio label,
6717 .inspector-hover .form-field-input-radio label span,
6718 .inspector-hover .form-field-input-radio label.remove .icon,
6719 .inspector-hover .inspector-inner .add-row,
6720 .inspector-hover .entity-issues .issue-container .issue-fix-list,
6721 .inspector-hover .entity-issues .issue-container .issue-info-button {
6725 /* hide but preserve in layout */
6726 .inspector-hover .combobox-caret,
6727 .inspector-hover .header button,
6728 .inspector-hover .quick-links,
6729 .inspector-hover .form-field-input-multicombo .chips .remove,
6730 .inspector-hover .hide-toggle:before,
6731 .inspector-hover .more-fields,
6732 .inspector-hover .field-label button,
6733 .inspector-hover .tag-row button,
6734 .inspector-hover .footer * {
6738 /* Unstyle the active entity issue on hover */
6739 .inspector-hover .entity-issues .issue-container.active {
6743 .inspector-hover .entity-issues .issue-container * {
6744 border-color: #ccc !important;
6746 .inspector-hover .entity-issues .issue-container.active .issue-label {
6749 .inspector-hover .entity-issues .issue-container.active .issue-label .issue-text {
6750 font-weight: normal;
6754 /* Styles for raw tag inspector on hover */
6755 .inspector-hover .tag-row .key-wrap,
6756 .inspector-hover .tag-row .value-wrap {
6760 .inspector-hover .tag-row:first-child input.value {
6761 border-top-right-radius: 4px;
6763 [dir='rtl'] .inspector-hover .tag-row:first-child input.value {
6764 border-top-right-radius: 0;
6765 border-top-left-radius: 4px;
6768 .inspector-hover .tag-row:last-child input.value {
6769 border-bottom-right-radius: 4px;
6771 [dir='rtl'] .inspector-hover .tag-row:last-child input.value {
6772 border-bottom-right-radius: 0;
6773 border-bottom-left-radius: 4px;
6776 .inspector-hover .tag-row:last-child input.key {
6777 border-bottom-left-radius: 4px;
6779 [dir='rtl'] .inspector-hover .tag-row:last-child input.key {
6780 border-bottom-left-radius: 0;
6781 border-bottom-right-radius: 4px;
6784 .inspector-hover .more-fields {
6786 margin-bottom: -10px;
6789 /* Unstyle button fields */
6790 .inspector-hover .form-field-input-radio label.active,
6791 .inspector-hover .entity-editor-pane a.hide-toggle {
6793 background-color: transparent;
6798 .inspector-hover .form-field-input-radio button.active {
6802 /* Show placeholder on hover for radio buttons */
6803 .inspector-hover .form-field-input-radio {
6804 border: 1px solid #ccc;
6806 border-radius: 0 0 4px 4px;
6808 .inspector-hover .form-field-input-radio .placeholder {
6816 .inspector-hover .form-field-input-radio .structure-extras-wrap {
6821 /* Raster Background Tiles
6822 ------------------------------------------------------- */
6825 transform-origin: 0 0;
6826 -ms-transform-origin: 0 0;
6827 -webkit-transform-origin: 0 0;
6828 -moz-transform-origin: 0 0;
6829 -o-transform-origin: 0 0;
6831 -moz-user-select: none;
6832 -webkit-user-select: none;
6833 -ms-user-select: none;
6838 -webkit-transition: opacity 200ms linear;
6839 -moz-transition: opacity 200ms linear;
6840 transition: opacity 200ms linear;
6853 background: rgba(0, 0, 0, 0.7);
6863 transform-origin: 0 0;
6864 -ms-transform-origin: 0 0;
6865 -webkit-transform-origin: 0 0;
6866 -moz-transform-origin: 0 0;
6867 -o-transform-origin: 0 0;
6869 -moz-user-select: none;
6870 -webkit-user-select: none;
6871 -ms-user-select: none;
6876 outline: 1px solid red;
6881 ------------------------------------------------------- */
6887 -moz-user-select: none;
6888 -webkit-user-select: none;
6889 -ms-user-select: none;
6894 transform-origin: 0 0;
6895 -ms-transform-origin: 0 0;
6896 -webkit-transform-origin: 0 0;
6897 -moz-transform-origin: 0 0;
6898 -o-transform-origin: 0 0;
6901 #supersurface, .layer {
6911 ------------------------------------------------------- */
6920 border: #aaa 1px solid;
6921 box-shadow: 0 0 2em black;
6923 [dir='ltr'] .map-in-map {
6926 [dir='rtl'] .map-in-map {
6931 transform-origin: 0 0;
6932 -ms-transform-origin: 0 0;
6933 -webkit-transform-origin: 0 0;
6934 -moz-transform-origin: 0 0;
6935 -o-transform-origin: 0 0;
6937 -moz-user-select: none;
6938 -webkit-user-select: none;
6939 -ms-user-select: none;
6943 .map-in-map-viewport,
6952 .map-in-map-viewport {
6963 stroke: rgba(255, 255, 0, 0.75);
6965 shape-rendering: crispEdges;
6968 .map-in-map-bbox.thick {
6974 ------------------------------------------------------- */
6976 stroke: currentColor;
6980 .map-in-map-data .debug {
6984 .nocolor { color: rgba(0, 0, 0, 0); }
6985 .red { color: rgba(255, 0, 0, 0.75); }
6986 .green { color: rgba(0, 255, 0, 0.75); }
6987 .blue { color: rgba(176, 176, 255, 0.75); }
6988 .yellow { color: rgba(255, 255, 0, 0.75); }
6989 .cyan { color: rgba(0, 255, 255, 0.75); }
6990 .magenta { color: rgba(255, 0, 255, 0.75); }
6991 .orange { color: rgba(255, 153, 0, 0.75); }
6992 .pink { color: rgba(255, 0, 153, 0.75); }
6993 .purple { color: rgba(153, 0, 255, 0.75); }
7001 pointer-events: none;
7004 .debug-legend-item {
7007 .debug-legend-item:before {
7019 pointer-events: none;
7021 flex-direction: row-reverse;
7022 align-items: flex-end;
7025 pointer-events: auto;
7028 /* Information Panels
7029 ------------------------------------------------------- */
7032 flex-flow: row-reverse wrap-reverse;
7035 -ms-user-select: element;
7036 pointer-events: none;
7039 .panel-container h1,
7040 .panel-container h2,
7041 .panel-container h3,
7042 .panel-container h4,
7043 .panel-container h5 {
7044 display: inline-block;
7048 .panel-container h1,
7049 .panel-container h2,
7050 .panel-container h3 {
7056 margin: 0 2px 2px 0;
7058 border: 1px solid rgba(0, 0, 0, 0.75);
7059 padding-bottom: 10px;
7061 pointer-events: auto;
7064 .panel-container .panel-title {
7065 border-radius: 4px 4px 0 0;
7072 .panel-title button.close {
7078 [dir='rtl'] .panel-title button.close {
7082 .panel-title button.close:hover {
7085 .panel-title button.close .icon {
7095 .panel-content li span {
7096 display: inline-block;
7097 white-space: nowrap;
7101 .panel-content .button {
7102 display: inline-block;
7103 background: #7092ff;
7110 [dir='rtl'] .panel-content .button {
7115 .panel-content-history .links a {
7118 [dir='rtl'] .panel-content-history .links a {
7122 .panel-content-history h4 {
7125 .panel-content-location .location-info {
7130 /* About Section, Attribution, Footer
7131 ------------------------------------------------------- */
7138 pointer-events: none;
7140 flex-direction: column;
7141 -ms-user-select: element;
7150 #attrib * { pointer-events: all; }
7152 .base-layer-attribution,
7153 .overlay-layer-attribution {
7159 .base-layer-attribution {
7163 .overlay-layer-attribution {
7167 .overlay-layer-attribution .attribution:not(:last-child):after {
7172 .attribution a:visited {
7176 .attribution a:hover {
7180 .attribution .source-image {
7182 vertical-align: middle;
7191 pointer-events: all;
7197 /* Footer - Flash messages
7198 ------------------------------------------------------- */
7202 flex-flow: row nowrap;
7203 justify-content: space-between;
7213 flex-flow: row nowrap;
7214 align-items: center;
7226 .flash-icon circle {
7229 .flash-icon.disabled circle {
7231 fill: rgba(255,255,255,0.7);
7237 .flash-icon.disabled use {
7238 color: rgba(32,32,32,0.7);
7241 .flash-icon.operation use {
7245 .flash-icon.operation.disabled use {
7246 fill: rgba(32,32,32,0.7);
7247 color: rgba(40,40,40,0.7);
7257 flex-flow: row nowrap;
7258 justify-content: space-between;
7267 transition: bottom 75ms linear;
7268 -moz-transition: bottom 75ms linear;
7269 -webkit-transition: bottom 75ms linear;
7274 transition: bottom 75ms linear;
7275 -moz-transition: bottom 75ms linear;
7276 -webkit-transition: bottom 75ms linear;
7280 /* Footer - Scale bar, About, Source Switcher
7281 ------------------------------------------------------- */
7283 vertical-align: bottom;
7287 -moz-user-select: none;
7288 -webkit-user-select: none;
7289 -ms-user-select: none;
7302 [dir='rtl'] #scale {
7303 transform: scaleX(-1);
7311 font: 12px sans-serif;
7316 [dir='rtl'] #scale text {
7317 transform: scaleX(-1);
7324 shape-rendering: crispEdges;
7333 [dir='rtl'] #about-list {
7342 border-left: 1px solid rgba(255,255,255,.5);
7343 padding: 5px 0 5px 5px;
7346 [dir='rtl'] #about-list li {
7349 border-right: 1px solid rgba(255,255,255,.5);
7352 padding: 5px 5px 5px 0;
7355 #about-list li:last-child {
7360 [dir='rtl'] #about-list li:last-child {
7365 padding: 2px 4px 4px 4px;
7368 .source-switch a.live {
7369 background: #d32232;
7373 .feature-warning a {
7374 background: #1e90ff;
7375 padding: 2px 4px 4px 4px;
7380 .user-list a:not(:last-child):after {
7390 [dir='rtl'] .api-status {
7394 .api-status.offline,
7395 .api-status.readonly,
7403 .api-status-login:hover {
7407 /* Notification Badges
7408 ------------------------------------------------------- */
7409 /* For an icon (e.g. new version) */
7411 display: inline-block;
7412 background: #d32232;
7415 border-radius: 11px;
7418 [dir='rtl'] .badge {
7425 [dir='rtl'] .badge a {
7430 vertical-align: baseline;
7436 /* For text (e.g. upcoming events) */
7438 display: inline-block;
7449 [dir='rtl'] .badge-text {
7456 ------------------------------------------------------- */
7459 display: inline-block;
7473 margin-bottom: 10px;
7475 .modal .description {
7490 background: rgba(0,0,0,0.5);
7492 left: 0px; right: 0px; top: 0px; bottom: 0px;
7497 border-bottom: 1px solid #ccc;
7499 .modal-section.header h3 {
7502 .modal-section.buttons {
7506 .modal-section.buttons button {
7510 .modal-section.buttons .action {
7511 display: inline-block;
7514 vertical-align: middle;
7517 .save-section .buttons {
7520 justify-content: space-around;
7521 margin-bottom: 30px;
7524 .save-section .buttons .action,
7525 .save-section .buttons .secondary-action {
7529 vertical-align: middle;
7538 .modal-actions button {
7539 font-weight: normal;
7541 border-bottom: 1px solid #ccc;
7547 .modal-actions button:hover {
7548 background-color: #ececec;
7564 .modal-actions > :first-child {
7565 border-right: 1px solid #ccc;
7568 .modal-section:last-child {
7573 ------------------------------------------------------- */
7574 .modal-actions .logo-restore {
7577 .modal-actions .logo-reset {
7581 /* Success Screen / Community Index
7582 ------------------------------------------------------- */
7583 .save-success.body {
7588 .save-success .link-out {
7590 white-space: nowrap;
7594 .save-communityLinks {
7595 padding: 0px 20px 15px 20px;
7598 .save-communityLinks {
7599 border-top: 1px solid #ccc;
7602 .save-success table,
7613 vertical-align: top;
7615 .save-success td.cell-icon {
7618 .save-success td.cell-detail {
7621 .save-success td.community-detail {
7622 padding-bottom: 15px;
7625 .summary-view-on-osm,
7630 .community-languages {
7634 .community-languages:only-child {
7638 .community-detail a.hide-toggle,
7639 .community-detail a:visited.hide-toggle {
7641 font-weight: normal;
7644 .community-detail .hide-toggle svg.icon.pre-text {
7655 background-color: #efefef;
7661 .community-event-name {
7665 .community-event-when {
7669 .community-missing {
7676 ------------------------------------------------------- */
7677 .modal-actions .logo-walkthrough,
7678 .modal-actions .logo-features {
7684 ------------------------------------------------------- */
7690 .modal-shortcuts .modal-section:last-child {
7695 .modal-shortcuts .tabs-bar {
7697 padding-bottom: 5px;
7702 .modal-shortcuts .tab {
7703 display: inline-block;
7709 .modal-shortcuts .tab.active {
7711 border-bottom: 2px solid;
7713 .modal-shortcuts .tab:hover {
7715 background-color: #efefef;
7718 .modal-shortcuts .shortcut-tab {
7720 flex-flow: row wrap;
7721 justify-content: center;
7724 .modal-shortcuts .shortcut-column {
7728 .modal-shortcuts .shortcut-tab-tools .shortcut-column {
7733 .modal-shortcuts td {
7734 padding-bottom: 5px;
7737 .modal-shortcuts .shortcut-section {
7738 padding: 20px 0 10px 0;
7741 .modal-shortcuts .shortcut-keys {
7745 white-space: nowrap;
7747 [dir='rtl'] .modal-shortcuts .shortcut-keys {
7751 .modal-shortcuts .shortcut-keys kbd {
7752 display: inline-block;
7759 vertical-align: baseline;
7760 background-color: #fcfcfc;
7761 border: solid 1px #ccc;
7763 border-bottom-color: #bbb;
7765 box-shadow: inset 0 -1px 0 #bbb;
7768 svg.mouseclick use.left {
7769 fill: rgba(112, 146, 255, 1);
7770 color: rgba(112, 146, 255, 0);
7772 svg.mouseclick use.right {
7773 fill: rgba(112, 146, 255, 0);
7774 color: rgba(112, 146, 255, 1);
7777 .modal-shortcuts .shortcut-keys .gesture {
7784 ------------------------------------------------------- */
7785 .settings-modal textarea {
7790 .settings-custom-background .instructions-template {
7791 margin-bottom: 20px;
7794 .settings-custom-data .instructions-url {
7795 margin-bottom: 10px;
7797 .settings-custom-data .field-file,
7798 .settings-custom-data .instructions-template {
7799 margin-bottom: 20px;
7804 ------------------------------------------------------- */
7805 .mode-save a.user-info {
7806 display: inline-block;
7809 .mode-save .commit-form {
7813 .mode-save .user-info img {
7817 .mode-save h3 small.count {
7825 border-radius: 24px;
7827 background: #7092ff;
7831 .note-save .field-warning,
7832 .mode-save .field-warning {
7834 border: 1px solid #ccc;
7839 .note-save .field-warning:empty,
7840 .mode-save .field-warning:empty {
7844 .mode-save .field-warning,
7845 .mode-save .changeset-info,
7846 .mode-save .request-review,
7847 .mode-save .commit-info {
7848 margin-bottom: 10px;
7851 .mode-save .request-review label {
7855 .mode-save .changeset-list {
7856 border: 1px solid #ccc;
7859 margin-bottom: 10px;
7862 .mode-save .warning-section .changeset-list button {
7863 border-left: 1px solid #ccc;
7866 .mode-save .changeset-list li {
7868 border-top: 1px solid #ccc;
7873 .mode-save .changeset-list li:hover {
7874 background-color: #ececec;
7877 .mode-save .changeset-list .alert {
7881 .changeset-list li span.count {
7886 .mode-save .commit-section .changeset-list button {
7887 border-left: 1px solid #ccc;
7890 .changeset-list li span.count:before { content: '('; }
7892 .changeset-list li span.count:after { content: ')'; }
7894 .changeset-list li:first-child { border-top: 0;}
7897 /* Conflict resolution
7898 ------------------------------------------------------- */
7901 background-color: #ffffbb;
7902 border-bottom: 1px solid #ccc;
7905 .conflicts-buttons {
7909 .mode-save button.conflicts-button {
7913 .conflict-container {
7914 border-bottom: 1px solid #ccc;
7917 .conflict-description {
7923 padding: 20px 20px 0 20px;
7926 .conflict-detail-container {
7938 .conflict-nav-buttons {
7939 padding: 10px 0 20px 0;
7942 .conflict-nav-button {
7947 /* Notices (Zoom in to Edit)
7948 ------------------------------------------------------- */
7965 .notice .zoom-to:hover,
7966 .notice .zoom-to:focus {
7967 background: rgba(0,0,0,0.6);
7970 .notice .zoom-to .icon {
7973 vertical-align: middle;
7976 [dir='rtl'] .notice .zoom-to .icon {
7983 ------------------------------------------------------- */
7989 white-space: initial;
7991 .tooltip:not(.curtain-tooltip) {
7992 pointer-events: none;
8018 display: inline-block;
8023 font-weight: normal;
8024 background-color: #fff;
8030 pointer-events: none;
8034 background: transparent;
8041 border-color: transparent;
8042 border-style: solid;
8046 border-left-color: #fff;
8047 border-width: 5px 0 5px 5px;
8066 border-color: transparent;
8067 border-style: solid;
8071 border-right-color: #fff;
8072 border-width: 5px 5px 5px 0;
8079 border-color: transparent;
8080 border-style: solid;
8082 .tooltip.top .tooltip-arrow {
8086 border-top-color: #fff;
8087 border-width: 5px 5px 0;
8089 .tooltip.right .tooltip-arrow {
8093 border-right-color: #fff;
8094 border-width: 5px 5px 5px 0;
8096 .tooltip.left .tooltip-arrow {
8100 border-left-color: #fff;
8101 border-width: 5px 0 5px 5px;
8103 .tooltip.bottom .tooltip-arrow {
8107 border-bottom-color: #fff;
8108 border-width: 0 5px 5px;
8113 background: #f6f6f6;
8115 margin: -10px -10px 10px -10px;
8116 border-radius: 3px 3px 0 0;
8121 background: #f6f6f6;
8123 margin: 10px -10px -10px -10px;
8124 border-radius: 0 0 3px 3px;
8126 .tooltip-inner .keyhint {
8131 [dir='rtl'] .tooltip-inner .keyhint {
8136 /* dark tooltips for sidebar / panels */
8137 .tooltip.dark.top .tooltip-arrow,
8138 .map-pane .tooltip.top .tooltip-arrow,
8139 #sidebar .tooltip.top .tooltip-arrow {
8140 border-top-color: #000;
8142 .tooltip.dark.bottom .tooltip-arrow,
8143 .map-pane .tooltip.bottom .tooltip-arrow,
8144 #sidebar .tooltip.bottom .tooltip-arrow {
8145 border-bottom-color: #000;
8147 .tooltip.dark.left .tooltip-arrow,
8148 .map-pane .tooltip.left .tooltip-arrow,
8149 #sidebar .tooltip.left .tooltip-arrow {
8150 border-left-color: #000;
8152 .tooltip.dark.right .tooltip-arrow,
8153 .map-pane .tooltip.right .tooltip-arrow,
8154 #sidebar .tooltip.right .tooltip-arrow {
8155 border-right-color: #000;
8157 .tooltip.dark .tooltip-inner,
8158 .tooltip.dark .tooltip-heading,
8159 .tooltip.dark .keyhint-wrap,
8160 .map-pane .tooltip-inner,
8161 .map-pane .tooltip-heading,
8162 .map-pane .keyhint-wrap,
8163 #sidebar .tooltip-inner,
8164 #sidebar .tooltip-heading,
8165 #sidebar .keyhint-wrap {
8170 /* Exceptions for tooltip layouts */
8172 /* commit warning tooltips need to be closer */
8173 .warning-section .tooltip.top {
8177 /* Uncramp map-control tooltips */
8178 .map-control .tooltip {
8181 .map-control .shortcuts .tooltip {
8185 /* Move over tooltips that are near the edge of screen */
8186 [dir='ltr'] .sidebar-toggle .tooltip {
8189 [dir='rtl'] .sidebar-toggle .tooltip {
8190 right: 0 !important;
8192 [dir='ltr'] .sidebar-toggle .tooltip .tooltip-arrow {
8195 [dir='rtl'] .sidebar-toggle .tooltip .tooltip-arrow {
8198 [dir='ltr'] .save .tooltip {
8199 left: auto !important;
8200 right: 0 !important;
8202 [dir='rtl'] .save .tooltip {
8203 right: auto !important;
8206 [dir='ltr'] .save .tooltip .tooltip-arrow {
8210 [dir='rtl'] .save .tooltip .tooltip-arrow {
8215 li:first-of-type .badge .tooltip,
8216 li.hide + li.version .badge .tooltip {
8217 left: auto !important;
8218 right: 5px !important;
8220 [dir='rtl'] li:first-of-type .badge .tooltip,
8221 [dir='rtl'] li.hide + li.version .badge .tooltip {
8222 left: 5px !important;
8223 right: auto !important;
8225 li:first-of-type .badge .tooltip .tooltip-arrow,
8226 li.hide + li.version .badge .tooltip .tooltip-arrow {
8227 right: 15px !important;
8228 left: auto !important;
8230 [dir='rtl'] li:first-of-type .badge .tooltip .tooltip-arrow,
8231 [dir='rtl'] li.hide + li.version .badge .tooltip .tooltip-arrow {
8232 left: 15px !important;
8233 right: auto !important;
8237 /* Contextual Radial Menu (deprecated)
8238 ------------------------------------------------------- */
8239 .radial-menu-tooltip {
8246 .radial-menu-background {
8249 stroke-opacity: 0.5;
8252 .radial-menu-item circle {
8256 .radial-menu-item circle:active,
8257 .radial-menu-item circle:hover {
8261 .radial-menu-item.disabled circle {
8263 fill: rgba(255,255,255,.5);
8266 .radial-menu-item use {
8271 .radial-menu-item.disabled use {
8272 fill: rgba(32,32,32,.5);
8273 color: rgba(40,40,40,.5);
8277 /* Contextual Edit Menu
8278 ------------------------------------------------------- */
8279 .edit-menu-tooltip {
8285 .edit-menu-background {
8289 .edit-menu-item rect {
8294 .edit-menu-item rect:active,
8295 .edit-menu-item rect:hover {
8299 .edit-menu-item.disabled rect {
8300 cursor: not-allowed;
8302 .edit-menu-item.disabled rect:hover {
8303 cursor: not-allowed;
8307 .edit-menu-item use {
8310 pointer-events: none;
8312 .edit-menu-item.disabled use {
8313 fill: rgba(32,32,32,.2);
8314 color: rgba(40,40,40,.2);
8319 ------------------------------------------------------- */
8325 stroke-dasharray: 5, 5;
8330 ----------------------------------------------------- */
8331 ::-webkit-scrollbar {
8336 border-left: 1px solid #DDD;
8339 ::-webkit-scrollbar-track {
8340 background-clip: padding-box;
8341 border: solid transparent;
8345 ::-webkit-scrollbar-thumb {
8346 background-color: rgba(0,0,0,.2);
8347 background-clip: padding-box;
8348 border: solid transparent;
8349 border-width: 3px 3px 3px 4px;
8352 ::-webkit-scrollbar-track:hover,
8353 ::-webkit-scrollbar-track:active {
8354 background-color: rgba(0,0,0,.05);
8358 /* Intro walkthrough
8359 ----------------------------------------------------- */
8361 pointer-events: all;
8369 flex-direction: row;
8378 .intro-nav-wrap .intro-nav-wrap-logo {
8384 vertical-align: middle;
8387 .intro-nav-wrap .joined {
8390 flex-direction: row;
8393 .intro-nav-wrap button.chapter {
8398 .intro-nav-wrap button.chapter.next {
8399 animation-duration: 1s;
8400 animation-name: pulse;
8401 animation-iteration-count: infinite;
8402 animation-direction: alternate;
8405 from { background: #7092ff; }
8406 to { background: #c6d4ff; }
8409 .intro-nav-wrap button.chapter.finished {
8410 background: #8cd05f;
8413 .intro-nav-wrap button.chapter .status {
8417 .intro-nav-wrap button.chapter.finished .status {
8418 display: inline-block;
8421 .curtain-tooltip.tooltip.in {
8424 .curtain-tooltip.tooltip {
8427 [dir='rtl'] .curtain-tooltip.tooltip {
8431 .curtain-tooltip .tooltip-inner {
8437 .curtain-tooltip .tooltip-inner .button-section,
8438 .curtain-tooltip .tooltip-inner .instruction {
8441 border-top: 1px solid #ccc;
8444 margin-right: -20px;
8445 padding: 10px 20px 0 20px;
8448 .curtain-tooltip .tooltip-inner .button-section button {
8452 .curtain-tooltip .tooltip-inner .instruction:only-child {
8458 .curtain-tooltip .tooltip-inner .icon.pre-text {
8459 vertical-align: text-top;
8462 display: inline-block;
8465 .curtain-tooltip.intro-points-describe ,
8466 .curtain-tooltip.intro-lines-name_road {
8467 top: 133px !important;
8470 .tooltip-illustration {
8476 [dir='rtl'] .tooltip-illustration {
8478 margin-right: -20px;
8481 .curtain-tooltip.intro-mouse {
8482 -moz-user-select: none;
8483 -webkit-user-select: none;
8484 -ms-user-select: none;
8488 .curtain-tooltip.intro-mouse .counter {
8499 .curtain-tooltip.intro-mouse .tooltip-illustration use {
8500 fill: rgba(112, 146, 255, 0);
8501 color: rgba(112, 146, 255, 0);
8503 .curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
8504 fill: rgba(112, 146, 255, 1);
8506 .curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
8507 color: rgba(112, 146, 255, 1);
8510 .huge-modal-button {
8516 .huge-modal-button .illustration {