@use 'iro-sass/src/index' as iro; @use 'include-media/dist/include-media' as media; @use 'functions' as fn; iro.$vars-root-size: 16px; media.$breakpoints: ( md: 40rem, sm: 28rem ); media.$unit-intervals: ( 'px': 1, 'em': .01, 'rem': .01, '': 0 ); // @include iro.props-store(( --dims: ( --spacing: ( --base: 1.6rem, --factors: ( --xs: .25, --sm: .5, --md: 1, --lg: 1.5, --xl: 2, ), --x: ( --sm: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --sm, null)), --md: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --md, null)), --lg: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --lg, null)), ), --y: ( --xs: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --xs, null)), --sm: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --sm, null)), --md: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --md, null)), --lg: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --lg, null)), --xl: calc(fn.dim(--spacing --base, null) * fn.dim(--spacing --factors --xl, null)), ), ), --font: ( --standard: ( --family: ('IBM Plex Sans', 'Open Sans', 'Segoe UI', 'Droid Sans', Roboto, Oxygen, 'Helvetica Neue', Helvetica, Tahoma, Arial, sans-serif), --line-height: 1.5, ), --headline: ( --family: ('IBM Plex Sans', 'Open Sans', 'Segoe UI', 'Droid Sans', Roboto, Oxygen, 'Helvetica Neue', Helvetica, Tahoma, Arial, sans-serif), --line-height: 1.2, --weight: 700, ) ), --font-size: ( --xs: iro.fn-px-to-rem(11px), --sm: iro.fn-px-to-rem(13px), --md: iro.fn-px-to-rem(14px), --lg: iro.fn-px-to-rem(16px), --xl: iro.fn-px-to-rem(18px), --xxl: iro.fn-px-to-rem(22px), --xxxl: iro.fn-px-to-rem(28px), ), --border-width: ( --thick: 4px, --medium: 2px, --thin: 1px, ), --focus-outline-width: 3px, --paragraph: ( --margin-top: fn.dim(--spacing --y --sm, null), ), --list: ( --indent: 3rem, ), ), ), 'dims'); // @include iro.fn-execute { $primary-accent-base: hsl(222, 49.8%, 52.4%); $error-accent-base: hsl(352, 49.8%, 52.4%); $success-accent-base: hsl(113, 49.8%, 39.6%); @include iro.props-store(( --colors: ( --bg-hi2: fn.color(--gray1, null), // Lightest background --bg-hi: fn.color(--gray2, null), // Lighter background --bg: fn.color(--gray3, null), // Background --obj-hi: fn.color(--gray4, null), --obj: fn.color(--gray5, null), --obj-lo: fn.color(--gray6, null), --fg-hi3: fn.color(--gray7, null), // Disabled text --fg-hi2: fn.color(--gray8, null), // Placeholder text --fg-hi: fn.color(--gray9, null), // Faint text --fg: fn.color(--gray10, null), // Text --fg-lo: fn.color(--gray11, null), // Strong text --accent: ( --primary-const-hi: scale-color($primary-accent-base, $lightness: 15%), --primary-const: $primary-accent-base, --primary-const-lo: scale-color($primary-accent-base, $lightness: -15%), --primary-const-lo2: scale-color($primary-accent-base, $lightness: -25%), --primary-const-semi: rgba($primary-accent-base, .4), --primary-const-selection: rgba($primary-accent-base, .99), --primary-const-fg: #fff, --primary-hi: fn.color(--accent --primary-const-hi, null), --primary: fn.color(--accent --primary-const, null), --primary-lo: fn.color(--accent --primary-const-lo, null), --primary-lo2: fn.color(--accent --primary-const-lo2, null), --primary-fg: fn.color(--accent --primary-const-fg, null), --error-hi: scale-color($error-accent-base, $lightness: 15%), --error: $error-accent-base, --error-lo: scale-color($error-accent-base, $lightness: -15%), --error-lo2: scale-color($error-accent-base, $lightness: -25%), --error-fg: #fff, --success-hi: scale-color($success-accent-base, $lightness: 15%), --success: $success-accent-base, --success-lo: scale-color($success-accent-base, $lightness: -15%), --success-lo2: scale-color($success-accent-base, $lightness: -25%), --success-fg: #fff, ), --grayscale-accent: ( --primary-hi: fn.color(--fg-hi2, null), --primary: fn.color(--fg-hi, null), --primary-lo: fn.color(--fg, null), --primary-lo2: fn.color(--fg-lo, null), --primary-fg: #fff, ), --selection: ( --bg: fn.color(--accent --primary-const-selection, null), --bg-img: fn.color(--accent --primary-const-semi, null), --fg: fn.color(--accent --primary-const-fg, null), ), --focus: ( --shadow: 0 0 0 fn.dim(--focus-outline-width, null) fn.color(--accent --primary-const-semi, null), --fill: fn.color(--accent --primary-const, null), --text: fn.color(--accent --primary-const-lo, null), --fill-text: fn.color(--accent --primary-const-fg, null), ), ), ), 'colors'); @include iro.props-store(( --colors: ( --gray1: hsl(210, 0%, 100%), // 1.11 --gray2: hsl(210, 0%, 98%), // 1.07 --gray3: hsl(210, 0%, 95%), // 1 --gray4: hsl(210, 0%, 90%), // 1.11 --gray5: hsl(210, 0%, 87%), // 1.2 --gray6: hsl(210, 0%, 78%), // 1.51 --gray7: hsl(210, 0%, 69%), // 1.93 --gray8: hsl(210, 0%, 55%), // 3 --gray9: hsl(210, 0%, 38%), // 5.53 --gray10: hsl(210, 0%, 19%), // 11.78 --gray11: hsl(210, 0%, 0%), // 18.75 ) ), 'palette-light'); @include iro.props-store(( --colors: ( --gray1: hsl(210, 0%, 100%), // 1 --gray2: hsl(210, 0%, 100%), // 1 --gray3: hsl(210, 0%, 100%), // 1 --gray4: hsl(210, 0%, 95%), // 1.11 --gray5: hsl(210, 0%, 92%), // 1.19 --gray6: hsl(210, 0%, 82%), // 1.52 --gray7: hsl(210, 0%, 73%), // 1.94 --gray8: hsl(210, 0%, 58%), // 3.03 --gray9: hsl(210, 0%, 41%), // 5.48 --gray10: hsl(210, 0%, 22%), // 11.72 --gray11: hsl(210, 0%, 0%), // 21 ) ), 'palette-light-raised'); } // @include iro.fn-execute { @include iro.props-store(( --colors: () ), 'colors-dark'); @include iro.props-store(( --colors: () ), 'palette-dark'); @include iro.props-store(( --colors: () ), 'palette-dark-raised'); } // @each $breakpoint in map-keys(media.$breakpoints) { @include media.media('<=#{$breakpoint}') { @include iro.props-store(( --colors: () ), $breakpoint); } }