@use '../../../style/elements/ui-spacing.scss';
@import '../../../components/space/style/space-mixins.scss';

@mixin codeStyle() {
  $code-scale: 0.875;
  display: inline-block;

  // Used by properties tables
  del & {
    text-decoration: line-through;
  }

  &:not([class*='dnb-space']) {
    margin: calc(-0.25em / #{$code-scale}) 0;
  }
  padding: calc(0.25em / #{$code-scale});

  font-size: #{$code-scale}em;
  text-decoration: inherit;
  line-height: calc(var(--line-height-xx-small--em) / #{$code-scale});

  color: inherit;

  border-radius: 0.1875em;

  & .dnb-anchor {
    font-size: inherit;
  }
}

@mixin preStyle() {
  display: block;
  overflow: auto;

  @include spaceReset();
  padding: 1rem;

  border-radius: 0.5rem;

  // make a base reset
  white-space: pre;
  vertical-align: baseline;
  outline: none;
  text-shadow: none;
  hyphens: none;
  word-wrap: normal;
  word-break: normal;
  text-align: left;
  word-spacing: normal;
  tab-size: 2;

  font-size: inherit;
  font-family: var(--font-family-monospace);

  pre {
    padding: 1rem;
  }

  .dnb-spacing pre {
    @include ui-spacing.defaultSpacing();
  }
}

@mixin codeTag() {
  code {
    @include codeStyle();
  }
}

@mixin preTag() {
  pre {
    @include preStyle();
  }
}
