themes/olivero/css/base/variables.pcss.css
/*
  Global CSS custom properties.
*/

@import "./media-queries.pcss.css";

/* stylelint-disable */

:root {
  --font-sans: "metropolis", sans-serif;
  --font-serif: "Lora", "georgia", serif;

  /* Typography helpers. */
  --font-size-base: 16px;
  --font-size-l: 18px;
  --font-size-s: 14px;
  --font-size-xs: 13px;
  --font-size-xxs: 12px;
  --line-height-base: 27px;
  --line-height-s: 18px;

  /* Layout helpers. */
  --max-width: 1350px;
  --max-bg-color: 1570px; /* Width to which the background color extends to. */
  --sp: 18px;
  --content-left: 90px;
  --site-header-height-wide: var(--sp10);
  --container-padding: var(--sp); /* Inline padding on .container elements. */

  @media (--nav) {
    --container-padding: var(--sp2);
  }

  /**
   * Grid helpers.
   *
   * These variables help authors apply widths and negative margins to break items out of
   * the grid, while still conforming to the larger grid system.
   */
  --scrollbar-width: 0px; /* Unit must be specified here for calc() to work properly.*/
  --grid-col-count: 6;
  --grid-gap: var(--sp);
  --grid-gap-count: calc(var(--grid-col-count) - 1); /* Count of grid-gaps. */
  --grid-full-width: calc(100vw - var(--sp2) - var(--scrollbar-width)); /* Width of the entire grid. */
  --grid-col-width: calc((var(--grid-full-width) - (var(--grid-gap-count) * var(--grid-gap))) / var(--grid-col-count)); /* Width of a grid column. */

  @media (--md) {
    --grid-col-count: 14;
    --grid-gap: var(--sp2);
  }

  @media (--lg) {
    --scrollbar-width: 15px; /* Approximate width of a scrollbar. Doesn't have to be perfect. */
  }

  @media (--nav) {
    --grid-full-width: calc(100vw - var(--scrollbar-width) - var(--content-left) - var(--sp4));
  }

  @media (--grid-max) {
    --grid-full-width: calc(var(--max-width) - var(--sp4));
  }

  /* Layout helpers */
  --sp0-25: calc(0.25 * var(--sp));
  --sp0-5: calc(0.5 * var(--sp));
  --sp0-75: calc(0.75 * var(--sp));
  --sp1: calc(1 * var(--sp));
  --sp1-5: calc(1.5 * var(--sp));
  --sp2: calc(2 * var(--sp));
  --sp2-5: calc(2.5 * var(--sp));
  --sp3: calc(3 * var(--sp));
  --sp3-5: calc(3.5 * var(--sp));
  --sp4: calc(4 * var(--sp));
  --sp4-5: calc(4.5 * var(--sp));
  --sp5: calc(5 * var(--sp));
  --sp6: calc(6 * var(--sp));
  --sp7: calc(7 * var(--sp));
  --sp8: calc(8 * var(--sp));
  --sp9: calc(9 * var(--sp));
  --sp10: calc(10 * var(--sp));
  --sp11: calc(11 * var(--sp));
  --sp12: calc(12 * var(--sp));
  --sp13: calc(13 * var(--sp));

  /**
   * Gray colors.
   *
   * Color number roughly corresponds to its luminosity.
   */
  --color--gray-hue: 201;
  --color--gray-saturation: 15%;
  --color--gray-5: hsl(var(--color--gray-hue), var(--color--gray-saturation), 5%); /* Black */
  --color--gray-10: hsl(var(--color--gray-hue), var(--color--gray-saturation), 11%);
  --color--gray-20: hsl(var(--color--gray-hue), var(--color--gray-saturation), 20%); /* Black 2 */
  --color--gray-45: hsl(var(--color--gray-hue), var(--color--gray-saturation), 44%); /* Gray Dark */
  --color--gray-60: hsl(var(--color--gray-hue), var(--color--gray-saturation), 57%); /* Gray medium */
  --color--gray-65: hsl(var(--color--gray-hue), var(--color--gray-saturation), 63%); /* Black 4 */
  --color--gray-70: hsl(var(--color--gray-hue), var(--color--gray-saturation), 72%); /* Gray medium 2 */
  --color--gray-90: hsl(var(--color--gray-hue), var(--color--gray-saturation), 88%); /* Gray light */
  --color--gray-95: hsl(var(--color--gray-hue), var(--color--gray-saturation), 93%); /* Gray light 1 */
  --color--gray-100: hsl(var(--color--gray-hue), var(--color--gray-saturation), 97%); /* Gray light 2 */

  /**
   * Primary colors.
   *
   * Color number roughly corresponds to its luminosity.
   */
  --color--primary-hue: 202;
  --color--primary-saturation: 79%;
  --color--primary-lightness: 50;
  --color--primary-30: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) - (0.36 * var(--color--primary-lightness)))));
  --color--primary-40: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) - (0.24 * var(--color--primary-lightness))))); /* Blue dark */
  --color--primary-50: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * var(--color--primary-lightness))); /* Blue medium */
  --color--primary-60: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) + (0.24 * (100 - var(--color--primary-lightness)))))); /* Blue bright */
  --color--primary-80: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) + (0.85 * (100 - var(--color--primary-lightness)))))); /* Blue very bright */

  /**
   * Variables specific to text.
   */
  --color-text-neutral-soft: var(--color--gray-45);
  --color-text-neutral-medium: var(--color--gray-20);
  --color-text-neutral-loud: var(--color--gray-5);

  --color-text-primary-medium: var(--color--primary-40);
  --color-text-primary-loud: var(--color--primary-30);

  /**
   * Named Colors.
   */
  --color--black: #000; /* Black */
  --color--white: #fff; /* White */
  --color--red: #e33f1e; /* Red */
  --color--gold: #fdca40; /* Gold */
  --color--green: #3fa21c; /* Green */

  /* Header */
  --header-height-wide-when-fixed: var(--sp6);

  /* Width of slide out navigation */
  --mobile-nav-width: 500px;

  /* Border radius */
  --border-radius: 3px;
}
