plugins/borders.js (59 lines of code) (raw):

const {createVariableRule} = require('./lib/variable-rules') module.exports = createVariableRule( 'primer/borders', { border: { expects: 'a border variable', props: 'border{,-top,-right,-bottom,-left}', values: ['$border', 'none', '0'], components: ['border-width', 'border-style', 'border-color'], replacements: { // because shorthand border properties ¯\_(ツ)_/¯ '$border-width $border-style $border-gray': '$border', '$border-width $border-gray $border-style': '$border', '$border-style $border-width $border-gray': '$border', '$border-style $border-gray $border-width': '$border', '$border-gray $border-width $border-style': '$border', '$border-gray $border-style $border-width': '$border', '$border-width $border-style $border-color': '$border', '$border-width $border-color $border-style': '$border', '$border-style $border-width $border-color': '$border', '$border-style $border-color $border-width': '$border', '$border-color $border-width $border-style': '$border', '$border-color $border-style $border-width': '$border' } }, 'border color': { expects: 'a border color variable', props: 'border{,-top,-right,-bottom,-left}-color', values: [ '$border-*', 'transparent', 'currentColor', // Match variables in any of the following formats: --color-border-*, --color-*-border-*, --color-*-border /var\(--color-(.+-)*border(-.+)*\)/, /var\(--color-[^)]+\)/ ], replacements: { '$border-gray': '$border-color' } }, 'border style': { expects: 'a border style variable', props: 'border{,-top,-right,-bottom,-left}-style', values: ['$border-style', 'none'] }, 'border width': { expects: 'a border width variable', props: 'border{,-top,-right,-bottom,-left}-width', values: ['$border-width*', '0'] }, 'border radius': { expects: 'a border radius variable', props: 'border{,-{top,bottom}-{left,right}}-radius', values: ['$border-radius', '0', '50%', 'inherit'], replacements: { '100%': '50%' } } }, 'https://primer.style/css/utilities/borders' )