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: textfield; /* 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 pointer-events: none;
204 pointer-events: visibleStroke;
208 /* `.target` objects are interactive */
209 /* They can be picked up, clicked, hovered, or things can connect to them */
214 pointer-events: fill;
221 pointer-events: stroke;
225 stroke: currentColor;
226 stroke-linecap: round;
227 stroke-linejoin: round;
231 /* `.target-nope` objects are explicitly forbidden to join to */
232 .surface:not(.nope-disabled) .node.target.target-nope,
233 .surface:not(.nope-disabled) .way.target.target-nope {
238 /* `.active` objects (currently being drawn or dragged) are not interactive */
239 /* This is important to allow the events to drop through to whatever is */
240 /* below them on the map, so you can still hover and connect to other things. */
242 pointer-events: none !important;
245 /* NOTE: when more QA layers are added, replace kr_error with generic QA layer selector */
246 /* points, notes & QA */
248 /* points, notes, markers */
257 g.kr_error.active .stroke,
258 g.note.active .stroke {
280 g.kr_error.hover:not(.selected) .shadow,
281 g.note.hover:not(.selected) .shadow,
282 g.point.related:not(.selected) .shadow,
283 g.point.hover:not(.selected) .shadow {
287 g.kr_error.selected .shadow,
288 g.note.selected .shadow,
289 g.point.selected .shadow {
293 /* g.note ellipse.stroke, */
294 g.point ellipse.stroke {
297 .mode-drag-note g.note.active ellipse.stroke,
298 .mode-drag-node g.point.active ellipse.stroke {
303 /* vertices and midpoints */
312 g.vertex.shared .stroke {
329 g.vertex.related:not(.selected) .shadow,
330 g.vertex.hover:not(.selected) .shadow,
331 g.midpoint.related:not(.selected) .shadow,
332 g.midpoint.hover:not(.selected) .shadow {
336 g.vertex.selected .shadow {
342 .preset-icon .icon.iD-other-line {
348 stroke-linecap: round;
349 stroke-linejoin: round;
363 path.shadow.related:not(.selected),
364 path.shadow.hover:not(.selected) {
368 path.shadow.selected {
378 /* Labels / Markers */
385 .oneway .textpath.tag-waterway {
389 .onewaygroup path.oneway,
390 .viewfieldgroup path.viewfield,
391 .sidedgroup path.sided {
397 text.pointlabel-halo,
401 dominant-baseline: middle;
406 -webkit-transition: opacity 100ms linear;
407 transition: opacity 100ms linear;
408 -moz-transition: opacity 100ms linear;
411 /* Opera doesn't support dominant-baseline. See #715 */
412 /* Safari 10 seems to have regressed too */
413 .linelabel-halo .textpath,
414 .linelabel .textpath {
415 baseline-shift: -33%;
416 dominant-baseline: auto;
419 .labels-group.halo text {
423 stroke-miterlimit: 1;
427 opacity: 0 !important;
433 .icon.areaicon-halo {
437 stroke-miterlimit: 1;
445 g.point.highlighted .shadow,
446 path.shadow.highlighted {
447 stroke-opacity: 0.95;
450 g.vertex.highlighted .shadow {
452 stroke-opacity: 0.95;
456 /* Turn Restrictions */
457 .points-group.turns g.turn rect,
458 .points-group.turns g.turn circle {
462 /* Turn restriction paths and vertices */
463 .surface.tr .way.target,
464 .surface.tr path.shadow.selected,
465 .surface.tr path.shadow.related {
469 .surface.tr path.shadow.selected,
470 .surface.tr path.shadow.related,
471 .surface.tr g.vertex.selected .shadow,
472 .surface.tr g.vertex.related .shadow {
476 .surface.tr path.shadow.related.allow,
477 .surface.tr g.vertex.related.allow .shadow {
480 .surface.tr path.shadow.related.restrict,
481 .surface.tr g.vertex.related.restrict .shadow {
484 .surface.tr path.shadow.related.only,
485 .surface.tr g.vertex.related.only .shadow {
490 /* Default - light gray */
492 stroke: rgb(170, 170, 170);
497 stroke: rgba(255, 255, 255, 0.3);
498 fill: rgba(255, 255, 255, 0.3);
501 .preset-icon-fill-area {
502 border: 1px solid rgb(170, 170, 170);
503 background-color: rgba(170, 170, 170, 0.3);
506 path.shadow.old-multipolygon,
507 path.stroke.old-multipolygon {
508 stroke-dasharray: 100, 5;
509 stroke-linecap: butt;
514 path.stroke.tag-landuse,
515 path.stroke.tag-natural,
516 path.stroke.tag-leisure-nature_reserve,
517 path.stroke.tag-leisure-pitch,
518 path.stroke.tag-leisure-track,
519 path.stroke.tag-leisure-golf_course,
520 path.stroke.tag-leisure-garden,
521 path.stroke.tag-leisure-park,
522 path.stroke.tag-barrier-hedge,
523 path.stroke.tag-landuse-forest,
524 path.stroke.tag-landuse-wood,
525 path.stroke.tag-landuse-grass {
526 stroke: rgb(140, 208, 95);
528 path.fill.tag-landuse,
529 path.fill.tag-natural,
530 path.fill.tag-leisure-nature_reserve,
531 path.fill.tag-leisure-pitch,
532 path.fill.tag-leisure-track,
533 path.fill.tag-leisure-golf_course,
534 path.fill.tag-leisure-garden,
535 path.fill.tag-leisure-park,
536 path.fill.tag-landuse-forest,
537 path.fill.tag-natural-wood,
538 path.fill.tag-landuse-grass {
539 stroke: rgba(140, 208, 95, 0.3);
540 fill: rgba(140, 208, 95, 0.3);
542 .preset-icon-fill-area.tag-landuse,
543 .preset-icon-fill-area.tag-natural,
544 .preset-icon-fill-area.tag-leisure-nature_reserve,
545 .preset-icon-fill-area.tag-leisure-pitch,
546 .preset-icon-fill-area.tag-leisure-track,
547 .preset-icon-fill-area.tag-leisure-golf_course,
548 .preset-icon-fill-area.tag-leisure-garden,
549 .preset-icon-fill-area.tag-leisure-park,
550 .preset-icon-fill-area.tag-landuse-forest,
551 .preset-icon-fill-area.tag-natural-wood,
552 .preset-icon-fill-area.tag-landuse-grass {
553 border-color: rgb(140, 208, 95);
554 background-color: rgba(140, 208, 95, 0.3);
556 .pattern-color-forest,
557 .pattern-color-forest_broadleaved,
558 .pattern-color-forest_needleleaved,
559 .pattern-color-forest_leafless,
561 .pattern-color-grass {
562 fill: rgba(140, 208, 95, 0.3);
567 path.stroke.tag-amenity-fountain,
568 path.stroke.tag-amenity-swimming_pool,
569 path.stroke.tag-leisure-swimming_pool,
570 path.stroke.tag-landuse-aquaculture,
571 path.stroke.tag-landuse-basin,
572 path.stroke.tag-landuse-harbour,
573 path.stroke.tag-landuse-reservoir,
574 path.stroke.tag-man_made-groyne,
575 path.stroke.tag-man_made-breakwater,
576 path.stroke.tag-natural-water {
577 stroke: rgb(119, 211, 222);
579 path.fill.tag-amenity-fountain,
580 path.fill.tag-amenity-swimming_pool,
581 path.fill.tag-leisure-swimming_pool,
582 path.fill.tag-landuse-aquaculture,
583 path.fill.tag-landuse-basin,
584 path.fill.tag-landuse-harbour,
585 path.fill.tag-landuse-reservoir,
586 path.fill.tag-natural-water {
587 stroke: rgba(119, 211, 222, 0.3);
588 fill: rgba(119, 211, 222, 0.3);
590 .preset-icon-fill-area.tag-amenity-fountain,
591 .preset-icon-fill-area.tag-amenity-swimming_pool,
592 .preset-icon-fill-area.tag-leisure-swimming_pool,
593 .preset-icon-fill-area.tag-landuse-aquaculture,
594 .preset-icon-fill-area.tag-landuse-basin,
595 .preset-icon-fill-area.tag-landuse-harbour,
596 .preset-icon-fill-area.tag-landuse-reservoir,
597 .preset-icon-fill-area.tag-natural-water {
598 border-color: rgb(119, 211, 222);
599 background-color: rgba(119, 211, 222, 0.3);
601 .pattern-color-waves,
602 .pattern-color-water_standing,
603 .pattern-color-pond {
604 fill: rgba(119, 211, 222, 0.3);
609 path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
610 path.stroke.tag-leisure-pitch.tag-sport-baseball,
611 path.stroke.tag-leisure-pitch.tag-sport-softball,
612 path.stroke.tag-leisure-track,
613 path.stroke.tag-natural-beach,
614 path.stroke.tag-natural-sand,
615 path.stroke.tag-natural-scrub,
616 path.stroke.tag-amenity-childcare,
617 path.stroke.tag-amenity-kindergarten,
618 path.stroke.tag-amenity-school,
619 path.stroke.tag-amenity-college,
620 path.stroke.tag-amenity-university {
621 stroke: rgba(255, 255, 148, 0.75);
623 path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
624 path.fill.tag-leisure-pitch.tag-sport-baseball,
625 path.fill.tag-leisure-pitch.tag-sport-softball,
626 path.fill.tag-leisure-track,
627 path.fill.tag-natural-beach,
628 path.fill.tag-natural-sand,
629 path.fill.tag-natural-scrub,
630 path.fill.tag-amenity-childcare,
631 path.fill.tag-amenity-kindergarten,
632 path.fill.tag-amenity-school,
633 path.fill.tag-amenity-college,
634 path.fill.tag-amenity-university {
635 stroke: rgba(255, 255, 148, 0.25);
636 fill: rgba(255, 255, 148, 0.25);
638 .preset-icon-fill-area.tag-leisure-pitch.tag-sport-beachvolleyball,
639 .preset-icon-fill-area.tag-leisure-pitch.tag-sport-baseball,
640 .preset-icon-fill-area.tag-leisure-pitch.tag-sport-softball,
641 .preset-icon-fill-area.tag-leisure-track,
642 .preset-icon-fill-area.tag-natural-beach,
643 .preset-icon-fill-area.tag-natural-sand,
644 .preset-icon-fill-area.tag-natural-scrub,
645 .preset-icon-fill-area.tag-amenity-childcare,
646 .preset-icon-fill-area.tag-amenity-kindergarten,
647 .preset-icon-fill-area.tag-amenity-school,
648 .preset-icon-fill-area.tag-amenity-college,
649 .preset-icon-fill-area.tag-amenity-university {
650 border-color: rgb(232, 232, 0);
651 background-color: rgba(255, 255, 148, 0.25);
653 .pattern-color-beach,
655 .pattern-color-scrub {
656 fill: rgba(255, 255, 148, 0.2);
661 path.stroke.tag-landuse-residential,
662 path.stroke.tag-landuse-construction {
663 stroke: rgb(196, 189, 25);
665 path.fill.tag-landuse-residential {
666 stroke: rgba(196, 189, 25, 0.3);
667 fill: rgba(196, 189, 25, 0.3);
669 .preset-icon-fill-area.tag-landuse-residential,
670 .preset-icon-fill-area.tag-landuse-construction {
671 border-color: rgb(196, 189, 25);
672 background: rgba(196, 189, 25, 0.3);
674 .pattern-color-construction {
675 fill: rgba(196, 189, 25, 0.3);
680 path.stroke.tag-landuse-retail,
681 path.stroke.tag-landuse-commercial,
682 path.stroke.tag-landuse-landfill,
683 path.stroke.tag-military,
684 path.stroke.tag-landuse-military {
685 stroke: rgb(214, 136, 26);
687 path.fill.tag-landuse-retail,
688 path.fill.tag-landuse-commercial,
689 path.fill.tag-landuse-landfill,
690 path.fill.tag-military,
691 path.fill.tag-landuse-military {
692 stroke: rgba(214, 136, 26, 0.3);
693 fill: rgba(214, 136, 26, 0.3);
695 .preset-icon-fill-area.tag-landuse-retail,
696 .preset-icon-fill-area.tag-landuse-commercial,
697 .preset-icon-fill-area.tag-landuse-landfill,
698 .preset-icon-fill-area.tag-military,
699 .preset-icon-fill-area.tag-landuse-military {
700 border-color: rgb(214, 136, 26);
701 background-color: rgba(214, 136, 26, 0.3);
703 .pattern-color-landfill {
704 fill: rgba(214, 136, 26, 0.3);
709 path.stroke.tag-landuse-industrial,
710 path.stroke.tag-power-plant {
711 stroke: rgb(228, 164, 245);
713 path.fill.tag-landuse-industrial,
714 path.fill.tag-power-plant {
715 stroke: rgba(228, 164, 245, 0.3);
716 fill: rgba(228, 164, 245, 0.3);
718 .preset-icon-fill-area.tag-landuse-industrial,
719 .preset-icon-fill-area.tag-power-plant {
720 border-color: rgb(228, 164, 245);
721 background-color: rgba(228, 164, 245, 0.3);
726 path.stroke.tag-natural-wetland {
727 stroke: rgb(153, 225, 170);
729 .preset-icon-fill-area.tag-natural-wetland {
730 border-color: rgb(153, 225, 170);
731 background-color: rgba(153, 225, 170, 0.2);
733 .pattern-color-wetland,
734 .pattern-color-wetland_marsh,
735 .pattern-color-wetland_swamp,
736 .pattern-color-wetland_bog,
737 .pattern-color-wetland_reedbed {
738 fill: rgba(153, 225, 170, 0.3);
742 /* Light Green things */
743 path.stroke.tag-landuse-cemetery,
744 path.stroke.tag-landuse-orchard,
745 path.stroke.tag-landuse-vineyard,
746 path.stroke.tag-landuse-meadow,
747 path.stroke.tag-landuse-farmland {
748 stroke: rgb(191, 232, 63);
750 .preset-icon-fill-area.tag-landuse-cemetery,
751 .preset-icon-fill-area.tag-landuse-orchard,
752 .preset-icon-fill-area.tag-landuse-vineyard,
753 .preset-icon-fill-area.tag-landuse-meadow,
754 .preset-icon-fill-area.tag-landuse-farmland {
755 background-color: rgba(191, 232, 63, 0.2);
757 .pattern-color-cemetery,
758 .pattern-color-cemetery_christian,
759 .pattern-color-cemetery_buddhist,
760 .pattern-color-cemetery_muslim,
761 .pattern-color-cemetery_jewish,
762 .pattern-color-orchard,
763 .pattern-color-vineyard,
764 .pattern-color-meadow,
765 .pattern-color-farmland {
766 fill: rgba(191, 232, 63, 0.2);
771 path.stroke.tag-landuse-farmyard {
772 stroke: rgb(245, 220, 186);
774 path.fill.tag-landuse-farmyard {
775 stroke: rgba(245, 220, 186, 0.3);
776 fill: rgba(245, 220, 186, 0.3);
778 .preset-icon-fill-area.tag-landuse-farmyard {
779 border-color: rgb(226, 177, 111);
780 background: rgba(245, 220, 186, 0.3);
782 .pattern-color-farmyard {
783 fill: rgba(245, 220, 186, 0.3);
787 /* Dark Gray things */
788 path.stroke.tag-amenity-parking,
789 path.stroke.tag-leisure-pitch.tag-sport-basketball,
790 path.stroke.tag-leisure-pitch.tag-sport-skateboard,
791 path.stroke.tag-natural-bare_rock,
792 path.stroke.tag-natural-scree,
793 path.stroke.tag-landuse-railway,
794 path.stroke.tag-landuse-quarry {
795 stroke: rgb(170, 170, 170);
797 path.fill.tag-amenity-parking,
798 path.fill.tag-leisure-pitch.tag-sport-basketball,
799 path.fill.tag-leisure-pitch.tag-sport-skateboard,
800 path.fill.tag-natural-bare_rock,
801 path.fill.tag-natural-scree,
802 path.fill.tag-landuse-railway,
803 path.fill.tag-landuse-quarry {
804 stroke: rgba(140, 140, 140, 0.5);
805 fill: rgba(140, 140, 140, 0.5);
807 .preset-icon-fill-area.tag-amenity-parking,
808 .preset-icon-fill-area.tag-leisure-pitch.tag-sport-basketball,
809 .preset-icon-fill-area.tag-leisure-pitch.tag-sport-skateboard,
810 .preset-icon-fill-area.tag-natural-bare_rock,
811 .preset-icon-fill-area.tag-natural-scree,
812 .preset-icon-fill-area.tag-landuse-railway,
813 .preset-icon-fill-area.tag-landuse-quarry {
814 border-color: rgb(170, 170, 170);
815 background-color: rgba(140, 140, 140, 0.5);
817 .pattern-color-quarry {
818 fill: rgba(140, 140, 140, 0.5);
822 /* Light gray overrides */
823 path.stroke.tag-natural-cave_entrance,
824 path.stroke.tag-natural-glacier {
825 stroke: rgb(170, 170, 170);
827 path.fill.tag-natural-cave_entrance,
828 path.fill.tag-natural-glacier {
829 stroke: rgba(255, 255, 255, 0.3);
830 fill: rgba(255, 255, 255, 0.3);
832 .preset-icon-fill-area.tag-natural-cave_entrance,
833 .preset-icon-fill-area.tag-natural-glacier {
834 border-color: rgb(170, 170, 170);
835 background: rgba(170, 170, 170, 0.3);
840 .preset-icon .icon.tag-highway.other-line {
844 path.line.casing.tag-highway {
847 path.line.stroke.tag-highway {
852 path.line.shadow.tag-highway {
855 path.line.casing.tag-highway {
858 path.line.stroke.tag-highway {
861 .low-zoom path.line.shadow.tag-highway {
864 .low-zoom path.line.casing.tag-highway {
867 .low-zoom path.line.stroke.tag-highway {
871 .preset-icon .icon.iD-highway-motorway,
872 .preset-icon .icon.iD-highway-motorway-link {
876 path.line.stroke.tag-highway-motorway,
877 path.line.stroke.tag-highway-motorway_link,
878 path.line.stroke.tag-motorway {
881 path.line.casing.tag-highway-motorway,
882 path.line.casing.tag-highway-motorway_link,
883 path.line.casing.tag-motorway {
887 .preset-icon .icon.iD-highway-trunk,
888 .preset-icon .icon.iD-highway-trunk-link {
892 path.line.stroke.tag-highway-trunk,
893 path.line.stroke.tag-highway-trunk_link,
894 path.line.stroke.tag-trunk {
897 path.line.casing.tag-highway-trunk,
898 path.line.casing.tag-highway-trunk_link,
899 path.line.casing.tag-trunk {
903 .preset-icon .icon.iD-highway-primary,
904 .preset-icon .icon.iD-highway-primary-link {
908 path.line.stroke.tag-highway-primary,
909 path.line.stroke.tag-highway-primary_link,
910 path.line.stroke.tag-primary {
913 path.line.casing.tag-highway-primary,
914 path.line.casing.tag-highway-primary_link,
915 path.line.casing.tag-primary {
919 .preset-icon .icon.iD-highway-secondary,
920 .preset-icon .icon.iD-highway-secondary-link {
924 path.line.stroke.tag-highway-secondary,
925 path.line.stroke.tag-highway-secondary_link,
926 path.line.stroke.tag-secondary {
929 path.line.casing.tag-highway-secondary,
930 path.line.casing.tag-highway-secondary_link,
931 path.line.casing.tag-secondary {
935 .preset-icon .icon.iD-highway-tertiary,
936 .preset-icon .icon.iD-highway-tertiary-link {
940 path.line.stroke.tag-highway-tertiary,
941 path.line.stroke.tag-highway-tertiary_link,
942 path.line.stroke.tag-tertiary {
945 path.line.casing.tag-highway-tertiary,
946 path.line.casing.tag-highway-tertiary_link,
947 path.line.casing.tag-tertiary {
951 .legacy-carto .preset-icon .icon.iD-highway-motorway,
952 .legacy-carto .preset-icon .icon.iD-highway-motorway-link {
956 .legacy-carto path.line.stroke.tag-highway-motorway,
957 .legacy-carto path.line.stroke.tag-highway-motorway_link,
958 .legacy-carto path.line.stroke.tag-motorway {
961 .legacy-carto path.line.casing.tag-highway-motorway,
962 .legacy-carto path.line.casing.tag-highway-motorway_link,
963 .legacy-carto path.line.casing.tag-motorway {
967 .legacy-carto .preset-icon .icon.iD-highway-trunk,
968 .legacy-carto .preset-icon .icon.iD-highway-trunk-link {
972 .legacy-carto path.line.stroke.tag-highway-trunk,
973 .legacy-carto path.line.stroke.tag-highway-trunk_link,
974 .legacy-carto path.line.stroke.tag-trunk {
977 .legacy-carto path.line.casing.tag-highway-trunk,
978 .legacy-carto path.line.casing.tag-highway-trunk_link,
979 .legacy-carto path.line.casing.tag-trunk {
983 .legacy-carto .preset-icon .icon.iD-highway-primary,
984 .legacy-carto .preset-icon .icon.iD-highway-primary-link {
988 .legacy-carto path.line.stroke.tag-highway-primary,
989 .legacy-carto path.line.stroke.tag-highway-primary_link,
990 .legacy-carto path.line.stroke.tag-primary {
993 .legacy-carto path.line.casing.tag-highway-primary,
994 .legacy-carto path.line.casing.tag-highway-primary_link,
995 .legacy-carto path.line.casing.tag-primary {
999 .legacy-carto .preset-icon .icon.iD-highway-secondary,
1000 .legacy-carto .preset-icon .icon.iD-highway-secondary-link {
1004 .legacy-carto path.line.stroke.tag-highway-secondary,
1005 .legacy-carto path.line.stroke.tag-highway-secondary_link,
1006 .legacy-carto path.line.stroke.tag-secondary {
1009 .legacy-carto path.line.casing.tag-highway-secondary,
1010 .legacy-carto path.line.casing.tag-highway-secondary_link,
1011 .legacy-carto path.line.casing.tag-secondary {
1015 .legacy-carto .preset-icon .icon.iD-highway-tertiary,
1016 .legacy-carto .preset-icon .icon.iD-highway-tertiary-link {
1020 .legacy-carto path.line.stroke.tag-highway-tertiary,
1021 .legacy-carto path.line.stroke.tag-highway-tertiary_link,
1022 .legacy-carto path.line.stroke.tag-tertiary {
1025 .legacy-carto path.line.casing.tag-highway-tertiary,
1026 .legacy-carto path.line.casing.tag-highway-tertiary_link,
1027 .legacy-carto path.line.casing.tag-tertiary {
1031 .preset-icon .icon.iD-highway-residential {
1035 path.line.stroke.tag-highway-residential,
1036 path.line.stroke.tag-residential {
1039 path.line.casing.tag-highway-residential,
1040 path.line.casing.tag-residential {
1044 .preset-icon .icon.iD-highway-unclassified {
1048 path.line.stroke.tag-highway-unclassified,
1049 path.line.stroke.tag-unclassified {
1052 path.line.casing.tag-highway-unclassified,
1053 path.line.casing.tag-unclassified {
1058 /* narrow highways */
1059 path.line.shadow.tag-highway-living_street,
1060 path.line.shadow.tag-highway-bus_guideway,
1061 path.line.shadow.tag-highway-service,
1062 path.line.shadow.tag-highway-track,
1063 path.line.shadow.tag-highway-road,
1064 path.line.shadow.tag-living_street,
1065 path.line.shadow.tag-service,
1066 path.line.shadow.tag-track,
1067 path.line.shadow.tag-road {
1070 path.line.casing.tag-highway-living_street,
1071 path.line.casing.tag-highway-bus_guideway,
1072 path.line.casing.tag-highway-service,
1073 path.line.casing.tag-highway-track,
1074 path.line.casing.tag-highway-road,
1075 path.line.casing.tag-living_street,
1076 path.line.casing.tag-service,
1077 path.line.casing.tag-track,
1078 path.line.casing.tag-road {
1081 path.line.stroke.tag-highway-living_street,
1082 path.line.stroke.tag-highway-bus_guideway,
1083 path.line.stroke.tag-highway-service,
1084 path.line.stroke.tag-highway-track,
1085 path.line.stroke.tag-highway-road,
1086 path.line.stroke.tag-living_street,
1087 path.line.stroke.tag-service,
1088 path.line.stroke.tag-track,
1089 path.line.stroke.tag-road {
1093 path.line.shadow.tag-highway-path,
1094 path.line.shadow.tag-highway-footway,
1095 path.line.shadow.tag-highway-cycleway,
1096 path.line.shadow.tag-highway-bridleway,
1097 path.line.shadow.tag-highway-corridor,
1098 path.line.shadow.tag-highway-pedestrian,
1099 path.line.shadow.tag-highway-steps,
1100 path.line.shadow.tag-path,
1101 path.line.shadow.tag-footway,
1102 path.line.shadow.tag-cycleway,
1103 path.line.shadow.tag-bridleway,
1104 path.line.shadow.tag-corridor,
1105 path.line.shadow.tag-pedestrian,
1106 path.line.shadow.tag-steps {
1109 path.line.casing.tag-highway-path,
1110 path.line.casing.tag-highway-footway,
1111 path.line.casing.tag-highway-cycleway,
1112 path.line.casing.tag-highway-bridleway,
1113 path.line.casing.tag-highway-corridor,
1114 path.line.casing.tag-highway-pedestrian,
1115 path.line.casing.tag-highway-steps,
1116 path.line.casing.tag-path,
1117 path.line.casing.tag-footway,
1118 path.line.casing.tag-cycleway,
1119 path.line.casing.tag-bridleway,
1120 path.line.casing.tag-corridor,
1121 path.line.casing.tag-pedestrian,
1122 path.line.casing.tag-steps {
1125 path.line.stroke.tag-highway-path,
1126 path.line.stroke.tag-highway-footway,
1127 path.line.stroke.tag-highway-cycleway,
1128 path.line.stroke.tag-highway-bridleway,
1129 path.line.stroke.tag-highway-corridor,
1130 path.line.stroke.tag-highway-pedestrian,
1131 path.line.stroke.tag-highway-steps,
1132 path.line.stroke.tag-path,
1133 path.line.stroke.tag-footway,
1134 path.line.stroke.tag-cycleway,
1135 path.line.stroke.tag-bridleway,
1136 path.line.stroke.tag-corridor,
1137 path.line.stroke.tag-pedestrian,
1138 path.line.stroke.tag-steps {
1142 .low-zoom path.line.shadow.tag-highway-living_street,
1143 .low-zoom path.line.shadow.tag-highway-bus_guideway,
1144 .low-zoom path.line.shadow.tag-highway-service,
1145 .low-zoom path.line.shadow.tag-highway-track,
1146 .low-zoom path.line.shadow.tag-highway-road,
1147 .low-zoom path.line.shadow.tag-living_street,
1148 .low-zoom path.line.shadow.tag-service,
1149 .low-zoom path.line.shadow.tag-track,
1150 .low-zoom path.line.shadow.tag-road {
1153 .low-zoom path.line.casing.tag-highway-living_street,
1154 .low-zoom path.line.casing.tag-highway-bus_guideway,
1155 .low-zoom path.line.casing.tag-highway-service,
1156 .low-zoom path.line.casing.tag-highway-track,
1157 .low-zoom path.line.casing.tag-highway-road,
1158 .low-zoom path.line.casing.tag-living_street,
1159 .low-zoom path.line.casing.tag-service,
1160 .low-zoom path.line.casing.tag-track,
1161 .low-zoom path.line.casing.tag-road {
1164 .low-zoom path.line.stroke.tag-highway-living_street,
1165 .low-zoom path.line.stroke.tag-highway-bus_guideway,
1166 .low-zoom path.line.stroke.tag-highway-service,
1167 .low-zoom path.line.stroke.tag-highway-track,
1168 .low-zoom path.line.stroke.tag-highway-road,
1169 .low-zoom path.line.stroke.tag-living_street,
1170 .low-zoom path.line.stroke.tag-service,
1171 .low-zoom path.line.stroke.tag-track,
1172 .low-zoom path.line.stroke.tag-road {
1176 .low-zoom path.line.shadow.tag-highway-path,
1177 .low-zoom path.line.shadow.tag-highway-footway,
1178 .low-zoom path.line.shadow.tag-highway-cycleway,
1179 .low-zoom path.line.shadow.tag-highway-bridleway,
1180 .low-zoom path.line.shadow.tag-highway-corridor,
1181 .low-zoom path.line.shadow.tag-highway-pedestrian,
1182 .low-zoom path.line.shadow.tag-highway-steps,
1183 .low-zoom path.line.shadow.tag-path,
1184 .low-zoom path.line.shadow.tag-footway,
1185 .low-zoom path.line.shadow.tag-cycleway,
1186 .low-zoom path.line.shadow.tag-bridleway,
1187 .low-zoom path.line.shadow.tag-corridor,
1188 .low-zoom path.line.shadow.tag-pedestrian,
1189 .low-zoom path.line.shadow.tag-steps {
1192 .low-zoom path.line.casing.tag-highway-path,
1193 .low-zoom path.line.casing.tag-highway-footway,
1194 .low-zoom path.line.casing.tag-highway-cycleway,
1195 .low-zoom path.line.casing.tag-highway-bridleway,
1196 .low-zoom path.line.casing.tag-highway-corridor,
1197 .low-zoom path.line.casing.tag-highway-pedestrian,
1198 .low-zoom path.line.casing.tag-highway-steps,
1199 .low-zoom path.line.casing.tag-path,
1200 .low-zoom path.line.casing.tag-footway,
1201 .low-zoom path.line.casing.tag-cycleway,
1202 .low-zoom path.line.casing.tag-bridleway,
1203 .low-zoom path.line.casing.tag-corridor,
1204 .low-zoom path.line.casing.tag-pedestrian,
1205 .low-zoom path.line.casing.tag-steps {
1208 .low-zoom path.line.stroke.tag-highway-path,
1209 .low-zoom path.line.stroke.tag-highway-footway,
1210 .low-zoom path.line.stroke.tag-highway-cycleway,
1211 .low-zoom path.line.stroke.tag-highway-bridleway,
1212 .low-zoom path.line.stroke.tag-highway-corridor,
1213 .low-zoom path.line.stroke.tag-highway-pedestrian,
1214 .low-zoom path.line.stroke.tag-highway-steps,
1215 .low-zoom path.line.stroke.tag-path,
1216 .low-zoom path.line.stroke.tag-footway,
1217 .low-zoom path.line.stroke.tag-cycleway,
1218 .low-zoom path.line.stroke.tag-bridleway,
1219 .low-zoom path.line.stroke.tag-corridor,
1220 .low-zoom path.line.stroke.tag-pedestrian,
1221 .low-zoom path.line.stroke.tag-steps {
1226 .preset-icon .icon.iD-highway-living-street {
1230 path.line.stroke.tag-highway-living_street,
1231 path.line.stroke.tag-living_street {
1234 path.line.casing.tag-highway-living_street,
1235 path.line.casing.tag-living_street {
1239 .preset-icon .icon.iD-highway-footway.tag-highway-corridor,
1240 .preset-icon .icon.iD-highway-footway.tag-highway-pedestrian {
1244 path.line.stroke.tag-highway-corridor,
1245 path.line.stroke.tag-highway-pedestrian,
1246 path.line.stroke.tag-corridor,
1247 path.line.stroke.tag-pedestrian {
1249 stroke-dasharray: 2, 8;
1251 .low-zoom path.line.stroke.tag-highway-corridor,
1252 .low-zoom path.line.stroke.tag-highway-pedestrian,
1253 .low-zoom path.line.stroke.tag-corridor,
1254 .low-zoom path.line.stroke.tag-pedestrian {
1255 stroke-dasharray: 1, 4;
1257 path.line.casing.tag-highway-corridor,
1258 path.line.casing.tag-highway-pedestrian,
1259 path.line.casing.tag-corridor,
1260 path.line.casing.tag-pedestrian,
1261 path.line.casing.tag-highway-corridor.tag-unpaved,
1262 path.line.casing.tag-highway-pedestrian.tag-unpaved,
1263 path.line.casing.tag-corridor.tag-unpaved,
1264 path.line.casing.tag-pedestrian.tag-unpaved {
1266 stroke-linecap: round;
1267 stroke-dasharray: none;
1270 .preset-icon .icon.iD-highway-road {
1274 path.line.stroke.tag-highway-road,
1275 path.line.stroke.tag-road {
1278 path.line.casing.tag-highway-road,
1279 path.line.casing.tag-road {
1283 .preset-icon .icon.iD-highway-service {
1287 path.line.stroke.tag-highway-service,
1288 path.line.stroke.tag-service {
1291 path.line.casing.tag-highway-service,
1292 path.line.casing.tag-service {
1296 /* special service roads and bus guideways */
1297 /* with `service=* tag` (e.g. parking_aisle, alley, drive-through */
1298 .preset-icon .icon.iD-highway-bus_guideway,
1299 .preset-icon .icon.iD-highway-service.tag-service {
1303 path.line.stroke.tag-highway-bus_guideway,
1304 path.line.stroke.tag-highway-service.tag-service,
1305 path.line.stroke.tag-service.tag-service {
1308 path.line.casing.tag-highway-bus_guideway,
1309 path.line.casing.tag-highway-service.tag-service,
1310 path.line.casing.tag-service.tag-service {
1314 .preset-icon .icon.iD-highway-track {
1318 path.line.stroke.tag-highway-track,
1319 path.line.stroke.tag-track {
1322 path.line.casing.tag-highway-track,
1323 path.line.casing.tag-track {
1327 path.line.stroke.tag-highway-path,
1328 path.line.stroke.tag-highway-footway,
1329 path.line.stroke.tag-highway-cycleway,
1330 path.line.stroke.tag-highway-bridleway {
1331 stroke-linecap: butt;
1332 stroke-dasharray: 6, 6;
1334 .low-zoom path.line.stroke.tag-highway-path,
1335 .low-zoom path.line.stroke.tag-highway-footway,
1336 .low-zoom path.line.stroke.tag-highway-cycleway,
1337 .low-zoom path.line.stroke.tag-highway-bridleway {
1338 stroke-linecap: butt;
1339 stroke-dasharray: 3, 3;
1342 path.line.casing.tag-highway-path,
1343 path.line.casing.tag-highway-path.tag-unpaved {
1345 stroke-linecap: round;
1346 stroke-dasharray: none;
1348 path.line.casing.tag-highway-footway,
1349 path.line.casing.tag-highway-cycleway,
1350 path.line.casing.tag-highway-bridleway,
1351 path.line.casing.tag-highway-footway.tag-unpaved,
1352 path.line.casing.tag-highway-cycleway.tag-unpaved,
1353 path.line.casing.tag-highway-bridleway.tag-unpaved {
1355 stroke-linecap: round;
1356 stroke-dasharray: none;
1359 .preset-icon .icon.iD-category-path,
1360 .preset-icon .icon.iD-highway-path {
1364 path.line.stroke.tag-highway-path {
1368 .preset-icon .icon.tag-route-foot,
1369 .preset-icon .icon.tag-route-hiking,
1370 .preset-icon .icon.iD-highway-footway {
1374 path.line.stroke.tag-highway-footway {
1379 .preset-icon .icon.tag-route-bicycle,
1380 .preset-icon .icon.iD-highway-cycleway {
1384 path.line.stroke.tag-highway-cycleway {
1388 .preset-icon .icon.tag-route-horse,
1389 .preset-icon .icon.iD-highway-bridleway {
1393 path.line.stroke.tag-highway-bridleway {
1397 .preset-icon .icon.iD-highway-steps {
1401 path.line.stroke.tag-highway-steps {
1403 stroke-linecap: butt;
1404 stroke-dasharray: 3, 3;
1406 .low-zoom path.line.stroke.tag-highway-steps {
1407 stroke-dasharray: 2, 2;
1409 path.line.casing.tag-highway-steps,
1410 path.line.casing.tag-highway-steps.tag-unpaved {
1412 stroke-linecap: round;
1413 stroke-dasharray: none;
1416 /* highway midpoints */
1417 g.midpoint.tag-highway-corridor .fill,
1418 g.midpoint.tag-highway-pedestrian .fill,
1419 g.midpoint.tag-highway-steps .fill,
1420 g.midpoint.tag-highway-path .fill,
1421 g.midpoint.tag-highway-footway .fill,
1422 g.midpoint.tag-highway-cycleway .fill,
1423 g.midpoint.tag-highway-bridleway .fill {
1432 path.area.stroke.tag-aeroway,
1433 .low-zoom path.area.stroke.tag-aeroway {
1435 stroke-dasharray: none;
1438 path.area.fill.tag-aeroway-runway {
1439 stroke: rgba(0, 0, 0, 0.6);
1440 fill: rgba(0, 0, 0, 0.6);
1444 /* narrow aeroways (taxiway) */
1445 path.line.shadow.tag-aeroway-taxiway,
1446 path.line.shadow.tag-taxiway {
1449 path.line.casing.tag-aeroway-taxiway,
1450 path.line.casing.tag-taxiway {
1453 path.line.stroke.tag-aeroway-taxiway,
1454 path.line.stroke.tag-taxiway {
1457 .low-zoom path.line.shadow.tag-aeroway-taxiway,
1458 .low-zoom path.line.shadow.tag-taxiway {
1461 .low-zoom path.line.casing.tag-aeroway-taxiway,
1462 .low-zoom path.line.casing.tag-taxiway {
1465 .low-zoom path.line.stroke.tag-aeroway-taxiway,
1466 .low-zoom path.line.stroke.tag-taxiway {
1470 .preset-icon .icon.tag-aeroway-taxiway,
1471 .preset-icon .icon.tag-taxiway {
1475 path.line.stroke.tag-aeroway-taxiway,
1476 path.line.stroke.tag-taxiway {
1479 path.line.casing.tag-aeroway-taxiway,
1480 path.line.casing.tag-taxiway {
1484 /* wide aeroways (runway) */
1485 .preset-icon .icon.tag-aeroway-runway,
1486 .preset-icon .icon.tag-runway {
1490 path.line.shadow.tag-aeroway-runway {
1493 path.line.casing.tag-aeroway-runway {
1496 stroke-linecap: square;
1498 path.line.stroke.tag-aeroway-runway {
1501 stroke-linecap: butt;
1502 stroke-dasharray: 24, 48;
1504 .low-zoom path.line.shadow.tag-aeroway-runway {
1507 .low-zoom path.line.casing.tag-aeroway-runway {
1510 .low-zoom path.line.stroke.tag-aeroway-runway {
1512 stroke-dasharray: 12, 24;
1518 .preset-icon .icon.tag-railway.other-line {
1522 .preset-icon .icon.tag-railway {
1529 path.line.shadow.tag-railway {
1532 path.line.casing.tag-railway {
1535 path.line.stroke.tag-railway {
1537 stroke-linecap: butt;
1538 stroke-dasharray: 12,12;
1540 .low-zoom path.line.shadow.tag-railway {
1543 .low-zoom path.line.casing.tag-railway {
1546 .low-zoom path.line.stroke.tag-railway {
1548 stroke-dasharray: 6,6;
1553 path.line.casing.tag-railway {
1556 path.line.stroke.tag-railway {
1561 .preset-icon .icon.tag-railway-disused,
1562 .preset-icon .icon.tag-railway-abandoned {
1566 path.line.casing.tag-railway-disused,
1567 path.line.casing.tag-railway-abandoned {
1570 path.line.stroke.tag-railway-disused,
1571 path.line.stroke.tag-railway-abandoned {
1576 .preset-icon .icon.tag-railway-subway {
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.iD-category-water,
1594 .preset-icon .icon.tag-type-waterway,
1595 .preset-icon .icon.tag-waterway {
1600 path.fill.tag-waterway {
1601 stroke: rgba(119, 211, 222, 0.3);
1602 fill: rgba(119, 211, 222, 0.3);
1604 path.line.casing.tag-waterway {
1607 path.line.stroke.tag-waterway {
1612 path.area.stroke.tag-waterway-dock,
1613 path.area.stroke.tag-waterway-boatyard,
1614 path.area.stroke.tag-waterway-fuel {
1618 path.area.casing.tag-waterway-dock,
1619 path.area.casing.tag-waterway-boatyard,
1620 path.area.casing.tag-waterway-fuel {
1623 path.area.fill.tag-waterway-dock,
1624 path.area.fill.tag-waterway-boatyard,
1625 path.area.fill.tag-waterway-fuel {
1626 stroke: rgba(255, 255, 255, 0.3);
1627 fill: rgba(255, 255, 255, 0.3);
1631 path.fill.tag-waterway {
1632 stroke: rgba(119, 211, 222, 0.3);
1633 fill: rgba(119, 211, 222, 0.3);
1635 path.line.casing.tag-waterway {
1638 path.line.stroke.tag-waterway {
1643 /* narrow waterways (default) */
1644 path.line.shadow.tag-waterway {
1647 path.line.casing.tag-waterway {
1650 path.line.stroke.tag-waterway {
1654 .low-zoom path.line.shadow.tag-waterway {
1657 .low-zoom path.line.casing.tag-waterway {
1660 .low-zoom path.line.stroke.tag-waterway {
1665 /* wide waterways (river) */
1666 path.line.shadow.tag-waterway-river {
1669 path.line.casing.tag-waterway-river {
1672 path.line.stroke.tag-waterway-river {
1676 .low-zoom path.line.shadow.tag-waterway-river {
1679 .low-zoom path.line.casing.tag-waterway-river {
1682 .low-zoom path.line.stroke.tag-waterway-river {
1688 .preset-icon .icon.tag-waterway-ditch {
1691 path.line.stroke.tag-waterway-ditch {
1697 .preset-icon .icon.tag-route-ferry {
1701 path.line.shadow.tag-route-ferry {
1704 path.line.stroke.tag-route-ferry {
1706 stroke-linecap: butt;
1707 stroke-dasharray: 12,8;
1709 .low-zoom path.line.shadow.tag-route-ferry {
1712 .low-zoom path.line.stroke.tag-route-ferry {
1714 stroke-dasharray: 6,4;
1716 path.line.stroke.tag-route-ferry {
1721 /* power and pipeline */
1722 .preset-icon .icon.tag-man_made-pipeline,
1723 .preset-icon .icon.tag-power {
1729 path.line.stroke.tag-power {
1733 path.line.casing.tag-power {
1738 path.line.stroke.tag-man_made-pipeline {
1740 stroke-linecap: butt;
1742 stroke-dasharray: 80, 1.25;
1744 path.line.casing.tag-man_made-pipeline {
1748 .low-zoom path.line.stroke.tag-man_made-pipeline {
1749 stroke-dasharray: 40, 1;
1753 path.line.stroke.tag-boundary {
1756 stroke-linecap: butt;
1757 stroke-dasharray: 20, 5, 5, 5;
1759 path.line.casing.tag-boundary {
1764 path.line.casing.tag-boundary-protected_area,
1765 path.line.casing.tag-boundary-national_park {
1771 path.line.shadow.tag-natural-tree_row {
1774 path.line.casing.tag-natural-tree_row {
1777 path.line.stroke.tag-natural-tree_row {
1780 .low-zoom path.line.shadow.tag-natural-tree_row {
1783 .low-zoom path.line.casing.tag-natural-tree_row {
1786 .low-zoom path.line.stroke.tag-natural-tree_row {
1791 /* barriers and similar */
1792 path.line.stroke.tag-barrier:not(.tag-barrier-hedge) {
1795 path.line.stroke.tag-barrier,
1796 path.stroke.tag-man_made-groyne,
1797 path.stroke.tag-man_made-breakwater {
1799 stroke-linecap: round;
1800 stroke-dasharray: 15, 5, 1, 5;
1802 .low-zoom path.line.stroke.tag-barrier,
1803 .low-zoom path.stroke.tag-man_made-groyne,
1804 .low-zoom path.stroke.tag-man_made-breakwater {
1806 stroke-linecap: butt;
1807 stroke-dasharray: 8, 2, 2, 2;
1812 path.line.casing.tag-bridge {
1813 stroke-opacity: 0.6;
1814 stroke: #000 !important;
1815 stroke-linecap: butt;
1816 stroke-dasharray: none;
1818 path.line.shadow.tag-bridge {
1821 path.line.casing.tag-bridge {
1824 .low-zoom path.line.shadow.tag-bridge {
1827 .low-zoom path.line.casing.tag-bridge {
1831 path.line.shadow.tag-railway.tag-bridge,
1832 path.line.shadow.tag-highway-living_street.tag-bridge,
1833 path.line.shadow.tag-highway-path.tag-bridge,
1834 path.line.shadow.tag-highway-corridor.tag-bridge,
1835 path.line.shadow.tag-highway-pedestrian.tag-bridge,
1836 path.line.shadow.tag-highway-service.tag-bridge,
1837 path.line.shadow.tag-highway-track.tag-bridge,
1838 path.line.shadow.tag-highway-steps.tag-bridge,
1839 path.line.shadow.tag-highway-footway.tag-bridge,
1840 path.line.shadow.tag-highway-cycleway.tag-bridge,
1841 path.line.shadow.tag-highway-bridleway.tag-bridge {
1844 path.line.casing.tag-railway.tag-bridge,
1845 path.line.casing.tag-highway-living_street.tag-bridge,
1846 path.line.casing.tag-highway-path.tag-bridge,
1847 path.line.casing.tag-highway-corridor.tag-bridge,
1848 path.line.casing.tag-highway-pedestrian.tag-bridge,
1849 path.line.casing.tag-highway-service.tag-bridge,
1850 path.line.casing.tag-highway-track.tag-bridge,
1851 path.line.casing.tag-highway-steps.tag-bridge,
1852 path.line.casing.tag-highway-footway.tag-bridge,
1853 path.line.casing.tag-highway-cycleway.tag-bridge,
1854 path.line.casing.tag-highway-bridleway.tag-bridge {
1858 .low-zoom path.line.shadow.tag-railway.tag-bridge,
1859 .low-zoom path.line.shadow.tag-highway-living_street.tag-bridge,
1860 .low-zoom path.line.shadow.tag-highway-path.tag-bridge,
1861 .low-zoom path.line.shadow.tag-highway-corridor.tag-bridge,
1862 .low-zoom path.line.shadow.tag-highway-pedestrian.tag-bridge,
1863 .low-zoom path.line.shadow.tag-highway-service.tag-bridge,
1864 .low-zoom path.line.shadow.tag-highway-track.tag-bridge,
1865 .low-zoom path.line.shadow.tag-highway-steps.tag-bridge,
1866 .low-zoom path.line.shadow.tag-highway-footway.tag-bridge,
1867 .low-zoom path.line.shadow.tag-highway-cycleway.tag-bridge,
1868 .low-zoom path.line.shadow.tag-highway-bridleway.tag-bridge {
1871 .low-zoom path.line.casing.tag-railway.tag-bridge,
1872 .low-zoom path.line.casing.tag-highway-living_street.tag-bridge,
1873 .low-zoom path.line.casing.tag-highway-path.tag-bridge,
1874 .low-zoom path.line.casing.tag-highway-corridor.tag-bridge,
1875 .low-zoom path.line.casing.tag-highway-pedestrian.tag-bridge,
1876 .low-zoom path.line.casing.tag-highway-service.tag-bridge,
1877 .low-zoom path.line.casing.tag-highway-track.tag-bridge,
1878 .low-zoom path.line.casing.tag-highway-steps.tag-bridge,
1879 .low-zoom path.line.casing.tag-highway-footway.tag-bridge,
1880 .low-zoom path.line.casing.tag-highway-cycleway.tag-bridge,
1881 .low-zoom path.line.casing.tag-highway-bridleway.tag-bridge {
1887 path.line.stroke.tag-tunnel,
1888 path.line.stroke.tag-location-underground,
1889 path.line.stroke.tag-location-underwater {
1890 stroke-opacity: 0.3;
1892 path.line.casing.tag-tunnel,
1893 path.line.casing.tag-location-underground,
1894 path.line.stroke.tag-location-underwater {
1895 stroke-opacity: 0.5;
1896 stroke-linecap: butt;
1897 stroke-dasharray: none;
1901 /* embankments / cuttings */
1902 path.line.shadow.tag-embankment,
1903 path.line.shadow.tag-cutting {
1906 path.line.casing.tag-embankment,
1907 path.line.casing.tag-cutting {
1908 stroke-opacity: 0.5;
1911 stroke-dasharray: 2, 4;
1912 stroke-linecap: butt;
1915 .low-zoom path.line.shadow.tag-embankment,
1916 .low-zoom path.line.shadow.tag-cutting {
1919 .low-zoom path.line.casing.tag-embankment,
1920 .low-zoom path.line.casing.tag-cutting {
1925 /* Surface - unpaved */
1926 path.line.casing.tag-unpaved {
1928 stroke-linecap: butt;
1929 stroke-dasharray: 4, 3;
1931 .low-zoom path.line.casing.tag-unpaved {
1932 stroke-dasharray: 3, 2;
1934 path.line.casing.tag-bridge.tag-unpaved {
1936 stroke-dasharray: 4, 3;
1938 .low-zoom path.line.casing.tag-bridge.tag-unpaved {
1940 stroke-dasharray: 3, 2;
1944 /* Status (e.g. proposed, abandoned) */
1945 path.area.stroke.tag-status,
1946 path.line.stroke.tag-status,
1947 path.area.casing.tag-status,
1948 path.line.casing.tag-status {
1949 stroke-linecap: butt;
1950 stroke-dasharray: 7, 3;
1952 .low-zoom path.area.stroke.tag-status,
1953 .low-zoom path.line.stroke.tag-status,
1954 .low-zoom path.area.casing.tag-status,
1955 .low-zoom path.line.casing.tag-status {
1956 stroke-dasharray: 5, 2;
1959 /* Road Closed Status */
1960 .preset-icon .icon.iD-highway-construction {
1964 path.line.shadow.tag-status.tag-status-construction {
1967 path.line.casing.tag-status.tag-status-construction {
1970 stroke-linecap: butt;
1971 stroke-dasharray: none
1973 path.line.stroke.tag-status.tag-status-construction {
1976 stroke-linecap: butt;
1977 stroke-dasharray: 10, 10;
1979 .low-zoom path.line.shadow.tag-status.tag-status-construction {
1982 .low-zoom path.line.casing.tag-status.tag-status-construction {
1985 .low-zoom path.line.stroke.tag-status.tag-status-construction {
1987 stroke-dasharray: 8, 8;
1992 path.stroke.tag-building {
1993 stroke: rgb(224, 110, 95);
1995 path.fill.tag-building {
1996 stroke: rgba(224, 110, 95, 0.3);
1997 fill: rgba(224, 110, 95, 0.3);
1999 .preset-icon-fill-area.tag-parking-multi-storey,
2000 .preset-icon-fill-area.tag-building {
2001 border-color: rgb(224, 110, 95);
2002 background-color: rgba(224, 110, 95, 0.3);
2006 /* "Special" paths - platforms, piers, crossings */
2007 .preset-icon .icon.tag-public_transport-platform,
2008 .preset-icon .icon.tag-railway-platform,
2009 .preset-icon .icon.tag-man_made-pier,
2010 .preset-icon .icon.tag-footway.tag-footway-crossing,
2011 .preset-icon .icon.tag-crossing {
2016 .preset-icon-fill-area.tag-public_transport-platform,
2017 .preset-icon-fill-area.tag-railway-platform,
2018 .preset-icon-fill-area.tag-man_made-pier,
2019 .preset-icon-fill-area.tag-footway.tag-footway-crossing,
2020 .preset-icon-fill-area.tag-crossing {
2022 background-color: #dca;
2025 path.line.shadow.tag-public_transport-platform,
2026 path.line.shadow.tag-railway-platform,
2027 path.line.shadow.tag-man_made-pier,
2028 path.line.shadow.tag-footway.tag-footway-crossing,
2029 path.line.shadow.tag-crossing {
2032 path.line.casing.tag-public_transport-platform,
2033 path.line.casing.tag-railway-platform,
2034 path.line.casing.tag-man_made-pier,
2035 path.line.casing.tag-footway.tag-footway-crossing,
2036 path.line.casing.tag-crossing {
2039 stroke-linecap: round;
2040 stroke-dasharray: none;
2042 path.line.stroke.tag-public_transport-platform,
2043 path.line.stroke.tag-railway-platform,
2044 path.line.stroke.tag-man_made-pier,
2045 path.line.stroke.tag-footway.tag-footway-crossing,
2046 path.line.stroke.tag-crossing {
2049 stroke-linecap: butt;
2050 stroke-dasharray: 6, 6;
2053 .low-zoom path.line.shadow.tag-public_transport-platform,
2054 .low-zoom path.line.shadow.tag-railway-platform,
2055 .low-zoom path.line.shadow.tag-man_made-pier,
2056 .low-zoom path.line.shadow.tag-footway.tag-footway-crossing,
2057 .low-zoom path.line.shadow.tag-crossing {
2060 .low-zoom path.line.casing.tag-public_transport-platform,
2061 .low-zoom path.line.casing.tag-railway-platform,
2062 .low-zoom path.line.casing.tag-man_made-pier,
2063 .low-zoom path.line.casing.tag-footway.tag-footway-crossing,
2064 .low-zoom path.line.casing.tag-crossing {
2067 .low-zoom path.line.stroke.tag-public_transport-platform,
2068 .low-zoom path.line.stroke.tag-railway-platform,
2069 .low-zoom path.line.stroke.tag-man_made-pier,
2070 .low-zoom path.line.stroke.tag-footway.tag-footway-crossing,
2071 .low-zoom path.line.stroke.tag-crossing {
2073 stroke-linecap: butt;
2074 stroke-dasharray: 3, 3;
2077 g.midpoint.tag-public_transport-platform .fill,
2078 g.midpoint.tag-railway-platform .fill,
2079 g.midpoint.tag-man_made-pier .fill,
2080 g.midpoint.tag-footway.tag-footway-crossing .fill,
2081 g.midpoint.tag-crossing .fill {
2088 /* marked crossings, zebras */
2089 .preset-icon .icon.tag-crossing.tag-crossing-marked,
2090 .preset-icon .icon.tag-crossing.tag-crossing-zebra {
2094 path.line.casing.tag-crossing.tag-crossing-marked,
2095 path.line.casing.tag-crossing.tag-crossing-zebra {
2098 path.line.stroke.tag-crossing.tag-crossing-marked,
2099 path.line.stroke.tag-crossing.tag-crossing-zebra {
2101 stroke-dasharray: 6, 4;
2103 .low-zoom path.line.stroke.tag-crossing.tag-crossing-marked,
2104 .low-zoom path.line.stroke.tag-crossing.tag-crossing-zebra {
2105 stroke-dasharray: 3, 2;
2109 path.line.shadow.tag-attraction-summer_toboggan,
2110 path.line.shadow.tag-attraction-water_slide {
2113 path.line.casing.tag-attraction-summer_toboggan,
2114 path.line.casing.tag-attraction-water_slide {
2117 path.line.stroke.tag-attraction-summer_toboggan,
2118 path.line.stroke.tag-attraction-water_slide {
2121 .low-zoom path.line.shadow.tag-attraction-summer_toboggan,
2122 .low-zoom path.line.shadow.tag-attraction-water_slide {
2125 .low-zoom path.line.casing.tag-attraction-summer_toboggan,
2126 .low-zoom path.line.casing.tag-attraction-water_slide {
2129 .low-zoom path.line.stroke.tag-attraction-summer_toboggan,
2130 .low-zoom path.line.stroke.tag-attraction-water_slide {
2133 path.line.stroke.tag-attraction-summer_toboggan {
2136 path.line.casing.tag-attraction-summer_toboggan {
2140 path.line.stroke.tag-attraction-water_slide {
2143 path.line.casing.tag-attraction-water_slide {
2150 cursor: not-allowed !important;
2155 cursor: auto; /* Opera */
2156 cursor: url(<%= asset_path("iD/img/cursor-grab.png") %>) 9 9, auto; /* FF */
2159 .mode-browse .point,
2160 .mode-select .point {
2161 cursor: pointer; /* Opera */
2162 cursor: url(<%= asset_path("iD/img/cursor-select-point.png") %>), pointer; /* FF */
2165 .mode-select .vertex,
2166 .mode-browse .vertex {
2167 cursor: pointer; /* Opera */
2168 cursor: url(<%= asset_path("iD/img/cursor-select-vertex.png") %>), pointer; /* FF */
2172 .mode-select .line {
2173 cursor: pointer; /* Opera */
2174 cursor: url(<%= asset_path("iD/img/cursor-select-line.png") %>), pointer; /* FF */
2178 .mode-browse .area {
2179 cursor: pointer; /* Opera */
2180 cursor: url(<%= asset_path("iD/img/cursor-select-area.png") %>), pointer; /* FF */
2183 .mode-select .midpoint,
2184 .mode-browse .midpoint {
2185 cursor: pointer; /* Opera */
2186 cursor: url(<%= asset_path("iD/img/cursor-select-split.png") %>), pointer; /* FF */
2189 .mode-select .behavior-multiselect .point,
2190 .mode-select .behavior-multiselect .vertex,
2191 .mode-select .behavior-multiselect .line,
2192 .mode-select .behavior-multiselect .area {
2193 cursor: pointer; /* Opera */
2194 cursor: url(<%= asset_path("iD/img/cursor-select-add.png") %>), pointer; /* FF */
2197 .mode-select .behavior-multiselect .selected {
2198 cursor: pointer; /* Opera */
2199 cursor: url(<%= asset_path("iD/img/cursor-select-remove.png") %>), pointer; /* FF */
2202 .mode-draw-line #map,
2203 .mode-draw-area #map,
2204 .mode-add-line #map,
2205 .mode-add-area #map,
2206 .mode-drag-node #map,
2207 .mode-drag-note #map {
2208 cursor: crosshair; /* Opera */
2209 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2212 .mode-draw-line .way.target,
2213 .mode-draw-area .way.target,
2214 .mode-add-line .way.target,
2215 .mode-add-area .way.target,
2216 .mode-drag-node .way.target {
2217 cursor: crosshair; /* Opera */
2218 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-line.png") %>) 9 9, crosshair; /* FF */
2221 .mode-draw-line .vertex.target,
2222 .mode-draw-area .vertex.target,
2223 .mode-add-line .vertex.target,
2224 .mode-add-area .vertex.target,
2225 .mode-drag-node .vertex.target {
2226 cursor: crosshair; /* Opera */
2227 cursor: url(<%= asset_path("iD/img/cursor-draw-connect-vertex.png") %>) 9 9, crosshair; /* FF */
2230 .mode-add-point #map,
2231 .mode-add-note #map,
2232 .mode-browse.lasso #map,
2233 .mode-browse.lasso .way,
2234 .mode-browse.lasso .vertex,
2235 .mode-browse.lasso .midpoint,
2236 .mode-select.lasso #map,
2237 .mode-select.lasso .way,
2238 .mode-select.lasso .vertex,
2239 .mode-select.lasso .midpoint {
2240 cursor: crosshair; /* Opera */
2241 cursor: url(<%= asset_path("iD/img/cursor-draw.png") %>) 9 9, crosshair; /* FF */
2245 .mode-browse .kr_error,
2247 .mode-select .kr_error,
2253 /* photo viewer div */
2261 background-color: #fff;
2263 [dir='rtl'] #photoviewer {
2268 @media screen and (min-width: 1600px) {
2275 #photoviewer button.thumb-hide {
2284 #photoviewer button.resize-handle-xy {
2290 cursor: nesw-resize;
2295 #photoviewer button.resize-handle-x {
2307 #photoviewer button.resize-handle-y {
2320 .photo-wrapper img {
2327 .photo-wrapper .photo-attribution {
2339 .photo-attribution a,
2340 .photo-attribution a:visited,
2341 .photo-attribution span {
2346 /* markers and sequences */
2348 pointer-events: none;
2350 .mode-browse .viewfield-group,
2351 .mode-select .viewfield-group {
2352 pointer-events: visible;
2356 .viewfield-group.selected * {
2357 fill: #ffee00 !important;
2359 .viewfield-group.hovered * {
2360 fill: #eebb00 !important;
2363 .viewfield-group circle {
2366 stroke-opacity: 0.4;
2369 .viewfield-group.highlighted circle {
2371 stroke-opacity: 0.9;
2374 .viewfield-group.highlighted.hovered circle {
2377 stroke-opacity: 0.9;
2380 .viewfield-group.highlighted.selected circle {
2387 .viewfield-group .viewfield {
2392 .viewfield-group.highlighted .viewfield {
2396 .viewfield-group.highlighted.hovered .viewfield {
2400 .viewfield-group.highlighted.selected .viewfield {
2405 .viewfield-group.selected .viewfield-scale {
2406 transform: scale(2,2);
2412 stroke-opacity: 0.4;
2414 .sequence.highlighted,
2415 .sequence.selected {
2421 /* Streetside Image Layer */
2422 .layer-streetside-images {
2423 pointer-events: none;
2425 .layer-streetside-images .viewfield-group * {
2428 .layer-streetside-images .sequence {
2430 stroke-opacity: 0.85; /* bump opacity - only one per road */
2434 /* Mapillary Image Layer */
2435 .layer-mapillary-images {
2436 pointer-events: none;
2438 .layer-mapillary-images .viewfield-group * {
2441 .layer-mapillary-images .sequence {
2446 /* Mapillary Sign Layer */
2447 .layer-mapillary-signs {
2448 pointer-events: none;
2450 .layer-mapillary-signs .icon-sign {
2451 outline: 2px solid transparent;
2452 pointer-events: visible;
2455 .layer-mapillary-signs .icon-sign:hover {
2456 outline: 5px solid #eebb00;
2457 background-color: #eebb00;
2459 .layer-mapillary-signs .icon-sign.selected {
2460 outline: 5px solid #ffee00;
2461 background-color: #ffee00;
2465 /* OpenStreetCam Image Layer */
2466 .layer-openstreetcam-images {
2467 pointer-events: none;
2469 .layer-openstreetcam-images .viewfield-group * {
2472 .layer-openstreetcam-images .sequence {
2477 /* Streetside Viewer (pannellum) */
2478 .ms-wrapper .photo-attribution .image-link {
2481 .ms-wrapper .photo-attribution .attribution-row {
2483 flex-flow: row nowrap;
2484 justify-content: space-between;
2485 align-items: center;
2488 .ms-wrapper .photo-attribution .image-view-link {
2492 .ms-wrapper .photo-attribution .image-report-link {
2496 .ms-wrapper .photo-attribution a:active,
2497 .ms-wrapper .photo-attribution a:hover {
2501 .ms-wrapper .pnlm-compass.pnlm-control {
2506 background-size: contain;
2507 background-repeat: no-repeat no-repeat;
2510 label.streetside-hires {
2513 .streetside-hires span {
2516 .streetside-hires input[type="checkbox"] {
2524 /* Mapillary viewer */
2525 #mly .domRenderer .TagSymbol {
2527 background-color: rgba(0,0,0,0.4);
2532 #mly .domRenderer .Attribution {
2533 /* we will roll our own to avoid async update issues like #4526 */
2537 .mly-wrapper .photo-attribution a:active,
2538 .mly-wrapper .photo-attribution a:hover {
2542 .mly-wrapper .mapillary-js-dom {
2547 /* OpenStreetCam viewer */
2550 background-color: #000;
2551 background-image: url(<%= asset_path("iD/img/loader-black.gif") %>);
2552 background-position: center;
2553 background-repeat: no-repeat;
2556 .osc-wrapper .photo-attribution a:active,
2557 .osc-wrapper .photo-attribution a:hover {
2564 transform-origin:0 0;
2565 -ms-transform-origin:0 0;
2566 -webkit-transform-origin:0 0;
2567 -moz-transform-origin:0 0;
2568 -o-transform-origin:0 0;
2572 /* photo-controls (step forward, back, rotate) */
2573 .photo-controls-wrap {
2582 display: inline-block;
2586 .photo-controls button,
2587 .photo-controls button:focus {
2590 background: rgba(0,0,0,0.65);
2594 .photo-controls button:first-of-type {
2595 border-radius: 3px 0 0 3px;
2597 .photo-controls button:last-of-type {
2598 border-radius: 0 3px 3px 0;
2600 .photo-controls button:hover,
2601 .photo-controls button:active {
2602 background: rgba(0,0,0,0.85);
2606 /* OSM Notes and KeepRight Layers */
2608 .kr_error-header-icon .kr_error-fill,
2609 .layer-keepRight .kr_error .kr_error-fill {
2611 stroke-width: 1.3px; /* NOTE: likely a better way to scale the icon stroke */
2614 .note-header-icon .note-fill,
2615 .layer-notes .note .note-fill {
2620 .note-header-icon.new .note-fill,
2621 .layer-notes .note.new .note-fill {
2626 .note-header-icon.closed .note-fill,
2627 .layer-notes .note.closed .note-fill {
2633 /* slight adjustments to preset icon for note icons */
2634 .note-header-icon .preset-icon-28 {
2637 .note-header-icon .note-icon-annotation {
2643 .note-header-icon .note-icon-annotation .icon {
2649 /* Keep Right Errors
2650 ------------------------------------------------------- */
2651 .kr_error_type_20, /* multiple nodes on same spot */
2652 .kr_error_type_40, /* impossible oneways */
2653 .kr_error_type_210, /* self intersecting ways */
2654 .kr_error_type_270, /* unusual motorway connection */
2655 .kr_error_type_310, /* roundabout issues */
2656 .kr_error_type_320, /* improper _link */
2657 .kr_error_type_350 { /* improper bridge tag */
2661 .kr_error_type_50 { /* almost junctions */
2665 .kr_error_type_60, /* deprecated tags */
2666 .kr_error_type_70, /* tagging issues */
2667 .kr_error_type_90, /* motorway without ref */
2668 .kr_error_type_100, /* place of worship without religion */
2669 .kr_error_type_110, /* poi without name */
2670 .kr_error_type_150, /* railway crossing without tag */
2671 .kr_error_type_220, /* misspelled tag */
2672 .kr_error_type_380 { /* non-physical sport tag */
2676 .kr_error_type_130 { /* disconnected ways */
2680 .kr_error_type_170 { /* FIXME tag */
2684 .kr_error_type_190 { /* intersection without junction */
2688 .kr_error_type_200 { /* overlapping ways */
2692 .kr_error_type_160, /* railway layer conflict */
2693 .kr_error_type_230 { /* layer conflict */
2697 .kr_error_type_280 { /* boundary issues */
2701 .kr_error_type_180, /* relation without type */
2702 .kr_error_type_290 { /* turn restriction issues */
2706 .kr_error_type_300, /* missing maxspeed */
2707 .kr_error_type_390 { /* missing tracktype */
2711 .kr_error_type_360, /* language unknown */
2712 .kr_error_type_370, /* doubled places */
2713 .kr_error_type_410 { /* website issues */
2717 .kr_error_type_120, /* way without nodes */
2718 .kr_error_type_400 { /* geometry / turn angles */
2723 /* Custom Map Data (geojson, gpx, kml, vector tile) */
2725 pointer-events: none;
2728 .layer-mapdata path.shadow {
2729 pointer-events: stroke;
2735 .layer-mapdata path.MultiPoint.shadow,
2736 .layer-mapdata path.Point.shadow {
2737 pointer-events: fill;
2741 .layer-mapdata path.shadow.hover:not(.selected) {
2742 stroke-opacity: 0.4;
2744 .layer-mapdata path.shadow.selected {
2745 stroke-opacity: 0.7;
2748 .layer-mapdata path.stroke {
2754 .layer-mapdata path.fill {
2756 stroke-opacity: 0.3;
2763 .layer-mapdata text.label-halo,
2764 .layer-mapdata text.label {
2767 dominant-baseline: middle;
2769 .layer-mapdata text.label {
2772 .layer-mapdata text.label.hover,
2773 .layer-mapdata text.label.selected {
2776 .layer-mapdata text.label-halo {
2780 stroke-miterlimit: 1;
2785 .low-zoom.fill-wireframe path.stroke,
2786 .fill-wireframe path.stroke {
2787 stroke-width: 1 !important;
2788 stroke-opacity: 0.5 !important;
2789 stroke-dasharray: none !important;
2790 fill: none !important;
2792 .low-zoom.fill-wireframe .layer-mapdata path.stroke,
2793 .fill-wireframe .layer-mapdata path.stroke {
2794 stroke-width: 2 !important;
2795 stroke-opacity: 1 !important;
2798 .low-zoom.fill-wireframe path.shadow,
2799 .fill-wireframe path.shadow {
2803 .fill-wireframe path.shadow.related:not(.selected),
2804 .fill-wireframe path.shadow.hover:not(.selected) {
2805 stroke-opacity: 0.4;
2807 .fill-wireframe path.shadow.selected {
2808 stroke-opacity: 0.6;
2811 .fill-wireframe .point,
2812 .fill-wireframe .areaicon,
2813 .fill-wireframe .areaicon-halo,
2814 .fill-wireframe path.casing,
2815 .fill-wireframe path.fill,
2816 .fill-wireframe path.oneway {
2817 display: none !important;
2820 .fill-partial path.area.fill {
2823 pointer-events: none;
2825 .mode-browse .fill-partial path.area.fill,
2826 .mode-select .fill-partial path.area.fill {
2827 pointer-events: visibleStroke;
2830 ------------------------------------------------------- */
2832 Opera misbehaves when the window is resized vertically unless 100% width + height are
2833 applied to both html and body. https://gist.github.com/jfirebaugh/bd225bcfdd3a633850c4
2841 font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
2842 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2843 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
2849 -ms-user-select: none;
2850 -ms-content-zooming: none;
2855 vertical-align: middle;
2872 -webkit-filter: none !important;
2873 filter: none !important;
2874 -webkit-duration: 200ms;
2875 transition-duration: 200ms;
2879 -webkit-filter: grayscale(80%) brightness(80%);
2880 filter: grayscale(80%) brightness(80%);
2881 -webkit-duration: 200ms;
2882 transition-duration: 200ms;
2886 /* Can't be display: none or the clippaths are ignored. */
2892 div, textarea, label, input, form, span, ul, li, ol, a, button, h1, h2, h3, h4, h5, p, img {
2893 -moz-box-sizing: border-box;
2894 -webkit-box-sizing: border-box;
2895 box-sizing: border-box;
2898 a, button, input, textarea {
2899 -webkit-tap-highlight-color: rgba(0,0,0,0);
2900 -webkit-touch-callout: none;
2917 margin-bottom: 20px;
2922 h4:last-child { margin-bottom: 0;}
2928 margin-bottom: 10px;
2933 padding-bottom: 10px;
2937 outline-color: transparent;
2938 outline-style: none;
2941 ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
2943 opacity: 1; /* Firefox */
2945 :-ms-input-placeholder { /* Internet Explorer 10-11 */
2948 ::-ms-input-placeholder { /* Microsoft Edge */
2974 ------------------------------------------------------- */
2977 font:normal 12px/20px "-apple-system", BlinkMacSystemFont,
2978 "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
2979 "Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
2990 background-color: #fff;
2992 border: 1px solid #ccc;
2993 padding: 5px 20px 5px 10px;
2996 text-overflow: ellipsis;
2998 [dir='rtl'] textarea,
2999 [dir='rtl'] input[type=text],
3000 [dir='rtl'] input[type=search],
3001 [dir='rtl'] input[type=number],
3002 [dir='rtl'] input[type=url],
3003 [dir='rtl'] input[type=tel],
3004 [dir='rtl'] input[type=email] {
3005 padding: 5px 10px 5px 20px;
3010 background-color: #f1f1f1;
3016 background-color: #eee;
3017 cursor: not-allowed;
3020 input[type="checkbox"],
3021 input[type="radio"] {
3029 [dir='rtl'] input[type="checkbox"],
3030 [dir='rtl'] input[type="radio"] {
3038 background-color: #fff;
3039 border-collapse: collapse;
3046 table.tags, table.tags td, table.tags th {
3047 border: 1px solid #ccc;
3056 ------------------------------------------------------- */
3057 .col6 { float: left; width: 50.0000%; max-width: 600px; }
3058 .col8 { float: left; width: 66.6666%; }
3059 .col12 { float: left; width: 100.0000%; }
3063 ------------------------------------------------------- */
3069 background: #f6f6f6;
3073 background: #ececec;
3077 background: rgba(0,0,0,.5);
3081 background: rgba(0,0,0,.75);
3086 .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 button {
3144 border-left: 1px solid rgba(0,0,0,.5);
3148 .fillL .joined button {
3149 border-right: 1px solid #fff;
3151 .joined button:first-child {
3152 border-radius: 4px 0 0 4px;
3154 [dir='rtl'] .joined button:first-child {
3155 border-radius: 0 4px 4px 0;
3157 .joined button:last-child {
3158 border-right-width: 0;
3159 border-radius: 0 4px 4px 0;
3161 [dir='rtl'] .joined 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[disabled].action,
3184 button[disabled].action:hover {
3185 background: #cccccc;
3187 cursor: not-allowed;
3192 ------------------------------------------------------- */
3194 vertical-align: top;
3200 vertical-align: text-top;
3209 [dir='rtl'] .icon.pre-text {
3214 .icon.pre-text.user-icon {
3241 /* Toolbar / Persistent UI Elements
3242 ------------------------------------------------------- */
3245 flex-flow: row nowrap;
3246 justify-content: space-between;
3259 flex-flow: row nowrap;
3262 .tool-group.leading-area {
3264 justify-content: flex-start;
3266 .tool-group.center-area {
3267 justify-content: center;
3269 .tool-group.trailing-area {
3270 justify-content: flex-start;
3277 .tool-group button {
3279 flex-flow: row nowrap;
3280 align-items: center;
3283 white-space: nowrap;
3285 .tool-group button .icon {
3288 .tool-group button .label {
3293 button.save .count {
3294 display: inline-block;
3295 border: 0px solid #ccc;
3296 border-left-width: 1px;
3297 padding: 0px 0px 0px 8px;
3301 [dir='rtl'] button.save .count {
3302 border-left-width: 0px;
3303 border-right-width: 1px;
3304 padding: 0px 8px 0px 0px;
3306 button.save.disabled .count {
3307 border: 0px solid rgba(0,0,0,0.25);
3308 border-left-width: 1px;
3310 [dir='rtl'] button.save.disabled .count {
3311 border-left-width: 0px;
3312 border-right-width: 1px;
3313 padding: 0px 8px 0px 0px;
3315 #bar.narrow button.save .count {
3319 button.save .label {
3323 [dir='rtl'] button.save .label {
3328 .help-wrap svg.icon.pre-text.add-note,
3329 button.add-note svg.icon {
3332 color: rgba(0,0,0,0.25);
3337 button.add-note svg.icon {
3341 [dir='rtl'] button.add-note svg.icon {
3343 margin-right: unset;
3345 .help-wrap svg.icon.pre-text.add-note {
3354 justify-content: flex-end;
3362 [dir='rtl'] .spinner img {
3363 -moz-transform: scaleX(-1);
3364 -o-transform: scaleX(-1);
3365 -webkit-transform: scaleX(-1);
3366 transform: scaleX(-1);
3368 -ms-filter: "FlipH";
3372 #bar.narrow .tool-group {
3375 #bar.narrow .spinner,
3376 #bar.narrow button .label {
3379 #bar.narrow button .count {
3380 border-left-width: 0;
3381 border-right-width: 0;
3385 /* Header for modals / panes
3386 ------------------------------------------------------- */
3388 border-bottom: 1px solid #ccc;
3396 white-space: nowrap;
3397 text-overflow: ellipsis;
3415 .field-help-title button.close,
3416 .sidebar-component .header button.data-editor-close,
3417 .sidebar-component .header button.note-editor-close,
3418 .sidebar-component .header button.keepRight-editor-close,
3419 .entity-editor-pane .header button.preset-close,
3420 .preset-list-pane .header button.preset-choose {
3425 [dir='rtl'] .field-help-title button.close,
3426 [dir='rtl'] .sidebar-component .header button.data-editor-close,
3427 [dir='rtl'] .sidebar-component .header button.note-editor-close,
3428 [dir='rtl'] .sidebar-component .header button.keepRight-editor-close,
3429 [dir='rtl'] .entity-editor-pane .header button.preset-close,
3430 [dir='rtl'] .preset-list-pane .header button.preset-choose {
3435 .entity-editor-pane .header button.preset-choose {
3440 [dir='rtl'] .entity-editor-pane .header button.preset-choose {
3458 [dir='rtl'] .modal > button {
3467 padding: 5px 20px 5px 20px;
3468 border-top: 1px solid #ccc;
3469 background-color: #f6f6f6;
3473 justify-content: space-between;
3479 justify-content: center;
3484 justify-content: space-between;
3487 .header-block-outer {
3491 .header-block-close {
3493 justify-content: flex-end;
3496 /* Hide/Toggle collapsable sections (aka Disclosure)
3497 ------------------------------------------------------- */
3498 .hide-toggle .icon.pre-text {
3499 vertical-align: text-top;
3504 [dir='rtl'] .hide-toggle .icon.pre-text {
3509 a:visited.hide-toggle,
3511 display: inline-block;
3514 padding-bottom: 5px;
3518 /* Sidebar / Inspector
3519 ------------------------------------------------------- */
3525 background: #f6f6f6;
3526 -ms-user-select: element;
3527 border: 0px solid #ccc;
3528 border-right-width: 1px;
3530 [dir='rtl'] #sidebar {
3532 border-right-width: 0px;
3533 border-left-width: 1px;
3544 [dir='rtl'] #sidebar-resizer {
3549 #sidebar.collapsed #sidebar-resizer {
3550 /* make target wider to avoid the user accidentally resizing window */
3554 [dir='rtl'] #sidebar.collapsed #sidebar-resizer {
3558 .sidebar-component {
3566 .sidebar-component .body {
3616 .feature-list-pane .inspector-body,
3617 .preset-list-pane .inspector-body {
3620 .entity-editor-pane .inspector-body,
3621 .selection-list-pane .inspector-body {
3626 padding: 20px 20px 5px 20px;
3630 #sidebar .search-header .icon {
3635 pointer-events: none;
3637 [dir='rtl'] #sidebar .search-header .icon {
3642 #sidebar .search-header input {
3650 border-bottom-width: 1px;
3657 /* Feature List / Search Results
3658 ------------------------------------------------------- */
3664 .feature-list-item {
3667 border-bottom: 1px solid #ccc;
3673 background-color: #ccc;
3679 [dir='rtl'] .geocode-item {
3683 .geocode-item:hover {
3684 background-color: #aaa;
3687 .feature-list-item {
3688 background-color: #fff;
3693 .feature-list-item:hover {
3694 background-color: #ececec;
3696 .feature-list-item button {
3697 background: transparent;
3699 .feature-list-item .label {
3702 white-space: nowrap;
3703 text-overflow: ellipsis;
3705 border-left: 1px solid rgba(0, 0, 0, .1);
3707 [dir='rtl'] .feature-list-item .label {
3711 .feature-list-item .label .icon {
3714 .feature-list-item .close {
3718 .feature-list-item .close .icon {
3721 .feature-list-item .entity-type {
3724 .feature-list-item:hover .entity-type {
3727 .feature-list-item .entity-name {
3728 font-weight: normal;
3732 [dir='rtl'] .feature-list-item .entity-name {
3734 padding-right: 10px;
3738 /* Preset List and Icons
3739 ------------------------------------------------------- */
3742 padding: 20px 20px 10px 20px;
3743 border-bottom: 1px solid #ccc;
3746 .preset-list-button-wrap {
3748 margin-bottom: 10px;
3752 .preset-list-button {
3756 border: 1px solid #ccc;
3759 .preset-list.filtered .preset-list-item:first-child .preset-list-button {
3760 background: #ececec;
3763 .preset-icon-fill-area {
3773 .preset-icon-fill-vertex {
3780 border: 1.5px solid #333;
3781 border-radius: 20px;
3782 background-color: #efefef;
3783 backface-visibility: hidden;
3786 [dir='rtl'] .preset-icon-fill-vertex,
3787 [dir='rtl'] .preset-icon-fill-area {
3792 .preset-icon-frame {
3798 [dir='rtl'] .preset-icon-frame {
3803 .preset-icon-frame .icon {
3815 .preset-icon-60 .icon {
3827 .preset-icon-44 .icon {
3839 .preset-icon-28 .icon {
3851 .preset-icon-24 .icon {
3856 [dir='rtl'] .preset-list-button-wrap .preset-icon {
3861 [dir='rtl'] .preset-list-button-wrap .preset-icon-28 {
3865 [dir='rtl'] .preset-list-button-wrap .preset-icon-24 {
3869 .preset-list-button .label {
3871 flex-flow: row wrap;
3872 align-items: center;
3873 background-color: #f6f6f6;
3881 border-left: 1px solid rgba(0, 0, 0, .1);
3882 border-radius: 0 3px 3px 0;
3884 [dir='rtl'] .preset-list-button .label {
3889 border-right: 1px solid rgba(0, 0, 0, .1);
3890 border-radius: 3px 0 0 3px;
3893 .preset-list-button .label-inner {
3896 .preset-list-button .label-inner .namepart {
3898 white-space: nowrap;
3899 text-overflow: ellipsis;
3901 padding-right: 30px;
3903 [dir='rtl'] .preset-list-button .label-inner .namepart {
3908 .preset-list-button:hover .label,
3909 .preset-list-button:focus .label {
3910 background-color: #ececec;
3913 .preset-list-item button.tag-reference-button {
3915 border: 1px solid #ccc;
3916 border-radius: 0 3px 3px 0;
3921 background: #f6f6f6;
3923 [dir='rtl'] .preset-list-item button.tag-reference-button {
3926 border-radius: 3px 0 0 3px;
3929 .preset-list-item button.tag-reference-button:hover {
3930 background: #f1f1f1;
3932 .preset-list-item button.tag-reference-button .icon {
3936 img.tag-reference-wiki-image {
3939 width: -webkit-calc(33.3333% - 10px);
3940 width: calc(33.3333% - 10px);
3943 margin: 10px 5px 15px 20px;
3947 .current .preset-list-button,
3948 .current .preset-list-button .label {
3949 background-color: #e8ebff;
3952 .category .preset-list-button:after,
3953 .category .preset-list-button:before {
3957 left: -1px; right: -1px;
3958 border: 1px solid #ccc;
3959 border-bottom: none;
3960 border-radius: 6px 6px 0 0;
3964 .category .preset-list-button:before {
3968 .subgrid .preset-list {
3969 padding: 10px 10px 0 10px;
3973 width: -webkit-calc(100% + 20px);
3978 border: solid rgba(0, 0, 0, 0);
3980 border-bottom-color: #f1f1f1;
3984 margin-left: -webkit-calc(50% - 10px);
3990 ------------------------------------------------------- */
3993 flex-flow: row wrap;
3994 justify-content: flex-end;
4001 .data-editor .quick-links,
4002 .keepRight-editor .quick-links,
4003 .note-editor .quick-links {
4008 /* Entity/Preset Editor
4009 ------------------------------------------------------- */
4012 padding: 10px 0px 5px 0px;
4014 .preset-editor a.hide-toggle {
4015 margin: 0 20px 5px 20px;
4017 .preset-editor .form-fields-container {
4019 margin: 0 10px 10px 10px;
4022 .preset-editor .form-fields-container:empty {
4025 .entity-editor-pane .preset-list-item .preset-list-button-wrap {
4030 The parts of a field:
4031 - `.form-field` is a `div` wraps the entire thing
4032 - `.form-field-label` is a `label` that wraps the top part, it contains;
4033 - `span` classed `label-text`
4034 - 0..n buttons for "remove", "modified", "tag reference"
4035 - `.form-field-input-wrap` is a `label` or `div` that wraps the bottom part, it contains;
4036 - usually an `input`
4037 - sometimes some buttons (translate, increment, decrement)
4038 - or could just be a `div` with anything really
4039 - `.tag-reference-body` at the bottom (usually hidden)
4041 .------------------. -
4042 | Name | i | <- .form-field-label |
4043 +------------------+ |
4044 | Starbucks | + | <- .form-field-input-wrap > .form-field
4045 '------------------' |
4046 tag reference <- .tag-reference-body |
4052 flex-flow: row wrap;
4053 margin-bottom: 10px;
4055 -webkit-transition: margin-bottom 200ms;
4056 -moz-transition: margin-bottom 200ms;
4057 -o-transition: margin-bottom 200ms;
4058 transition: margin-bottom 200ms;
4062 .wrap-form-field:last-child .form-field {
4066 /* A `label` element that wraps the top section */
4069 flex-flow: row nowrap;
4075 background: #f6f6f6;
4076 border: 1px solid #ccc;
4077 border-radius: 4px 4px 0 0;
4080 .form-field-label .label-text {
4082 padding: 5px 0 5px 10px;
4084 [dir='rtl'] .form-field-label .label-text {
4085 padding: 5px 10px 5px 0;
4088 .form-field-label button {
4090 border-left: 1px solid #ccc;
4094 background: #f6f6f6;
4096 [dir='rtl'] .form-field-label button {
4098 border-right: 1px solid #ccc;
4100 .form-field-label button:hover {
4101 background: #f1f1f1;
4103 .form-field-label .icon {
4107 .form-field-label .modified-icon,
4108 .form-field-label .remove-icon {
4111 .modified .form-field-label .modified-icon,
4112 .present .form-field-label .remove-icon {
4113 display: inline-block;
4116 /* A `div` element that wraps the bottom section */
4117 .form-field-input-wrap {
4119 flex-flow: row nowrap;
4123 border-radius: 0 0 4px 4px;
4125 .nowrap .form-field-input-wrap {
4130 .form-field-input-wrap > input,
4131 .form-field-input-wrap > label,
4132 .form-field-input-wrap > textarea,
4133 .form-field-input-wrap > ul.chiplist {
4136 border: 1px solid #ccc;
4142 .form-field-input-wrap > textarea {
4144 border-radius: 0 0 4px 4px;
4147 /* Buttons inside fields */
4148 .form-field-button {
4153 background-color: #fff;
4154 border: 1px solid #ccc;
4156 border-top-width: 0;
4157 border-left-width: 0;
4158 vertical-align: top;
4160 [dir='rtl'] .form-field-button {
4161 border-left-width: 1px;
4162 border-right-width: 0;
4164 .form-field-button:hover {
4165 background-color: #f1f1f1;
4167 .form-field-button .icon {
4173 /* round corners of first/last child elements */
4174 .form-field-input-wrap > button:last-of-type {
4175 border-bottom-right-radius: 4px;
4177 [dir='rtl'] .form-field-input-wrap > button:last-of-type {
4178 border-bottom-left-radius: 4px;
4182 /* Field - Access, Cycleway
4183 ------------------------------------------------------- */
4184 .form-field-input-access,
4185 .form-field-input-cycleway {
4188 flex-flow: row wrap;
4191 /* Field - lists with labeled input items
4192 ------------------------------------------------------- */
4193 .form-field ul.labeled-inputs {
4195 border: 1px solid #ccc;
4197 border-radius: 0 0 4px 4px;
4201 .form-field ul.labeled-inputs li {
4202 border-top: 1px solid #ccc;
4204 flex-flow: row nowrap;
4206 .form-field ul.labeled-inputs li:first-child {
4209 .form-field ul.labeled-inputs li > span,
4210 .form-field ul.labeled-inputs li > div {
4215 .form-field ul.labeled-inputs li input {
4219 .form-field ul.labeled-inputs li input,
4220 .form-field ul.labeled-inputs li button {
4222 border-left-width: 1px;
4224 [dir='rtl'] .form-field ul.labeled-inputs li input,
4225 [dir='rtl'] .form-field ul.labeled-inputs li button {
4226 border-left-width: 0;
4227 border-right-width: 1px;
4231 /* Field - Structure
4232 ------------------------------------------------------- */
4233 .structure-extras-wrap {
4237 border: 1px solid #ccc;
4239 border-radius: 0 0 4px 4px;
4241 .structure-extras-wrap > ul.labeled-inputs {
4242 border: 1px solid #ccc;
4247 /* Field - Combo / Multicombo
4248 ------------------------------------------------------- */
4249 .form-field-input-combo > input:only-of-type {
4250 border-radius: 0 0 4px 4px;
4252 .form-field-input-combo.empty-combobox input,
4253 .form-field-input-multicombo .empty-combobox input {
4254 padding-right: 10px;
4257 .form-field-input-combo.empty-combobox .combobox-caret,
4258 .form-field-input-multicombo .empty-combobox .combobox-caret {
4262 .form-field-input-multicombo ul.chiplist {
4263 padding: 5px 7px 5px 7px;
4266 border-radius: 0 0 4px 4px;
4269 .form-field-input-multicombo li.chips {
4270 background-color: #eff2f7;
4271 border: 1px solid #ccd5e3;
4273 padding: 2px 0px 2px 5px;
4275 .form-field-input-multicombo li {
4276 display: inline-flex;
4277 flex-flow: row nowrap;
4278 align-items: center;
4283 .form-field-input-multicombo a {
4284 font-family: Arial, Helvetica, sans-serif !important;
4285 font-size: 16px !important;
4288 padding: 0px 5px 0px 5px;
4294 .form-field-input-multicombo .input-wrap {
4295 border: 1px solid #ddd;
4299 .form-field-input-multicombo input {
4305 .form-field-input-multicombo input:focus {
4306 border-radius: 4px !important;
4309 .form-field-input-multicombo .full-line-chips li {
4312 .form-field-input-multicombo .full-line-chips li:not(:last-child) {
4315 .form-field-input-multicombo .full-line-chips .input-wrap {
4320 /* Field - Text / Numeric
4321 ------------------------------------------------------- */
4322 .form-field-input-text > input:only-of-type,
4323 .form-field-input-tel > input:only-of-type,
4324 .form-field-input-email > input:only-of-type,
4325 .form-field-input-url > input:only-of-type {
4326 border-radius: 0 0 4px 4px;
4328 .form-field-input-number > input:only-of-type {
4329 border-radius: 0 0 0 4px;
4331 [dir='rtl'] .form-field-input-number > input:only-of-type {
4332 border-radius: 0 0 4px 0;
4334 .form-field-input-number > button:last-of-type {
4335 border-radius: 0 0 4px 0;
4337 [dir='rtl'] .form-field-input-number > button:last-of-type {
4338 border-radius: 0 0 0 4px;
4341 /* draw the up/down on the buttons */
4342 .form-field-input-number button.decrement::after,
4343 .form-field-input-number button.increment::after {
4345 height: 0; width: 0;
4347 left: 0; right: 0; bottom: 0; top: 0;
4350 .form-field-input-number button.decrement::after {
4351 border-top: 5px solid #ccc;
4352 border-left: 5px solid transparent;
4353 border-right: 5px solid transparent;
4355 .form-field-input-number button.increment::after {
4356 border-bottom: 5px solid #ccc;
4357 border-left: 5px solid transparent;
4358 border-right: 5px solid transparent;
4363 ------------------------------------------------------- */
4364 .form-field-input-check {
4370 border: 1px solid #ccc;
4374 .form-field-input-check > input[type="checkbox"] {
4379 .form-field-input-check > span {
4382 .form-field-input-check > .reverser.button {
4384 background-color: #eff2f7;
4385 border: 1px solid #ccd5e3;
4389 .form-field-input-check > .reverser.button.hide {
4393 .form-field-input-check:hover {
4394 background: #f1f1f1;
4396 .form-field-input-check .set {
4399 .form-field-input-check label:not(.set) input[type="checkbox"] {
4404 /* Field - Radio button
4405 ------------------------------------------------------- */
4406 .form-field-input-radio {
4409 flex-flow: row wrap;
4411 .form-field-input-radio > label {
4414 flex-flow: row nowrap;
4418 background-color: #fff;
4422 .form-field-input-radio > label:last-child {
4423 border-radius: 0 0 4px 4px;
4425 .form-field-input-radio > label:hover {
4426 background-color: #ececec;
4428 .form-field-input-radio > label.active {
4429 background-color: #e8ebff;
4431 .form-field-input-radio > label:not(:last-of-type) {
4432 border-bottom: 1px solid #ccc;
4434 .form-field-input-radio > label > input[type="radio"] {
4438 .form-field-input-radio > label > span {
4441 white-space: nowrap;
4442 text-overflow: ellipsis;
4445 /* Hide placeholder for radio buttons if another is active, or not in hover state */
4446 .form-field-input-radio label.active ~ .placeholder,
4447 .form-field-input-radio .placeholder {
4458 ------------------------------------------------------- */
4459 .form-field-input-maxspeed > input:first-of-type {
4460 border-radius: 0 0 0 4px;
4462 [dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
4463 border-radius: 0 0 4px 0;
4465 .form-field-input-maxspeed > input:last-of-type { /* unit field */
4469 border-radius: 0 0 4px 0;
4471 [dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
4473 border-radius: 0 0 0 4px;
4477 /* Field - Localized Name
4478 ------------------------------------------------------- */
4479 .form-field-input-localized > input.localized-main {
4480 border-radius: 0 0 0 4px;
4482 [dir='rtl'] .form-field-input-localized > input.localized-main {
4483 border-radius: 0 0 4px 0;
4485 .form-field-input-localized > button.localized-add {
4486 border-radius: 0 0 4px 0;
4488 [dir='rtl'] .form-field-input-localized > button.localized-add {
4489 border-radius: 0 0 0 4px;
4492 .form-field-input-localized button.localized-add.disabled,
4493 .form-field-input-localized input.localized-main.disabled,
4494 .form-field-input-localized input.localized-lang.disabled,
4495 .form-field-input-localized input.localized-value.disabled {
4497 background-color: #eee;
4498 cursor: not-allowed;
4501 /* nested subfields for name in different languages */
4502 .localized-multilingual {
4506 .localized-multilingual .entry {
4511 /* draws a little line connecting the multilingual field up to the name field */
4512 .localized-multilingual .entry::before {
4525 .localized-multilingual .entry .localized-lang {
4527 border-top-width: 0;
4530 .localized-multilingual .entry .localized-value {
4531 border-top-width: 0;
4532 border-radius: 0 0 4px 4px;
4538 ------------------------------------------------------- */
4539 .form-field-input-address {
4542 flex-flow: row wrap;
4543 border: 1px solid #ccc;
4560 [dir='rtl'] .addr-row input {
4561 border-right: 1px solid #ccc;
4565 .addr-row:first-of-type input {
4568 .addr-row input:first-of-type {
4571 [dir='rtl'] .addr-row input:first-of-type {
4574 .addr-row:last-of-type input:first-of-type {
4575 border-radius: 0 0 0 4px;
4577 [dir='rtl'] .addr-row:last-of-type input:first-of-type {
4578 border-radius: 0 0 4px 0;
4580 .addr-row:last-of-type input:last-of-type {
4581 border-radius: 0 0 4px 0;
4583 [dir='rtl'] .addr-row:last-of-type input:last-of-type {
4584 border-radius: 0 0 0 4px;
4588 /* Field - Wikipedia
4589 ------------------------------------------------------- */
4590 .form-field-input-wikipedia {
4592 flex-flow: row wrap;
4596 .wiki-lang-container,
4597 .wiki-title-container {
4599 flex-flow: row nowrap;
4604 .wiki-lang-container > input.wiki-lang,
4605 .wiki-title-container > input.wiki-title {
4610 .wiki-title-container > input.wiki-title {
4611 border-radius: 0 0 0 4px;
4613 [dir='rtl'] .wiki-title-container > input.wiki-title {
4614 border-radius: 0 0 4px 0;
4616 .wiki-title-container > button.wiki-link {
4617 border-radius: 0 0 4px 0;
4619 [dir='rtl'] .wiki-title-container > button.wiki-link {
4620 border-radius: 0 0 0 4px;
4624 /* Field - Restriction Editor
4625 ------------------------------------------------------- */
4626 .form-field-input-restrictions {
4628 border: 1px solid #ccc;
4630 border-radius: 0 0 4px 4px;
4633 .form-field-input-restrictions .restriction-controls-container {
4634 background-color: #fff;
4637 border-top: 1px solid #ccc;
4638 border-radius: 0 0 4px 4px;
4641 .restriction-controls-container .restriction-controls {
4643 -moz-user-select: none;
4644 -webkit-user-select: none;
4645 -ms-user-select: none;
4649 .restriction-controls .restriction-control {
4655 .restriction-control input,
4656 .restriction-control span {
4657 display: table-cell;
4662 .restriction-control span.restriction-control-label {
4666 .restriction-control input {
4670 vertical-align: middle;
4673 .form-field-input-restrictions .restriction-container {
4677 /* zero width space, so container takes up space */
4678 .form-field-input-restrictions .restriction-container:after {
4682 .form-field-input-restrictions svg.surface {
4687 .restriction-container .restriction-help {
4694 background-color: rgba(255, 255, 255, .8);
4697 pointer-events: none;
4699 -moz-user-select: none;
4700 -webkit-user-select: none;
4701 -ms-user-select: none;
4705 .restriction-help span {
4709 .restriction-help .qualifier {
4713 .restriction-help .qualifier.allow {
4716 .restriction-help .qualifier.restrict {
4719 .restriction-help .qualifier.only {
4724 /* Field - Changeset Comment
4725 ------------------------------------------------------- */
4726 .form-field-comment:not(.present) #preset-input-comment {
4727 border-color: rgb(230, 100, 100);
4729 .form-field-comment:not(.present) .form-field-label {
4730 border-color: rgb(230, 100, 100);
4731 background: rgba(230, 100, 100, 0.2);
4733 .form-field-comment:not(.present) button {
4734 border-color: rgb(230, 100, 100);
4739 ------------------------------------------------------- */
4743 box-shadow: 0 4px 10px 1px rgba(0,0,0,.2);
4749 border: 1px solid #ccc;
4750 border-radius: 0 0 4px 4px;
4756 border-top: 1px solid #ccc;
4757 text-overflow: ellipsis;
4758 white-space: nowrap;
4762 .combobox a.selected,
4764 background: #ececec;
4767 .combobox a:first-child {
4773 display: inline-block;
4778 vertical-align: top;
4780 pointer-events: none;
4782 [dir='rtl'] .combobox-caret {
4784 margin-right: -30px;
4787 .combobox-caret::after {
4789 height: 0; width: 0;
4791 left: 0; right: 0; bottom: 0; top: 0;
4793 border-top: 5px solid #ccc;
4794 border-left: 5px solid transparent;
4795 border-right: 5px solid transparent;
4798 /* Remove the field's bottom border radius when combobox is open */
4799 /* For some reason this stops the combobox from overlapping the bottom of the field */
4800 .combobox + * textarea:focus,
4801 .combobox + * input:focus {
4802 border-bottom-left-radius: 0 !important;
4803 border-bottom-right-radius: 0 !important;
4808 ------------------------------------------------------- */
4817 border: 1px solid #ccc;
4819 border-radius: 0 0 4px 4px;
4821 background: rgba(255,255,255,0.95);
4822 box-shadow: 0 0 30px 5px rgba(0,0,0,.4);
4825 .field-help-title h2 {
4830 .field-help-title button {
4839 margin-bottom: 10px;
4841 .field-help-nav-item {
4842 display: inline-block;
4847 .field-help-nav-item.active {
4849 border-bottom: 2px solid;
4851 .field-help-nav-item:hover {
4853 background-color: #efefef;
4856 .field-help-content {
4861 .field-help-content h3 {
4865 .field-help-content p {
4866 margin-bottom: 15px;
4868 .field-help-content ul li {
4873 .field-help-content .field-help-image {
4875 margin-bottom: 15px;
4878 .field-help-content svg.turn {
4882 .field-help-content svg.shadow {
4887 .field-help-content svg.from {
4890 .field-help-content svg.allow {
4893 .field-help-content svg.restrict {
4896 .field-help-content svg.only {
4900 .field-help-content p.from_shadow,
4901 .field-help-content p.allow_shadow,
4902 .field-help-content p.restrict_shadow,
4903 .field-help-content p.allow_turn,
4904 .field-help-content p.restrict_turn {
4909 /* More Fields dropdown
4910 ------------------------------------------------------- */
4912 padding: 0 20px 20px 20px;
4915 .changeset-editor .more-fields {
4916 padding: 15px 20px 0 20px;
4919 .more-fields label {
4921 flex-flow: row nowrap;
4922 justify-content: space-between;
4923 align-items: center;
4926 .more-fields input {
4930 [dir='rtl'] .more-fields input {
4935 .form-field-input-wrap .label {
4937 background: #f6f6f6;
4943 ------------------------------------------------------- */
4951 .tag-row .inner-wrap {
4953 flex-flow: row nowrap;
4958 .tag-row .value-wrap {
4963 .tag-row.readonly input.key,
4964 .tag-row.readonly input.value,
4965 .tag-row.readonly button.remove {
4967 background-color: #eee;
4968 cursor: not-allowed;
4975 border-bottom: 1px solid #ccc;
4976 border-left: 1px solid #ccc;
4979 [dir='rtl'] .tag-row input {
4981 border-right: 1px solid #ccc;
4985 .tag-row input.key {
4987 background-color: #f6f6f6;
4990 .tag-row input.value {
4991 border-right: 1px solid #ccc;
4993 [dir='rtl'] .tag-row input.value {
4994 border-left: 1px solid #ccc;
4997 .tag-row:first-child input.key {
4998 border-top: 1px solid #ccc;
4999 border-top-left-radius: 4px;
5001 [dir='rtl'] .tag-row:first-child input.key {
5002 border-top-left-radius: 0;
5003 border-top-right-radius: 4px;
5006 .tag-row:first-child input.value {
5007 border-top: 1px solid #ccc;
5013 border: 1px solid #ccc;
5014 border-top-width: 0;
5015 border-left-width: 0;
5017 [dir='rtl'] .tag-row button {
5018 border-left-width: 1px;
5019 border-right-width: 0;
5022 .tag-row button:hover {
5023 background: #f1f1f1;
5025 .tag-row button .icon {
5028 .tag-row:first-child button {
5029 border-top-width: 1px;
5032 .tag-row:first-child .tag-reference-button {
5033 border-top-right-radius: 4px;
5035 [dir='rtl'] .tag-row:first-child .tag-reference-button {
5036 border-top-left-radius: 4px;
5037 border-top-right-radius: 0;
5040 .tag-row:last-child .tag-reference-button {
5041 border-bottom-right-radius: 4px;
5043 [dir='rtl'] .tag-row:last-child .tag-reference-button {
5044 border-bottom-left-radius: 4px;
5045 border-bottom-right-radius: 0;
5048 .tag-row .tag-reference-button {
5051 [dir='rtl'] .tag-row .tag-reference-button {
5052 border-left-width: 1px;
5053 border-right-width: 0;
5057 .tag-reference-loading {
5058 background-color: #f5f5f5;
5060 .tag-reference-loading .icon {
5061 background-image: url(<%= asset_path("iD/img/mini-loader.gif") %>);
5062 background-position: 0 0;
5065 .tag-reference-body {
5070 .tag-reference-body .tag-reference-description {
5071 margin: 10px 5px 0 5px;
5073 .tag-reference-body a {
5076 .tag-reference-body .tag-reference-description:last-child,
5077 .tag-reference-body a:last-child {
5078 margin-bottom: 15px;
5081 .preset-list .tag-reference-body {
5085 .raw-tag-editor .tag-reference-body {
5088 .raw-tag-editor .tag-row.readonly .tag-reference-body {
5089 background: #f6f6f6;
5092 .raw-tag-editor .tag-row:not(:last-child) .tag-reference-body.expanded {
5093 border-bottom: 1px solid #ccc;
5095 .raw-tag-editor .tag-row.readonly .tag-reference-body.expanded {
5096 border-top: 1px solid #ccc;
5100 /* Raw Member / Membership Editor
5101 ------------------------------------------------------- */
5102 .raw-member-editor .member-list li:first-child,
5103 .raw-membership-editor .member-list li:first-child {
5106 .raw-member-editor .member-row .member-entity-name,
5107 .raw-membership-editor .member-row .member-entity-name {
5108 font-weight: normal;
5112 [dir='rtl'] .raw-member-editor .member-row .member-entity-name,
5113 [dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
5115 padding-right: 10px;
5118 .form-field-input-member > input.member-role {
5119 border-radius: 0 0 0 4px;
5121 [dir='rtl'] .form-field-input-member > input.member-role {
5122 border-radius: 0 0 4px 0;
5125 .member-incomplete .form-field-input-member > input.member-role,
5126 [dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
5127 border-radius: 0 0 4px 4px;
5130 .member-incomplete .member-delete {
5134 .member-row-new .member-entity-input {
5136 border-radius: 4px 4px 0 0;
5140 /* preserve extra space at bottom of inspector to allow for dropdown options - #5280 */
5141 .raw-membership-editor.inspector-inner {
5142 margin-bottom: 150px;
5145 /* hidden field to prevent user from tabbing out of the sidebar */
5150 border: 1px solid rgba(0,0,0,0);
5154 /* add tag, add relation buttons */
5158 flex-flow: row nowrap;
5161 .add-row .add-relation,
5162 .add-row .space-value {
5165 .add-row .space-buttons {
5170 background: rgba(0,0,0,.5);
5172 .add-row button:focus,
5173 .add-row button:hover {
5174 background: rgba(0,0,0,.8);
5178 border-radius: 0 0 4px 4px;
5186 /* Inspector (hover styles)
5187 ------------------------------------------------------- */
5188 .inspector-hover .form-field-input-wrap .label,
5189 .inspector-hover .form-field-input-multicombo .chiplist,
5190 .inspector-hover .form-field-button,
5191 .inspector-hover .structure-extras-wrap,
5192 .inspector-hover .comments-container .comment,
5193 .inspector-hover button,
5194 .inspector-hover input,
5195 .inspector-hover textarea,
5196 .inspector-hover label {
5197 background: #ececec;
5199 .inspector-hover .preset-list-button,
5200 .inspector-hover .tag-row input {
5201 background: #f6f6f6;
5205 .inspector-hover .form-field-input-multicombo .chips,
5206 .inspector-hover .form-field-input-check span {
5210 .inspector-hover .form-field-input-multicombo .chips {
5212 border: 1px solid #ccc;
5216 .inspector-hover div {
5221 /* hide and remove from layout */
5223 .inspector-hover .preset-list-button-wrap .tag-reference-button,
5224 .inspector-hover label input[type="checkbox"],
5225 .inspector-hover label input[type="radio"],
5226 .inspector-hover .form-field-input-multicombo .input-wrap,
5227 .inspector-hover .form-field-input-radio label,
5228 .inspector-hover .form-field-input-radio label span,
5229 .inspector-hover .form-field-input-radio label.remove .icon,
5230 .inspector-hover .inspector-inner .add-row {
5234 /* hide but preserve in layout */
5235 .inspector-hover .combobox-caret,
5236 .inspector-hover .header button,
5237 .inspector-hover .quick-links,
5238 .inspector-hover .form-field-input-multicombo .chips .remove,
5239 .inspector-hover .hide-toggle:before,
5240 .inspector-hover .more-fields,
5241 .inspector-hover .form-field-label button,
5242 .inspector-hover .tag-row button,
5243 .inspector-hover .footer * {
5247 /* Styles for raw tag inspector on hover */
5248 .inspector-hover .tag-row .key-wrap,
5249 .inspector-hover .tag-row .value-wrap {
5253 .inspector-hover .tag-row:first-child input.value {
5254 border-top-right-radius: 4px;
5256 [dir='rtl'] .inspector-hover .tag-row:first-child input.value {
5257 border-top-right-radius: 0;
5258 border-top-left-radius: 4px;
5261 .inspector-hover .tag-row:last-child input.value {
5262 border-bottom-right-radius: 4px;
5264 [dir='rtl'] .inspector-hover .tag-row:last-child input.value {
5265 border-bottom-right-radius: 0;
5266 border-bottom-left-radius: 4px;
5269 .inspector-hover .tag-row:last-child input.key {
5270 border-bottom-left-radius: 4px;
5272 [dir='rtl'] .inspector-hover .tag-row:last-child input.key {
5273 border-bottom-left-radius: 0;
5274 border-bottom-right-radius: 4px;
5277 .inspector-hover .more-fields {
5279 margin-bottom: -10px;
5282 /* Unstyle button fields */
5283 .inspector-hover .form-field-input-radio label.active,
5284 .inspector-hover .entity-editor-pane a.hide-toggle {
5286 background-color: transparent;
5291 .inspector-hover .form-field-input-radio button.active {
5295 /* Show placeholder on hover for radio buttons */
5296 .inspector-hover .form-field-input-radio {
5297 border: 1px solid #ccc;
5299 border-radius: 0 0 4px 4px;
5301 .inspector-hover .form-field-input-radio .placeholder {
5309 .inspector-hover .form-field-input-radio .structure-extras-wrap {
5314 /* OSM Note / KeepRight Editors
5315 ------------------------------------------------------- */
5318 background-color: #f6f6f6;
5320 border: 1px solid #ccc;
5322 flex-flow: row nowrap;
5323 align-items: center;
5327 .kr_error-header-icon {
5328 background-color: #fff;
5334 border-right: 1px solid #ccc;
5335 border-radius: 5px 0 0 5px;
5337 [dir='rtl'] .note-header-icon,
5338 [dir='rtl'] .kr_error-header-icon {
5339 border-right: unset;
5340 border-left: 1px solid #ccc;
5341 border-radius: 0 5px 5px 0;
5344 .note-header-icon .icon-wrap,
5345 .kr_error-header-icon .icon-wrap {
5351 .kr_error-header-label {
5352 background-color: #f6f6f6;
5357 border-radius: 0 5px 5px 0;
5359 [dir='rtl'] .note-header-label,
5360 [dir='rtl'] .kr_error-header-label {
5361 border-radius: 5px 0 0 5px;
5368 .comments-container {
5369 background: #ececec;
5376 background-color: #fff;
5378 border: 1px solid #ccc;
5381 flex-flow: row nowrap;
5387 .comment-avatar .icon.comment-avatar-icon {
5391 border: 1px solid #ccc;
5392 border-radius: 20px;
5395 padding: 10px 10px 10px 0;
5397 flex-flow: column nowrap;
5399 overflow-wrap: break-word;
5401 [dir='rtl'] .comment-main {
5402 padding: 10px 0 10px 10px;
5406 flex-flow: row nowrap;
5407 justify-content: space-between;
5422 .comment-text::-webkit-scrollbar {
5431 .kr_error-comment-container {
5435 .keepRight-save .new-comment-input,
5436 .note-save .new-comment-input {
5443 .keepRight-save .detail-section,
5444 .note-save .detail-section {
5452 .kr_error-details-container {
5453 background: #ececec;
5457 border: 1px solid #ccc;
5460 .kr_error-details-description {
5461 margin-bottom: 10px;
5463 .kr_error-details-description-text::first-letter {
5464 text-transform: capitalize;
5468 /* Custom Data Editor
5469 ------------------------------------------------------- */
5471 background-color: #f6f6f6;
5473 border: 1px solid #ccc;
5475 flex-flow: row nowrap;
5476 align-items: center;
5480 background-color: #fff;
5486 border-right: 1px solid #ccc;
5487 border-radius: 5px 0 0 5px;
5489 [dir='rtl'] .data-header-icon {
5490 border-right: unset;
5491 border-left: 1px solid #ccc;
5492 border-radius: 0 5px 5px 0;
5495 .data-header-icon .icon-wrap {
5500 .data-header-label {
5501 background-color: #f6f6f6;
5506 border-radius: 0 5px 5px 0;
5508 [dir='rtl'] .data-header-label {
5509 border-radius: 5px 0 0 5px;
5512 /* tag editor - no buttons */
5513 .data-editor.raw-tag-editor button {
5516 .data-editor.raw-tag-editor .tag-row .key-wrap,
5517 .data-editor.raw-tag-editor .tag-row .value-wrap {
5523 ------------------------------------------------------- */
5531 [dir='rtl'] .map-controls {
5536 .map-control > button {
5538 background: rgba(0,0,0,.5);
5542 .map-control > button:hover {
5543 background: rgba(0, 0, 0, .8);
5546 .map-control > button.active,
5547 .map-control > button.active:hover {
5548 background: #7092ff;
5552 /* Fullscreen Button (disabled)
5553 ------------------------------------------------------- */
5555 display: inline-block;
5561 div.full-screen .tooltip {
5565 div.full-screen > button, div.full-screen > button.active {
5568 background: transparent;
5571 div.full-screen > button:hover {
5572 background-color: rgba(0, 0, 0, .8);
5577 ------------------------------------------------------- */
5578 .zoombuttons > button.zoom-in {
5579 border-radius: 4px 0 0 0;
5581 [dir='rtl'] .zoombuttons > button.zoom-in {
5582 border-radius: 0 4px 0 0;
5587 ------------------------------------------------------- */
5588 .geolocate-control {
5589 margin-bottom: 10px;
5591 .geolocate-control > button {
5592 border-radius: 0 0 0 4px;
5594 [dir='rtl'] .geolocate-control > button {
5595 border-radius: 0 0 4px 0;
5599 /* Background / Map Data / Help Pane buttons
5600 ------------------------------------------------------- */
5601 .help-control > button {
5602 border-radius: 0 0 0 4px;
5604 [dir='rtl'] .help-control > button {
5605 border-radius: 0 0 4px 0;
5608 .map-data-control button {
5612 .background-control > button {
5613 border-radius: 4px 0 0 0;
5615 [dir='rtl'] .background-control > button {
5616 border-radius: 0 4px 0 0;
5620 /* Background / Map Data Settings
5621 ------------------------------------------------------- */
5623 .background-control {
5628 margin-bottom: 10px;
5629 white-space: nowrap;
5632 .layer-list, .controls-list {
5633 margin-bottom: 10px;
5634 border: 1px solid #ccc;
5641 background-color: #fff;
5649 .layer-list > li:first-child {
5650 border-radius: 3px 3px 0 0;
5652 .layer-list > li:last-child {
5653 border-radius: 0 0 3px 3px;
5655 .layer-list > li:only-child {
5658 .layer-list li:not(:last-child) {
5659 border-bottom: 1px solid #ccc;
5661 .layer-list li:hover {
5662 background-color: #ececec;
5665 .layer-list li.active button,
5666 .layer-list li.switch button,
5667 .layer-list li.active,
5668 .layer-list li.switch {
5669 background: #e8ebff;
5672 .layer-list li.best > div.best {
5673 display: inline-block;
5678 [dir='rtl'] .list-item-data-browse svg {
5679 transform: rotateY(180deg);
5682 /* make sure tooltip fits in map-control panel */
5683 /* if too wide, placement will be wrong the first time it displays */
5684 .layer-list li.best .tooltip-inner {
5694 .layer-list label > span {
5697 white-space: nowrap;
5698 text-overflow: ellipsis;
5701 .map-data-control .layer-list button,
5702 .background-control .layer-list button {
5706 border-left: 1px solid #ccc;
5709 [dir='rtl'] .map-data-control .layer-list button,
5710 [dir='rtl'] .background-control .layer-list button {
5713 border-right: 1px solid #ccc;
5716 .map-data-control .layer-list button .icon,
5717 .background-control .layer-list button .icon {
5721 .map-data-control .layer-list button:first-of-type,
5722 .background-control .layer-list button:first-of-type {
5723 border-radius: 0 3px 3px 0;
5725 [dir='rtl'] .map-data-control .layer-list button:first-of-type,
5726 [dir='rtl'] .background-control .layer-list button:first-of-type {
5727 border-radius: 3px 0 0 3px;
5730 .map-data-control .vectortile-container .vectortile-header {
5731 padding-bottom: 5px;
5733 .map-data-control .vectortile-container .vectortile-footer {
5734 padding-bottom: 10px;
5738 /* Background - Display Options Sliders
5739 ------------------------------------------------------- */
5740 .display-options-container {
5744 .display-control h5 {
5749 .display-control h5 span {
5753 .display-control .display-option-input {
5758 .display-control button {
5763 vertical-align: text-bottom;
5766 [dir='rtl'] .display-control button {
5772 /* Background - Adjust Alignment
5773 ------------------------------------------------------- */
5774 .background-control .nudge-container {
5775 border: 1px solid #ccc;
5780 .nudge-container .nudge-instructions {
5781 padding-bottom: 15px;
5784 .nudge-container .nudge-outer-rect {
5785 background-color: #eee;
5786 border: 1px solid #ccc;
5791 justify-content: center;
5792 align-items: center;
5798 .nudge-container .nudge-inner-rect {
5799 background-color: #fff;
5800 border: 1px solid #ccc;
5806 .nudge-container .nudge::after {
5811 left: 0; right: 0; top: 0; bottom: 0;
5816 .nudge-container input {
5823 .nudge-container input.error {
5824 border: 1px solid #ff7878;
5829 .nudge-container input:focus {
5830 background-color: transparent;
5833 .nudge-container button {
5838 background-color: transparent;
5841 .nudge-container button.right {
5846 .nudge-container button.left {
5851 .nudge-container button.top {
5856 .nudge-container button.bottom {
5860 .nudge-container button.nudge-reset {
5871 background-color: transparent;
5875 .background-control .nudge.right::after {
5876 border-top: 5px solid transparent;
5877 border-bottom: 5px solid transparent;
5878 border-left: 5px solid #222;
5881 .background-control .nudge.left::after {
5882 border-top: 5px solid transparent;
5883 border-bottom: 5px solid transparent;
5884 border-right: 5px solid #222;
5887 .background-control .nudge.top::after {
5888 border-right: 5px solid transparent;
5889 border-left: 5px solid transparent;
5890 border-bottom: 5px solid #222;
5893 .background-control .nudge.bottom::after {
5894 border-right: 5px solid transparent;
5895 border-left: 5px solid transparent;
5896 border-top: 5px solid #222;
5900 /* Side Panes - Background / Map Data / Help
5901 ------------------------------------------------------- */
5909 padding-bottom: 50px;
5913 [dir='rtl'] .map-pane {
5915 right: auto !important;
5918 .map-pane.help-wrap {
5925 flex-flow: row nowrap;
5926 justify-content: space-between;
5927 border-bottom: 1px solid #ccc;
5934 .pane-heading button {
5942 padding: 10px 50px 20px 20px;
5946 [dir='rtl'] .pane-content {
5947 padding: 10px 20px 20px 50px;
5950 .pane-content > div {
5951 padding-bottom: 15px;
5956 ------------------------------------------------------- */
5959 margin-bottom: 20px;
5962 .help-wrap .left-content .body p code {
5966 vertical-align: baseline;
5967 background-color: #f6f6f6;
5968 border: solid 1px #ccc;
5970 border-bottom-color: #bbb;
5972 box-shadow: inset 0 -1px 0 #bbb;
5975 .help-wrap .left-content .icon.pre-text {
5976 vertical-align: text-top;
5979 display: inline-block;
5986 margin-bottom: 20px;
5990 .help-wrap .toc li a,
5993 border: 1px solid #ccc;
5997 .help-wrap .toc li a {
6001 .help-wrap .toc li a:hover,
6002 .help-wrap .nav a:hover {
6003 background: #ececec;
6006 .help-wrap .toc li a.selected {
6007 background: #e8ebff;
6010 .help-wrap .toc li:first-child a {
6011 border-radius: 4px 4px 0 0;
6014 .help-wrap .toc li:nth-last-child(3) a {
6015 border-bottom: 1px solid #ccc;
6016 border-radius: 0 0 4px 4px
6019 .help-wrap .toc li.shortcuts a,
6020 .help-wrap .toc li.walkthrough a {
6023 border-bottom: 1px solid #ccc;
6027 .help-wrap .toc li.walkthrough a {
6033 padding-bottom: 30px;
6042 .help-wrap .nav a:first-child {
6043 border-radius: 4px 0 0 4px;
6046 .help-wrap .nav a:last-child:not(:only-child) {
6047 border-radius: 0 4px 4px 0;
6051 .help-wrap .nav a:only-child {
6057 /* Raster Background Tiles
6058 ------------------------------------------------------- */
6061 transform-origin: 0 0;
6062 -ms-transform-origin: 0 0;
6063 -webkit-transform-origin: 0 0;
6064 -moz-transform-origin: 0 0;
6065 -o-transform-origin: 0 0;
6067 -moz-user-select: none;
6068 -webkit-user-select: none;
6069 -ms-user-select: none;
6074 -webkit-transition: opacity 200ms linear;
6075 -moz-transition: opacity 200ms linear;
6076 transition: opacity 200ms linear;
6089 background: rgba(0, 0, 0, 0.7);
6099 transform-origin: 0 0;
6100 -ms-transform-origin: 0 0;
6101 -webkit-transform-origin: 0 0;
6102 -moz-transform-origin: 0 0;
6103 -o-transform-origin: 0 0;
6105 -moz-user-select: none;
6106 -webkit-user-select: none;
6107 -ms-user-select: none;
6112 outline: 1px solid red;
6117 ------------------------------------------------------- */
6123 -moz-user-select: none;
6124 -webkit-user-select: none;
6125 -ms-user-select: none;
6130 transform-origin: 0 0;
6131 -ms-transform-origin: 0 0;
6132 -webkit-transform-origin: 0 0;
6133 -moz-transform-origin: 0 0;
6134 -o-transform-origin: 0 0;
6137 #supersurface, .layer {
6147 ------------------------------------------------------- */
6156 border: #aaa 1px solid;
6157 box-shadow: 0 0 2em black;
6161 transform-origin: 0 0;
6162 -ms-transform-origin: 0 0;
6163 -webkit-transform-origin: 0 0;
6164 -moz-transform-origin: 0 0;
6165 -o-transform-origin: 0 0;
6167 -moz-user-select: none;
6168 -webkit-user-select: none;
6169 -ms-user-select: none;
6173 .map-in-map-viewport,
6182 .map-in-map-viewport {
6193 stroke: rgba(255, 255, 0, 0.75);
6195 shape-rendering: crispEdges;
6198 .map-in-map-bbox.thick {
6204 ------------------------------------------------------- */
6206 stroke: currentColor;
6210 .map-in-map-data .debug {
6214 .nocolor { color: rgba(0, 0, 0, 0); }
6215 .red { color: rgba(255, 0, 0, 0.75); }
6216 .green { color: rgba(0, 255, 0, 0.75); }
6217 .blue { color: rgba(176, 176, 255, 0.75); }
6218 .yellow { color: rgba(255, 255, 0, 0.75); }
6219 .cyan { color: rgba(0, 255, 255, 0.75); }
6220 .magenta { color: rgba(255, 0, 255, 0.75); }
6221 .orange { color: rgba(255, 153, 0, 0.75); }
6222 .pink { color: rgba(255, 0, 153, 0.75); }
6223 .purple { color: rgba(153, 0, 255, 0.75); }
6231 pointer-events: none;
6234 .debug-legend-item {
6237 .debug-legend-item:before {
6243 /* Information Panels
6244 ------------------------------------------------------- */
6247 flex-flow: row-reverse wrap-reverse;
6252 -ms-user-select: element;
6260 display: inline-block;
6272 margin: 2px 0 0 2px;
6274 border: 1px solid rgba(0, 0, 0, 0.75);
6275 padding-bottom: 10px;
6279 .panel-container .panel-title {
6280 border-radius: 4px 4px 0 0;
6287 .panel-title button.close {
6293 [dir='rtl'] .panel-title button.close {
6297 .panel-title button.close:hover {
6300 .panel-title button.close .icon {
6310 .panel-content li span {
6311 display: inline-block;
6312 white-space: nowrap;
6316 .panel-content .button {
6317 display: inline-block;
6318 background: #7092ff;
6325 [dir='rtl'] .panel-content .button {
6330 .panel-content-history .links a {
6333 [dir='rtl'] .panel-content-history .links a {
6338 .panel-content-history .view-history-on-osm {
6343 .panel-content-location .location-info {
6348 /* About Section, Attribution, Footer
6349 ------------------------------------------------------- */
6356 pointer-events: none;
6358 flex-direction: column;
6359 -ms-user-select: element;
6368 #attrib * { pointer-events: all; }
6370 .base-layer-attribution,
6371 .overlay-layer-attribution {
6377 .base-layer-attribution {
6381 .overlay-layer-attribution {
6385 .overlay-layer-attribution .attribution:not(:last-child):after {
6390 .attribution a:visited {
6394 .attribution a:hover {
6398 .attribution .source-image {
6400 vertical-align: middle;
6409 pointer-events: all;
6415 /* Footer - Flash messages
6416 ------------------------------------------------------- */
6420 flex-flow: row nowrap;
6421 justify-content: space-between;
6431 flex-flow: row nowrap;
6432 align-items: center;
6444 .flash-icon circle {
6447 .flash-icon.disabled circle {
6449 fill: rgba(255,255,255,0.7);
6455 .flash-icon.disabled use {
6456 color: rgba(32,32,32,0.7);
6459 .flash-icon.operation use {
6463 .flash-icon.operation.disabled use {
6464 fill: rgba(32,32,32,0.7);
6465 color: rgba(40,40,40,0.7);
6475 flex-flow: row nowrap;
6476 justify-content: space-between;
6485 transition: bottom 75ms linear;
6486 -moz-transition: bottom 75ms linear;
6487 -webkit-transition: bottom 75ms linear;
6492 transition: bottom 75ms linear;
6493 -moz-transition: bottom 75ms linear;
6494 -webkit-transition: bottom 75ms linear;
6498 /* Footer - Scale bar, About, Source Switcher
6499 ------------------------------------------------------- */
6501 vertical-align: bottom;
6505 -moz-user-select: none;
6506 -webkit-user-select: none;
6507 -ms-user-select: none;
6520 [dir='rtl'] #scale {
6521 transform: scaleX(-1);
6529 font: 12px sans-serif;
6534 [dir='rtl'] #scale text {
6535 transform: scaleX(-1);
6542 shape-rendering: crispEdges;
6551 [dir='rtl'] #about-list {
6560 border-left: 1px solid rgba(255,255,255,.5);
6561 padding: 5px 0 5px 5px;
6564 [dir='rtl'] #about-list li {
6567 border-right: 1px solid rgba(255,255,255,.5);
6570 padding: 5px 5px 5px 0;
6573 #about-list li:last-child {
6578 [dir='rtl'] #about-list li:last-child {
6583 padding: 2px 4px 4px 4px;
6586 .source-switch a.live {
6587 background: #d32232;
6591 .feature-warning a {
6592 background: #1e90ff;
6593 padding: 2px 4px 4px 4px;
6598 .user-list a:not(:last-child):after {
6608 [dir='rtl'] .api-status {
6612 .api-status.offline,
6613 .api-status.readonly,
6621 .api-status-login:hover {
6625 /* Notification Badges
6626 ------------------------------------------------------- */
6627 /* For an icon (e.g. new version) */
6629 display: inline-block;
6630 background: #d32232;
6633 border-radius: 11px;
6636 [dir='rtl'] .badge {
6643 [dir='rtl'] .badge a {
6648 vertical-align: baseline;
6654 /* For text (e.g. upcoming events) */
6656 display: inline-block;
6667 [dir='rtl'] .badge-text {
6674 ------------------------------------------------------- */
6677 display: inline-block;
6688 margin-bottom: 10px;
6690 .modal .description {
6705 background: rgba(0,0,0,0.5);
6707 left: 0px; right: 0px; top: 0px; bottom: 0px;
6712 border-bottom: 1px solid #ccc;
6714 .modal-section.header h3 {
6717 .modal-section.buttons {
6721 .modal-section.buttons button {
6725 .modal-section.buttons .action {
6726 display: inline-block;
6729 vertical-align: middle;
6732 .save-section .buttons {
6735 justify-content: space-around;
6736 margin-bottom: 30px;
6739 .save-section .buttons .action,
6740 .save-section .buttons .secondary-action {
6744 vertical-align: middle;
6751 .modal-actions button {
6752 font-weight: normal;
6754 border-bottom: 1px solid #ccc;
6758 display: inline-block;
6760 .modal-actions button:hover {
6761 background-color: #ececec;
6777 .modal-actions > :first-child {
6778 border-right: 1px solid #ccc;
6781 .modal-section:last-child {
6786 ------------------------------------------------------- */
6787 .modal-actions .logo-restore {
6790 .modal-actions .logo-reset {
6794 /* Success Screen / Community Index
6795 ------------------------------------------------------- */
6796 .save-success.body {
6801 .save-success .link-out {
6803 white-space: nowrap;
6807 .save-communityLinks {
6808 padding: 0px 20px 15px 20px;
6811 .save-communityLinks {
6812 border-top: 1px solid #ccc;
6815 .save-success table,
6826 vertical-align: top;
6828 .save-success td.cell-icon {
6831 .save-success td.cell-detail {
6834 .save-success td.community-detail {
6835 padding-bottom: 15px;
6838 .summary-view-on-osm,
6843 .community-languages {
6847 .community-languages:only-child {
6851 .community-detail a.hide-toggle,
6852 .community-detail a:visited.hide-toggle {
6854 font-weight: normal;
6857 .community-detail .hide-toggle svg.icon.pre-text {
6868 background-color: #efefef;
6874 .community-event-name {
6878 .community-event-when {
6882 .community-missing {
6889 ------------------------------------------------------- */
6890 .modal-actions .logo-walkthrough,
6891 .modal-actions .logo-features {
6897 ------------------------------------------------------- */
6903 .modal-shortcuts .modal-section:last-child {
6908 .modal-shortcuts .tabs-bar {
6910 padding-bottom: 5px;
6915 .modal-shortcuts .tab {
6916 display: inline-block;
6922 .modal-shortcuts .tab.active {
6924 border-bottom: 2px solid;
6926 .modal-shortcuts .tab:hover {
6928 background-color: #efefef;
6931 .modal-shortcuts .shortcut-tab {
6933 flex-flow: row wrap;
6936 .modal-shortcuts .shortcut-column {
6941 .modal-shortcuts .shortcut-tab-tools .shortcut-column {
6946 .modal-shortcuts td {
6947 padding-bottom: 5px;
6950 .modal-shortcuts .shortcut-section {
6951 padding: 20px 0 10px 0;
6954 .modal-shortcuts .shortcut-keys {
6959 [dir='rtl'] .modal-shortcuts .shortcut-keys {
6963 .modal-shortcuts .shortcut-keys kbd {
6964 display: inline-block;
6971 vertical-align: baseline;
6972 background-color: #fcfcfc;
6973 border: solid 1px #ccc;
6975 border-bottom-color: #bbb;
6977 box-shadow: inset 0 -1px 0 #bbb;
6980 svg.mouseclick use.left {
6981 fill: rgba(112, 146, 255, 1);
6982 color: rgba(112, 146, 255, 0);
6984 svg.mouseclick use.right {
6985 fill: rgba(112, 146, 255, 0);
6986 color: rgba(112, 146, 255, 1);
6989 .modal-shortcuts .shortcut-keys .gesture {
6996 ------------------------------------------------------- */
6997 .settings-modal textarea {
7002 .settings-custom-background .instructions-template {
7003 margin-bottom: 20px;
7006 .settings-custom-data .instructions-url {
7007 margin-bottom: 10px;
7009 .settings-custom-data .field-file,
7010 .settings-custom-data .instructions-template {
7011 margin-bottom: 20px;
7016 ------------------------------------------------------- */
7017 .mode-save a.user-info {
7018 display: inline-block;
7021 .mode-save .commit-form {
7025 .mode-save .user-info img {
7029 .mode-save h3 small.count {
7037 border-radius: 24px;
7039 background: #7092ff;
7043 .note-save .field-warning,
7044 .mode-save .field-warning {
7046 border: 1px solid #ccc;
7051 .note-save .field-warning:empty,
7052 .mode-save .field-warning:empty {
7056 .mode-save .field-warning,
7057 .mode-save .changeset-info,
7058 .mode-save .request-review,
7059 .mode-save .commit-info {
7060 margin-bottom: 10px;
7063 .mode-save .request-review label {
7067 .mode-save .changeset-list {
7068 border: 1px solid #ccc;
7071 margin-bottom: 10px;
7074 .mode-save .warning-section {
7078 .mode-save .error-section {
7079 background: #ffa5a5;
7082 .mode-save .warning-section .changeset-list button {
7083 border-left: 1px solid #ccc;
7086 .mode-save .changeset-list li {
7088 border-top: 1px solid #ccc;
7093 .mode-save .changeset-list li:hover {
7094 background-color: #ececec;
7097 .mode-save .changeset-list .alert {
7101 .changeset-list li span.count {
7106 .mode-save .commit-section .changeset-list button {
7107 border-left: 1px solid #ccc;
7110 .changeset-list li span.count:before { content: '('; }
7112 .changeset-list li span.count:after { content: ')'; }
7114 .changeset-list li:first-child { border-top: 0;}
7117 /* Conflict resolution
7118 ------------------------------------------------------- */
7121 background-color: #ffffbb;
7122 border-bottom: 1px solid #ccc;
7125 .conflicts-buttons {
7129 .mode-save button.conflicts-button {
7133 .conflict-container {
7134 border-bottom: 1px solid #ccc;
7137 .conflict-description {
7143 padding: 20px 20px 0 20px;
7146 .conflict-detail-container {
7158 .conflict-nav-buttons {
7159 padding: 10px 0 20px 0;
7162 .conflict-nav-button {
7167 /* Notices (Zoom in to Edit)
7168 ------------------------------------------------------- */
7185 .notice .zoom-to:hover {
7186 background: rgba(0,0,0,0.6);
7189 .notice .zoom-to .icon {
7192 vertical-align: middle;
7195 [dir='rtl'] .notice .zoom-to .icon {
7202 ------------------------------------------------------- */
7208 white-space: initial;
7234 display: inline-block;
7239 font-weight: normal;
7240 background-color: #fff;
7246 pointer-events: none;
7250 background: transparent;
7257 border-color: transparent;
7258 border-style: solid;
7262 border-left-color: #fff;
7263 border-width: 5px 0 5px 5px;
7282 border-color: transparent;
7283 border-style: solid;
7287 border-right-color: #fff;
7288 border-width: 5px 5px 5px 0;
7295 border-color: transparent;
7296 border-style: solid;
7298 .tooltip.top .tooltip-arrow {
7302 border-top-color: #fff;
7303 border-width: 5px 5px 0;
7305 .tooltip.right .tooltip-arrow {
7309 border-right-color: #fff;
7310 border-width: 5px 5px 5px 0;
7312 .tooltip.left .tooltip-arrow {
7316 border-left-color: #fff;
7317 border-width: 5px 0 5px 5px;
7319 .tooltip.bottom .tooltip-arrow {
7323 border-bottom-color: #fff;
7324 border-width: 0 5px 5px;
7329 background: #f6f6f6;
7331 margin: -10px -10px 10px -10px;
7332 border-radius: 3px 3px 0 0;
7337 background: #f6f6f6;
7339 margin: 10px -10px -10px -10px;
7340 border-radius: 0 0 3px 3px;
7342 .tooltip-inner .keyhint {
7347 [dir='rtl'] .tooltip-inner .keyhint {
7352 /* dark tooltips for sidebar / panels */
7353 .map-pane .tooltip.top .tooltip-arrow,
7354 #sidebar .tooltip.top .tooltip-arrow {
7355 border-top-color: #000;
7357 .map-pane .tooltip.bottom .tooltip-arrow,
7358 #sidebar .tooltip.bottom .tooltip-arrow {
7359 border-bottom-color: #000;
7361 .map-pane .tooltip.left .tooltip-arrow,
7362 #sidebar .tooltip.left .tooltip-arrow {
7363 border-left-color: #000;
7365 .map-pane .tooltip.right .tooltip-arrow,
7366 #sidebar .tooltip.right .tooltip-arrow {
7367 border-right-color: #000;
7369 .map-pane .tooltip-inner,
7370 .map-pane .tooltip-heading,
7371 .map-pane .keyhint-wrap,
7372 #sidebar .tooltip-inner,
7373 #sidebar .tooltip-heading,
7374 #sidebar .keyhint-wrap {
7379 /* Exceptions for tooltip layouts */
7381 /* commit warning tooltips need to be closer */
7382 .warning-section .tooltip.top {
7386 /* Uncramp map-control tooltips */
7387 .map-control .tooltip {
7390 .map-control .shortcuts .tooltip {
7394 /* Move over tooltips that are near the edge of screen */
7395 button.sidebar-toggle .tooltip .tooltip-arrow {
7398 [dir='rtl'] button.sidebar-toggle .tooltip .tooltip-arrow {
7403 li:first-of-type .badge .tooltip,
7404 li.hide + li.version .badge .tooltip {
7405 left: auto !important;
7406 right: 5px !important;
7408 [dir='rtl'] li:first-of-type .badge .tooltip,
7409 [dir='rtl'] li.hide + li.version .badge .tooltip {
7410 left: 5px !important;
7411 right: auto !important;
7413 li:first-of-type .badge .tooltip .tooltip-arrow,
7414 li.hide + li.version .badge .tooltip .tooltip-arrow {
7415 right: 15px !important;
7416 left: auto !important;
7418 [dir='rtl'] li:first-of-type .badge .tooltip .tooltip-arrow,
7419 [dir='rtl'] li.hide + li.version .badge .tooltip .tooltip-arrow {
7420 left: 15px !important;
7421 right: auto !important;
7425 /* Contextual Radial Menu (deprecated)
7426 ------------------------------------------------------- */
7427 .radial-menu-tooltip {
7434 .radial-menu-background {
7437 stroke-opacity: 0.5;
7440 .radial-menu-item circle {
7444 .radial-menu-item circle:active,
7445 .radial-menu-item circle:hover {
7449 .radial-menu-item.disabled circle {
7451 fill: rgba(255,255,255,.5);
7454 .radial-menu-item use {
7459 .radial-menu-item.disabled use {
7460 fill: rgba(32,32,32,.5);
7461 color: rgba(40,40,40,.5);
7465 /* Contextual Edit Menu
7466 ------------------------------------------------------- */
7467 .edit-menu-tooltip {
7473 .edit-menu-background {
7477 .edit-menu-item rect {
7482 .edit-menu-item rect:active,
7483 .edit-menu-item rect:hover {
7487 .edit-menu-item.disabled rect {
7488 cursor: not-allowed;
7490 .edit-menu-item.disabled rect:hover {
7491 cursor: not-allowed;
7495 .edit-menu-item use {
7498 pointer-events: none;
7500 .edit-menu-item.disabled use {
7501 fill: rgba(32,32,32,.2);
7502 color: rgba(40,40,40,.2);
7507 ------------------------------------------------------- */
7513 stroke-dasharray: 5, 5;
7518 ----------------------------------------------------- */
7519 ::-webkit-scrollbar {
7524 border-left: 1px solid #DDD;
7527 ::-webkit-scrollbar-track {
7528 background-clip: padding-box;
7529 border: solid transparent;
7533 ::-webkit-scrollbar-thumb {
7534 background-color: rgba(0,0,0,.2);
7535 background-clip: padding-box;
7536 border: solid transparent;
7537 border-width: 3px 3px 3px 4px;
7540 ::-webkit-scrollbar-track:hover,
7541 ::-webkit-scrollbar-track:active {
7542 background-color: rgba(0,0,0,.05);
7546 /* Intro walkthrough
7547 ----------------------------------------------------- */
7549 pointer-events: all;
7557 flex-direction: row;
7566 .intro-nav-wrap .intro-nav-wrap-logo {
7572 vertical-align: middle;
7575 .intro-nav-wrap .joined {
7578 flex-direction: row;
7581 .intro-nav-wrap button.chapter {
7586 .intro-nav-wrap button.chapter.next {
7587 animation-duration: 1s;
7588 animation-name: pulse;
7589 animation-iteration-count: infinite;
7590 animation-direction: alternate;
7593 from { background: #7092ff; }
7594 to { background: #c6d4ff; }
7597 .intro-nav-wrap button.chapter.finished {
7598 background: #8cd05f;
7601 .intro-nav-wrap button.chapter .status {
7605 .intro-nav-wrap button.chapter.finished .status {
7606 display: inline-block;
7609 .curtain-tooltip.tooltip.in {
7612 .curtain-tooltip.tooltip {
7615 [dir='rtl'] .curtain-tooltip.tooltip {
7619 .curtain-tooltip .tooltip-inner {
7625 .curtain-tooltip .tooltip-inner .button-section,
7626 .curtain-tooltip .tooltip-inner .instruction {
7629 border-top: 1px solid #ccc;
7632 margin-right: -20px;
7633 padding: 10px 20px 0 20px;
7636 [dir='rtl'] .curtain-tooltip .tooltip-inner .button-section button.col8 {
7640 .curtain-tooltip .tooltip-inner .instruction:only-child {
7646 .curtain-tooltip .tooltip-inner .icon.pre-text {
7647 vertical-align: text-top;
7650 display: inline-block;
7653 .curtain-tooltip.intro-points-describe ,
7654 .curtain-tooltip.intro-lines-name_road {
7655 top: 133px !important;
7658 .tooltip-illustration {
7664 [dir='rtl'] .tooltip-illustration {
7666 margin-right: -20px;
7669 .curtain-tooltip.intro-mouse {
7670 -moz-user-select: none;
7671 -webkit-user-select: none;
7672 -ms-user-select: none;
7676 .curtain-tooltip.intro-mouse .counter {
7687 .curtain-tooltip.intro-mouse .tooltip-illustration use {
7688 fill: rgba(112, 146, 255, 0);
7689 color: rgba(112, 146, 255, 0);
7691 .curtain-tooltip.intro-mouse.leftclick .tooltip-illustration use {
7692 fill: rgba(112, 146, 255, 1);
7694 .curtain-tooltip.intro-mouse.rightclick .tooltip-illustration use {
7695 color: rgba(112, 146, 255, 1);
7698 .huge-modal-button {
7704 .huge-modal-button .illustration {