{"version":3,"sources":["../src/src/box/box.scss","../src/src/support/variables/color-system.scss","../src/src/support/variables/misc.scss","../src/src/support/variables/typography.scss","../src/src/support/variables/layout.scss","../src/src/support/mixins/layout.scss"],"names":[],"mappings":"AAGA,KACE,qBCFU,CDGV,wBEAkB,CFClB,iBEIoB,CFHrB,gBAIC,gBGmBiB,CHpBnB,4BAII,gBIuBkB,CJ3BtB,0BAQI,gBImBkB,CJ3BtB,4BAYI,gBIekB,CJ3BtB,6CAiBM,gBIUgB,CJRhB,iBIQgB,CJPhB,gBGAa,CHpBnB,yBAyBI,gBIEkB,CJDnB,2BAMC,YIJkB,CJKlB,gBGbe,CHUnB,0BAOI,cGhCU,CHyBd,yBAWI,YIbkB,CJEtB,2BAeI,YIjBkB,CJEtB,4CAoBM,YItBgB,CJwBhB,kBIxBgB,CJEtB,wBA2BI,YI7BkB,CJ8BnB,YAKD,YIpCoB,CJsCpB,kBAA2C,CAC3C,wBCpEuB,CDqEvB,oBCpEuB,CDqEvB,kBEzEkB,CF0ElB,gBE5EgB,CF6EhB,0BEtEoB,CFuEpB,2BEvEoB,CFwErB,WAGC,cG7CmB,CH8CnB,eG/DoB,CHgErB,UAGC,YIrDoB,CJsDpB,+BClFuB,CDgFzB,uBAOI,kBE7Fc,CF8Fd,8BEvFkB,CFwFlB,6BExFkB,CFyFnB,SAKD,YInEoB,CJqEpB,eAAgB,CAChB,oBAAqB,CACrB,4BEvGkB,CFkGpB,uBAQI,0BErGkB,CFsGlB,2BEtGkB,CF6FtB,sBAaI,8BE1GkB,CF2GlB,6BE3GkB,CF6FtB,yCAuBI,gCAA+B,CAvBnC,gDA6BM,aC5GmB,CD6GnB,WAAY,CACZ,WAAY,CA/BlB,4DAoCM,eAAgB,CApCtB,0CAyCM,wBCzImB,CDgGzB,yCA8CM,wBC7ImB,CD+FzB,6DAkDQ,SAAU,CACX,sCAQH,wBC1JqB,CD2JtB,sCAKC,wBCrJqB,CDsJtB,2BAKC,wBCtKqB,CDuKtB,2BAKC,wBCjKqB,CILnB,0BL6KN,cAGI,aC9KqB,CD+KrB,oBAAqB,CAJzB,oBAOM,aC1KmB,CD2KnB,oBAAqB,CACtB,CAOL,sBACE,SAAU,CACX,YAGC,YI3KoB,CJ6KpB,eAAgB,CAChB,4BE9MkB,CF+MnB,iBAIC,gBAAiB,CACjB,eAAgB,CACjB,WAKC,oBC1MuB,CDyMzB,uBAII,wBC/MqB,CDgNrB,oBC9MqB,CDyMzB,qBASI,oBClNqB,CDyMzB,oBAaI,oBCtNqB,CDyMzB,uBAiBI,oBC1NqB,CD2NtB,aAMD,oBC9KuB,CD6KzB,oCAKM,oBClLmB,CD6KzB,oCAWM,oBCxLmB,CDyLpB,kBAKH,wBCnPuB,CDoPvB,oBClPuB,CDmPxB,iBAMC,wBClOuB,CDmOxB,eAGC,wBC/PuB,CDgQxB,eAGC,wBC9QuB,CD+QxB,6BAOG,iBIzPkB,CJ2PlB,kBI3PkB,CJ4PlB,eGlQY","file":"box.css","sourcesContent":["// Box\n// Intended to replace simple-box, boxed-group, and table-list\n\n.Box {\n background-color: $bg-white;\n border: $border;\n border-radius: $border-radius;\n}\n\n// Box padding density options\n.Box--condensed {\n line-height: $lh-condensed;\n\n .Box-header {\n padding: $spacer-2 $spacer-3;\n }\n\n .Box-body {\n padding: $spacer-2 $spacer-3;\n }\n\n .Box-footer {\n padding: $spacer-2 $spacer-3;\n }\n\n .Box-btn-octicon {\n &.btn-octicon {\n padding: $spacer-2 $spacer-3;\n // stylelint-disable-next-line primer/spacing\n margin: (-$spacer-2) (-$spacer-3);\n line-height: $lh-condensed;\n }\n }\n\n .Box-row {\n padding: $spacer-2 $spacer-3;\n }\n\n}\n\n.Box--spacious {\n .Box-header {\n padding: $spacer-4;\n line-height: $lh-condensed;\n }\n\n .Box-title {\n font-size: $h3-size;\n }\n\n .Box-body {\n padding: $spacer-4;\n }\n\n .Box-footer {\n padding: $spacer-4;\n }\n\n .Box-btn-octicon {\n &.btn-octicon {\n padding: $spacer-4;\n // stylelint-disable-next-line primer/spacing\n margin: (-$spacer-4) (-$spacer-4);\n }\n }\n\n .Box-row {\n padding: $spacer-4;\n }\n\n}\n\n.Box-header {\n padding: $spacer-3;\n // stylelint-disable-next-line primer/spacing\n margin: (-$border-width) (-$border-width) 0;\n background-color: $bg-gray;\n border-color: $border-color;\n border-style: $border-style;\n border-width: $border-width;\n border-top-left-radius: $border-radius;\n border-top-right-radius: $border-radius;\n}\n\n.Box-title {\n font-size: $body-font-size;\n font-weight: $font-weight-bold;\n}\n\n.Box-body {\n padding: $spacer-3;\n border-bottom: $border-width $border-style $border-gray;\n\n // Ensures bottom-border doesn't poke out when .Box-body used without box-footer\n &:last-of-type {\n // stylelint-disable-next-line primer/spacing\n margin-bottom: -$border-width;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n}\n\n// Box rows\n.Box-row {\n padding: $spacer-3;\n // stylelint-disable-next-line primer/spacing\n margin-top: -1px;\n list-style-type: none; // To account for applying Box component to a list\n border-top: $border;\n\n &:first-of-type {\n border-top-left-radius: $border-radius;\n border-top-right-radius: $border-radius;\n }\n\n &:last-of-type {\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n\n // Adds a blue vertical line to the left of the row\n // For indicating a row item is unread\n &.Box-row--unread,\n // .unread to be deprecated with .Box-row-unread\n &.unread {\n // stylelint-disable-next-line primer/box-shadow\n box-shadow: 2px 0 0 $blue inset;\n }\n\n &.navigation-focus {\n // Focus styles for when drag icon\n .Box-row--drag-button {\n color: $text-blue;\n cursor: grab;\n opacity: 100;\n }\n\n // Grabbing while row is dragged\n &.is-dragging .Box-row--drag-button {\n cursor: grabbing;\n }\n\n // Row dragging styles\n &.sortable-chosen {\n background-color: $bg-gray-light;\n }\n\n // Makes dragging row background gray\n &.sortable-ghost {\n background-color: $bg-gray;\n\n // Hides contents of row while dragging so row looks solid gray\n .Box-row--drag-hide {\n opacity: 0;\n }\n }\n\n }\n}\n\n.Box-row--focus-gray {\n &.navigation-focus {\n background-color: $bg-gray;\n }\n}\n\n.Box-row--focus-blue {\n &.navigation-focus {\n background-color: $bg-blue-light;\n }\n}\n\n.Box-row--hover-gray {\n &:hover {\n background-color: $bg-gray;\n }\n}\n\n.Box-row--hover-blue {\n &:hover {\n background-color: $bg-blue-light;\n }\n}\n\n// Optional link style\n// Makes links on mobile blue since they don't have hover state,\n// and links are dark-gray with blue hover on desktop.\n.Box-row-link {\n @include breakpoint(md) {\n\n color: $text-gray-dark;\n text-decoration: none;\n\n &:hover {\n color: $text-blue;\n text-decoration: none;\n }\n\n }\n}\n\n// Optional drag icon styles for reordering items\n// Focus styles included in .Box-row above\n.Box-row--drag-button {\n opacity: 0;\n}\n\n.Box-footer {\n padding: $spacer-3;\n // stylelint-disable-next-line primer/spacing\n margin-top: -1px; // prevents double border when used with .Box-body\n border-top: $border;\n}\n\n// Option for a box with scrolling content\n.Box--scrollable {\n max-height: 324px;\n overflow: scroll;\n}\n\n// Box themes\n\n.Box--blue {\n border-color: $border-blue-light;\n\n .Box-header {\n background-color: $bg-blue-light;\n border-color: $border-blue-light;\n }\n\n .Box-body {\n border-color: $border-blue-light;\n }\n\n .Box-row {\n border-color: $border-blue-light;\n }\n\n .Box-footer {\n border-color: $border-blue-light;\n }\n}\n\n// Applies and red border to the outside of the box,\n// but not to the border separating rows.\n.Box--danger {\n border-color: $border-red;\n\n .Box-row {\n &:first-of-type {\n border-color: $border-red;\n }\n }\n\n .Box-body {\n &:last-of-type {\n border-color: $border-red;\n }\n }\n}\n\n.Box-header--blue {\n background-color: $bg-blue-light;\n border-color: $border-blue-light;\n}\n\n// Box row highlight themes\n\n.Box-row--yellow {\n // stylelint-disable-next-line primer/colors\n background-color: $yellow-100;\n}\n\n.Box-row--blue {\n background-color: $bg-blue-light;\n}\n\n.Box-row--gray {\n background-color: $bg-gray;\n}\n\n//Box with btn-octicon\n.Box-btn-octicon {\n\n // Increase specificity when btn-octicon is used because comes after .Box in the cascade\n &.btn-octicon {\n padding: $spacer-3 $spacer-3;\n // stylelint-disable-next-line primer/spacing\n margin: (-$spacer-3) (-$spacer-3);\n line-height: $lh-default; // override btn-octicon line-height\n }\n}\n","// Black based on same hue as $gray-900\n$black: #1b1f23 !default;\n$white: #fff !default;\n\n//\n//\n// -------- Grays --------\n$gray-000: #fafbfc !default;\n$gray-100: #f6f8fa !default;\n$gray-200: #e1e4e8 !default;\n$gray-300: #d1d5da !default;\n$gray-400: #959da5 !default;\n$gray-500: #6a737d !default;\n$gray-600: #586069 !default;\n$gray-700: #444d56 !default;\n$gray-800: #2f363d !default;\n$gray-900: #24292e !default; // body font color\n\n// -------- Blue --------\n$blue-000: #f1f8ff !default;\n$blue-100: #dbedff !default;\n$blue-200: #c8e1ff !default;\n$blue-300: #79b8ff !default;\n$blue-400: #2188ff !default;\n$blue-500: #0366d6 !default; // Default: Passes AA with #fff\n$blue-600: #005cc5 !default;\n$blue-700: #044289 !default;\n$blue-800: #032f62 !default;\n$blue-900: #05264c !default; // Passes with 1/2/300 blues\n\n// -------- Green --------\n$green-000: #f0fff4 !default;\n$green-100: #dcffe4 !default;\n$green-200: #bef5cb !default;\n$green-300: #85e89d !default;\n$green-400: #34d058 !default;\n$green-500: #28a745 !default; // Default. passes AA Large\n$green-600: #22863a !default; // Text green, passes AA on #fff\n$green-700: #176f2c !default;\n$green-800: #165c26 !default;\n$green-900: #144620 !default;\n\n// -------- Yellow --------\n$yellow-000: #fffdef !default;\n$yellow-100: #fffbdd !default;\n$yellow-200: #fff5b1 !default;\n$yellow-300: #ffea7f !default;\n$yellow-400: #ffdf5d !default;\n$yellow-500: #ffd33d !default;\n$yellow-600: #f9c513 !default;\n$yellow-700: #dbab09 !default;\n$yellow-800: #b08800 !default;\n$yellow-900: #735c0f !default;\n\n// -------- Orange --------\n$orange-000: #fff8f2 !default;\n$orange-100: #ffebda !default;\n$orange-200: #ffd1ac !default;\n$orange-300: #ffab70 !default;\n$orange-400: #fb8532 !default;\n$orange-500: #f66a0a !default; // Default. passes AA Large with #fff\n$orange-600: #e36209 !default;\n$orange-700: #d15704 !default;\n$orange-800: #c24e00 !default;\n$orange-900: #a04100 !default;\n\n// -------- Red --------\n$red-000: #ffeef0 !default;\n$red-100: #ffdce0 !default;\n$red-200: #fdaeb7 !default;\n$red-300: #f97583 !default;\n$red-400: #ea4a5a !default;\n$red-500: #d73a49 !default; // Default. passes AA\n$red-600: #cb2431 !default;\n$red-700: #b31d28 !default;\n$red-800: #9e1c23 !default;\n$red-900: #86181d !default;\n\n// -------- Purple --------\n$purple-000: #f5f0ff !default;\n$purple-100: #e6dcfd !default;\n$purple-200: #d1bcf9 !default;\n$purple-300: #b392f0 !default;\n$purple-400: #8a63d2 !default;\n$purple-500: #6f42c1 !default; // passes AA with #fff\n$purple-600: #5a32a3 !default;\n$purple-700: #4c2889 !default;\n$purple-800: #3a1d6e !default;\n$purple-900: #29134e !default;\n\n// -------- Pink --------\n$pink-000: #ffeef8 !default;\n$pink-100: #fedbf0 !default;\n$pink-200: #f9b3dd !default;\n$pink-300: #f692ce !default;\n$pink-400: #ec6cb9 !default;\n$pink-500: #ea4aaa !default;\n$pink-600: #d03592 !default;\n$pink-700: #b93a86 !default;\n$pink-800: #99306f !default;\n$pink-900: #6d224f !default;\n\n// -------- Fades --------\n$black-fade-15: rgba($black, 0.15) !default;\n$black-fade-30: rgba($black, 0.3) !default;\n$black-fade-50: rgba($black, 0.5) !default;\n$black-fade-70: rgba($black, 0.7) !default;\n$black-fade-85: rgba($black, 0.85) !default;\n\n$white-fade-15: rgba($white, 0.15) !default;\n$white-fade-30: rgba($white, 0.3) !default;\n$white-fade-50: rgba($white, 0.5) !default;\n$white-fade-70: rgba($white, 0.7) !default;\n$white-fade-85: rgba($white, 0.85) !default;\n\n// -------- Color defaults --------\n$red: $red-500 !default;\n$purple: $purple-500 !default;\n$blue: $blue-500 !default;\n$green: $green-500 !default;\n$yellow: $yellow-500 !default;\n$orange: $orange-500 !default;\n\n$gray-dark: $gray-900 !default;\n$gray-light: $gray-400 !default;\n$gray: $gray-500 !default;\n\n// -------- Color gradient maps --------\n\n$grays: (\n 0: $gray-000,\n 1: $gray-100,\n 2: $gray-200,\n 3: $gray-300,\n 4: $gray-400,\n 5: $gray-500,\n 6: $gray-600,\n 7: $gray-700,\n 8: $gray-800,\n 9: $gray-900,\n) !default;\n\n$blues: (\n 0: $blue-000,\n 1: $blue-100,\n 2: $blue-200,\n 3: $blue-300,\n 4: $blue-400,\n 5: $blue-500,\n 6: $blue-600,\n 7: $blue-700,\n 8: $blue-800,\n 9: $blue-900,\n) !default;\n\n$greens: (\n 0: $green-000,\n 1: $green-100,\n 2: $green-200,\n 3: $green-300,\n 4: $green-400,\n 5: $green-500,\n 6: $green-600,\n 7: $green-700,\n 8: $green-800,\n 9: $green-900,\n) !default;\n\n$yellows: (\n 0: $yellow-000,\n 1: $yellow-100,\n 2: $yellow-200,\n 3: $yellow-300,\n 4: $yellow-400,\n 5: $yellow-500,\n 6: $yellow-600,\n 7: $yellow-700,\n 8: $yellow-800,\n 9: $yellow-900,\n) !default;\n\n$oranges: (\n 0: $orange-000,\n 1: $orange-100,\n 2: $orange-200,\n 3: $orange-300,\n 4: $orange-400,\n 5: $orange-500,\n 6: $orange-600,\n 7: $orange-700,\n 8: $orange-800,\n 9: $orange-900,\n) !default;\n\n$reds: (\n 0: $red-000,\n 1: $red-100,\n 2: $red-200,\n 3: $red-300,\n 4: $red-400,\n 5: $red-500,\n 6: $red-600,\n 7: $red-700,\n 8: $red-800,\n 9: $red-900,\n) !default;\n\n$purples: (\n 0: $purple-000,\n 1: $purple-100,\n 2: $purple-200,\n 3: $purple-300,\n 4: $purple-400,\n 5: $purple-500,\n 6: $purple-600,\n 7: $purple-700,\n 8: $purple-800,\n 9: $purple-900,\n) !default;\n\n$pinks: (\n 0: $pink-000,\n 1: $pink-100,\n 2: $pink-200,\n 3: $pink-300,\n 4: $pink-400,\n 5: $pink-500,\n 6: $pink-600,\n 7: $pink-700,\n 8: $pink-800,\n 9: $pink-900,\n) !default;\n\n$hue-maps: (\n \"gray\": $grays,\n \"blue\": $blues,\n \"green\": $greens,\n \"yellow\": $yellows,\n \"orange\": $oranges,\n \"red\": $reds,\n \"purple\": $purples,\n \"pink\": $pinks,\n) !default;\n","// Miscellaneous variables\n\n// Border\n$border-width: 1px !default;\n$border-color: $border-gray !default;\n$border-style: solid !default;\n$border: $border-width $border-color $border-style !default;\n\n// Border Radius\n$border-radius-1: 4px !default;\n$border-radius-2: 6px !default;\n$border-radius-3: 8px !default;\n$border-radius: $border-radius-2 !default;\n\n// Box shadow\n$box-shadow: 0 1px 0 rgba($black, 0.04) !default;\n$box-shadow-medium: 0 3px 6px rgba($gray-400, 0.15) !default;\n$box-shadow-large: 0 8px 24px rgba($gray-400, 0.2) !default;\n$box-shadow-extra-large: 0 12px 48px rgba($gray-400, 0.3) !default;\n\n$box-shadow-highlight: inset 0 1px 0 rgba($white, 0.25) !default; // top highlight\n$box-shadow-inset: inset 0 1px 0 rgba($border-color, 0.2) !default; // top inner shadow\n$box-shadow-focus: 0 0 0 3px rgba($border-blue, 0.3) !default; // blue focus ring\n\n// Button variables\n$border-color-button: $black-fade-15 !default;\n$btn-active-shadow: inset 0 0.15em 0.3em $black-fade-15 !default; // TODO: Deprecate?\n\n// Form variables\n$form-control-shadow: inset 0 1px 2px rgba($black, 0.075) !default; // TODO: Deprecate?\n$btn-input-focus-shadow: 0 0 0 0.2em rgba($blue, 0.3) !default; // TODO: Deprecate? Replaced by $box-shadow-focus\n\n// Tooltips\n$tooltip-max-width: 250px !default;\n$tooltip-background-color: $black !default;\n$tooltip-text-color: $white !default;\n$tooltip-delay: 0.4s !default;\n$tooltip-duration: 0.1s !default;\n\n// diffstat background colors\n$bg-diffstat-added: darken($green-400, 5%) !default;\n$bg-diffstat-deleted: $red-600 !default;\n$bg-diffstat-neutral: $gray-300 !default;\n","// Typography variables\n\n// Heading sizes - mobile\n// h4-h6 remain the same size on both mobile & desktop\n$h00-size-mobile: 40px !default;\n$h0-size-mobile: 32px !default;\n$h1-size-mobile: 26px !default;\n$h2-size-mobile: 22px !default;\n$h3-size-mobile: 18px !default;\n\n// Heading sizes - desktop\n$h00-size: 48px !default;\n$h0-size: 40px !default;\n$h1-size: 32px !default;\n$h2-size: 24px !default;\n$h3-size: 20px !default;\n$h4-size: 16px !default;\n$h5-size: 14px !default;\n$h6-size: 12px !default;\n\n$font-size-small: 12px !default;\n\n// Font weights\n$font-weight-bold: 600 !default;\n$font-weight-semibold: 500 !default;\n$font-weight-normal: 400 !default;\n$font-weight-light: 300 !default;\n\n// Line heights\n$lh-condensed-ultra: 1 !default;\n$lh-condensed: 1.25 !default;\n$lh-default: 1.5 !default;\n\n// Font stacks\n$body-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\" !default;\n\n// Monospace font stack\n$mono-font: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace !default;\n\n// The base body size\n$body-font-size: 14px !default;\n$body-line-height: $lh-default !default;\n","// Layout variables\n\n// these are values for the display CSS property\n$display-values: (\n block,\n flex,\n inline,\n inline-block,\n inline-flex,\n none,\n table,\n table-cell\n) !default;\n\n// maps edges to respective corners for border-radius\n$edges: (\n top: (top-left, top-right),\n right: (top-right, bottom-right),\n bottom: (bottom-right, bottom-left),\n left: (bottom-left, top-left)\n) !default;\n\n// These are our margin and padding utility spacers. The default step size we\n// use is 8px. This gives us a key of:\n// 0 => 0px\n// 1 => 4px\n// 2 => 8px\n// 3 => 16px\n// 4 => 24px\n// 5 => 32px\n// 6 => 40px\n$spacer: 8px !default;\n\n// Our spacing scale\n$spacer-0: 0 !default; // 0\n$spacer-1: round($spacer / 2) !default; // 4px\n$spacer-2: $spacer !default; // 8px\n$spacer-3: $spacer * 2 !default; // 16px\n$spacer-4: $spacer * 3 !default; // 24px\n$spacer-5: $spacer * 4 !default; // 32px\n$spacer-6: $spacer * 5 !default; // 40px\n\n// The list of spacer values\n$spacers: (\n $spacer-0,\n $spacer-1,\n $spacer-2,\n $spacer-3,\n $spacer-4,\n $spacer-5,\n $spacer-6,\n) !default;\n\n// And the map of spacers, for easier looping:\n// @each $scale, $length in $spacer-map { ... }\n$spacer-map: (\n 0: $spacer-0,\n 1: $spacer-1,\n 2: $spacer-2,\n 3: $spacer-3,\n 4: $spacer-4,\n 5: $spacer-5,\n 6: $spacer-6,\n) !default;\n\n// Em spacer variables\n$em-spacer-1: 0.0625em !default; // 1/16\n$em-spacer-2: 0.125em !default; // 1/8\n$em-spacer-3: 0.25em !default; // 1/4\n$em-spacer-4: 0.375em !default; // 3/8\n$em-spacer-5: 0.5em !default; // 1/2\n$em-spacer-6: 0.75em !default; // 3/4\n\n// Size scale\n// Used for buttons, inputs, labels, avatars etc.\n$size: 16px !default;\n\n$size-0: 0 !default;\n$size-1: $size !default; // 16px\n$size-2: $size-1 + 4px !default; // 20px\n$size-3: $size-2 + 4px !default; // 24px\n$size-4: $size-3 + 4px !default; // 28px\n$size-5: $size-4 + 4px !default; // 32px\n$size-6: $size-5 + 8px !default; // 40px\n$size-7: $size-6 + 8px !default; // 48px\n$size-8: $size-7 + 16px !default; // 64px\n\n// Fixed-width container variables\n$container-width: 980px !default;\n$grid-gutter: 10px !default;\n\n// Breakpoint widths\n$width-xs: 0 !default;\n// Small screen / phone\n$width-sm: 544px !default;\n// Medium screen / tablet\n$width-md: 768px !default;\n// Large screen / desktop (980 + (16 * 2)) <= container + gutters\n$width-lg: 1012px !default;\n// Extra large screen / wide desktop\n$width-xl: 1280px !default;\n\n// Responsive container widths\n$container-sm: $width-sm !default;\n$container-md: $width-md !default;\n$container-lg: $width-lg !default;\n$container-xl: $width-xl !default;\n\n// Breakpoints in the form (name: length)\n$breakpoints: (\n sm: $width-sm,\n md: $width-md,\n lg: $width-lg,\n xl: $width-xl\n) !default;\n\n// This map in the form (breakpoint: variant) is used to iterate over\n// breakpoints and create both responsive and non-responsive classes in one\n// loop:\n//\n// ```scss\n// @each $breakpoint, $variant of $responsive-variants {\n// @include breakpoint($breakpoint) {\n// .foo#{$variant}-bar { foo: bar !important; }\n// }\n// }\n// ```\n$responsive-variants: (\n \"\": \"\",\n sm: \"-sm\",\n md: \"-md\",\n lg: \"-lg\",\n xl: \"-xl\",\n) !default;\n\n// responive utility position values\n$responsive-positions: (\n static,\n relative,\n absolute,\n fixed,\n sticky\n) !default;\n","// Responsive media queries\n\n@mixin breakpoint($breakpoint) {\n @if $breakpoint == \"\" {\n @content;\n }\n\n @else {\n // Retrieves the value from the key\n $value: map-get($breakpoints, $breakpoint);\n\n // If the key exists in the map\n @if $value != null {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n }\n\n // If the key doesn't exist in the map\n @else {\n @warn \"Unfortunately, no value could be retrieved from `#{$breakpoint}`. \"\n + \"Please make sure it is defined in `$breakpoints` map.\";\n }\n }\n}\n\n// Retina media query\n\n@mixin retina-media-query {\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and (min--moz-device-pixel-ratio: 2),\n only screen and (-moz-min-device-pixel-ratio: 2),\n only screen and (-o-min-device-pixel-ratio: 2/1),\n only screen and (min-device-pixel-ratio: 2),\n only screen and (min-resolution: 192dpi),\n only screen and (min-resolution: 2dppx) {\n @content;\n }\n}\n\n// Clearfix\n//\n// Clears floats via mixin.\n\n@mixin clearfix {\n &::before {\n display: table;\n content: \"\";\n }\n\n &::after {\n display: table;\n clear: both;\n content: \"\";\n }\n}\n"]}