/* 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/. */

.linear-easing-function-container {
  height: 100%;
  direction: ltr;
}

.linear-easing-function-container .display-wrap {
  --chart-size: 300px;
  height: 100%;
  display: grid;
  grid-template-rows: var(--chart-size) 1fr;
  justify-items: center;
  align-items: center;
  gap: 5px;
}

.linear-easing-function-container svg.chart {
  aspect-ratio: 1 / 1;
  max-height: 100%;
}

.linear-easing-function-container .chart-grid {
  stroke: var(--timing-function-grid-color);
  pointer-events: none;
}

.linear-easing-function-container .chart-linear {
  -moz-context-properties: stroke;
  stroke: var(--timing-function-line-color);
}

.linear-easing-function-container .control-point {
  -moz-context-properties: fill, stroke;
  fill: var(--timing-function-control-point-background);
  cursor: pointer;
}

/* Timing Function Preview Widget */

.linear-easing-function-container .timing-function-preview {
  width: var(--chart-size);
  /* Draw a background line */
  background: linear-gradient(0deg, transparent 45%, var(--timing-function-preview-scale) 45%, var(--timing-function-preview-scale) 55%, transparent 55%);
  /* opt-out of forced colors so we can see the "line" gradient */
  forced-color-adjust: none;
}

.linear-easing-function-container .timing-function-preview .dot::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 2px solid var(--timing-function-preview-dot-border);
  background: var(--timing-function-line-color);
  /* We need to opt-out of forced color as --timing-function-line-color is
     a registered color and gets computed to an rgb color which means the color
     will be forced, even if the declaration value is a system color.
     All the colors used here have High Contrast re-declaration so it should be fine */
  forced-color-adjust: none;
}
