summaryrefslogtreecommitdiffstats
path: root/layout/style/res/ua.css
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/res/ua.css')
-rw-r--r--layout/style/res/ua.css555
1 files changed, 555 insertions, 0 deletions
diff --git a/layout/style/res/ua.css b/layout/style/res/ua.css
new file mode 100644
index 0000000000..4733615954
--- /dev/null
+++ b/layout/style/res/ua.css
@@ -0,0 +1,555 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+@namespace parsererror url(http://www.mozilla.org/newlayout/xml/parsererror.xml);
+@namespace html url(http://www.w3.org/1999/xhtml);
+@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
+
+/* magic -- some of these rules are important to keep pages from overriding
+ them
+*/
+
+/* Tables */
+
+*|*::-moz-table {
+ display: table;
+ box-sizing: border-box; /* XXX do we really want this? */
+}
+
+*|*::-moz-inline-table {
+ display: inline-table;
+ box-sizing: border-box; /* XXX do we really want this? */
+}
+
+*|*::-moz-table-wrapper {
+ /* The inherited properties here need to be safe to have on both the
+ * table and the table wrapper, generally because code ignores them
+ * for the table. */
+ display: inherit; /* table or inline-table */
+ -moz-top-layer: inherit;
+ margin: inherit;
+ float: inherit;
+ clear: inherit;
+ position: inherit;
+ top: inherit;
+ right: inherit;
+ bottom: inherit;
+ left: inherit;
+ z-index: inherit;
+ page-break-before: inherit;
+ page-break-after: inherit;
+ page-break-inside: inherit;
+ vertical-align: inherit; /* needed for inline-table */
+ line-height: inherit; /* needed for vertical-align on inline-table */
+ /* Bug 722777 */
+ transform: inherit;
+ transform-origin: inherit;
+ /* Bug 724750 */
+ backface-visibility: inherit;
+ clip: inherit;
+ /* Other transform-related properties */
+ /* transform-style: inherit; Bug 1560704 */
+ rotate: inherit;
+ scale: inherit;
+ translate: inherit;
+ /* When the table wrapper is a Flex/Grid item we need these: */
+ align-self: inherit;
+ justify-self: inherit;
+ grid-column-start: inherit;
+ grid-column-end: inherit;
+ grid-row-start: inherit;
+ grid-row-end: inherit;
+ order: inherit;
+ outline: inherit;
+ outline-offset: inherit;
+ column-span: inherit; /* needed if <table> has "column-span:all" */
+ contain: inherit; /* needed if table has 'contain:layout' or 'paint' */
+ container: inherit; /* Bug 1805588 */
+ scroll-margin: inherit; /* Bug 1633192 */
+}
+
+*|*::-moz-table-row {
+ display: table-row;
+}
+
+/* The ::-moz-table-column pseudo-element is for extra columns at the end
+ of a table. */
+*|*::-moz-table-column {
+ display: table-column;
+ /* Make sure anonymous columns don't interfere with hit testing. Basically,
+ * they should pretend as much as possible to not exist (since in the spec
+ * they do not exist).
+ *
+ * Please make sure to not reintroduce
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1403293 if you change this
+ * bit!
+ */
+ visibility: hidden;
+}
+
+*|*::-moz-table-column-group {
+ display: table-column-group;
+ /* Make sure anonymous colgroups don't interfere with hit testing. Basically,
+ * they should pretend as much as possible to not exist (since in the spec
+ * they do not exist).
+ *
+ * Please make sure to not reintroduce
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1403293 if you change this
+ * bit!
+ */
+ visibility: hidden;
+}
+
+*|*::-moz-table-row-group {
+ display: table-row-group;
+}
+
+*|*::-moz-table-cell {
+ display: table-cell;
+ white-space: inherit;
+}
+
+/* Ruby */
+*|*::-moz-ruby {
+ display: ruby;
+ unicode-bidi: isolate;
+}
+*|*::-moz-ruby-base {
+ display: ruby-base;
+ unicode-bidi: isolate;
+}
+*|*::-moz-ruby-text {
+ display: ruby-text;
+ unicode-bidi: isolate;
+}
+*|*::-moz-ruby-base-container {
+ display: ruby-base-container;
+ unicode-bidi: isolate;
+}
+*|*::-moz-ruby-text-container {
+ display: ruby-text-container;
+ unicode-bidi: isolate;
+}
+
+/* https://drafts.csswg.org/css-lists-3/#ua-stylesheet */
+::marker {
+ text-align: end;
+ text-transform: none;
+ unicode-bidi: isolate;
+ font-variant-numeric: tabular-nums;
+ white-space: pre;
+}
+
+/* SVG documents don't always load this file but they do have links.
+ * If you change the link rules, consider carefully whether to make
+ * the same changes to svg.css.
+ */
+
+/* Links and focusable content */
+
+:any-link {
+ cursor: pointer;
+}
+
+:link {
+ color: LinkText;
+}
+
+:any-link:active {
+ color: ActiveText;
+}
+
+:visited {
+ color: VisitedText;
+}
+
+:focus-visible {
+ outline: 1px auto;
+}
+
+/* Inert subtrees */
+:-moz-inert {
+ -moz-inert: inert;
+}
+
+/* Miscellaneous */
+
+*|*::-moz-cell-content {
+ display: block;
+ unicode-bidi: inherit;
+ text-overflow: inherit;
+ overflow-clip-box: inherit;
+}
+
+*|*::-moz-block-inside-inline-wrapper {
+ display: block;
+ /* we currently inherit from the inline that is split */
+ position: inherit; /* static or relative or sticky */
+ outline: inherit;
+ outline-offset: inherit;
+ clip-path: inherit;
+ filter: inherit;
+ mask: inherit;
+ opacity: inherit;
+ text-decoration: inherit;
+ -moz-box-ordinal-group: inherit;
+ overflow-clip-box: inherit;
+ unicode-bidi: inherit;
+ user-select: inherit;
+ text-overflow: inherit;
+ /* The properties below here don't apply if our position is static,
+ and we do want them to have an effect if it's not, so it's fine
+ to always inherit them. */
+ top: inherit;
+ left: inherit;
+ bottom: inherit;
+ right: inherit;
+ z-index: inherit;
+}
+
+*|*::-moz-scrolled-content, *|*::-moz-scrolled-canvas {
+ /* e.g., text inputs, select boxes */
+ padding: inherit;
+ /* The display doesn't affect the kind of frame constructed here. This just
+ affects auto-width sizing of the block we create. */
+ display: block;
+ /* make unicode-bidi inherit, otherwise it has no effect on text inputs and
+ blocks with overflow: scroll; */
+ unicode-bidi: inherit;
+ text-overflow: inherit;
+ /* Please keep the declarations below in sync with ::-moz-fieldset-content /
+ ::-moz-button-content in forms.css */
+ content: inherit;
+ /* Multicol container */
+ column-count: inherit;
+ column-width: inherit;
+ column-gap: inherit;
+ column-rule: inherit;
+ column-fill: inherit;
+ /* Flex container */
+ flex-direction: inherit;
+ flex-wrap: inherit;
+ /* -webkit-box container (aliased from -webkit versions to -moz versions) */
+ -moz-box-orient: inherit;
+ -moz-box-direction: inherit;
+ -moz-box-pack: inherit;
+ -moz-box-align: inherit;
+ -webkit-line-clamp: inherit;
+ /* Grid container */
+ grid-auto-columns: inherit;
+ grid-auto-rows: inherit;
+ grid-auto-flow: inherit;
+ grid-column-gap: inherit;
+ grid-row-gap: inherit;
+ grid-template-areas: inherit;
+ grid-template-columns: inherit;
+ grid-template-rows: inherit;
+ /* CSS Align */
+ align-content: inherit;
+ align-items: inherit;
+ justify-content: inherit;
+ justify-items: inherit;
+ /* Do not change these. nsCSSFrameConstructor depends on them to create a good
+ frame tree. */
+ overflow-clip-box: inherit;
+}
+
+*|*::-moz-viewport, *|*::-moz-viewport-scroll, *|*::-moz-canvas, *|*::-moz-scrolled-canvas {
+ display: block;
+ background-color: inherit;
+}
+
+*|*::-moz-viewport-scroll {
+ overflow: auto;
+}
+
+*|*::-moz-column-set,
+*|*::-moz-column-content {
+ /* the column boxes inside a column-flowed block */
+ /* make unicode-bidi inherit, otherwise it has no effect on column boxes */
+ unicode-bidi: inherit;
+ text-overflow: inherit;
+ /* Both -moz-column-set and -moz-column-content need to be blocks. */
+ display: block;
+}
+
+*|*::-moz-column-set {
+ /* Inherit from ColumnSetWrapperFrame so that nsColumnSetFrame is aware of
+ them.*/
+ columns: inherit;
+ column-gap: inherit;
+ column-rule: inherit;
+ column-fill: inherit;
+}
+
+*|*::-moz-column-span-wrapper {
+ /* As a result of the discussion in
+ * https://github.com/w3c/csswg-drafts/issues/1072, most of the styles
+ * currently applied to ::-moz-block-inside-inline-wrapper should not
+ * apply here. */
+ display: block;
+ column-span: all;
+}
+
+*|*::-moz-anonymous-item {
+ /* Anonymous blocks that wrap contiguous runs of text
+ * inside of a flex / grid / -moz-box container. */
+ display: block;
+}
+
+*|*::-moz-page-sequence {
+ /* Collection of pages in print/print preview. Visual styles may only appear
+ * in print preview. */
+ display: block;
+ background: linear-gradient(#606060, #8a8a8a) fixed;
+ /* We always fill the available space in both directions */
+ height: 100%;
+ width: 100%;
+}
+
+*|*::-moz-printed-sheet {
+ /* Individual sheet of paper in print/print preview. Visual styles may only
+ * appear in print preview. */
+ display: block;
+ background: white;
+ box-shadow: 5px 5px 8px #202020;
+ box-decoration-break: clone;
+ /* TODO: Remove margin if viewport is small or something? */
+ margin: 0.125in 0.25in;
+}
+
+@media (monochrome) and (-moz-print-preview) {
+ *|*::-moz-page {
+ filter: grayscale(1);
+ }
+}
+
+*|*::-moz-page-content {
+ display: block;
+ margin: auto;
+}
+
+*|*::-moz-page-break {
+ display: block;
+}
+
+/* Printing */
+
+@media print {
+ * {
+ cursor: default !important;
+ }
+}
+
+:fullscreen:not(:root) {
+ position: fixed !important;
+ top: 0 !important;
+ left: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ width: 100% !important;
+ height: 100% !important;
+ margin: 0 !important;
+ min-width: 0 !important;
+ max-width: none !important;
+ min-height: 0 !important;
+ max-height: none !important;
+ box-sizing: border-box !important;
+ object-fit: contain;
+ transform: none !important;
+}
+
+xul|*:fullscreen:not(:root, [hidden="true"]) {
+ /* The position: fixed; property above used to force the computed display
+ * value to block. It is no longer the case now, so we manually set it here to
+ * maintain the old behaviour. We should probably not do this, but we don't
+ * fullscreen XUL element that frequently either. */
+ display: block;
+}
+
+/* This pseudo-class is used to remove the inertness for the topmost modal
+ * element in top layer.
+ *
+ * Avoid doing this if the element is explicitly inert though. */
+:-moz-topmost-modal:not(html|*[inert]) {
+ -moz-inert: none;
+ /* Topmost modal elements need to be selectable even though ancestors are
+ * inert, but allow users to override this if they want to. */
+ user-select: text;
+}
+
+/**
+ * Ensure we recompute the default color for the root based on its
+ * computed color-scheme. This matches other browsers.
+ *
+ * For the default background, we look at the root
+ * element style frame in
+ * PresShell::GetDefaultBackgroundColorToDraw, however we
+ * can't make the initial style (the style the root element
+ * inherits from) depend on the root element's style, as that
+ * is trivially cyclic.
+ */
+:root {
+ color: CanvasText;
+}
+
+/* Selectors here should match the check in
+ * nsViewportFrame.cpp:ShouldInTopLayerForFullscreen() */
+:fullscreen:not(:root, :-moz-browser-frame) {
+ -moz-top-layer: top !important;
+}
+
+::backdrop {
+ -moz-top-layer: top !important;
+ display: block;
+ position: fixed;
+ top: 0; left: 0;
+ right: 0; bottom: 0;
+ /* This prevents undesired interactions with the selection code. */
+ user-select: none;
+}
+
+:fullscreen:not(:root)::backdrop {
+ background: black;
+}
+
+/* XML parse error reporting */
+
+parsererror|parsererror {
+ display: block;
+ font-family: sans-serif;
+ font-weight: bold;
+ white-space: pre;
+ margin: 1em;
+ padding: 1em;
+ border-width: thin;
+ border-style: inset;
+ border-color: red;
+ font-size: 14pt;
+ background-color: lightyellow;
+ color: black;
+}
+
+parsererror|sourcetext {
+ display: block;
+ white-space: pre;
+ font-family: -moz-fixed;
+ margin-top: 2em;
+ margin-bottom: 1em;
+ color: red;
+ font-weight: bold;
+ font-size: 12pt;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret {
+ /* Add transition effect to make caret size changing smoother. */
+ transition-property: width, height, margin-left;
+
+ position: absolute;
+ z-index: 2147483647;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret > :is(#text-overlay, #image) {
+ width: 100%;
+
+ /* Override this property in moz-custom-content-container to make dummy touch
+ * listener work. */
+ pointer-events: auto;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret > #image {
+ background-position: center top;
+ background-size: 100%;
+ background-repeat: no-repeat;
+ background-origin: content-box;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.normal > #image {
+ background-image: image-set(
+ url("resource://gre-resources/accessiblecaret-normal@1x.png"),
+ url("resource://gre-resources/accessiblecaret-normal@1.5x.png") 1.5x,
+ url("resource://gre-resources/accessiblecaret-normal@2x.png") 2x,
+ url("resource://gre-resources/accessiblecaret-normal@2.25x.png") 2.25x
+ );
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.left > :is(#text-overlay, #image) {
+ margin-left: -39%;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.left > #image {
+ background-image: image-set(
+ url("resource://gre-resources/accessiblecaret-tilt-left@1x.png"),
+ url("resource://gre-resources/accessiblecaret-tilt-left@1.5x.png") 1.5x,
+ url("resource://gre-resources/accessiblecaret-tilt-left@2x.png") 2x,
+ url("resource://gre-resources/accessiblecaret-tilt-left@2.25x.png") 2.25x
+ );
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.right > :is(#text-overlay, #image) {
+ margin-left: 41%;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.right > #image {
+ background-image: image-set(
+ url("resource://gre-resources/accessiblecaret-tilt-right@1x.png"),
+ url("resource://gre-resources/accessiblecaret-tilt-right@1.5x.png") 1.5x,
+ url("resource://gre-resources/accessiblecaret-tilt-right@2x.png") 2x,
+ url("resource://gre-resources/accessiblecaret-tilt-right@2.25x.png") 2.25x
+ );
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.none {
+ display: none;
+}
+
+div:-moz-native-anonymous.moz-accessiblecaret.hidden {
+ visibility: hidden;
+}
+
+@media (-moz-platform: android) {
+ div:-moz-native-anonymous.moz-accessiblecaret > :is(#text-overlay, #image) {
+ /* border: 0.1px solid red; */ /* Uncomment border to see the touch target. */
+ padding-left: 59%; /* Enlarge the touch area. ((48-22)/2)px / 22px ~= 59% */
+ padding-right: 59%; /* Enlarge the touch area. */
+ margin-left: -59%;
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret > #image {
+ padding-bottom: 59%; /* Enlarge the touch area. */
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret.normal > #image {
+ background-image: url("chrome://geckoview/skin/images/accessiblecaret-normal.svg");
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret.left > :is(#text-overlay, #image) {
+ margin-left: -109%;
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret.left > #image {
+ background-image: url("chrome://geckoview/skin/images/accessiblecaret-tilt-left.svg");
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret.right > :is(#text-overlay, #image) {
+ margin-left: -12%;
+ }
+
+ div:-moz-native-anonymous.moz-accessiblecaret.right > #image {
+ background-image: url("chrome://geckoview/skin/images/accessiblecaret-tilt-right.svg");
+ }
+}
+
+/* Custom content container in the CanvasFrame, positioned on top of everything
+ everything else, not reacting to pointer events. */
+div:-moz-native-anonymous.moz-custom-content-container {
+ pointer-events: none;
+ user-select: none;
+ -moz-top-layer: top;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}